@paths.design/caws-cli 8.0.0 → 8.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.
Files changed (113) hide show
  1. package/dist/budget-derivation.d.ts +74 -0
  2. package/dist/budget-derivation.d.ts.map +1 -0
  3. package/dist/cicd-optimizer.d.ts +142 -0
  4. package/dist/cicd-optimizer.d.ts.map +1 -0
  5. package/dist/commands/archive.d.ts +50 -0
  6. package/dist/commands/archive.d.ts.map +1 -0
  7. package/dist/commands/burnup.d.ts +6 -0
  8. package/dist/commands/burnup.d.ts.map +1 -0
  9. package/dist/commands/diagnose.d.ts +52 -0
  10. package/dist/commands/diagnose.d.ts.map +1 -0
  11. package/dist/commands/evaluate.d.ts +8 -0
  12. package/dist/commands/evaluate.d.ts.map +1 -0
  13. package/dist/commands/init.d.ts +5 -0
  14. package/dist/commands/init.d.ts.map +1 -0
  15. package/dist/commands/iterate.d.ts +8 -0
  16. package/dist/commands/iterate.d.ts.map +1 -0
  17. package/dist/commands/mode.d.ts +24 -0
  18. package/dist/commands/mode.d.ts.map +1 -0
  19. package/dist/commands/plan.d.ts +49 -0
  20. package/dist/commands/plan.d.ts.map +1 -0
  21. package/dist/commands/provenance.d.ts +32 -0
  22. package/dist/commands/provenance.d.ts.map +1 -0
  23. package/dist/commands/quality-gates.d.ts +6 -0
  24. package/dist/commands/quality-gates.d.ts.map +1 -0
  25. package/dist/commands/quality-gates.js +79 -2
  26. package/dist/commands/quality-monitor.d.ts +17 -0
  27. package/dist/commands/quality-monitor.d.ts.map +1 -0
  28. package/dist/commands/specs.d.ts +71 -0
  29. package/dist/commands/specs.d.ts.map +1 -0
  30. package/dist/commands/status.d.ts +44 -0
  31. package/dist/commands/status.d.ts.map +1 -0
  32. package/dist/commands/templates.d.ts +74 -0
  33. package/dist/commands/templates.d.ts.map +1 -0
  34. package/dist/commands/tool.d.ts +13 -0
  35. package/dist/commands/tool.d.ts.map +1 -0
  36. package/dist/commands/troubleshoot.d.ts +8 -0
  37. package/dist/commands/troubleshoot.d.ts.map +1 -0
  38. package/dist/commands/tutorial.d.ts +55 -0
  39. package/dist/commands/tutorial.d.ts.map +1 -0
  40. package/dist/commands/validate.d.ts +15 -0
  41. package/dist/commands/validate.d.ts.map +1 -0
  42. package/dist/commands/waivers.d.ts +8 -0
  43. package/dist/commands/waivers.d.ts.map +1 -0
  44. package/dist/commands/workflow.d.ts +85 -0
  45. package/dist/commands/workflow.d.ts.map +1 -0
  46. package/dist/config/index.d.ts +29 -0
  47. package/dist/config/index.d.ts.map +1 -0
  48. package/dist/config/modes.d.ts +225 -0
  49. package/dist/config/modes.d.ts.map +1 -0
  50. package/dist/constants/spec-types.d.ts +41 -0
  51. package/dist/constants/spec-types.d.ts.map +1 -0
  52. package/dist/error-handler.d.ts +164 -0
  53. package/dist/error-handler.d.ts.map +1 -0
  54. package/dist/generators/jest-config.d.ts +32 -0
  55. package/dist/generators/jest-config.d.ts.map +1 -0
  56. package/dist/generators/working-spec.d.ts +13 -0
  57. package/dist/generators/working-spec.d.ts.map +1 -0
  58. package/dist/index-new.d.ts +5 -0
  59. package/dist/index-new.d.ts.map +1 -0
  60. package/dist/index-new.js +317 -0
  61. package/dist/index.d.ts +5 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +10 -0
  64. package/dist/index.js.backup +4711 -0
  65. package/dist/minimal-cli.d.ts +3 -0
  66. package/dist/minimal-cli.d.ts.map +1 -0
  67. package/dist/policy/PolicyManager.d.ts +104 -0
  68. package/dist/policy/PolicyManager.d.ts.map +1 -0
  69. package/dist/scaffold/cursor-hooks.d.ts +7 -0
  70. package/dist/scaffold/cursor-hooks.d.ts.map +1 -0
  71. package/dist/scaffold/git-hooks.d.ts +38 -0
  72. package/dist/scaffold/git-hooks.d.ts.map +1 -0
  73. package/dist/scaffold/index.d.ts +15 -0
  74. package/dist/scaffold/index.d.ts.map +1 -0
  75. package/dist/spec/SpecFileManager.d.ts +146 -0
  76. package/dist/spec/SpecFileManager.d.ts.map +1 -0
  77. package/dist/test-analysis.d.ts +182 -0
  78. package/dist/test-analysis.d.ts.map +1 -0
  79. package/dist/tool-interface.d.ts +236 -0
  80. package/dist/tool-interface.d.ts.map +1 -0
  81. package/dist/tool-loader.d.ts +77 -0
  82. package/dist/tool-loader.d.ts.map +1 -0
  83. package/dist/tool-validator.d.ts +72 -0
  84. package/dist/tool-validator.d.ts.map +1 -0
  85. package/dist/utils/async-utils.d.ts +73 -0
  86. package/dist/utils/async-utils.d.ts.map +1 -0
  87. package/dist/utils/command-wrapper.d.ts +66 -0
  88. package/dist/utils/command-wrapper.d.ts.map +1 -0
  89. package/dist/utils/detection.d.ts +14 -0
  90. package/dist/utils/detection.d.ts.map +1 -0
  91. package/dist/utils/finalization.d.ts +17 -0
  92. package/dist/utils/finalization.d.ts.map +1 -0
  93. package/dist/utils/git-lock.d.ts +13 -0
  94. package/dist/utils/git-lock.d.ts.map +1 -0
  95. package/dist/utils/gitignore-updater.d.ts +39 -0
  96. package/dist/utils/gitignore-updater.d.ts.map +1 -0
  97. package/dist/utils/project-analysis.d.ts +34 -0
  98. package/dist/utils/project-analysis.d.ts.map +1 -0
  99. package/dist/utils/promise-utils.d.ts +30 -0
  100. package/dist/utils/promise-utils.d.ts.map +1 -0
  101. package/dist/utils/quality-gates.d.ts +49 -0
  102. package/dist/utils/quality-gates.d.ts.map +1 -0
  103. package/dist/utils/spec-resolver.d.ts +80 -0
  104. package/dist/utils/spec-resolver.d.ts.map +1 -0
  105. package/dist/utils/typescript-detector.d.ts +63 -0
  106. package/dist/utils/typescript-detector.d.ts.map +1 -0
  107. package/dist/utils/yaml-validation.d.ts +32 -0
  108. package/dist/utils/yaml-validation.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
