erosolar-cli 1.6.2 → 1.6.4

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.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Result Verification Framework
3
+ *
4
+ * Prevents erosolar-cli from hallucinating success by requiring explicit
5
+ * verification of tool operation outcomes. All critical operations must
6
+ * return structured results with verification status.
7
+ *
8
+ * CRITICAL: LLMs can misinterpret ambiguous output as success.
9
+ * This module ensures clear, unambiguous success/failure signals.
10
+ *
11
+ * @license MIT
12
+ * @author Bo Shang
13
+ */
14
+ export type VerificationStatus = 'VERIFIED_SUCCESS' | 'VERIFIED_FAILURE' | 'UNVERIFIED' | 'PARTIAL_SUCCESS' | 'REQUIRES_USER_ACTION';
15
+ export interface VerifiedResult {
16
+ /** Clear status for LLM to interpret */
17
+ status: VerificationStatus;
18
+ /** Human-readable summary (first line must state success/failure clearly) */
19
+ summary: string;
20
+ /** Detailed output from the operation */
21
+ details: string;
22
+ /** Specific verification checks that were performed */
23
+ verificationChecks?: VerificationCheck[];
24
+ /** Suggested next steps if operation failed or requires action */
25
+ suggestedActions?: string[];
26
+ /** Timestamp of verification */
27
+ verifiedAt: string;
28
+ /** Time elapsed for operation in ms */
29
+ durationMs?: number;
30
+ }
31
+ export interface VerificationCheck {
32
+ /** What was checked */
33
+ check: string;
34
+ /** Did it pass */
35
+ passed: boolean;
36
+ /** Details about the check result */
37
+ details?: string;
38
+ }
39
+ /**
40
+ * Format a verified result into a clear, unambiguous string for LLM consumption.
41
+ * The format is designed to prevent misinterpretation.
42
+ */
43
+ export declare function formatVerifiedResult(result: VerifiedResult): string;
44
+ /**
45
+ * Create a verified success result
46
+ */
47
+ export declare function verifiedSuccess(summary: string, details: string, checks?: VerificationCheck[], durationMs?: number): string;
48
+ /**
49
+ * Create a verified failure result
50
+ */
51
+ export declare function verifiedFailure(summary: string, details: string, suggestedActions?: string[], checks?: VerificationCheck[], durationMs?: number): string;
52
+ /**
53
+ * Create an unverified result (when we can't confirm success)
54
+ */
55
+ export declare function unverifiedResult(summary: string, details: string, suggestedActions?: string[], durationMs?: number): string;
56
+ /**
57
+ * Create a partial success result
58
+ */
59
+ export declare function partialSuccess(summary: string, details: string, checks: VerificationCheck[], suggestedActions?: string[], durationMs?: number): string;
60
+ /**
61
+ * Create a result requiring user action
62
+ */
63
+ export declare function requiresUserAction(summary: string, details: string, requiredActions: string[], durationMs?: number): string;
64
+ /**
65
+ * Verification patterns for common outputs
66
+ */
67
+ export declare const OutputPatterns: {
68
+ firebase: {
69
+ success: RegExp[];
70
+ failure: RegExp[];
71
+ authRequired: RegExp[];
72
+ };
73
+ command: {
74
+ success: RegExp[];
75
+ failure: RegExp[];
76
+ };
77
+ npm: {
78
+ success: RegExp[];
79
+ failure: RegExp[];
80
+ };
81
+ git: {
82
+ success: RegExp[];
83
+ failure: RegExp[];
84
+ };
85
+ };
86
+ /**
87
+ * Analyze output against patterns to determine success/failure
88
+ */
89
+ export declare function analyzeOutput(output: string, patterns: {
90
+ success: RegExp[];
91
+ failure: RegExp[];
92
+ }, exitCode?: number): {
93
+ isSuccess: boolean;
94
+ isFailure: boolean;
95
+ matchedPattern?: string;
96
+ };
97
+ /**
98
+ * Create a verification check from a command result
99
+ */
100
+ export declare function createCommandCheck(checkName: string, exitCode: number, output: string, expectedPatterns?: RegExp[]): VerificationCheck;
101
+ /**
102
+ * Verify that a file exists and optionally contains expected content
103
+ */
104
+ export declare function verifyFileExists(filePath: string, expectedContent?: string | RegExp): Promise<VerificationCheck>;
105
+ /**
106
+ * Verify URL is accessible (for deployment verification)
107
+ */
108
+ export declare function verifyUrlAccessible(url: string, expectedStatus?: number, timeoutMs?: number): Promise<VerificationCheck>;
109
+ /**
110
+ * Verify a JSON response matches expected structure
111
+ */
112
+ export declare function verifyJsonEndpoint(url: string, expectedFields: string[], timeoutMs?: number): Promise<VerificationCheck>;
113
+ //# sourceMappingURL=resultVerification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultVerification.d.ts","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ /**
2
+ * Result Verification Framework
3
+ *
4
+ * Prevents erosolar-cli from hallucinating success by requiring explicit
5
+ * verification of tool operation outcomes. All critical operations must
6
+ * return structured results with verification status.
7
+ *
8
+ * CRITICAL: LLMs can misinterpret ambiguous output as success.
9
+ * This module ensures clear, unambiguous success/failure signals.
10
+ *
11
+ * @license MIT
12
+ * @author Bo Shang
13
+ */
14
+ /**
15
+ * Format a verified result into a clear, unambiguous string for LLM consumption.
16
+ * The format is designed to prevent misinterpretation.
17
+ */
18
+ export function formatVerifiedResult(result) {
19
+ const lines = [];
20
+ // CRITICAL: First line must be unambiguous status
21
+ switch (result.status) {
22
+ case 'VERIFIED_SUCCESS':
23
+ lines.push('═══ VERIFIED SUCCESS ═══');
24
+ break;
25
+ case 'VERIFIED_FAILURE':
26
+ lines.push('═══ VERIFIED FAILURE ═══');
27
+ break;
28
+ case 'UNVERIFIED':
29
+ lines.push('═══ UNVERIFIED (CANNOT CONFIRM SUCCESS) ═══');
30
+ break;
31
+ case 'PARTIAL_SUCCESS':
32
+ lines.push('═══ PARTIAL SUCCESS (SOME OPERATIONS FAILED) ═══');
33
+ break;
34
+ case 'REQUIRES_USER_ACTION':
35
+ lines.push('═══ BLOCKED: USER ACTION REQUIRED ═══');
36
+ break;
37
+ }
38
+ lines.push('');
39
+ lines.push(`Summary: ${result.summary}`);
40
+ lines.push('');
41
+ // Show verification checks if any
42
+ if (result.verificationChecks && result.verificationChecks.length > 0) {
43
+ lines.push('Verification Checks:');
44
+ for (const check of result.verificationChecks) {
45
+ const icon = check.passed ? '✓' : '✗';
46
+ lines.push(` ${icon} ${check.check}${check.details ? `: ${check.details}` : ''}`);
47
+ }
48
+ lines.push('');
49
+ }
50
+ // Show details
51
+ if (result.details) {
52
+ lines.push('Details:');
53
+ lines.push(result.details);
54
+ lines.push('');
55
+ }
56
+ // Show suggested actions for non-success states
57
+ if (result.status !== 'VERIFIED_SUCCESS' && result.suggestedActions && result.suggestedActions.length > 0) {
58
+ lines.push('Required Actions:');
59
+ for (const action of result.suggestedActions) {
60
+ lines.push(` → ${action}`);
61
+ }
62
+ lines.push('');
63
+ }
64
+ // Footer with timestamp
65
+ if (result.durationMs !== undefined) {
66
+ lines.push(`[Verified at ${result.verifiedAt} | Duration: ${result.durationMs}ms]`);
67
+ }
68
+ else {
69
+ lines.push(`[Verified at ${result.verifiedAt}]`);
70
+ }
71
+ return lines.join('\n');
72
+ }
73
+ /**
74
+ * Create a verified success result
75
+ */
76
+ export function verifiedSuccess(summary, details, checks, durationMs) {
77
+ return formatVerifiedResult({
78
+ status: 'VERIFIED_SUCCESS',
79
+ summary,
80
+ details,
81
+ verificationChecks: checks,
82
+ verifiedAt: new Date().toISOString(),
83
+ durationMs,
84
+ });
85
+ }
86
+ /**
87
+ * Create a verified failure result
88
+ */
89
+ export function verifiedFailure(summary, details, suggestedActions, checks, durationMs) {
90
+ return formatVerifiedResult({
91
+ status: 'VERIFIED_FAILURE',
92
+ summary,
93
+ details,
94
+ verificationChecks: checks,
95
+ suggestedActions,
96
+ verifiedAt: new Date().toISOString(),
97
+ durationMs,
98
+ });
99
+ }
100
+ /**
101
+ * Create an unverified result (when we can't confirm success)
102
+ */
103
+ export function unverifiedResult(summary, details, suggestedActions, durationMs) {
104
+ return formatVerifiedResult({
105
+ status: 'UNVERIFIED',
106
+ summary: `${summary} (VERIFICATION NOT POSSIBLE - DO NOT ASSUME SUCCESS)`,
107
+ details,
108
+ suggestedActions: suggestedActions || [
109
+ 'Manually verify the operation completed as expected',
110
+ 'Run verification commands to confirm state',
111
+ ],
112
+ verifiedAt: new Date().toISOString(),
113
+ durationMs,
114
+ });
115
+ }
116
+ /**
117
+ * Create a partial success result
118
+ */
119
+ export function partialSuccess(summary, details, checks, suggestedActions, durationMs) {
120
+ return formatVerifiedResult({
121
+ status: 'PARTIAL_SUCCESS',
122
+ summary,
123
+ details,
124
+ verificationChecks: checks,
125
+ suggestedActions,
126
+ verifiedAt: new Date().toISOString(),
127
+ durationMs,
128
+ });
129
+ }
130
+ /**
131
+ * Create a result requiring user action
132
+ */
133
+ export function requiresUserAction(summary, details, requiredActions, durationMs) {
134
+ return formatVerifiedResult({
135
+ status: 'REQUIRES_USER_ACTION',
136
+ summary,
137
+ details,
138
+ suggestedActions: requiredActions,
139
+ verifiedAt: new Date().toISOString(),
140
+ durationMs,
141
+ });
142
+ }
143
+ /**
144
+ * Verification patterns for common outputs
145
+ */
146
+ export const OutputPatterns = {
147
+ // Firebase deployment patterns
148
+ firebase: {
149
+ success: [
150
+ /Deploy complete!/i,
151
+ /✔\s+Deploy complete/i,
152
+ /Hosting URL:/i,
153
+ /Function URL/i,
154
+ ],
155
+ failure: [
156
+ /Error:/i,
157
+ /deploy failed/i,
158
+ /Authentication Error/i,
159
+ /not logged in/i,
160
+ /permission denied/i,
161
+ /PERMISSION_DENIED/i,
162
+ /quota exceeded/i,
163
+ /build error/i,
164
+ ],
165
+ authRequired: [
166
+ /firebase login/i,
167
+ /not logged in/i,
168
+ /authenticate/i,
169
+ /FIREBASE_TOKEN/i,
170
+ ],
171
+ },
172
+ // Generic command patterns
173
+ command: {
174
+ success: [
175
+ /^(success|completed|done|finished)/im,
176
+ /successfully/i,
177
+ ],
178
+ failure: [
179
+ /^error/im,
180
+ /^fatal/im,
181
+ /failed/i,
182
+ /command not found/i,
183
+ /permission denied/i,
184
+ /access denied/i,
185
+ /ENOENT/i,
186
+ /EACCES/i,
187
+ /EPERM/i,
188
+ ],
189
+ },
190
+ // NPM patterns
191
+ npm: {
192
+ success: [
193
+ /npm notice/i,
194
+ /\+ .+@\d+\.\d+\.\d+/, // Package published pattern
195
+ /published/i,
196
+ ],
197
+ failure: [
198
+ /npm ERR!/i,
199
+ /ERESOLVE/i,
200
+ /E404/i,
201
+ /EINTEGRITY/i,
202
+ ],
203
+ },
204
+ // Git patterns
205
+ git: {
206
+ success: [
207
+ /\[.+\s+\w+\]/, // Commit hash pattern
208
+ /pushed/i,
209
+ /merged/i,
210
+ ],
211
+ failure: [
212
+ /fatal:/i,
213
+ /error:/i,
214
+ /conflict/i,
215
+ /rejected/i,
216
+ ],
217
+ },
218
+ };
219
+ /**
220
+ * Analyze output against patterns to determine success/failure
221
+ */
222
+ export function analyzeOutput(output, patterns, exitCode) {
223
+ // Check explicit failure patterns first
224
+ for (const pattern of patterns.failure) {
225
+ if (pattern.test(output)) {
226
+ return { isSuccess: false, isFailure: true, matchedPattern: pattern.source };
227
+ }
228
+ }
229
+ // Check success patterns
230
+ for (const pattern of patterns.success) {
231
+ if (pattern.test(output)) {
232
+ return { isSuccess: true, isFailure: false, matchedPattern: pattern.source };
233
+ }
234
+ }
235
+ // If we have an exit code, use it as fallback
236
+ if (exitCode !== undefined) {
237
+ return {
238
+ isSuccess: exitCode === 0,
239
+ isFailure: exitCode !== 0,
240
+ };
241
+ }
242
+ // Cannot determine
243
+ return { isSuccess: false, isFailure: false };
244
+ }
245
+ /**
246
+ * Create a verification check from a command result
247
+ */
248
+ export function createCommandCheck(checkName, exitCode, output, expectedPatterns) {
249
+ let passed = exitCode === 0;
250
+ let details = exitCode === 0 ? 'Exit code 0' : `Exit code ${exitCode}`;
251
+ // If we have expected patterns, check for them
252
+ if (expectedPatterns && passed) {
253
+ const foundPattern = expectedPatterns.some((p) => p.test(output));
254
+ if (!foundPattern) {
255
+ passed = false;
256
+ details = 'Exit code 0 but expected output pattern not found';
257
+ }
258
+ }
259
+ return {
260
+ check: checkName,
261
+ passed,
262
+ details,
263
+ };
264
+ }
265
+ /**
266
+ * Verify that a file exists and optionally contains expected content
267
+ */
268
+ export async function verifyFileExists(filePath, expectedContent) {
269
+ const fs = await import('fs/promises');
270
+ try {
271
+ const content = await fs.readFile(filePath, 'utf-8');
272
+ if (expectedContent) {
273
+ const matches = typeof expectedContent === 'string'
274
+ ? content.includes(expectedContent)
275
+ : expectedContent.test(content);
276
+ return {
277
+ check: `File ${filePath} exists with expected content`,
278
+ passed: matches,
279
+ details: matches ? 'Content verified' : 'Content does not match expected',
280
+ };
281
+ }
282
+ return {
283
+ check: `File ${filePath} exists`,
284
+ passed: true,
285
+ details: `File size: ${content.length} bytes`,
286
+ };
287
+ }
288
+ catch (error) {
289
+ return {
290
+ check: `File ${filePath} exists`,
291
+ passed: false,
292
+ details: error instanceof Error ? error.message : 'File not found',
293
+ };
294
+ }
295
+ }
296
+ /**
297
+ * Verify URL is accessible (for deployment verification)
298
+ */
299
+ export async function verifyUrlAccessible(url, expectedStatus = 200, timeoutMs = 10000) {
300
+ try {
301
+ const controller = new AbortController();
302
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
303
+ const response = await fetch(url, {
304
+ method: 'HEAD',
305
+ signal: controller.signal,
306
+ });
307
+ clearTimeout(timeout);
308
+ const passed = response.status === expectedStatus;
309
+ return {
310
+ check: `URL ${url} accessible`,
311
+ passed,
312
+ details: passed
313
+ ? `Status ${response.status} (expected ${expectedStatus})`
314
+ : `Status ${response.status} (expected ${expectedStatus})`,
315
+ };
316
+ }
317
+ catch (error) {
318
+ return {
319
+ check: `URL ${url} accessible`,
320
+ passed: false,
321
+ details: error instanceof Error ? error.message : 'Request failed',
322
+ };
323
+ }
324
+ }
325
+ /**
326
+ * Verify a JSON response matches expected structure
327
+ */
328
+ export async function verifyJsonEndpoint(url, expectedFields, timeoutMs = 10000) {
329
+ try {
330
+ const controller = new AbortController();
331
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
332
+ const response = await fetch(url, { signal: controller.signal });
333
+ clearTimeout(timeout);
334
+ if (!response.ok) {
335
+ return {
336
+ check: `JSON endpoint ${url}`,
337
+ passed: false,
338
+ details: `HTTP ${response.status}`,
339
+ };
340
+ }
341
+ const json = await response.json();
342
+ const missingFields = expectedFields.filter((field) => !(field in json));
343
+ return {
344
+ check: `JSON endpoint ${url}`,
345
+ passed: missingFields.length === 0,
346
+ details: missingFields.length === 0
347
+ ? `All expected fields present: ${expectedFields.join(', ')}`
348
+ : `Missing fields: ${missingFields.join(', ')}`,
349
+ };
350
+ }
351
+ catch (error) {
352
+ return {
353
+ check: `JSON endpoint ${url}`,
354
+ passed: false,
355
+ details: error instanceof Error ? error.message : 'Request failed',
356
+ };
357
+ }
358
+ }
359
+ //# sourceMappingURL=resultVerification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bashTools.d.ts","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiB7D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAkHpE;AAED,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CA6B5B"}
1
+ {"version":3,"file":"bashTools.d.ts","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAyB7D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAkKpE;AAED,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CA6B5B"}
@@ -5,6 +5,7 @@ import { promisify } from 'node:util';
5
5
  import { createBackgroundBashTools, startBackgroundShell } from './backgroundBashTools.js';
