praisonai 1.2.2 → 1.2.3

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 (160) hide show
  1. package/dist/agent/simple.js +1 -1
  2. package/dist/cli/commands/auto.d.ts +12 -0
  3. package/dist/cli/commands/auto.js +109 -0
  4. package/dist/cli/commands/autonomy.d.ts +5 -0
  5. package/dist/cli/commands/autonomy.js +152 -0
  6. package/dist/cli/commands/cache.d.ts +9 -0
  7. package/dist/cli/commands/cache.js +143 -0
  8. package/dist/cli/commands/chat.d.ts +14 -0
  9. package/dist/cli/commands/chat.js +127 -0
  10. package/dist/cli/commands/checkpoints.d.ts +5 -0
  11. package/dist/cli/commands/checkpoints.js +236 -0
  12. package/dist/cli/commands/context.d.ts +11 -0
  13. package/dist/cli/commands/context.js +182 -0
  14. package/dist/cli/commands/cost.d.ts +5 -0
  15. package/dist/cli/commands/cost.js +146 -0
  16. package/dist/cli/commands/db.d.ts +9 -0
  17. package/dist/cli/commands/db.js +149 -0
  18. package/dist/cli/commands/eval.d.ts +17 -0
  19. package/dist/cli/commands/eval.js +247 -0
  20. package/dist/cli/commands/external-agents.d.ts +5 -0
  21. package/dist/cli/commands/external-agents.js +169 -0
  22. package/dist/cli/commands/fast-context.d.ts +5 -0
  23. package/dist/cli/commands/fast-context.js +126 -0
  24. package/dist/cli/commands/flow.d.ts +5 -0
  25. package/dist/cli/commands/flow.js +141 -0
  26. package/dist/cli/commands/git.d.ts +5 -0
  27. package/dist/cli/commands/git.js +178 -0
  28. package/dist/cli/commands/graph-rag.d.ts +9 -0
  29. package/dist/cli/commands/graph-rag.js +131 -0
  30. package/dist/cli/commands/guardrail.d.ts +11 -0
  31. package/dist/cli/commands/guardrail.js +156 -0
  32. package/dist/cli/commands/handoff.d.ts +9 -0
  33. package/dist/cli/commands/handoff.js +133 -0
  34. package/dist/cli/commands/help.d.ts +8 -0
  35. package/dist/cli/commands/help.js +167 -0
  36. package/dist/cli/commands/image.d.ts +13 -0
  37. package/dist/cli/commands/image.js +192 -0
  38. package/dist/cli/commands/interactive.d.ts +6 -0
  39. package/dist/cli/commands/interactive.js +79 -0
  40. package/dist/cli/commands/jobs.d.ts +5 -0
  41. package/dist/cli/commands/jobs.js +282 -0
  42. package/dist/cli/commands/knowledge.d.ts +9 -0
  43. package/dist/cli/commands/knowledge.js +226 -0
  44. package/dist/cli/commands/mcp.d.ts +9 -0
  45. package/dist/cli/commands/mcp.js +243 -0
  46. package/dist/cli/commands/memory.d.ts +10 -0
  47. package/dist/cli/commands/memory.js +198 -0
  48. package/dist/cli/commands/n8n.d.ts +5 -0
  49. package/dist/cli/commands/n8n.js +137 -0
  50. package/dist/cli/commands/observability.d.ts +9 -0
  51. package/dist/cli/commands/observability.js +145 -0
  52. package/dist/cli/commands/planning.d.ts +9 -0
  53. package/dist/cli/commands/planning.js +167 -0
  54. package/dist/cli/commands/prompt-expand.d.ts +11 -0
  55. package/dist/cli/commands/prompt-expand.js +100 -0
  56. package/dist/cli/commands/providers.d.ts +9 -0
  57. package/dist/cli/commands/providers.js +98 -0
  58. package/dist/cli/commands/query-rewrite.d.ts +12 -0
  59. package/dist/cli/commands/query-rewrite.js +102 -0
  60. package/dist/cli/commands/repo-map.d.ts +5 -0
  61. package/dist/cli/commands/repo-map.js +151 -0
  62. package/dist/cli/commands/reranker.d.ts +10 -0
  63. package/dist/cli/commands/reranker.js +144 -0
  64. package/dist/cli/commands/research.d.ts +12 -0
  65. package/dist/cli/commands/research.js +108 -0
  66. package/dist/cli/commands/router.d.ts +11 -0
  67. package/dist/cli/commands/router.js +142 -0
  68. package/dist/cli/commands/run.d.ts +14 -0
  69. package/dist/cli/commands/run.js +111 -0
  70. package/dist/cli/commands/sandbox.d.ts +5 -0
  71. package/dist/cli/commands/sandbox.js +135 -0
  72. package/dist/cli/commands/scheduler.d.ts +5 -0
  73. package/dist/cli/commands/scheduler.js +260 -0
  74. package/dist/cli/commands/session.d.ts +9 -0
  75. package/dist/cli/commands/session.js +238 -0
  76. package/dist/cli/commands/skills.d.ts +9 -0
  77. package/dist/cli/commands/skills.js +256 -0
  78. package/dist/cli/commands/telemetry.d.ts +9 -0
  79. package/dist/cli/commands/telemetry.js +146 -0
  80. package/dist/cli/commands/tools.d.ts +9 -0
  81. package/dist/cli/commands/tools.js +172 -0
  82. package/dist/cli/commands/vector.d.ts +10 -0
  83. package/dist/cli/commands/vector.js +171 -0
  84. package/dist/cli/commands/version.d.ts +8 -0
  85. package/dist/cli/commands/version.js +68 -0
  86. package/dist/cli/commands/voice.d.ts +10 -0
  87. package/dist/cli/commands/voice.js +162 -0
  88. package/dist/cli/commands/workflow.d.ts +13 -0
  89. package/dist/cli/commands/workflow.js +184 -0
  90. package/dist/cli/config/index.d.ts +6 -0
  91. package/dist/cli/config/index.js +22 -0
  92. package/dist/cli/config/load.d.ts +20 -0
  93. package/dist/cli/config/load.js +229 -0
  94. package/dist/cli/config/resolve.d.ts +28 -0
  95. package/dist/cli/config/resolve.js +70 -0
  96. package/dist/cli/config/schema.d.ts +15 -0
  97. package/dist/cli/config/schema.js +65 -0
  98. package/dist/cli/features/autonomy-mode.d.ts +98 -0
  99. package/dist/cli/features/autonomy-mode.js +266 -0
  100. package/dist/cli/features/background-jobs.d.ts +155 -0
  101. package/dist/cli/features/background-jobs.js +416 -0
  102. package/dist/cli/features/checkpoints.d.ts +126 -0
  103. package/dist/cli/features/checkpoints.js +288 -0
  104. package/dist/cli/features/cost-tracker.d.ts +101 -0
  105. package/dist/cli/features/cost-tracker.js +212 -0
  106. package/dist/cli/features/external-agents.d.ts +115 -0
  107. package/dist/cli/features/external-agents.js +294 -0
  108. package/dist/cli/features/fast-context.d.ts +126 -0
  109. package/dist/cli/features/fast-context.js +310 -0
  110. package/dist/cli/features/flow-display.d.ts +100 -0
  111. package/dist/cli/features/flow-display.js +254 -0
  112. package/dist/cli/features/git-integration.d.ts +138 -0
  113. package/dist/cli/features/git-integration.js +374 -0
  114. package/dist/cli/features/index.d.ts +17 -0
  115. package/dist/cli/features/index.js +102 -0
  116. package/dist/cli/features/interactive-tui.d.ts +114 -0
  117. package/dist/cli/features/interactive-tui.js +326 -0
  118. package/dist/cli/features/n8n-integration.d.ts +108 -0
  119. package/dist/cli/features/n8n-integration.js +296 -0
  120. package/dist/cli/features/repo-map.d.ts +101 -0
  121. package/dist/cli/features/repo-map.js +350 -0
  122. package/dist/cli/features/sandbox-executor.d.ts +89 -0
  123. package/dist/cli/features/sandbox-executor.js +314 -0
  124. package/dist/cli/features/scheduler.d.ts +111 -0
  125. package/dist/cli/features/scheduler.js +298 -0
  126. package/dist/cli/features/slash-commands.d.ts +77 -0
  127. package/dist/cli/features/slash-commands.js +316 -0
  128. package/dist/cli/index.d.ts +19 -15
  129. package/dist/cli/index.js +163 -123
  130. package/dist/cli/output/errors.d.ts +32 -0
  131. package/dist/cli/output/errors.js +72 -0
  132. package/dist/cli/output/index.d.ts +6 -0
  133. package/dist/cli/output/index.js +22 -0
  134. package/dist/cli/output/json.d.ts +17 -0
  135. package/dist/cli/output/json.js +54 -0
  136. package/dist/cli/output/pretty.d.ts +21 -0
  137. package/dist/cli/output/pretty.js +106 -0
  138. package/dist/cli/runtime/env.d.ts +12 -0
  139. package/dist/cli/runtime/env.js +49 -0
  140. package/dist/cli/runtime/exit.d.ts +11 -0
  141. package/dist/cli/runtime/exit.js +49 -0
  142. package/dist/cli/runtime/index.d.ts +6 -0
  143. package/dist/cli/runtime/index.js +22 -0
  144. package/dist/cli/runtime/lazy.d.ts +18 -0
  145. package/dist/cli/runtime/lazy.js +85 -0
  146. package/dist/cli/spec/cli-spec.d.ts +87 -0
  147. package/dist/cli/spec/cli-spec.js +478 -0
  148. package/dist/cli/spec/index.d.ts +4 -0
  149. package/dist/cli/spec/index.js +20 -0
  150. package/dist/index.d.ts +4 -1
  151. package/dist/index.js +100 -7
  152. package/dist/memory/auto-memory.d.ts +136 -0
  153. package/dist/memory/auto-memory.js +301 -0
  154. package/dist/memory/file-memory.d.ts +88 -0
  155. package/dist/memory/file-memory.js +287 -0
  156. package/dist/memory/index.d.ts +2 -0
  157. package/dist/memory/index.js +11 -1
  158. package/dist/workflows/loop.d.ts +0 -0
  159. package/dist/workflows/loop.js +1 -0
  160. package/package.json +1 -1
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ /**
3
+ * Repo Map - Repository structure visualization and symbol extraction
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.RepoMap = exports.DEFAULT_IGNORE_PATTERNS = void 0;
40
+ exports.createRepoMap = createRepoMap;
41
+ exports.getRepoTree = getRepoTree;
42
+ /**
43
+ * Default ignore patterns
44
+ */
45
+ exports.DEFAULT_IGNORE_PATTERNS = [
46
+ 'node_modules',
47
+ '.git',
48
+ 'dist',
49
+ 'build',
50
+ '.next',
51
+ '.nuxt',
52
+ 'coverage',
53
+ '.cache',
54
+ '__pycache__',
55
+ '.pytest_cache',
56
+ 'venv',
57
+ '.venv',
58
+ '*.pyc',
59
+ '*.pyo',
60
+ '.DS_Store',
61
+ 'Thumbs.db',
62
+ '*.log',
63
+ '*.lock'
64
+ ];
65
+ /**
66
+ * RepoMap class for repository analysis
67
+ */
68
+ class RepoMap {
69
+ constructor(config) {
70
+ this.config = {
71
+ maxDepth: 10,
72
+ ignorePatterns: exports.DEFAULT_IGNORE_PATTERNS,
73
+ includeSymbols: true,
74
+ maxFiles: 1000,
75
+ ...config
76
+ };
77
+ }
78
+ /**
79
+ * Generate repository map
80
+ */
81
+ async generate() {
82
+ this.fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
83
+ this.path = await Promise.resolve().then(() => __importStar(require('path')));
84
+ const tree = await this.scanDirectory(this.config.rootPath, 0);
85
+ const { files, directories } = this.countItems(tree);
86
+ const symbols = this.config.includeSymbols ? this.collectSymbols(tree) : [];
87
+ return {
88
+ root: this.config.rootPath,
89
+ tree,
90
+ totalFiles: files,
91
+ totalDirectories: directories,
92
+ symbols,
93
+ summary: this.generateSummary(tree, files, directories, symbols.length)
94
+ };
95
+ }
96
+ /**
97
+ * Scan a directory recursively
98
+ */
99
+ async scanDirectory(dirPath, depth) {
100
+ const relativePath = this.path.relative(this.config.rootPath, dirPath);
101
+ const stats = await this.fs.stat(dirPath);
102
+ const info = {
103
+ path: dirPath,
104
+ relativePath: relativePath || '.',
105
+ size: stats.size,
106
+ isDirectory: stats.isDirectory()
107
+ };
108
+ if (!stats.isDirectory() || depth >= (this.config.maxDepth || 10)) {
109
+ return info;
110
+ }
111
+ const entries = await this.fs.readdir(dirPath, { withFileTypes: true });
112
+ info.children = [];
113
+ for (const entry of entries) {
114
+ if (this.shouldIgnore(entry.name))
115
+ continue;
116
+ const entryPath = this.path.join(dirPath, entry.name);
117
+ if (entry.isDirectory()) {
118
+ const child = await this.scanDirectory(entryPath, depth + 1);
119
+ info.children.push(child);
120
+ }
121
+ else {
122
+ const fileStats = await this.fs.stat(entryPath).catch(() => null);
123
+ if (!fileStats)
124
+ continue;
125
+ const fileInfo = {
126
+ path: entryPath,
127
+ relativePath: this.path.relative(this.config.rootPath, entryPath),
128
+ size: fileStats.size,
129
+ isDirectory: false
130
+ };
131
+ if (this.config.includeSymbols && this.isCodeFile(entry.name)) {
132
+ fileInfo.symbols = await this.extractSymbols(entryPath);
133
+ }
134
+ info.children.push(fileInfo);
135
+ }
136
+ }
137
+ // Sort: directories first, then files alphabetically
138
+ info.children.sort((a, b) => {
139
+ if (a.isDirectory !== b.isDirectory) {
140
+ return a.isDirectory ? -1 : 1;
141
+ }
142
+ return a.relativePath.localeCompare(b.relativePath);
143
+ });
144
+ return info;
145
+ }
146
+ /**
147
+ * Check if path should be ignored
148
+ */
149
+ shouldIgnore(name) {
150
+ for (const pattern of this.config.ignorePatterns || []) {
151
+ if (pattern.startsWith('*')) {
152
+ if (name.endsWith(pattern.slice(1)))
153
+ return true;
154
+ }
155
+ else if (name === pattern) {
156
+ return true;
157
+ }
158
+ }
159
+ return false;
160
+ }
161
+ /**
162
+ * Check if file is a code file
163
+ */
164
+ isCodeFile(name) {
165
+ const codeExtensions = ['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs', '.java', '.rb', '.php'];
166
+ return codeExtensions.some(ext => name.endsWith(ext));
167
+ }
168
+ /**
169
+ * Extract symbols from a file
170
+ */
171
+ async extractSymbols(filePath) {
172
+ try {
173
+ const content = await this.fs.readFile(filePath, 'utf-8');
174
+ const ext = this.path.extname(filePath);
175
+ switch (ext) {
176
+ case '.ts':
177
+ case '.tsx':
178
+ case '.js':
179
+ case '.jsx':
180
+ return this.extractJSSymbols(content);
181
+ case '.py':
182
+ return this.extractPythonSymbols(content);
183
+ default:
184
+ return [];
185
+ }
186
+ }
187
+ catch {
188
+ return [];
189
+ }
190
+ }
191
+ /**
192
+ * Extract symbols from JavaScript/TypeScript
193
+ */
194
+ extractJSSymbols(content) {
195
+ const symbols = [];
196
+ const lines = content.split('\n');
197
+ const patterns = [
198
+ { regex: /^export\s+(?:async\s+)?function\s+(\w+)/m, type: 'function', exported: true },
199
+ { regex: /^export\s+class\s+(\w+)/m, type: 'class', exported: true },
200
+ { regex: /^export\s+interface\s+(\w+)/m, type: 'interface', exported: true },
201
+ { regex: /^export\s+type\s+(\w+)/m, type: 'type', exported: true },
202
+ { regex: /^export\s+const\s+(\w+)/m, type: 'variable', exported: true },
203
+ { regex: /^(?:async\s+)?function\s+(\w+)/m, type: 'function' },
204
+ { regex: /^class\s+(\w+)/m, type: 'class' },
205
+ { regex: /^interface\s+(\w+)/m, type: 'interface' },
206
+ { regex: /^type\s+(\w+)/m, type: 'type' },
207
+ { regex: /^const\s+(\w+)\s*=/m, type: 'variable' },
208
+ ];
209
+ for (let i = 0; i < lines.length; i++) {
210
+ const line = lines[i].trim();
211
+ for (const { regex, type, exported } of patterns) {
212
+ const match = line.match(regex);
213
+ if (match) {
214
+ symbols.push({
215
+ name: match[1],
216
+ type,
217
+ line: i + 1,
218
+ exported
219
+ });
220
+ break;
221
+ }
222
+ }
223
+ }
224
+ return symbols;
225
+ }
226
+ /**
227
+ * Extract symbols from Python
228
+ */
229
+ extractPythonSymbols(content) {
230
+ const symbols = [];
231
+ const lines = content.split('\n');
232
+ const patterns = [
233
+ { regex: /^def\s+(\w+)\s*\(/m, type: 'function' },
234
+ { regex: /^async\s+def\s+(\w+)\s*\(/m, type: 'function' },
235
+ { regex: /^class\s+(\w+)/m, type: 'class' },
236
+ ];
237
+ for (let i = 0; i < lines.length; i++) {
238
+ const line = lines[i];
239
+ // Skip indented definitions (methods)
240
+ if (line.startsWith(' ') || line.startsWith('\t'))
241
+ continue;
242
+ for (const { regex, type } of patterns) {
243
+ const match = line.match(regex);
244
+ if (match) {
245
+ symbols.push({
246
+ name: match[1],
247
+ type,
248
+ line: i + 1
249
+ });
250
+ break;
251
+ }
252
+ }
253
+ }
254
+ return symbols;
255
+ }
256
+ /**
257
+ * Count files and directories
258
+ */
259
+ countItems(tree) {
260
+ let files = 0;
261
+ let directories = 0;
262
+ const count = (node) => {
263
+ if (node.isDirectory) {
264
+ directories++;
265
+ for (const child of node.children || []) {
266
+ count(child);
267
+ }
268
+ }
269
+ else {
270
+ files++;
271
+ }
272
+ };
273
+ count(tree);
274
+ return { files, directories };
275
+ }
276
+ /**
277
+ * Collect all symbols from tree
278
+ */
279
+ collectSymbols(tree) {
280
+ const symbols = [];
281
+ const collect = (node) => {
282
+ if (node.symbols) {
283
+ symbols.push(...node.symbols);
284
+ }
285
+ for (const child of node.children || []) {
286
+ collect(child);
287
+ }
288
+ };
289
+ collect(tree);
290
+ return symbols;
291
+ }
292
+ /**
293
+ * Generate text summary
294
+ */
295
+ generateSummary(tree, files, directories, symbolCount) {
296
+ const lines = [];
297
+ lines.push(`Repository: ${this.config.rootPath}`);
298
+ lines.push(`Files: ${files}, Directories: ${directories}, Symbols: ${symbolCount}`);
299
+ lines.push('');
300
+ lines.push(this.renderTree(tree, ''));
301
+ return lines.join('\n');
302
+ }
303
+ /**
304
+ * Render tree as text
305
+ */
306
+ renderTree(node, prefix) {
307
+ const lines = [];
308
+ const name = this.path.basename(node.path);
309
+ if (node.isDirectory) {
310
+ lines.push(`${prefix}${name}/`);
311
+ const children = node.children || [];
312
+ for (let i = 0; i < children.length; i++) {
313
+ const isLast = i === children.length - 1;
314
+ const childPrefix = prefix + (isLast ? '└── ' : '├── ');
315
+ const nextPrefix = prefix + (isLast ? ' ' : '│ ');
316
+ lines.push(this.renderTree(children[i], childPrefix).replace(childPrefix, ''));
317
+ // Add children lines with proper prefix
318
+ const childLines = this.renderTree(children[i], nextPrefix).split('\n').slice(1);
319
+ lines.push(...childLines);
320
+ }
321
+ }
322
+ else {
323
+ const symbolCount = node.symbols?.length || 0;
324
+ const symbolSuffix = symbolCount > 0 ? ` (${symbolCount} symbols)` : '';
325
+ lines.push(`${prefix}${name}${symbolSuffix}`);
326
+ }
327
+ return lines.join('\n');
328
+ }
329
+ /**
330
+ * Get tree as simple text format
331
+ */
332
+ async getTreeText() {
333
+ const result = await this.generate();
334
+ return result.summary;
335
+ }
336
+ }
337
+ exports.RepoMap = RepoMap;
338
+ /**
339
+ * Create a repo map instance
340
+ */
341
+ function createRepoMap(config) {
342
+ return new RepoMap(config);
343
+ }
344
+ /**
345
+ * Quick function to get repo tree
346
+ */
347
+ async function getRepoTree(rootPath, maxDepth) {
348
+ const map = createRepoMap({ rootPath, maxDepth, includeSymbols: false });
349
+ return map.getTreeText();
350
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Sandbox Executor - Safe command execution with restrictions
3
+ */
4
+ export type SandboxMode = 'disabled' | 'basic' | 'strict' | 'network-isolated';
5
+ export interface SandboxConfig {
6
+ mode: SandboxMode;
7
+ allowedCommands?: string[];
8
+ blockedCommands?: string[];
9
+ blockedPaths?: string[];
10
+ timeout?: number;
11
+ maxOutputSize?: number;
12
+ cwd?: string;
13
+ env?: Record<string, string>;
14
+ }
15
+ export interface ExecutionResult {
16
+ success: boolean;
17
+ stdout: string;
18
+ stderr: string;
19
+ exitCode: number;
20
+ duration: number;
21
+ truncated?: boolean;
22
+ }
23
+ /**
24
+ * Default blocked commands (dangerous operations)
25
+ */
26
+ export declare const DEFAULT_BLOCKED_COMMANDS: string[];
27
+ /**
28
+ * Default blocked paths
29
+ */
30
+ export declare const DEFAULT_BLOCKED_PATHS: string[];
31
+ /**
32
+ * Command validator
33
+ */
34
+ export declare class CommandValidator {
35
+ private blockedCommands;
36
+ private blockedPaths;
37
+ private allowedCommands?;
38
+ constructor(config?: Partial<SandboxConfig>);
39
+ /**
40
+ * Validate a command
41
+ */
42
+ validate(command: string): {
43
+ valid: boolean;
44
+ reason?: string;
45
+ };
46
+ }
47
+ /**
48
+ * Sandbox Executor class
49
+ */
50
+ export declare class SandboxExecutor {
51
+ private config;
52
+ private validator;
53
+ constructor(config?: Partial<SandboxConfig>);
54
+ /**
55
+ * Execute a command in the sandbox
56
+ */
57
+ execute(command: string): Promise<ExecutionResult>;
58
+ /**
59
+ * Spawn the command
60
+ */
61
+ private spawn;
62
+ /**
63
+ * Build environment variables based on sandbox mode
64
+ */
65
+ private buildEnv;
66
+ /**
67
+ * Check if a command would be allowed
68
+ */
69
+ wouldAllow(command: string): {
70
+ allowed: boolean;
71
+ reason?: string;
72
+ };
73
+ /**
74
+ * Get current sandbox mode
75
+ */
76
+ getMode(): SandboxMode;
77
+ /**
78
+ * Update sandbox mode
79
+ */
80
+ setMode(mode: SandboxMode): void;
81
+ }
82
+ /**
83
+ * Create a sandbox executor
84
+ */
85
+ export declare function createSandboxExecutor(config?: Partial<SandboxConfig>): SandboxExecutor;
86
+ /**
87
+ * Quick execute with default sandbox
88
+ */
89
+ export declare function sandboxExec(command: string, config?: Partial<SandboxConfig>): Promise<ExecutionResult>;