@@ -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,0BAkBC;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,0BAiBC;IATC;;;;MAKC;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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Async Operation Utilities
3
+ * Provides consistent patterns for async operations, parallel execution, and resource cleanup
4
+ * @author @darianrosebrook
5
+ */
6
+ /**
7
+ * Execute multiple async operations in parallel
8
+ * @param {Array<Promise>} promises - Array of promises to execute
9
+ * @param {Object} options - Options
10
+ * @param {boolean} [options.failFast=true] - Stop on first error
11
+ * @returns {Promise<Array>} Array of results
12
+ */
13
+ export function parallel(promises: Array<Promise<any>>, options?: {
14
+ failFast?: boolean;
15
+ }): Promise<any[]>;
16
+ /**
17
+ * Execute async operations sequentially
18
+ * @param {Array<Function>} operations - Array of async functions to execute
19
+ * @param {Object} options - Options
20
+ * @param {boolean} [options.stopOnError=true] - Stop on first error
21
+ * @returns {Promise<Array>} Array of results
22
+ */
23
+ export function sequential(operations: Array<Function>, options?: {
24
+ stopOnError?: boolean;
25
+ }): Promise<any[]>;
26
+ /**
27
+ * Retry an async operation with exponential backoff
28
+ * @param {Function} operation - Async function to retry
29
+ * @param {Object} options - Retry options
30
+ * @param {number} [options.maxRetries=3] - Maximum number of retries
31
+ * @param {number} [options.initialDelay=1000] - Initial delay in ms
32
+ * @param {number} [options.maxDelay=10000] - Maximum delay in ms
33
+ * @param {Function} [options.shouldRetry] - Function to determine if error should be retried
34
+ * @returns {Promise<any>} Operation result
35
+ */
36
+ export function retry(operation: Function, options?: {
37
+ maxRetries?: number;
38
+ initialDelay?: number;
39
+ maxDelay?: number;
40
+ shouldRetry?: Function;
41
+ }): Promise<any>;
42
+ /**
43
+ * Execute operation with timeout
44
+ * @param {Promise} promise - Promise to execute
45
+ * @param {number} timeoutMs - Timeout in milliseconds
46
+ * @param {string} [errorMessage] - Custom error message
47
+ * @returns {Promise<any>} Operation result
48
+ */
49
+ export function withTimeout(promise: Promise<any>, timeoutMs: number, errorMessage?: string): Promise<any>;
50
+ /**
51
+ * Execute operation with resource cleanup
52
+ * @param {Function} operation - Async operation to execute
53
+ * @param {Function} cleanup - Cleanup function (called in finally)
54
+ * @returns {Promise<any>} Operation result
55
+ */
56
+ export function withCleanup(operation: Function, cleanup: Function): Promise<any>;
57
+ /**
58
+ * Execute multiple operations and collect all errors
59
+ * @param {Array<Function>} operations - Array of async functions
60
+ * @returns {Promise<{successes: Array, errors: Array}>} Results and errors
61
+ */
62
+ export function collectResults(operations: Array<Function>): Promise<{
63
+ successes: any[];
64
+ errors: any[];
65
+ }>;
66
+ /**
67
+ * Execute operation with cancellation support
68
+ * @param {Function} operation - Async operation to execute
69
+ * @param {AbortSignal} signal - Abort signal for cancellation
70
+ * @returns {Promise<any>} Operation result
71
+ */
72
+ export function withCancellation(operation: Function, signal: AbortSignal): Promise<any>;
73
+ //# sourceMappingURL=async-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-utils.d.ts","sourceRoot":"","sources":["../../src/utils/async-utils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,mCALW,KAAK,cAAS,YAEtB;IAA0B,QAAQ,GAA1B,OAAO;CACf,GAAU,OAAO,OAAO,CAmB1B;AAED;;;;;;GAMG;AACH,uCALW,KAAK,UAAU,YAEvB;IAA0B,WAAW,GAA7B,OAAO;CACf,GAAU,OAAO,OAAO,CAmB1B;AAED;;;;;;;;;GASG;AACH,qDANG;IAAyB,UAAU,GAA3B,MAAM;IACW,YAAY,GAA7B,MAAM;IACW,QAAQ,GAAzB,MAAM;IACa,WAAW;CACtC,GAAU,OAAO,CAAC,GAAG,CAAC,CA+BxB;AAED;;;;;;GAMG;AACH,8DAJW,MAAM,iBACN,MAAM,GACJ,OAAO,CAAC,GAAG,CAAC,CAWxB;AAED;;;;;GAKG;AACH,qEAFa,OAAO,CAAC,GAAG,CAAC,CAQxB;AAED;;;;GAIG;AACH,2CAHW,KAAK,UAAU,GACb,OAAO,CAAC;IAAC,SAAS,QAAQ;IAAC,MAAM,QAAO;CAAC,CAAC,CAmBtD;AAED;;;;;GAKG;AACH,8DAHW,WAAW,GACT,OAAO,CAAC,GAAG,CAAC,CAgBxB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Unified command wrapper that provides:
3
+ * - Consistent error handling
4
+ * - Standardized output formatting
5
+ * - Execution timing
6
+ * - JSON output support
7
+ *
8
+ * @param {Function} commandFn - Async command function to execute
9
+ * @param {Object} options - Command options
10
+ * @param {string} options.commandName - Name of the command (for error context)
11
+ * @param {boolean} [options.includeTiming=true] - Include execution timing
12
+ * @param {boolean} [options.exitOnError=true] - Exit process on error
13
+ * @param {Object} [options.context={}] - Additional context for error handling
14
+ * @returns {Promise<any>} Command result
15
+ */
16
+ export function commandWrapper(commandFn: Function, options?: {
17
+ commandName: string;
18
+ includeTiming?: boolean;
19
+ exitOnError?: boolean;
20
+ context?: any;
21
+ }): Promise<any>;
22
+ export namespace Output {
23
+ /**
24
+ * Output success message
25
+ * @param {string} message - Success message
26
+ * @param {Object} [data] - Additional data to output
27
+ */
28
+ function success(message: string, data?: any): void;
29
+ /**
30
+ * Output error message
31
+ * @param {string} message - Error message
32
+ * @param {string[]} [suggestions] - Recovery suggestions
33
+ */
34
+ function error(message: string, suggestions?: string[]): void;
35
+ /**
36
+ * Output warning message
37
+ * @param {string} message - Warning message
38
+ * @param {string} [suggestion] - Optional suggestion
39
+ */
40
+ function warning(message: string, suggestion?: string): void;
41
+ /**
42
+ * Output info message
43
+ * @param {string} message - Info message
44
+ * @param {Object} [data] - Additional data
45
+ */
46
+ function info(message: string, data?: any): void;
47
+ /**
48
+ * Output data in JSON format
49
+ * @param {Object} data - Data to output
50
+ * @param {boolean} [success=true] - Whether operation was successful
51
+ */
52
+ function json(data: any, success?: boolean): void;
53
+ /**
54
+ * Output progress message
55
+ * @param {string} message - Progress message
56
+ */
57
+ function progress(message: string): void;
58
+ /**
59
+ * Output section header
60
+ * @param {string} title - Section title
61
+ */
62
+ function section(title: string): void;
63
+ }
64
+ import { isJsonOutput } from "../error-handler";
65
+ export { isJsonOutput };
66
+ //# sourceMappingURL=command-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/command-wrapper.js"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,8DANG;IAAwB,WAAW,EAA3B,MAAM;IACY,aAAa,GAA/B,OAAO;IACW,WAAW,GAA7B,OAAO;IACU,OAAO;CAChC,GAAU,OAAO,CAAC,GAAG,CAAC,CAuCxB;;IAMC;;;;OAIG;IACH,0BAHW,MAAM,oBAmBhB;IAED;;;;OAIG;IACH,wBAHW,MAAM,gBACN,MAAM,EAAE,QAuBlB;IAED;;;;OAIG;IACH,0BAHW,MAAM,eACN,MAAM,QAkBhB;IAED;;;;OAIG;IACH,uBAHW,MAAM,oBAmBhB;IAED;;;;OAIG;IACH,mCAFW,OAAO,QAIjB;IAED;;;OAGG;IACH,2BAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAOhB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Detect CAWS setup in a directory
3
+ * @param {string} cwd - Current working directory
4
+ * @returns {Object} Setup information
5
+ */
6
+ export function detectCAWSSetup(cwd?: string): any;
7
+ /**
8
+ * Find the package root directory by looking for package.json
9
+ * Works in both development (src/) and production (dist/) scenarios
10
+ * @param {string} startDir - Directory to start searching from (defaults to __dirname)
11
+ * @returns {string} Package root directory path
12
+ */
13
+ export function findPackageRoot(startDir?: string): string;
14
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/utils/detection.js"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,sCAHW,MAAM,OAqKhB;AA1LD;;;;;GAKG;AACH,2CAHW,MAAM,GACJ,MAAM,CAalB"}
@@ -0,0 +1,17 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Check for git lock files
3
+ * @param {string} projectRoot - Project root directory
4
+ * @returns {Object} Lock status information
5
+ */
6
+ export function checkGitLock(projectRoot: string): any;
7
+ /**
8
+ * Format git lock error message
9
+ * @param {Object} lockStatus - Lock status from checkGitLock
10
+ * @returns {string} Formatted error message
11
+ */
12
+ export function formatGitLockError(lockStatus: any): string;
13
+ //# sourceMappingURL=git-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-lock.d.ts","sourceRoot":"","sources":["../../src/utils/git-lock.js"],"names":[],"mappings":"AASA;;;;GAIG;AACH,0CAHW,MAAM,OA+DhB;AAED;;;;GAIG;AACH,qDAFa,MAAM,CAgClB"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Update .gitignore to include CAWS runtime file exclusions
3
+ * @param {string} projectRoot - Project root directory
4
+ * @param {Object} options - Options
5
+ * @param {boolean} options.force - Force update even if entries exist
6
+ * @returns {Promise<boolean>} Whether .gitignore was updated
7
+ */
8
+ export function updateGitignore(projectRoot: string, options?: {
9
+ force: boolean;
10
+ }): Promise<boolean>;
11
+ /**
12
+ * Verify .gitignore has proper CAWS entries
13
+ * @param {string} projectRoot - Project root directory
14
+ * @returns {Promise<boolean>} Whether .gitignore has CAWS entries
15
+ */
16
+ export function verifyGitignore(projectRoot: string): Promise<boolean>;
17
+ /**
18
+ * CAWS .gitignore entries
19
+ *
20
+ * Strategy: Track shared/collaborative files, ignore local-only runtime data
21
+ *
22
+ * TRACKED (shared with team):
23
+ * - .caws/working-spec.yaml (main spec)
24
+ * - .caws/specs/*.yaml (feature specs)
25
+ * - .caws/policy.yaml (team policy)
26
+ * - .caws/waivers/*.yaml (project-wide waivers)
27
+ * - .caws/provenance/ (audit trails for compliance)
28
+ * - .caws/changes/ (change tracking for team visibility)
29
+ * - .caws/archive/ (archived changes for history)
30
+ * - .caws/plans/*.md (implementation plans)
31
+ *
32
+ * IGNORED (local-only):
33
+ * - .agent/ (agent runtime tracking, local to each developer)
34
+ * - Temporary files (*.tmp, *.bak)
35
+ * - Logs (caws.log, debug logs)
36
+ * - Local overrides (caws.local.*)
37
+ */
38
+ export const CAWS_GITIGNORE_ENTRIES: "\n# CAWS Local Runtime Data (developer-specific, should not be tracked)\n# ====================================================================\n# Note: Specs, policy, waivers, provenance, and plans ARE tracked for team collaboration\n# Only local agent tracking, generated tools, and temporary files are ignored\n\n# Agent runtime tracking (local to each developer)\n.agent/\n\n# CAWS tools (now in .caws/tools/)\n.caws/tools/\n# Legacy location (for backward compatibility)\napps/tools/caws/\n\n# Temporary CAWS files\n**/*.caws.tmp\n**/*.working-spec.bak\n.caws/*.tmp\n.caws/*.bak\n\n# CAWS logs (local debugging)\ncaws-debug.log*\n**/caws.log\n.caws/*.log\n\n# Local development overrides (developer-specific)\ncaws.local.*\n.caws/local.*\n";
39
+ //# sourceMappingURL=gitignore-updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore-updater.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore-updater.js"],"names":[],"mappings":"AA6DA;;;;;;GAMG;AACH,6CALW,MAAM,YAEd;IAAyB,KAAK,EAAtB,OAAO;CACf,GAAU,OAAO,CAAC,OAAO,CAAC,CA2D5B;AAED;;;;GAIG;AACH,6CAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAW5B;AAnID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,gxBA4BE"}