@paths.design/caws-cli 4.1.0 → 5.0.1
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/commands/waivers.js +101 -26
- package/dist/waivers-manager.js +49 -4
- package/package.json +1 -1
- package/dist/budget-derivation.d.ts +0 -74
- package/dist/budget-derivation.d.ts.map +0 -1
- package/dist/cicd-optimizer.d.ts +0 -142
- package/dist/cicd-optimizer.d.ts.map +0 -1
- package/dist/commands/archive.d.ts +0 -50
- package/dist/commands/archive.d.ts.map +0 -1
- package/dist/commands/burnup.d.ts +0 -6
- package/dist/commands/burnup.d.ts.map +0 -1
- package/dist/commands/diagnose.d.ts +0 -52
- package/dist/commands/diagnose.d.ts.map +0 -1
- package/dist/commands/evaluate.d.ts +0 -8
- package/dist/commands/evaluate.d.ts.map +0 -1
- package/dist/commands/init.d.ts +0 -5
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/iterate.d.ts +0 -8
- package/dist/commands/iterate.d.ts.map +0 -1
- package/dist/commands/mode.d.ts +0 -24
- package/dist/commands/mode.d.ts.map +0 -1
- package/dist/commands/plan.d.ts +0 -49
- package/dist/commands/plan.d.ts.map +0 -1
- package/dist/commands/provenance.d.ts +0 -32
- package/dist/commands/provenance.d.ts.map +0 -1
- package/dist/commands/quality-gates.d.ts +0 -52
- package/dist/commands/quality-gates.d.ts.map +0 -1
- package/dist/commands/quality-monitor.d.ts +0 -17
- package/dist/commands/quality-monitor.d.ts.map +0 -1
- package/dist/commands/specs.d.ts +0 -71
- package/dist/commands/specs.d.ts.map +0 -1
- package/dist/commands/status.d.ts +0 -44
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/templates.d.ts +0 -74
- package/dist/commands/templates.d.ts.map +0 -1
- package/dist/commands/tool.d.ts +0 -13
- package/dist/commands/tool.d.ts.map +0 -1
- package/dist/commands/troubleshoot.d.ts +0 -8
- package/dist/commands/troubleshoot.d.ts.map +0 -1
- package/dist/commands/tutorial.d.ts +0 -55
- package/dist/commands/tutorial.d.ts.map +0 -1
- package/dist/commands/validate.d.ts +0 -15
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/waivers.d.ts +0 -8
- package/dist/commands/waivers.d.ts.map +0 -1
- package/dist/commands/workflow.d.ts +0 -85
- package/dist/commands/workflow.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -29
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/modes.d.ts +0 -225
- package/dist/config/modes.d.ts.map +0 -1
- package/dist/constants/spec-types.d.ts +0 -41
- package/dist/constants/spec-types.d.ts.map +0 -1
- package/dist/error-handler.d.ts +0 -164
- package/dist/error-handler.d.ts.map +0 -1
- package/dist/generators/jest-config.d.ts +0 -32
- package/dist/generators/jest-config.d.ts.map +0 -1
- package/dist/generators/working-spec.d.ts +0 -13
- package/dist/generators/working-spec.d.ts.map +0 -1
- package/dist/index-new.d.ts +0 -5
- package/dist/index-new.d.ts.map +0 -1
- package/dist/index-new.js +0 -317
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.backup +0 -4711
- package/dist/minimal-cli.d.ts +0 -3
- package/dist/minimal-cli.d.ts.map +0 -1
- package/dist/policy/PolicyManager.d.ts +0 -104
- package/dist/policy/PolicyManager.d.ts.map +0 -1
- package/dist/scaffold/cursor-hooks.d.ts +0 -7
- package/dist/scaffold/cursor-hooks.d.ts.map +0 -1
- package/dist/scaffold/git-hooks.d.ts +0 -20
- package/dist/scaffold/git-hooks.d.ts.map +0 -1
- package/dist/scaffold/index.d.ts +0 -20
- package/dist/scaffold/index.d.ts.map +0 -1
- package/dist/spec/SpecFileManager.d.ts +0 -146
- package/dist/spec/SpecFileManager.d.ts.map +0 -1
- package/dist/test-analysis.d.ts +0 -182
- package/dist/test-analysis.d.ts.map +0 -1
- package/dist/tool-interface.d.ts +0 -236
- package/dist/tool-interface.d.ts.map +0 -1
- package/dist/tool-loader.d.ts +0 -77
- package/dist/tool-loader.d.ts.map +0 -1
- package/dist/tool-validator.d.ts +0 -72
- package/dist/tool-validator.d.ts.map +0 -1
- package/dist/utils/detection.d.ts +0 -7
- package/dist/utils/detection.d.ts.map +0 -1
- package/dist/utils/finalization.d.ts +0 -17
- package/dist/utils/finalization.d.ts.map +0 -1
- package/dist/utils/project-analysis.d.ts +0 -14
- package/dist/utils/project-analysis.d.ts.map +0 -1
- package/dist/utils/quality-gates.d.ts +0 -49
- package/dist/utils/quality-gates.d.ts.map +0 -1
- package/dist/utils/spec-resolver.d.ts +0 -88
- package/dist/utils/spec-resolver.d.ts.map +0 -1
- package/dist/utils/typescript-detector.d.ts +0 -63
- package/dist/utils/typescript-detector.d.ts.map +0 -1
- package/dist/validation/spec-validation.d.ts +0 -43
- package/dist/validation/spec-validation.d.ts.map +0 -1
- package/dist/waivers-manager.d.ts +0 -167
- package/dist/waivers-manager.d.ts.map +0 -1
- package/templates/apps/tools/caws/prompt-lint.js.backup +0 -274
- package/templates/apps/tools/caws/provenance.js.backup +0 -73
package/dist/tool-interface.d.ts
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Standard tool execution result
|
|
4
|
-
*/
|
|
5
|
-
export type ToolExecutionResult = {
|
|
6
|
-
/**
|
|
7
|
-
* - Whether execution succeeded
|
|
8
|
-
*/
|
|
9
|
-
success: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* - Execution duration in milliseconds
|
|
12
|
-
*/
|
|
13
|
-
duration: number;
|
|
14
|
-
/**
|
|
15
|
-
* - Tool-specific output data
|
|
16
|
-
*/
|
|
17
|
-
output: any;
|
|
18
|
-
/**
|
|
19
|
-
* - Error messages if execution failed
|
|
20
|
-
*/
|
|
21
|
-
errors: Array<string>;
|
|
22
|
-
/**
|
|
23
|
-
* - Additional execution metadata
|
|
24
|
-
*/
|
|
25
|
-
metadata: any;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Tool metadata structure
|
|
29
|
-
*/
|
|
30
|
-
export type ToolMetadata = {
|
|
31
|
-
/**
|
|
32
|
-
* - Unique tool identifier
|
|
33
|
-
*/
|
|
34
|
-
id: string;
|
|
35
|
-
/**
|
|
36
|
-
* - Human-readable tool name
|
|
37
|
-
*/
|
|
38
|
-
name: string;
|
|
39
|
-
/**
|
|
40
|
-
* - Tool version (semver)
|
|
41
|
-
*/
|
|
42
|
-
version: string;
|
|
43
|
-
/**
|
|
44
|
-
* - Tool description
|
|
45
|
-
*/
|
|
46
|
-
description: string;
|
|
47
|
-
/**
|
|
48
|
-
* - Tool capabilities (e.g., ['validation', 'security'])
|
|
49
|
-
*/
|
|
50
|
-
capabilities: Array<string>;
|
|
51
|
-
/**
|
|
52
|
-
* - Tool author
|
|
53
|
-
*/
|
|
54
|
-
author: string;
|
|
55
|
-
/**
|
|
56
|
-
* - Tool license
|
|
57
|
-
*/
|
|
58
|
-
license: string;
|
|
59
|
-
/**
|
|
60
|
-
* - Required Node.js dependencies
|
|
61
|
-
*/
|
|
62
|
-
dependencies: Array<string>;
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Tool execution context
|
|
66
|
-
*/
|
|
67
|
-
export type ToolExecutionContext = {
|
|
68
|
-
/**
|
|
69
|
-
* - Current working directory
|
|
70
|
-
*/
|
|
71
|
-
workingDirectory: string;
|
|
72
|
-
/**
|
|
73
|
-
* - Environment variables
|
|
74
|
-
*/
|
|
75
|
-
environment: any;
|
|
76
|
-
/**
|
|
77
|
-
* - CAWS configuration
|
|
78
|
-
*/
|
|
79
|
-
config: any;
|
|
80
|
-
/**
|
|
81
|
-
* - Current working specification
|
|
82
|
-
*/
|
|
83
|
-
workingSpec: any;
|
|
84
|
-
/**
|
|
85
|
-
* - Execution timeout in milliseconds
|
|
86
|
-
*/
|
|
87
|
-
timeout: number;
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* @fileoverview CAWS Tool Interface - Base classes and contracts for tool implementation
|
|
91
|
-
* Defines the standard interface that all CAWS tools must implement
|
|
92
|
-
* @author @darianrosebrook
|
|
93
|
-
*/
|
|
94
|
-
/**
|
|
95
|
-
* Standard tool execution result
|
|
96
|
-
* @typedef {Object} ToolExecutionResult
|
|
97
|
-
* @property {boolean} success - Whether execution succeeded
|
|
98
|
-
* @property {number} duration - Execution duration in milliseconds
|
|
99
|
-
* @property {Object} output - Tool-specific output data
|
|
100
|
-
* @property {Array<string>} errors - Error messages if execution failed
|
|
101
|
-
* @property {Object} metadata - Additional execution metadata
|
|
102
|
-
*/
|
|
103
|
-
/**
|
|
104
|
-
* Tool metadata structure
|
|
105
|
-
* @typedef {Object} ToolMetadata
|
|
106
|
-
* @property {string} id - Unique tool identifier
|
|
107
|
-
* @property {string} name - Human-readable tool name
|
|
108
|
-
* @property {string} version - Tool version (semver)
|
|
109
|
-
* @property {string} description - Tool description
|
|
110
|
-
* @property {Array<string>} capabilities - Tool capabilities (e.g., ['validation', 'security'])
|
|
111
|
-
* @property {string} author - Tool author
|
|
112
|
-
* @property {string} license - Tool license
|
|
113
|
-
* @property {Array<string>} dependencies - Required Node.js dependencies
|
|
114
|
-
*/
|
|
115
|
-
/**
|
|
116
|
-
* Tool execution context
|
|
117
|
-
* @typedef {Object} ToolExecutionContext
|
|
118
|
-
* @property {string} workingDirectory - Current working directory
|
|
119
|
-
* @property {Object} environment - Environment variables
|
|
120
|
-
* @property {Object} config - CAWS configuration
|
|
121
|
-
* @property {Object} workingSpec - Current working specification
|
|
122
|
-
* @property {number} timeout - Execution timeout in milliseconds
|
|
123
|
-
*/
|
|
124
|
-
/**
|
|
125
|
-
* Base Tool class - All CAWS tools should extend this class
|
|
126
|
-
*/
|
|
127
|
-
export class BaseTool {
|
|
128
|
-
metadata: ToolMetadata;
|
|
129
|
-
/**
|
|
130
|
-
* Execute the tool with given parameters
|
|
131
|
-
* @param {Object} parameters - Tool-specific execution parameters
|
|
132
|
-
* @param {ToolExecutionContext} context - Execution context
|
|
133
|
-
* @returns {Promise<ToolExecutionResult>} Execution result
|
|
134
|
-
*/
|
|
135
|
-
execute(parameters?: any, context?: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
136
|
-
/**
|
|
137
|
-
* Get tool metadata
|
|
138
|
-
* @returns {ToolMetadata} Tool metadata
|
|
139
|
-
*/
|
|
140
|
-
getMetadata(): ToolMetadata;
|
|
141
|
-
/**
|
|
142
|
-
* Validate tool parameters
|
|
143
|
-
* @param {Object} _parameters - Parameters to validate
|
|
144
|
-
* @throws {Error} If parameters are invalid
|
|
145
|
-
*/
|
|
146
|
-
validateParameters(_parameters: any): boolean;
|
|
147
|
-
/**
|
|
148
|
-
* Execute tool implementation (must be overridden by subclasses)
|
|
149
|
-
* @param {Object} _parameters - Tool parameters
|
|
150
|
-
* @param {ToolExecutionContext} _context - Execution context
|
|
151
|
-
* @returns {Promise<Object>} Tool-specific result
|
|
152
|
-
*/
|
|
153
|
-
executeImpl(_parameters: any, _context: ToolExecutionContext): Promise<any>;
|
|
154
|
-
/**
|
|
155
|
-
* Normalize execution result to standard format
|
|
156
|
-
* @private
|
|
157
|
-
* @param {Object} result - Raw tool result
|
|
158
|
-
* @param {number} duration - Execution duration
|
|
159
|
-
* @returns {ToolExecutionResult} Normalized result
|
|
160
|
-
*/
|
|
161
|
-
private normalizeResult;
|
|
162
|
-
/**
|
|
163
|
-
* Create error result
|
|
164
|
-
* @private
|
|
165
|
-
* @param {Error} error - Execution error
|
|
166
|
-
* @param {number} duration - Execution duration
|
|
167
|
-
* @returns {ToolExecutionResult} Error result
|
|
168
|
-
*/
|
|
169
|
-
private createErrorResult;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Validation Tool base class - For tools that perform validation checks
|
|
173
|
-
*/
|
|
174
|
-
export class ValidationTool extends BaseTool {
|
|
175
|
-
capabilities: string[];
|
|
176
|
-
/**
|
|
177
|
-
* Execute validation
|
|
178
|
-
* @param {Object} parameters - Validation parameters
|
|
179
|
-
* @param {ToolExecutionContext} context - Execution context
|
|
180
|
-
* @returns {Promise<ToolExecutionResult>} Validation result
|
|
181
|
-
*/
|
|
182
|
-
executeImpl(parameters: any, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
183
|
-
/**
|
|
184
|
-
* Perform validation (must be implemented by subclasses)
|
|
185
|
-
* @param {Object} parameters - Validation parameters
|
|
186
|
-
* @param {ToolExecutionContext} context - Execution context
|
|
187
|
-
* @returns {Promise<Object>} Validation result
|
|
188
|
-
*/
|
|
189
|
-
validate(_parameters: any, _context: any): Promise<any>;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Quality Gate Tool base class - For tools that enforce quality standards
|
|
193
|
-
*/
|
|
194
|
-
export class QualityGateTool extends ValidationTool {
|
|
195
|
-
/**
|
|
196
|
-
* Get quality gate thresholds for current tier
|
|
197
|
-
* @param {number} tier - Risk tier (1-3)
|
|
198
|
-
* @returns {Object} Threshold configuration
|
|
199
|
-
*/
|
|
200
|
-
getTierThresholds(tier: number): any;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Security Tool base class - For tools that perform security checks
|
|
204
|
-
*/
|
|
205
|
-
export class SecurityTool extends ValidationTool {
|
|
206
|
-
/**
|
|
207
|
-
* Check for security violations
|
|
208
|
-
* @param {Object} target - Target to check (file, code, etc.)
|
|
209
|
-
* @returns {Promise<Array<Object>>} Array of security violations
|
|
210
|
-
*/
|
|
211
|
-
checkSecurityViolations(target: any): Promise<Array<any>>;
|
|
212
|
-
}
|
|
213
|
-
export namespace ToolUtils {
|
|
214
|
-
/**
|
|
215
|
-
* Create standardized success result
|
|
216
|
-
* @param {Object} output - Tool output
|
|
217
|
-
* @param {Object} metadata - Additional metadata
|
|
218
|
-
* @returns {ToolExecutionResult} Success result
|
|
219
|
-
*/
|
|
220
|
-
function createSuccessResult(output?: any, metadata?: any): ToolExecutionResult;
|
|
221
|
-
/**
|
|
222
|
-
* Create standardized error result
|
|
223
|
-
* @param {string} message - Error message
|
|
224
|
-
* @param {string} errorType - Error type
|
|
225
|
-
* @returns {ToolExecutionResult} Error result
|
|
226
|
-
*/
|
|
227
|
-
function createErrorResult(message: string, errorType?: string): ToolExecutionResult;
|
|
228
|
-
/**
|
|
229
|
-
* Validate required parameters
|
|
230
|
-
* @param {Object} _params - Parameters object
|
|
231
|
-
* @param {Array<string>} _required - Required parameter names
|
|
232
|
-
* @throws {Error} If required parameters are missing
|
|
233
|
-
*/
|
|
234
|
-
function validateRequired(_params: any, _required: Array<string>): void;
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=tool-interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-interface.d.ts","sourceRoot":"","sources":["../src/tool-interface.js"],"names":[],"mappings":";;;;;;;;aAWc,OAAO;;;;cACP,MAAM;;;;;;;;YAEN,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;;;QAOb,MAAM;;;;UACN,MAAM;;;;aACN,MAAM;;;;iBACN,MAAM;;;;kBACN,KAAK,CAAC,MAAM,CAAC;;;;YACb,MAAM;;;;aACN,MAAM;;;;kBACN,KAAK,CAAC,MAAM,CAAC;;;;;;;;;sBAMb,MAAM;;;;;;;;;;;;;;;;aAIN,MAAM;;AApCpB;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AACH;IAEI,uBAAkC;IAGpC;;;;;OAKG;IACH,oCAHW,oBAAoB,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAmBxC;IAED;;;OAGG;IACH,eAFa,YAAY,CAIxB;IAED;;;;OAIG;IACH,8CAGC;IAED;;;;;OAKG;IACH,wCAHW,oBAAoB,GAClB,OAAO,KAAQ,CAI3B;IAED;;;;;;OAMG;IACH,wBAQC;IAED;;;;;;OAMG;IACH,0BAWC;CACF;AAED;;GAEG;AACH;IAGI,uBAAkC;IAGpC;;;;;OAKG;IACH,sCAHW,oBAAoB,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAcxC;IAED;;;;;OAKG;IACH,2CAFa,OAAO,KAAQ,CAI3B;CACF;AAED;;GAEG;AACH;IAME;;;;OAIG;IACH,wBAHW,MAAM,OA6BhB;CACF;AAED;;GAEG;AACH;IAME;;;;OAIG;IACH,sCAFa,OAAO,CAAC,KAAK,KAAQ,CAAC,CAmBlC;CACF;;IAMC;;;;;OAKG;IACH,4DAFa,mBAAmB,CAU/B;IAED;;;;;OAKG;IACH,oCAJW,MAAM,cACN,MAAM,GACJ,mBAAmB,CAU/B;IAED;;;;;OAKG;IACH,mDAHW,KAAK,CAAC,MAAM,CAAC,QAQvB"}
|
package/dist/tool-loader.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export = ToolLoader;
|
|
3
|
-
/**
|
|
4
|
-
* Tool Loader - Discovers, validates, and loads CAWS tools dynamically
|
|
5
|
-
* @extends EventEmitter
|
|
6
|
-
*/
|
|
7
|
-
declare class ToolLoader extends EventEmitter<[never]> {
|
|
8
|
-
constructor(options?: {});
|
|
9
|
-
options: {
|
|
10
|
-
toolsDir: any;
|
|
11
|
-
cacheEnabled: boolean;
|
|
12
|
-
timeout: any;
|
|
13
|
-
maxTools: any;
|
|
14
|
-
};
|
|
15
|
-
loadedTools: Map<any, any>;
|
|
16
|
-
discoveredTools: Set<any>;
|
|
17
|
-
loadingState: string;
|
|
18
|
-
/**
|
|
19
|
-
* Discover available tools in the tools directory
|
|
20
|
-
* @returns {Promise<Array<string>>} Array of tool file paths
|
|
21
|
-
*/
|
|
22
|
-
discoverTools(): Promise<Array<string>>;
|
|
23
|
-
/**
|
|
24
|
-
* Load a specific tool module
|
|
25
|
-
* @param {string} toolPath - Path to tool file
|
|
26
|
-
* @returns {Promise<Object>} Loaded tool module
|
|
27
|
-
*/
|
|
28
|
-
loadTool(toolPath: string): Promise<any>;
|
|
29
|
-
/**
|
|
30
|
-
* Load all discovered tools
|
|
31
|
-
* @returns {Promise<Map<string, Object>>} Map of loaded tools
|
|
32
|
-
*/
|
|
33
|
-
loadAllTools(): Promise<Map<string, any>>;
|
|
34
|
-
/**
|
|
35
|
-
* Get a loaded tool by ID
|
|
36
|
-
* @param {string} toolId - Tool identifier
|
|
37
|
-
* @returns {Object|null} Tool object or null if not found
|
|
38
|
-
*/
|
|
39
|
-
getTool(toolId: string): any | null;
|
|
40
|
-
/**
|
|
41
|
-
* Get all loaded tools
|
|
42
|
-
* @returns {Map<string, Object>} Map of loaded tools
|
|
43
|
-
*/
|
|
44
|
-
getAllTools(): Map<string, any>;
|
|
45
|
-
/**
|
|
46
|
-
* Unload a tool (remove from cache)
|
|
47
|
-
* @param {string} toolId - Tool identifier
|
|
48
|
-
* @returns {boolean} True if tool was unloaded
|
|
49
|
-
*/
|
|
50
|
-
unloadTool(toolId: string): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Validate tool file before loading
|
|
53
|
-
* @private
|
|
54
|
-
* @param {string} toolPath - Path to tool file
|
|
55
|
-
*/
|
|
56
|
-
private validateToolFile;
|
|
57
|
-
/**
|
|
58
|
-
* Load module with timeout protection
|
|
59
|
-
* @private
|
|
60
|
-
* @param {string} toolPath - Path to tool file
|
|
61
|
-
*/
|
|
62
|
-
private loadModuleWithTimeout;
|
|
63
|
-
/**
|
|
64
|
-
* Validate tool interface compliance
|
|
65
|
-
* @private
|
|
66
|
-
* @param {Object} toolModule - Loaded tool module
|
|
67
|
-
* @param {string} toolId - Tool identifier
|
|
68
|
-
*/
|
|
69
|
-
private validateToolInterface;
|
|
70
|
-
/**
|
|
71
|
-
* Get loader statistics
|
|
72
|
-
* @returns {Object} Statistics object
|
|
73
|
-
*/
|
|
74
|
-
getStats(): any;
|
|
75
|
-
}
|
|
76
|
-
import { EventEmitter } from "events";
|
|
77
|
-
//# sourceMappingURL=tool-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loader.d.ts","sourceRoot":"","sources":["../src/tool-loader.js"],"names":[],"mappings":";;AAcA;;;GAGG;AACH;IACE,0BAaC;IAXC;;;;;MAMC;IAED,2BAA4B;IAC5B,0BAAgC;IAChC,qBAA0B;IAG5B;;;OAGG;IACH,iBAFa,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAkDlC;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,OAAO,KAAQ,CAmC3B;IAED;;;OAGG;IACH,gBAFa,OAAO,CAAC,GAAG,CAAC,MAAM,MAAS,CAAC,CAuBxC;IAED;;;;OAIG;IACH,gBAHW,MAAM,GACJ,MAAO,IAAI,CAIvB;IAED;;;OAGG;IACH,eAFa,GAAG,CAAC,MAAM,MAAS,CAI/B;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,OAAO,CAQnB;IAED;;;;OAIG;IACH,yBAgCC;IAED;;;;OAIG;IACH,8BAkBC;IAED;;;;;OAKG;IACH,8BAyBC;IAED;;;OAGG;IACH,gBAQC;CACF"}
|
package/dist/tool-validator.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export = ToolValidator;
|
|
3
|
-
/**
|
|
4
|
-
* Tool Validator - Security validation and allowlist enforcement
|
|
5
|
-
*/
|
|
6
|
-
declare class ToolValidator {
|
|
7
|
-
constructor(options?: {});
|
|
8
|
-
options: {
|
|
9
|
-
allowlistPath: any;
|
|
10
|
-
strictMode: boolean;
|
|
11
|
-
maxFileSize: any;
|
|
12
|
-
};
|
|
13
|
-
allowlist: any;
|
|
14
|
-
validationCache: Map<any, any>;
|
|
15
|
-
/**
|
|
16
|
-
* Load and parse the tools allowlist
|
|
17
|
-
* @returns {Promise<Array<string>>} Array of allowed commands/patterns
|
|
18
|
-
*/
|
|
19
|
-
loadAllowlist(): Promise<Array<string>>;
|
|
20
|
-
/**
|
|
21
|
-
* Validate a tool against security requirements
|
|
22
|
-
* @param {Object} tool - Tool object with module and metadata
|
|
23
|
-
* @returns {Promise<Object>} Validation result
|
|
24
|
-
*/
|
|
25
|
-
validateTool(tool: any): Promise<any>;
|
|
26
|
-
/**
|
|
27
|
-
* Check file-level security
|
|
28
|
-
* @private
|
|
29
|
-
* @param {Object} tool - Tool object
|
|
30
|
-
*/
|
|
31
|
-
private checkFileSecurity;
|
|
32
|
-
/**
|
|
33
|
-
* Check code-level security
|
|
34
|
-
* @private
|
|
35
|
-
* @param {Object} tool - Tool object
|
|
36
|
-
*/
|
|
37
|
-
private checkCodeSecurity;
|
|
38
|
-
/**
|
|
39
|
-
* Check interface compliance
|
|
40
|
-
* @private
|
|
41
|
-
* @param {Object} tool - Tool object
|
|
42
|
-
*/
|
|
43
|
-
private checkInterfaceCompliance;
|
|
44
|
-
/**
|
|
45
|
-
* Check metadata validity
|
|
46
|
-
* @private
|
|
47
|
-
* @param {Object} tool - Tool object
|
|
48
|
-
*/
|
|
49
|
-
private checkMetadataValidity;
|
|
50
|
-
/**
|
|
51
|
-
* Check dependency safety
|
|
52
|
-
* @private
|
|
53
|
-
* @param {Object} tool - Tool object
|
|
54
|
-
*/
|
|
55
|
-
private checkDependencySafety;
|
|
56
|
-
/**
|
|
57
|
-
* Validate a command against the allowlist
|
|
58
|
-
* @param {string} command - Command to validate
|
|
59
|
-
* @returns {boolean} True if command is allowed
|
|
60
|
-
*/
|
|
61
|
-
validateCommand(command: string): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Clear validation cache
|
|
64
|
-
*/
|
|
65
|
-
clearCache(): void;
|
|
66
|
-
/**
|
|
67
|
-
* Get validator statistics
|
|
68
|
-
* @returns {Object} Statistics object
|
|
69
|
-
*/
|
|
70
|
-
getStats(): any;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=tool-validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-validator.d.ts","sourceRoot":"","sources":["../src/tool-validator.js"],"names":[],"mappings":";;AAYA;;GAEG;AACH;IACE,0BAWC;IAVC;;;;MAMC;IAED,eAAqB;IACrB,+BAAgC;IAGlC;;;OAGG;IACH,iBAFa,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAqBlC;IAED;;;;OAIG;IACH,yBAFa,OAAO,KAAQ,CAsF3B;IAED;;;;OAIG;IACH,0BAgCC;IAED;;;;OAIG;IACH,0BA8CC;IAED;;;;OAIG;IACH,iCAkBC;IAED;;;;OAIG;IACH,8BAqCC;IAED;;;;OAIG;IACH,8BA4BC;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,OAAO,CAmBnB;IAED;;OAEG;IACH,mBAEC;IAED;;;OAGG;IACH,gBAOC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/utils/detection.js"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,sCAHW,MAAM,OA6JhB"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate provenance manifest and git initialization (for both modes)
|
|
3
|
-
* @param {string} projectName - Project name
|
|
4
|
-
* @param {Object} options - Command options
|
|
5
|
-
* @param {Object} answers - User answers
|
|
6
|
-
*/
|
|
7
|
-
export function finalizeProject(projectName: string, options: any, answers: any): Promise<void>;
|
|
8
|
-
/**
|
|
9
|
-
* Display success message after project initialization
|
|
10
|
-
*/
|
|
11
|
-
export function continueToSuccess(): void;
|
|
12
|
-
/**
|
|
13
|
-
* Set dependencies for finalization utilities
|
|
14
|
-
* @param {Object} deps - Dependencies object
|
|
15
|
-
*/
|
|
16
|
-
export function setFinalizationDependencies(deps: any): void;
|
|
17
|
-
//# sourceMappingURL=finalization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finalization.d.ts","sourceRoot":"","sources":["../../src/utils/finalization.js"],"names":[],"mappings":"AA6BA;;;;;GAKG;AACH,6CAJW,MAAM,6CAgKhB;AAED;;GAEG;AACH,0CA0BC;AA1MD;;;GAGG;AACH,6DAGC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detect project type from existing files and structure
|
|
3
|
-
* @param {string} cwd - Current working directory
|
|
4
|
-
* @returns {string} Project type
|
|
5
|
-
*/
|
|
6
|
-
export function detectProjectType(cwd?: string): string;
|
|
7
|
-
/**
|
|
8
|
-
* Detect if current directory appears to be a project that should be initialized directly
|
|
9
|
-
* @param {string} projectName - Project name from command line
|
|
10
|
-
* @param {string} currentDir - Current directory path
|
|
11
|
-
* @returns {boolean} Whether to init in current directory
|
|
12
|
-
*/
|
|
13
|
-
export function shouldInitInCurrentDirectory(projectName: string, currentDir: string): boolean;
|
|
14
|
-
//# sourceMappingURL=project-analysis.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-analysis.d.ts","sourceRoot":"","sources":["../../src/utils/project-analysis.js"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wCAHW,MAAM,GACJ,MAAM,CAmDlB;AAED;;;;;GAKG;AACH,0DAJW,MAAM,cACN,MAAM,GACJ,OAAO,CA8BnB"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get staged files from git
|
|
3
|
-
* @returns {string[]} Array of staged file paths
|
|
4
|
-
*/
|
|
5
|
-
export function getStagedFiles(): string[];
|
|
6
|
-
/**
|
|
7
|
-
* Check for god objects in staged files
|
|
8
|
-
* @param {string[]} stagedFiles - Array of staged file paths
|
|
9
|
-
* @param {string} language - Language to check ('rust', 'typescript', etc.)
|
|
10
|
-
* @returns {Object} God object analysis results
|
|
11
|
-
*/
|
|
12
|
-
export function checkGodObjects(stagedFiles: string[], language?: string): any;
|
|
13
|
-
/**
|
|
14
|
-
* Check for hidden TODOs in staged files
|
|
15
|
-
* @param {string[]} stagedFiles - Array of staged file paths
|
|
16
|
-
* @returns {Object} TODO analysis results
|
|
17
|
-
*/
|
|
18
|
-
export function checkHiddenTodos(stagedFiles: string[]): any;
|
|
19
|
-
/**
|
|
20
|
-
* Check if a waiver applies to the given gate
|
|
21
|
-
* @param {string} gate - Gate name to check
|
|
22
|
-
* @returns {Object} Waiver check result
|
|
23
|
-
*/
|
|
24
|
-
export function checkWaiver(gate: string): any;
|
|
25
|
-
/**
|
|
26
|
-
* Detect if project is in crisis response mode
|
|
27
|
-
* @returns {boolean} True if in crisis mode
|
|
28
|
-
*/
|
|
29
|
-
export function detectCrisisMode(): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Run comprehensive quality gates on staged files
|
|
32
|
-
* @param {Object} options - Options for quality gates
|
|
33
|
-
* @returns {Object} Quality gate results
|
|
34
|
-
*/
|
|
35
|
-
export function runQualityGates(options?: any): any;
|
|
36
|
-
export namespace CONFIG {
|
|
37
|
-
namespace godObjectThresholds {
|
|
38
|
-
let warning: number;
|
|
39
|
-
let critical: number;
|
|
40
|
-
}
|
|
41
|
-
let todoConfidenceThreshold: number;
|
|
42
|
-
let supportedExtensions: string[];
|
|
43
|
-
namespace crisisResponseThresholds {
|
|
44
|
-
export let godObjectCritical: number;
|
|
45
|
-
let todoConfidenceThreshold_1: number;
|
|
46
|
-
export { todoConfidenceThreshold_1 as todoConfidenceThreshold };
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=quality-gates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/utils/quality-gates.js"],"names":[],"mappings":"AAyGA;;;GAGG;AACH,kCAFa,MAAM,EAAE,CAcpB;AAED;;;;;GAKG;AACH,6CAJW,MAAM,EAAE,aACR,MAAM,OAqDhB;AAED;;;;GAIG;AACH,8CAHW,MAAM,EAAE,OA2ClB;AApMD;;;;GAIG;AACH,kCAHW,MAAM,OAiChB;AAED;;;GAGG;AACH,oCAFa,OAAO,CAkCnB;AA6HD;;;;GAIG;AACH,oDAqHC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve spec file path based on priority
|
|
3
|
-
* @param {Object} options - Resolution options
|
|
4
|
-
* @param {string} [options.specId] - Feature-specific spec ID (e.g., 'user-auth', 'FEAT-001')
|
|
5
|
-
* @param {string} [options.specFile] - Explicit file path override
|
|
6
|
-
* @param {boolean} [options.warnLegacy=true] - Warn when falling back to legacy spec
|
|
7
|
-
* @param {boolean} [options.interactive=false] - Use interactive spec selection for multiple specs
|
|
8
|
-
* @returns {Promise<{path: string, type: 'feature' | 'legacy', spec: Object}>}
|
|
9
|
-
*/
|
|
10
|
-
export function resolveSpec(options?: {
|
|
11
|
-
specId?: string;
|
|
12
|
-
specFile?: string;
|
|
13
|
-
warnLegacy?: boolean;
|
|
14
|
-
interactive?: boolean;
|
|
15
|
-
}): Promise<{
|
|
16
|
-
path: string;
|
|
17
|
-
type: "feature" | "legacy";
|
|
18
|
-
spec: any;
|
|
19
|
-
}>;
|
|
20
|
-
/**
|
|
21
|
-
* List all available specs
|
|
22
|
-
* @returns {Promise<Array<{id: string, path: string, type: string}>>}
|
|
23
|
-
*/
|
|
24
|
-
export function listAvailableSpecs(): Promise<Array<{
|
|
25
|
-
id: string;
|
|
26
|
-
path: string;
|
|
27
|
-
type: string;
|
|
28
|
-
}>>;
|
|
29
|
-
/**
|
|
30
|
-
* Check if project is using multi-spec architecture
|
|
31
|
-
* @returns {Promise<{isMultiSpec: boolean, specCount: number, needsMigration: boolean}>}
|
|
32
|
-
*/
|
|
33
|
-
export function checkMultiSpecStatus(): Promise<{
|
|
34
|
-
isMultiSpec: boolean;
|
|
35
|
-
specCount: number;
|
|
36
|
-
needsMigration: boolean;
|
|
37
|
-
}>;
|
|
38
|
-
/**
|
|
39
|
-
* Check for scope conflicts between specs
|
|
40
|
-
* @param {string[]} specIds - Array of spec IDs to check
|
|
41
|
-
* @returns {Promise<Array<{spec1: string, spec2: string, conflicts: string[]}>>} Array of conflicts
|
|
42
|
-
*/
|
|
43
|
-
export function checkScopeConflicts(specIds: string[]): Promise<Array<{
|
|
44
|
-
spec1: string;
|
|
45
|
-
spec2: string;
|
|
46
|
-
conflicts: string[];
|
|
47
|
-
}>>;
|
|
48
|
-
/**
|
|
49
|
-
* Suggest migration from legacy to multi-spec
|
|
50
|
-
* @returns {Promise<void>}
|
|
51
|
-
*/
|
|
52
|
-
export function suggestMigration(): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Interactive spec selection using readline
|
|
55
|
-
* @param {string[]} specIds - Available spec IDs
|
|
56
|
-
* @returns {Promise<string>} Selected spec ID
|
|
57
|
-
*/
|
|
58
|
-
export function interactiveSpecSelection(specIds: string[]): Promise<string>;
|
|
59
|
-
/**
|
|
60
|
-
* Load specs registry
|
|
61
|
-
* @returns {Promise<Object>} Registry data
|
|
62
|
-
*/
|
|
63
|
-
export function loadSpecsRegistry(): Promise<any>;
|
|
64
|
-
export function suggestFeatureBreakdown(legacySpec: any): {
|
|
65
|
-
id: string;
|
|
66
|
-
title: any;
|
|
67
|
-
criteria: any;
|
|
68
|
-
scope: {
|
|
69
|
-
in: string[];
|
|
70
|
-
out: any[];
|
|
71
|
-
};
|
|
72
|
-
}[];
|
|
73
|
-
/**
|
|
74
|
-
* Check if two paths overlap (simplified implementation)
|
|
75
|
-
* @param {string} path1 - First path
|
|
76
|
-
* @param {string} path2 - Second path
|
|
77
|
-
* @returns {boolean} True if paths overlap
|
|
78
|
-
*/
|
|
79
|
-
export function pathsOverlap(path1: string, path2: string): boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Spec resolution priority:
|
|
82
|
-
* 1. .caws/specs/<spec-id>.yaml (feature-specific, multi-agent safe)
|
|
83
|
-
* 2. .caws/working-spec.yaml (legacy, single-agent only)
|
|
84
|
-
*/
|
|
85
|
-
export const SPECS_DIR: ".caws/specs";
|
|
86
|
-
export const LEGACY_SPEC: ".caws/working-spec.yaml";
|
|
87
|
-
export const SPECS_REGISTRY: ".caws/specs/registry.json";
|
|
88
|
-
//# sourceMappingURL=spec-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/spec-resolver.js"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,sCANG;IAAyB,MAAM,GAAvB,MAAM;IACW,QAAQ,GAAzB,MAAM;IACY,UAAU,GAA5B,OAAO;IACW,WAAW,GAA7B,OAAO;CACf,GAAU,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,IAAI,MAAQ;CAAC,CAAC,CAwK7E;AA6BD;;;GAGG;AACH,sCAFa,OAAO,CAAC,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAoDpE;AAgDD;;;GAGG;AACH,wCAFa,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAC,CAAC,CAavF;AAED;;;;GAIG;AACH,6CAHW,MAAM,EAAE,GACN,OAAO,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAAC,CA2D/E;AA+DD;;;GAGG;AACH,oCAFa,OAAO,CAAC,IAAI,CAAC,CAczB;AA5MD;;;;GAIG;AACH,kDAHW,MAAM,EAAE,GACN,OAAO,CAAC,MAAM,CAAC,CAyC3B;AA/HD;;;GAGG;AACH,qCAFa,OAAO,KAAQ,CAuB3B;AAyQD;;;;;;;;IA+FC;AA/KD;;;;;GAKG;AACH,oCAJW,MAAM,SACN,MAAM,GACJ,OAAO,CAuDnB;AAvcD;;;;GAIG;AACH,wBAAkB,aAAa,CAAC;AAChC,0BAAoB,yBAAyB,CAAC;AAC9C,6BAAuB,2BAA2B,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detect if project is using TypeScript
|
|
3
|
-
* @param {string} projectDir - Project directory path
|
|
4
|
-
* @returns {Object} TypeScript detection result
|
|
5
|
-
*/
|
|
6
|
-
export function detectTypeScript(projectDir?: string): any;
|
|
7
|
-
/**
|
|
8
|
-
* Detect testing framework in use
|
|
9
|
-
* @param {string} projectDir - Project directory path
|
|
10
|
-
* @param {Object} packageJson - Parsed package.json (optional)
|
|
11
|
-
* @returns {Object} Testing framework detection result
|
|
12
|
-
*/
|
|
13
|
-
export function detectTestFramework(projectDir?: string, packageJson?: any): any;
|
|
14
|
-
export function getWorkspaceDirectories(projectDir?: string): string[];
|
|
15
|
-
/**
|
|
16
|
-
* Get workspace directories from package.json
|
|
17
|
-
* @param {string} projectDir - Project directory path
|
|
18
|
-
* @returns {string[]} Array of workspace directories
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Get workspace directories from npm/yarn package.json workspaces
|
|
22
|
-
* @param {string} projectDir - Project directory path
|
|
23
|
-
* @returns {string[]} Array of workspace directories
|
|
24
|
-
*/
|
|
25
|
-
export function getNpmWorkspaces(projectDir: string): string[];
|
|
26
|
-
/**
|
|
27
|
-
* Get workspace directories from pnpm-workspace.yaml
|
|
28
|
-
* @param {string} projectDir - Project directory path
|
|
29
|
-
* @returns {string[]} Array of workspace directories
|
|
30
|
-
*/
|
|
31
|
-
export function getPnpmWorkspaces(projectDir: string): string[];
|
|
32
|
-
/**
|
|
33
|
-
* Get workspace directories from lerna.json
|
|
34
|
-
* @param {string} projectDir - Project directory path
|
|
35
|
-
* @returns {string[]} Array of workspace directories
|
|
36
|
-
*/
|
|
37
|
-
export function getLernaWorkspaces(projectDir: string): string[];
|
|
38
|
-
/**
|
|
39
|
-
* Check if a dependency exists in hoisted node_modules
|
|
40
|
-
* @param {string} depName - Dependency name to check
|
|
41
|
-
* @param {string} projectDir - Project directory path
|
|
42
|
-
* @returns {boolean} True if dependency found in hoisted node_modules
|
|
43
|
-
*/
|
|
44
|
-
export function checkHoistedDependency(depName: string, projectDir: string): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Check if TypeScript project needs test configuration
|
|
47
|
-
* @param {string} projectDir - Project directory path
|
|
48
|
-
* @returns {Object} Configuration status
|
|
49
|
-
*/
|
|
50
|
-
export function checkTypeScriptTestConfig(projectDir?: string): any;
|
|
51
|
-
/**
|
|
52
|
-
* Generate configuration recommendations
|
|
53
|
-
* @param {Object} tsDetection - TypeScript detection result
|
|
54
|
-
* @param {Object} testDetection - Test framework detection result
|
|
55
|
-
* @returns {string[]} Array of recommendations
|
|
56
|
-
*/
|
|
57
|
-
export function generateRecommendations(tsDetection: any, testDetection: any): string[];
|
|
58
|
-
/**
|
|
59
|
-
* Display TypeScript detection results
|
|
60
|
-
* @param {Object} detection - Detection result from checkTypeScriptTestConfig
|
|
61
|
-
*/
|
|
62
|
-
export function displayTypeScriptDetection(detection: any): void;
|
|
63
|
-
//# sourceMappingURL=typescript-detector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-detector.d.ts","sourceRoot":"","sources":["../../src/utils/typescript-detector.js"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,8CAHW,MAAM,OAkChB;AAED;;;;;GAKG;AACH,iDAJW,MAAM,0BAkDhB;AAuKD,uEASC;AA9KD;;;;GAIG;AACH;;;;GAIG;AACH,6CAHW,MAAM,GACJ,MAAM,EAAE,CA6CpB;AAED;;;;GAIG;AACH,8CAHW,MAAM,GACJ,MAAM,EAAE,CA6CpB;AAED;;;;GAIG;AACH,+CAHW,MAAM,GACJ,MAAM,EAAE,CA4CpB;AAED;;;;;GAKG;AACH,gDAJW,MAAM,cACN,MAAM,GACJ,OAAO,CAKnB;AAaD;;;;GAIG;AACH,uDAHW,MAAM,OA0EhB;AAED;;;;;GAKG;AACH,+EAFa,MAAM,EAAE,CAuBpB;AAED;;;GAGG;AACH,iEAoBC"}
|