@gotza02/smartagent 1.2.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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/dist/config/index.d.ts +72 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +329 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/core/agent-manager.d.ts +116 -0
  8. package/dist/core/agent-manager.d.ts.map +1 -0
  9. package/dist/core/agent-manager.js +460 -0
  10. package/dist/core/agent-manager.js.map +1 -0
  11. package/dist/core/context-manager.d.ts +107 -0
  12. package/dist/core/context-manager.d.ts.map +1 -0
  13. package/dist/core/context-manager.js +467 -0
  14. package/dist/core/context-manager.js.map +1 -0
  15. package/dist/core/database.d.ts +82 -0
  16. package/dist/core/database.d.ts.map +1 -0
  17. package/dist/core/database.js +751 -0
  18. package/dist/core/database.js.map +1 -0
  19. package/dist/core/event-emitter.d.ts +110 -0
  20. package/dist/core/event-emitter.d.ts.map +1 -0
  21. package/dist/core/event-emitter.js +240 -0
  22. package/dist/core/event-emitter.js.map +1 -0
  23. package/dist/core/metrics.d.ts +108 -0
  24. package/dist/core/metrics.d.ts.map +1 -0
  25. package/dist/core/metrics.js +281 -0
  26. package/dist/core/metrics.js.map +1 -0
  27. package/dist/core/middleware.d.ts +63 -0
  28. package/dist/core/middleware.d.ts.map +1 -0
  29. package/dist/core/middleware.js +194 -0
  30. package/dist/core/middleware.js.map +1 -0
  31. package/dist/core/plugin-system.d.ts +86 -0
  32. package/dist/core/plugin-system.d.ts.map +1 -0
  33. package/dist/core/plugin-system.js +251 -0
  34. package/dist/core/plugin-system.js.map +1 -0
  35. package/dist/core/task-scheduler.d.ts +130 -0
  36. package/dist/core/task-scheduler.d.ts.map +1 -0
  37. package/dist/core/task-scheduler.js +401 -0
  38. package/dist/core/task-scheduler.js.map +1 -0
  39. package/dist/engines/auto-router.d.ts +76 -0
  40. package/dist/engines/auto-router.d.ts.map +1 -0
  41. package/dist/engines/auto-router.js +445 -0
  42. package/dist/engines/auto-router.js.map +1 -0
  43. package/dist/engines/parallel-execution.d.ts +104 -0
  44. package/dist/engines/parallel-execution.d.ts.map +1 -0
  45. package/dist/engines/parallel-execution.js +591 -0
  46. package/dist/engines/parallel-execution.js.map +1 -0
  47. package/dist/engines/sequential-thinking.d.ts +88 -0
  48. package/dist/engines/sequential-thinking.d.ts.map +1 -0
  49. package/dist/engines/sequential-thinking.js +406 -0
  50. package/dist/engines/sequential-thinking.js.map +1 -0
  51. package/dist/index.d.ts +12 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +1101 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/security/validation.d.ts +87 -0
  56. package/dist/security/validation.d.ts.map +1 -0
  57. package/dist/security/validation.js +465 -0
  58. package/dist/security/validation.js.map +1 -0
  59. package/dist/tools/filesystem.d.ts +90 -0
  60. package/dist/tools/filesystem.d.ts.map +1 -0
  61. package/dist/tools/filesystem.js +292 -0
  62. package/dist/tools/filesystem.js.map +1 -0
  63. package/dist/tools/terminal.d.ts +99 -0
  64. package/dist/tools/terminal.d.ts.map +1 -0
  65. package/dist/tools/terminal.js +363 -0
  66. package/dist/tools/terminal.js.map +1 -0
  67. package/dist/types/index.d.ts +306 -0
  68. package/dist/types/index.d.ts.map +1 -0
  69. package/dist/types/index.js +54 -0
  70. package/dist/types/index.js.map +1 -0
  71. package/dist/utils/logger.d.ts +22 -0
  72. package/dist/utils/logger.d.ts.map +1 -0
  73. package/dist/utils/logger.js +189 -0
  74. package/dist/utils/logger.js.map +1 -0
  75. package/package.json +71 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Filesystem Tool Integration