6
6
  import { validateBashCommand, SmartFixer } from '../core/errors/safetyValidator.js';
7
7
  import { toStructuredError } from '../core/errors/errorTypes.js';
8
+ import { verifiedSuccess, verifiedFailure, unverifiedResult, analyzeOutput, OutputPatterns, createCommandCheck, } from '../core/resultVerification.js';
8
9
  const execAsync = promisify(exec);
9
10
  const sandboxCache = new Map();
10
11
  export function createBashTools(workingDir) {
@@ -69,6 +70,7 @@ export function createBashTools(workingDir) {
69
70
  return `Background shell started: ${shellId}\n\nUse BashOutput with bash_id="${shellId}" to monitor output.\nUse KillShell with shell_id="${shellId}" to terminate.`;
70
71
  }
71
72
  // Handle foreground execution
73
+ const startTime = Date.now();
72
74
  try {
73
75
  const env = await buildSandboxEnv(workingDir);
74
76
  const { stdout, stderr } = await execAsync(command, {
@@ -77,18 +79,30 @@ export function createBashTools(workingDir) {
77
79
  maxBuffer: 1024 * 1024 * 10, // 10MB
78
80
  env,
79
81
  });
80
- let result = '';
81
- if (stdout)
82
- result += `stdout:\n${stdout}\n`;
83
- if (stderr)
84
- result += `stderr:\n${stderr}\n`;
85
- return result || 'Command executed successfully (no output)';
82
+ const durationMs = Date.now() - startTime;
83
+ const combinedOutput = [stdout, stderr].filter(Boolean).join('\n');
84
+ // Analyze the output to determine actual success
85
+ const analysis = analyzeOutput(combinedOutput, OutputPatterns.command, 0);
86
+ const commandCheck = createCommandCheck('Command execution', 0, combinedOutput);
87
+ // Check for hidden failures in output despite exit code 0
88
+ if (analysis.isFailure) {
89
+ return verifiedFailure(`Command completed with exit code 0 but output indicates failure`, `Command: ${command}\n\nOutput:\n${combinedOutput || '(no output)'}`, ['Review the error message in the output', 'Fix the underlying issue and retry'], [commandCheck, { check: 'Output analysis', passed: false, details: `Failure pattern matched: ${analysis.matchedPattern}` }], durationMs);
90
+ }
91
+ // No output case - mark as unverified (we can't confirm what happened)
92
+ if (!combinedOutput.trim()) {
93
+ return unverifiedResult(`Command executed with no output`, `Command: ${command}\n\nThe command completed with exit code 0 but produced no output.\nCannot verify the operation achieved its intended result.`, ['Manually verify the expected changes occurred', 'Run a verification command to confirm state'], durationMs);
94
+ }
95
+ // Success case with output
96
+ return verifiedSuccess(`Command executed successfully`, `Command: ${command}\n\nOutput:\n${combinedOutput}`, [commandCheck, ...(analysis.isSuccess ? [{ check: 'Output analysis', passed: true, details: 'Success pattern matched' }] : [])], durationMs);
86
97
  }
87
98
  catch (error) {
99
+ const durationMs = Date.now() - startTime;
100
+ const exitCode = error.code ?? 1;
101
+ const combinedError = [error.stdout, error.stderr, error.message].filter(Boolean).join('\n');
88
102
  if (error.killed) {
89
- return `Error: Command timed out after ${timeout}ms`;
103
+ return verifiedFailure(`Command timed out after ${timeout}ms`, `Command: ${command}\n\nThe command was killed after exceeding the timeout.\nPartial output:\n${combinedError || '(none)'}`, ['Increase timeout if command legitimately needs more time', 'Check if command is hanging on input'], [{ check: 'Timeout', passed: false, details: `Exceeded ${timeout}ms` }], durationMs);
90
104
  }
91
- return `Error executing command: ${error.message}\nstderr: ${error.stderr || 'none'}`;
105
+ return verifiedFailure(`Command failed with exit code ${exitCode}`, `Command: ${command}\n\nError output:\n${combinedError || '(none)'}`, ['Review the error message', 'Fix the issue and retry the command'], [createCommandCheck('Command execution', exitCode, combinedError)], durationMs);
92
106
  }
93
107
  },
94
108
  },
@@ -1 +1 @@
1
- {"version":3,"file":"bashTools.js","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bashTools.js","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudTools.d.ts","sourceRoot":"","sources":["../../src/tools/cloudTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,QAAA,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA+HlD,CAAC;AAEF,UAAU,SAAS;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAwGD,iBAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA2D1F;AAED,iBAAe,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6CtF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,MAAsB,GAAG,cAAc,EAAE,CA+ZrF;AA8KD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"cloudTools.d.ts","sourceRoot":"","sources":["../../src/tools/cloudTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAc7D,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,QAAA,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA+HlD,CAAC;AAEF,UAAU,SAAS;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAwGD,iBAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA2D1F;AAED,iBAAe,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6CtF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,MAAsB,GAAG,cAAc,EAAE,CAy3BrF;AA8KD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}