@paths.design/caws-cli 5.0.1 → 5.1.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 (115) hide show
  1. package/README.md +15 -12
  2. package/dist/budget-derivation.d.ts +74 -0
  3. package/dist/budget-derivation.d.ts.map +1 -0
  4. package/dist/cicd-optimizer.d.ts +142 -0
  5. package/dist/cicd-optimizer.d.ts.map +1 -0
  6. package/dist/commands/archive.d.ts +50 -0
  7. package/dist/commands/archive.d.ts.map +1 -0
  8. package/dist/commands/burnup.d.ts +6 -0
  9. package/dist/commands/burnup.d.ts.map +1 -0
  10. package/dist/commands/diagnose.d.ts +52 -0
  11. package/dist/commands/diagnose.d.ts.map +1 -0
  12. package/dist/commands/evaluate.d.ts +8 -0
  13. package/dist/commands/evaluate.d.ts.map +1 -0
  14. package/dist/commands/init.d.ts +5 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/iterate.d.ts +8 -0
  17. package/dist/commands/iterate.d.ts.map +1 -0
  18. package/dist/commands/mode.d.ts +24 -0
  19. package/dist/commands/mode.d.ts.map +1 -0
  20. package/dist/commands/plan.d.ts +49 -0
  21. package/dist/commands/plan.d.ts.map +1 -0
  22. package/dist/commands/provenance.d.ts +32 -0
  23. package/dist/commands/provenance.d.ts.map +1 -0
  24. package/dist/commands/provenance.js +27 -22
  25. package/dist/commands/quality-gates.d.ts +52 -0
  26. package/dist/commands/quality-gates.d.ts.map +1 -0
  27. package/dist/commands/quality-gates.js +190 -455
  28. package/dist/commands/quality-monitor.d.ts +17 -0
  29. package/dist/commands/quality-monitor.d.ts.map +1 -0
  30. package/dist/commands/specs.d.ts +71 -0
  31. package/dist/commands/specs.d.ts.map +1 -0
  32. package/dist/commands/specs.js +34 -35
  33. package/dist/commands/status.d.ts +44 -0
  34. package/dist/commands/status.d.ts.map +1 -0
  35. package/dist/commands/status.js +10 -7
  36. package/dist/commands/templates.d.ts +74 -0
  37. package/dist/commands/templates.d.ts.map +1 -0
  38. package/dist/commands/tool.d.ts +13 -0
  39. package/dist/commands/tool.d.ts.map +1 -0
  40. package/dist/commands/tool.js +63 -63
  41. package/dist/commands/troubleshoot.d.ts +8 -0
  42. package/dist/commands/troubleshoot.d.ts.map +1 -0
  43. package/dist/commands/tutorial.d.ts +55 -0
  44. package/dist/commands/tutorial.d.ts.map +1 -0
  45. package/dist/commands/validate.d.ts +15 -0
  46. package/dist/commands/validate.d.ts.map +1 -0
  47. package/dist/commands/waivers.d.ts +8 -0
  48. package/dist/commands/waivers.d.ts.map +1 -0
  49. package/dist/commands/waivers.js +38 -39
  50. package/dist/commands/workflow.d.ts +85 -0
  51. package/dist/commands/workflow.d.ts.map +1 -0
  52. package/dist/config/index.d.ts +29 -0
  53. package/dist/config/index.d.ts.map +1 -0
  54. package/dist/config/modes.d.ts +225 -0
  55. package/dist/config/modes.d.ts.map +1 -0
  56. package/dist/constants/spec-types.d.ts +41 -0
  57. package/dist/constants/spec-types.d.ts.map +1 -0
  58. package/dist/error-handler.d.ts +164 -0
  59. package/dist/error-handler.d.ts.map +1 -0
  60. package/dist/generators/jest-config.d.ts +32 -0
  61. package/dist/generators/jest-config.d.ts.map +1 -0
  62. package/dist/generators/working-spec.d.ts +13 -0
  63. package/dist/generators/working-spec.d.ts.map +1 -0
  64. package/dist/index-new.d.ts +5 -0
  65. package/dist/index-new.d.ts.map +1 -0
  66. package/dist/index-new.js +317 -0
  67. package/dist/index.d.ts +5 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +1 -0
  70. package/dist/index.js.backup +4711 -0
  71. package/dist/minimal-cli.d.ts +3 -0
  72. package/dist/minimal-cli.d.ts.map +1 -0
  73. package/dist/policy/PolicyManager.d.ts +104 -0
  74. package/dist/policy/PolicyManager.d.ts.map +1 -0
  75. package/dist/policy/PolicyManager.js +60 -28
  76. package/dist/scaffold/cursor-hooks.d.ts +7 -0
  77. package/dist/scaffold/cursor-hooks.d.ts.map +1 -0
  78. package/dist/scaffold/git-hooks.d.ts +20 -0
  79. package/dist/scaffold/git-hooks.d.ts.map +1 -0
  80. package/dist/scaffold/git-hooks.js +89 -27
  81. package/dist/scaffold/index.d.ts +20 -0
  82. package/dist/scaffold/index.d.ts.map +1 -0
  83. package/dist/scaffold/index.js +25 -0
  84. package/dist/spec/SpecFileManager.d.ts +146 -0
  85. package/dist/spec/SpecFileManager.d.ts.map +1 -0
  86. package/dist/test-analysis.d.ts +182 -0
  87. package/dist/test-analysis.d.ts.map +1 -0
  88. package/dist/tool-interface.d.ts +236 -0
  89. package/dist/tool-interface.d.ts.map +1 -0
  90. package/dist/tool-loader.d.ts +77 -0
  91. package/dist/tool-loader.d.ts.map +1 -0
  92. package/dist/tool-validator.d.ts +72 -0
  93. package/dist/tool-validator.d.ts.map +1 -0
  94. package/dist/utils/async-utils.js +188 -0
  95. package/dist/utils/command-wrapper.js +200 -0
  96. package/dist/utils/detection.d.ts +7 -0
  97. package/dist/utils/detection.d.ts.map +1 -0
  98. package/dist/utils/finalization.d.ts +17 -0
  99. package/dist/utils/finalization.d.ts.map +1 -0
  100. package/dist/utils/project-analysis.d.ts +14 -0
  101. package/dist/utils/project-analysis.d.ts.map +1 -0
  102. package/dist/utils/promise-utils.js +72 -0
  103. package/dist/utils/quality-gates.d.ts +49 -0
  104. package/dist/utils/quality-gates.d.ts.map +1 -0
  105. package/dist/utils/spec-resolver.d.ts +88 -0
  106. package/dist/utils/spec-resolver.d.ts.map +1 -0
  107. package/dist/utils/typescript-detector.d.ts +63 -0
  108. package/dist/utils/typescript-detector.d.ts.map +1 -0
  109. package/dist/validation/spec-validation.d.ts +43 -0
  110. package/dist/validation/spec-validation.d.ts.map +1 -0
  111. package/dist/waivers-manager.d.ts +167 -0
  112. package/dist/waivers-manager.d.ts.map +1 -0
  113. package/package.json +1 -1
  114. package/templates/apps/tools/caws/prompt-lint.js.backup +274 -0
  115. package/templates/apps/tools/caws/provenance.js.backup +73 -0
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Main Test Analysis CLI handler
3
+ */
4
+ export function testAnalysisCommand(subcommand: any, options?: any[]): Promise<void>;
5
+ /**
6
+ * Waiver Pattern Learning Engine
7
+ * Analyzes waiver history to find systematic patterns in budget overruns
8
+ */
9
+ export class WaiverPatternLearner {
10
+ constructor(projectRoot?: string);
11
+ projectRoot: string;
12
+ /**
13
+ * Analyze waiver patterns from historical data
14
+ */
15
+ analyzePatterns(): {
16
+ status: string;
17
+ patterns: {
18
+ total_waivers: number;
19
+ budget_overruns: {
20
+ average_overrun_files: number;
21
+ average_overrun_loc: number;
22
+ common_patterns: any[];
23
+ total_budget_waivers?: undefined;
24
+ } | {
25
+ total_budget_waivers: any;
26
+ average_overrun_files: number;
27
+ average_overrun_loc: number;
28
+ common_patterns: {
29
+ reason: string;
30
+ frequency: number;
31
+ avg_overrun_files: number;
32
+ avg_overrun_loc: number;
33
+ }[];
34
+ };
35
+ common_reasons: {
36
+ reason: string;
37
+ count: any;
38
+ frequency: number;
39
+ }[];
40
+ risk_factors: {
41
+ factor: string;
42
+ description: string;
43
+ risk_level: string;
44
+ }[];
45
+ generated_at: string;
46
+ };
47
+ message?: undefined;
48
+ } | {
49
+ status: string;
50
+ message: any;
51
+ patterns: {};
52
+ };
53
+ /**
54
+ * Load all waiver files from .caws/waivers/
55
+ */
56
+ loadWaivers(): any[];
57
+ /**
58
+ * Load historical working specs (mock implementation)
59
+ */
60
+ loadHistoricalSpecs(): any[];
61
+ /**
62
+ * Analyze budget overrun patterns
63
+ */
64
+ analyzeBudgetOverruns(waivers: any, specs: any): {
65
+ average_overrun_files: number;
66
+ average_overrun_loc: number;
67
+ common_patterns: any[];
68
+ total_budget_waivers?: undefined;
69
+ } | {
70
+ total_budget_waivers: any;
71
+ average_overrun_files: number;
72
+ average_overrun_loc: number;
73
+ common_patterns: {
74
+ reason: string;
75
+ frequency: number;
76
+ avg_overrun_files: number;
77
+ avg_overrun_loc: number;
78
+ }[];
79
+ };
80
+ /**
81
+ * Analyze most common waiver reasons
82
+ */
83
+ analyzeCommonReasons(waivers: any): {
84
+ reason: string;
85
+ count: any;
86
+ frequency: number;
87
+ }[];
88
+ /**
89
+ * Identify risk factors from waiver patterns
90
+ */
91
+ identifyRiskFactors(waivers: any, specs: any): {
92
+ factor: string;
93
+ description: string;
94
+ risk_level: string;
95
+ }[];
96
+ }
97
+ /**
98
+ * Project Similarity Matcher
99
+ * Finds historical projects similar to current work
100
+ */
101
+ export class ProjectSimilarityMatcher {
102
+ constructor(projectRoot?: string);
103
+ projectRoot: string;
104
+ /**
105
+ * Find projects similar to the current spec
106
+ */
107
+ findSimilarProjects(currentSpec: any): {
108
+ project: string;
109
+ similarity_score: number;
110
+ budget_accuracy: number;
111
+ waiver_count: number;
112
+ details: {
113
+ id: string;
114
+ title: string;
115
+ risk_tier: number;
116
+ mode: string;
117
+ tech_stack: string;
118
+ feature_type: string;
119
+ actual_budget: {
120
+ files: number;
121
+ loc: number;
122
+ };
123
+ allocated_budget: {
124
+ files: number;
125
+ loc: number;
126
+ };
127
+ waivers: string[];
128
+ };
129
+ }[];
130
+ /**
131
+ * Calculate similarity score between two specs/projects
132
+ */
133
+ calculateSimilarity(spec1: any, spec2: any): number;
134
+ }
135
+ /**
136
+ * Budget Predictor using statistical analysis
137
+ */
138
+ export class BudgetPredictor {
139
+ constructor(projectRoot?: string);
140
+ projectRoot: string;
141
+ patternLearner: WaiverPatternLearner;
142
+ similarityMatcher: ProjectSimilarityMatcher;
143
+ /**
144
+ * Assess budget for a working spec
145
+ */
146
+ assessBudget(spec: any): {
147
+ status: string;
148
+ assessment: {
149
+ similar_projects_analyzed: number;
150
+ recommended_budget: {
151
+ files: number;
152
+ loc: number;
153
+ };
154
+ baseline_budget: {
155
+ files: number;
156
+ loc: number;
157
+ };
158
+ buffer_applied: {
159
+ files_percent: number;
160
+ loc_percent: number;
161
+ };
162
+ rationale: string[];
163
+ risk_factors: any;
164
+ confidence: number;
165
+ };
166
+ message?: undefined;
167
+ recommendation?: undefined;
168
+ } | {
169
+ status: string;
170
+ message: any;
171
+ recommendation: {
172
+ use_default_tier: boolean;
173
+ confidence: number;
174
+ };
175
+ assessment?: undefined;
176
+ };
177
+ /**
178
+ * Generate human-readable rationale for the recommendation
179
+ */
180
+ generateRationale(spec: any, similarProjects: any, patterns: any): string[];
181
+ }
182
+ //# sourceMappingURL=test-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-analysis.d.ts","sourceRoot":"","sources":["../src/test-analysis.js"],"names":[],"mappings":"AAiZA;;GAEG;AACH,qFAsBC;AAhaD;;;GAGG;AACH;IACE,kCAEC;IADC,oBAA8B;IAGhC;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgCC;IAED;;OAEG;IACH,qBAsBC;IAED;;OAEG;IACH,6BAIC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;MA6CC;IAED;;OAEG;IACH;;;;QAaC;IAED;;OAEG;IACH;;;;QAeC;CACF;AAED;;;GAGG;AACH;IACE,kCAEC;IADC,oBAA8B;IAGhC;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;QAkEC;IAED;;OAEG;IACH,oDA6BC;CACF;AAED;;GAEG;AACH;IACE,kCAIC;IAHC,oBAA8B;IAC9B,qCAA2D;IAC3D,4CAAkE;IAGpE;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8DC;IAED;;OAEG;IACH,4EAsBC;CACF"}
@@ -0,0 +1,236 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,77 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,72 @@
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
@@ -0,0 +1 @@
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"}