3
+ * Secure file operations with path validation
4
+ */
5
+ import type { SecurityPolicy } from "../types/index.js";
6
+ export interface FileSystemConfig {
7
+ basePath: string;
8
+ allowedExtensions?: string[];
9
+ maxFileSize: number;
10
+ securityPolicy: SecurityPolicy;
11
+ }
12
+ export interface FileOperation {
13
+ path: string;
14
+ content?: string;
15
+ encoding?: BufferEncoding;
16
+ }
17
+ export interface FileInfo {
18
+ path: string;
19
+ name: string;
20
+ size: number;
21
+ isDirectory: boolean;
22
+ isFile: boolean;
23
+ modifiedAt: Date;
24
+ createdAt: Date;
25
+ }
26
+ /**
27
+ * Filesystem Tool
28
+ * Secure file operations with validation
29
+ */
30
+ export declare class FileSystemTool {
31
+ private config;
32
+ constructor(config?: Partial<FileSystemConfig>);
33
+ /**
34
+ * Read file contents
35
+ */
36
+ readFile(operation: FileOperation): Promise<{
37
+ success: boolean;
38
+ content?: string;
39
+ error?: string;
40
+ }>;
41
+ /**
42
+ * Write file contents
43
+ */
44
+ writeFile(operation: FileOperation & {
45
+ content: string;
46
+ }): Promise<{
47
+ success: boolean;
48
+ bytesWritten?: number;
49
+ error?: string;
50
+ }>;
51
+ /**
52
+ * List directory contents
53
+ */
54
+ listDirectory(dirPath: string): Promise<{
55
+ success: boolean;
56
+ files?: FileInfo[];
57
+ error?: string;
58
+ }>;
59
+ /**
60
+ * Get file information
61
+ */
62
+ getFileInfo(filePath: string): Promise<{
63
+ success: boolean;
64
+ info?: FileInfo;
65
+ error?: string;
66
+ }>;
67
+ /**
68
+ * Create directory
69
+ */
70
+ createDirectory(dirPath: string): Promise<{
71
+ success: boolean;
72
+ error?: string;
73
+ }>;
74
+ /**
75
+ * Check if file exists
76
+ */
77
+ exists(filePath: string): Promise<boolean>;
78
+ /**
79
+ * Search files by pattern
80
+ */
81
+ searchFiles(dirPath: string, pattern: string, options?: {
82
+ recursive?: boolean;
83
+ maxResults?: number;
84
+ }): Promise<{
85
+ success: boolean;
86
+ files?: string[];
87
+ error?: string;
88
+ }>;
89
+ }
90
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAelD;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC;QAChD,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAsEF;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACvE,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAgDF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAmDF;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IA6BF;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9C,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAwBF;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhD;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB,GACL,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CAyCH"}
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Filesystem Tool Integration
3
+ * Secure file operations with path validation
4
+ */
5
+ import { readFile, writeFile, mkdir, readdir, stat, access, constants } from "fs/promises";
6
+ import { dirname, join, extname } from "path";
7
+ import { logger, logToolExecution } from "../utils/logger.js";
8
+ import { validatePath } from "../security/validation.js";
9
+ /**
10
+ * Filesystem Tool
11
+ * Secure file operations with validation
12
+ */
13
+ export class FileSystemTool {
14
+ config;
15
+ constructor(config = {}) {
16
+ this.config = {
17
+ basePath: process.cwd(),
18
+ maxFileSize: 10 * 1024 * 1024, // 10MB
19
+ securityPolicy: config.securityPolicy || {
20
+ id: "default",
21
+ name: "Default",
22
+ pathValidation: { enabled: true, allowedPaths: [], blockedPaths: [] },
23
+ commandValidation: { enabled: false, whitelist: [], blacklist: [], dangerousPatterns: [] },
24
+ rateLimit: { enabled: false, maxRequestsPerMinute: 0, maxRequestsPerHour: 0 },
25
+ },
26
+ ...config,
27
+ };
28
+ }
29
+ /**
30
+ * Read file contents
31
+ */
32
+ async readFile(operation) {
33
+ const startTime = Date.now();
34
+ try {
35
+ // Validate path
36
+ const validation = validatePath(operation.path, this.config.securityPolicy);
37
+ if (!validation.valid) {
38
+ logToolExecution("filesystem", "unknown", "unknown", Date.now() - startTime, false, {
39
+ operation: "read",
40
+ error: validation.error,
41
+ });
42
+ return { success: false, error: validation.error };
43
+ }
44
+ const resolvedPath = validation.resolvedPath;
45
+ // Check file exists
46
+ try {
47
+ await access(resolvedPath, constants.R_OK);
48
+ }
49
+ catch {
50
+ return { success: false, error: `File not accessible: ${operation.path}` };
51
+ }
52
+ // Check file size
53
+ const fileStat = await stat(resolvedPath);
54
+ if (fileStat.size > this.config.maxFileSize) {
55
+ return {
56
+ success: false,
57
+ error: `File too large: ${fileStat.size} bytes (max: ${this.config.maxFileSize})`,
58
+ };
59
+ }
60
+ // Check extension using proper path parsing
61
+ if (this.config.allowedExtensions && this.config.allowedExtensions.length > 0) {
62
+ const ext = extname(resolvedPath).toLowerCase().replace(/^\./, '');
63
+ const allowedLower = this.config.allowedExtensions.map(e => e.toLowerCase().replace(/^\./, ''));
64
+ if (!ext || !allowedLower.includes(ext)) {
65
+ return {
66
+ success: false,
67
+ error: `File extension not allowed: ${ext || 'none'}`,
68
+ };
69
+ }
70
+ }
71
+ // Read file
72
+ const content = await readFile(resolvedPath, {
73
+ encoding: operation.encoding || "utf-8",
74
+ });
75
+ const duration = Date.now() - startTime;
76
+ logToolExecution("filesystem", "unknown", "unknown", duration, true, {
77
+ operation: "read",
78
+ path: resolvedPath,
79
+ size: content.length,
80
+ });
81
+ return { success: true, content };
82
+ }
83
+ catch (error) {
84
+ const duration = Date.now() - startTime;
85
+ const errorMessage = error instanceof Error ? error.message : String(error);
86
+ logToolExecution("filesystem", "unknown", "unknown", duration, false, {
87
+ operation: "read",
88
+ error: errorMessage,
89
+ });
90
+ return { success: false, error: errorMessage };
91
+ }
92
+ }
93
+ /**
94
+ * Write file contents
95
+ */
96
+ async writeFile(operation) {
97
+ const startTime = Date.now();
98
+ try {
99
+ // Validate path
100
+ const validation = validatePath(operation.path, this.config.securityPolicy);
101
+ if (!validation.valid) {
102
+ return { success: false, error: validation.error };
103
+ }
104
+ const resolvedPath = validation.resolvedPath;
105
+ // Check content size
106
+ const contentBuffer = Buffer.from(operation.content);
107
+ if (contentBuffer.length > this.config.maxFileSize) {
108
+ return {
109
+ success: false,
110
+ error: `Content too large: ${contentBuffer.length} bytes (max: ${this.config.maxFileSize})`,
111
+ };
112
+ }
113
+ // Create directory if needed
114
+ const dir = dirname(resolvedPath);
115
+ try {
116
+ await mkdir(dir, { recursive: true });
117
+ }
118
+ catch {
119
+ // Directory might already exist
120
+ }
121
+ // Write file
122
+ await writeFile(resolvedPath, operation.content, {
123
+ encoding: operation.encoding || "utf-8",
124
+ });
125
+ const duration = Date.now() - startTime;
126
+ logToolExecution("filesystem", "unknown", "unknown", duration, true, {
127
+ operation: "write",
128
+ path: resolvedPath,
129
+ size: contentBuffer.length,
130
+ });
131
+ return { success: true, bytesWritten: contentBuffer.length };
132
+ }
133
+ catch (error) {
134
+ const errorMessage = error instanceof Error ? error.message : String(error);
135
+ return { success: false, error: errorMessage };
136
+ }
137
+ }
138
+ /**
139
+ * List directory contents
140
+ */
141
+ async listDirectory(dirPath) {
142
+ const startTime = Date.now();
143
+ try {
144
+ // Validate path
145
+ const validation = validatePath(dirPath, this.config.securityPolicy);
146
+ if (!validation.valid) {
147
+ return { success: false, error: validation.error };
148
+ }
149
+ const resolvedPath = validation.resolvedPath;
150
+ // Check if directory
151
+ const dirStat = await stat(resolvedPath);
152
+ if (!dirStat.isDirectory()) {
153
+ return { success: false, error: `Not a directory: ${dirPath}` };
154
+ }
155
+ // Read directory
156
+ const entries = await readdir(resolvedPath, { withFileTypes: true });
157
+ const files = [];
158
+ for (const entry of entries) {
159
+ const entryPath = join(resolvedPath, entry.name);
160
+ const entryStat = await stat(entryPath);
161
+ files.push({
162
+ path: entryPath,
163
+ name: entry.name,
164
+ size: entryStat.size,
165
+ isDirectory: entry.isDirectory(),
166
+ isFile: entry.isFile(),
167
+ modifiedAt: entryStat.mtime,
168
+ createdAt: entryStat.birthtime,
169
+ });
170
+ }
171
+ const duration = Date.now() - startTime;
172
+ logToolExecution("filesystem", "unknown", "unknown", duration, true, {
173
+ operation: "list",
174
+ path: resolvedPath,
175
+ count: files.length,
176
+ });
177
+ return { success: true, files };
178
+ }
179
+ catch (error) {
180
+ const errorMessage = error instanceof Error ? error.message : String(error);
181
+ return { success: false, error: errorMessage };
182
+ }
183
+ }
184
+ /**
185
+ * Get file information
186
+ */
187
+ async getFileInfo(filePath) {
188
+ try {
189
+ // Validate path
190
+ const validation = validatePath(filePath, this.config.securityPolicy);
191
+ if (!validation.valid) {
192
+ return { success: false, error: validation.error };
193
+ }
194
+ const resolvedPath = validation.resolvedPath;
195
+ const fileStat = await stat(resolvedPath);
196
+ return {
197
+ success: true,
198
+ info: {
199
+ path: resolvedPath,
200
+ name: resolvedPath.split("/").pop() || "",
201
+ size: fileStat.size,
202
+ isDirectory: fileStat.isDirectory(),
203
+ isFile: fileStat.isFile(),
204
+ modifiedAt: fileStat.mtime,
205
+ createdAt: fileStat.birthtime,
206
+ },
207
+ };
208
+ }
209
+ catch (error) {
210
+ const errorMessage = error instanceof Error ? error.message : String(error);
211
+ return { success: false, error: errorMessage };
212
+ }
213
+ }
214
+ /**
215
+ * Create directory
216
+ */
217
+ async createDirectory(dirPath) {
218
+ try {
219
+ // Validate path
220
+ const validation = validatePath(dirPath, this.config.securityPolicy);
221
+ if (!validation.valid) {
222
+ return { success: false, error: validation.error };
223
+ }
224
+ const resolvedPath = validation.resolvedPath;
225
+ await mkdir(resolvedPath, { recursive: true });
226
+ logger.info("Directory created", {
227
+ category: "tool",
228
+ operation: "mkdir",
229
+ path: resolvedPath,
230
+ });
231
+ return { success: true };
232
+ }
233
+ catch (error) {
234
+ const errorMessage = error instanceof Error ? error.message : String(error);
235
+ return { success: false, error: errorMessage };
236
+ }
237
+ }
238
+ /**
239
+ * Check if file exists
240
+ */
241
+ async exists(filePath) {
242
+ try {
243
+ const validation = validatePath(filePath, this.config.securityPolicy);
244
+ if (!validation.valid)
245
+ return false;
246
+ await access(validation.resolvedPath, constants.F_OK);
247
+ return true;
248
+ }
249
+ catch {
250
+ return false;
251
+ }
252
+ }
253
+ /**
254
+ * Search files by pattern
255
+ */
256
+ async searchFiles(dirPath, pattern, options = {}) {
257
+ const results = [];
258
+ try {
259
+ const validation = validatePath(dirPath, this.config.securityPolicy);
260
+ if (!validation.valid) {
261
+ return { success: false, error: validation.error };
262
+ }
263
+ const searchDir = async (currentPath) => {
264
+ if (options.maxResults && results.length >= options.maxResults) {
265
+ return;
266
+ }
267
+ const entries = await readdir(currentPath, { withFileTypes: true });
268
+ for (const entry of entries) {
269
+ const entryPath = join(currentPath, entry.name);
270
+ if (entry.isDirectory() && options.recursive) {
271
+ await searchDir(entryPath);
272
+ }
273
+ else if (entry.isFile()) {
274
+ if (entry.name.includes(pattern)) {
275
+ results.push(entryPath);
276
+ }
277
+ }
278
+ if (options.maxResults && results.length >= options.maxResults) {
279
+ break;
280
+ }
281
+ }
282
+ };
283
+ await searchDir(validation.resolvedPath);
284
+ return { success: true, files: results };
285
+ }
286
+ catch (error) {
287
+ const errorMessage = error instanceof Error ? error.message : String(error);
288
+ return { success: false, error: errorMessage };
289
+ }
290
+ }
291
+ }
292
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Terminal Tool Integration
3
+ * Secure command execution with validation and sandboxing
4
+ */
5
+ import type { SecurityPolicy } from "../types/index.js";
6
+ export interface TerminalConfig {
7
+ cwd: string;
8
+ env: Record<string, string>;
9
+ timeout: number;
10
+ maxOutputSize: number;
11
+ shell: string;
12
+ securityPolicy: SecurityPolicy;
13
+ sandboxEnabled: boolean;
14
+ }
15
+ export interface CommandExecution {
16
+ command: string;
17
+ args?: string[];
18
+ cwd?: string;
19
+ env?: Record<string, string>;
20
+ timeout?: number;
21
+ }
22
+ export interface CommandResult {
23
+ stdout: string;
24
+ stderr: string;
25
+ exitCode: number;
26
+ executionTime: number;
27
+ }
28
+ /**
29
+ * Terminal Tool
30
+ * Secure command execution
31
+ */
32
+ export declare class TerminalTool {
33
+ private config;
34
+ constructor(config?: Partial<TerminalConfig>);
35
+ /**
36
+ * Execute a command
37
+ */
38
+ execute(execution: CommandExecution): Promise<{
39
+ success: boolean;
40
+ result?: CommandResult;
41
+ error?: string;
42
+ blocked?: boolean;
43
+ }>;
44
+ /**
45
+ * Prepare sandboxed environment
46
+ */
47
+ private prepareSandboxEnv;
48
+ /**
49
+ * Validate cwd against allowed paths
50
+ */
51
+ private validateCwd;
52
+ /**
53
+ * Run command with spawn
54
+ */
55
+ private runCommand;
56
+ /**
57
+ * Execute a simple command (no args)
58
+ */
59
+ run(command: string, options?: Partial<CommandExecution>): Promise<{
60
+ success: boolean;
61
+ output?: string;
62
+ error?: string;
63
+ }>;
64
+ /**
65
+ * Check if a command exists
66
+ */
67
+ commandExists(command: string): Promise<boolean>;
68
+ /**
69
+ * Get system information
70
+ */
71
+ getSystemInfo(): Promise<{
72
+ success: boolean;
73
+ info?: {
74
+ platform: string;
75
+ arch: string;
76
+ nodeVersion: string;
77
+ shell: string;
78
+ cwd: string;
79
+ };
80
+ error?: string;
81
+ }>;
82
+ /**
83
+ * Execute piped commands
84
+ */
85
+ pipe(commands: string[]): Promise<{
86
+ success: boolean;
87
+ result?: CommandResult;
88
+ error?: string;
89
+ }>;
90
+ /**
91
+ * Execute script from file
92
+ */
93
+ executeScript(scriptPath: string, args?: string[]): Promise<{
94
+ success: boolean;
95
+ result?: CommandResult;
96
+ error?: string;
97
+ }>;
98
+ }
99
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/tools/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuBxD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAmBhD;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAClD,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IA+EF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,OAAO,CAAC,UAAU;IA0HlB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,OAAO,CAAC;QAC3E,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAqBF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAStD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAoBF;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAkBF;;OAEG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CA+BH"}