@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.
- package/dist/budget-derivation.d.ts +74 -0
- package/dist/budget-derivation.d.ts.map +1 -0
- package/dist/cicd-optimizer.d.ts +142 -0
- package/dist/cicd-optimizer.d.ts.map +1 -0
- package/dist/commands/archive.d.ts +50 -0
- package/dist/commands/archive.d.ts.map +1 -0
- package/dist/commands/burnup.d.ts +6 -0
- package/dist/commands/burnup.d.ts.map +1 -0
- package/dist/commands/diagnose.d.ts +52 -0
- package/dist/commands/diagnose.d.ts.map +1 -0
- package/dist/commands/evaluate.d.ts +8 -0
- package/dist/commands/evaluate.d.ts.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/iterate.d.ts +8 -0
- package/dist/commands/iterate.d.ts.map +1 -0
- package/dist/commands/mode.d.ts +24 -0
- package/dist/commands/mode.d.ts.map +1 -0
- package/dist/commands/plan.d.ts +49 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/provenance.d.ts +32 -0
- package/dist/commands/provenance.d.ts.map +1 -0
- package/dist/commands/quality-gates.d.ts +6 -0
- package/dist/commands/quality-gates.d.ts.map +1 -0
- package/dist/commands/quality-gates.js +79 -2
- package/dist/commands/quality-monitor.d.ts +17 -0
- package/dist/commands/quality-monitor.d.ts.map +1 -0
- package/dist/commands/specs.d.ts +71 -0
- package/dist/commands/specs.d.ts.map +1 -0
- package/dist/commands/status.d.ts +44 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/templates.d.ts +74 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/tool.d.ts +13 -0
- package/dist/commands/tool.d.ts.map +1 -0
- package/dist/commands/troubleshoot.d.ts +8 -0
- package/dist/commands/troubleshoot.d.ts.map +1 -0
- package/dist/commands/tutorial.d.ts +55 -0
- package/dist/commands/tutorial.d.ts.map +1 -0
- package/dist/commands/validate.d.ts +15 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/waivers.d.ts +8 -0
- package/dist/commands/waivers.d.ts.map +1 -0
- package/dist/commands/workflow.d.ts +85 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/config/index.d.ts +29 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/modes.d.ts +225 -0
- package/dist/config/modes.d.ts.map +1 -0
- package/dist/constants/spec-types.d.ts +41 -0
- package/dist/constants/spec-types.d.ts.map +1 -0
- package/dist/error-handler.d.ts +164 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/generators/jest-config.d.ts +32 -0
- package/dist/generators/jest-config.d.ts.map +1 -0
- package/dist/generators/working-spec.d.ts +13 -0
- package/dist/generators/working-spec.d.ts.map +1 -0
- package/dist/index-new.d.ts +5 -0
- package/dist/index-new.d.ts.map +1 -0
- package/dist/index-new.js +317 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.backup +4711 -0
- package/dist/minimal-cli.d.ts +3 -0
- package/dist/minimal-cli.d.ts.map +1 -0
- package/dist/policy/PolicyManager.d.ts +104 -0
- package/dist/policy/PolicyManager.d.ts.map +1 -0
- package/dist/scaffold/cursor-hooks.d.ts +7 -0
- package/dist/scaffold/cursor-hooks.d.ts.map +1 -0
- package/dist/scaffold/git-hooks.d.ts +38 -0
- package/dist/scaffold/git-hooks.d.ts.map +1 -0
- package/dist/scaffold/index.d.ts +15 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/spec/SpecFileManager.d.ts +146 -0
- package/dist/spec/SpecFileManager.d.ts.map +1 -0
- package/dist/test-analysis.d.ts +182 -0
- package/dist/test-analysis.d.ts.map +1 -0
- package/dist/tool-interface.d.ts +236 -0
- package/dist/tool-interface.d.ts.map +1 -0
- package/dist/tool-loader.d.ts +77 -0
- package/dist/tool-loader.d.ts.map +1 -0
- package/dist/tool-validator.d.ts +72 -0
- package/dist/tool-validator.d.ts.map +1 -0
- package/dist/utils/async-utils.d.ts +73 -0
- package/dist/utils/async-utils.d.ts.map +1 -0
- package/dist/utils/command-wrapper.d.ts +66 -0
- package/dist/utils/command-wrapper.d.ts.map +1 -0
- package/dist/utils/detection.d.ts +14 -0
- package/dist/utils/detection.d.ts.map +1 -0
- package/dist/utils/finalization.d.ts +17 -0
- package/dist/utils/finalization.d.ts.map +1 -0
- package/dist/utils/git-lock.d.ts +13 -0
- package/dist/utils/git-lock.d.ts.map +1 -0
- package/dist/utils/gitignore-updater.d.ts +39 -0
- package/dist/utils/gitignore-updater.d.ts.map +1 -0
- package/dist/utils/project-analysis.d.ts +34 -0
- package/dist/utils/project-analysis.d.ts.map +1 -0
- package/dist/utils/promise-utils.d.ts +30 -0
- package/dist/utils/promise-utils.d.ts.map +1 -0
- package/dist/utils/quality-gates.d.ts +49 -0
- package/dist/utils/quality-gates.d.ts.map +1 -0
- package/dist/utils/spec-resolver.d.ts +80 -0
- package/dist/utils/spec-resolver.d.ts.map +1 -0
- package/dist/utils/typescript-detector.d.ts +63 -0
- package/dist/utils/typescript-detector.d.ts.map +1 -0
- package/dist/utils/yaml-validation.d.ts +32 -0
- package/dist/utils/yaml-validation.d.ts.map +1 -0
- package/dist/validation/spec-validation.d.ts +43 -0
- package/dist/validation/spec-validation.d.ts.map +1 -0
- package/dist/waivers-manager.d.ts +167 -0
- package/dist/waivers-manager.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive budget for a working spec based on policy and waivers
|
|
3
|
+
* Enhanced to use PolicyManager for caching
|
|
4
|
+
* @param {Object} spec - Working spec object
|
|
5
|
+
* @param {string} projectRoot - Project root directory
|
|
6
|
+
* @param {Object} options - Derivation options
|
|
7
|
+
* @param {boolean} options.useCache - Use cached policy (default: true)
|
|
8
|
+
* @returns {Object} Derived budget with baseline and effective limits
|
|
9
|
+
*/
|
|
10
|
+
export function deriveBudget(spec: any, projectRoot?: string, options?: {
|
|
11
|
+
useCache: boolean;
|
|
12
|
+
}): any;
|
|
13
|
+
/**
|
|
14
|
+
* Load a waiver by ID
|
|
15
|
+
* Enhanced with structure validation and detailed error reporting
|
|
16
|
+
* @param {string} waiverId - Waiver ID (e.g., WV-0001)
|
|
17
|
+
* @param {string} projectRoot - Project root directory
|
|
18
|
+
* @returns {Object|null} Waiver object or null if not found
|
|
19
|
+
*/
|
|
20
|
+
export function loadWaiver(waiverId: string, projectRoot: string): any | null;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a waiver is currently valid
|
|
23
|
+
* Enhanced with proper expiry and approval validation
|
|
24
|
+
* @param {Object} waiver - Waiver object
|
|
25
|
+
* @param {Object} policy - Policy configuration (optional)
|
|
26
|
+
* @returns {boolean} Whether waiver is valid and active
|
|
27
|
+
*/
|
|
28
|
+
export function isWaiverValid(waiver: any, policy?: any): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if current changes exceed derived budget
|
|
31
|
+
* @param {Object} derivedBudget - Budget from deriveBudget()
|
|
32
|
+
* @param {Object} currentStats - Current change statistics
|
|
33
|
+
* @returns {Object} Budget check result
|
|
34
|
+
*/
|
|
35
|
+
export function checkBudgetCompliance(derivedBudget: any, currentStats: any): any;
|
|
36
|
+
/**
|
|
37
|
+
* Generate burn-up report for scope visibility
|
|
38
|
+
* Enhanced with utilization metrics and warnings
|
|
39
|
+
* @param {Object} derivedBudget - Budget from deriveBudget()
|
|
40
|
+
* @param {Object} currentStats - Current change statistics
|
|
41
|
+
* @returns {string} Human-readable burn-up report
|
|
42
|
+
*/
|
|
43
|
+
export function generateBurnupReport(derivedBudget: any, currentStats: any): string;
|
|
44
|
+
/**
|
|
45
|
+
* Calculate budget utilization percentages
|
|
46
|
+
* @param {Object} budgetCompliance - Budget compliance result
|
|
47
|
+
* @returns {Object} Utilization percentages
|
|
48
|
+
*/
|
|
49
|
+
export function calculateBudgetUtilization(budgetCompliance: any): any;
|
|
50
|
+
/**
|
|
51
|
+
* Check if changes are approaching budget limit
|
|
52
|
+
* @param {Object} budgetCompliance - Budget compliance result
|
|
53
|
+
* @param {number} threshold - Warning threshold (default 80)
|
|
54
|
+
* @returns {boolean} Whether approaching limit
|
|
55
|
+
*/
|
|
56
|
+
export function isApproachingBudgetLimit(budgetCompliance: any, threshold?: number): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Validate policy structure and content
|
|
59
|
+
* @param {Object} policy - Policy object from policy.yaml
|
|
60
|
+
* @throws {Error} If policy is invalid
|
|
61
|
+
*/
|
|
62
|
+
export function validatePolicy(policy: any): void;
|
|
63
|
+
/**
|
|
64
|
+
* Get default policy as fallback
|
|
65
|
+
* @returns {Object} Default CAWS policy
|
|
66
|
+
*/
|
|
67
|
+
export function getDefaultPolicy(): any;
|
|
68
|
+
/**
|
|
69
|
+
* Validate waiver document structure
|
|
70
|
+
* @param {Object} waiver - Waiver document to validate
|
|
71
|
+
* @throws {Error} If waiver structure is invalid
|
|
72
|
+
*/
|
|
73
|
+
export function validateWaiverStructure(waiver: any): void;
|
|
74
|
+
//# sourceMappingURL=budget-derivation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-derivation.d.ts","sourceRoot":"","sources":["../src/budget-derivation.js"],"names":[],"mappings":"AA8JA;;;;;;;;GAQG;AACH,sDALW,MAAM,YAEd;IAAyB,QAAQ,EAAzB,OAAO;CACf,OAgGF;AA4FD;;;;;;GAMG;AACH,qCAJW,MAAM,eACN,MAAM,GACJ,MAAO,IAAI,CAuCvB;AAED;;;;;;GAMG;AACH,0DAFa,OAAO,CAgDnB;AAED;;;;;GAKG;AACH,kFA8BC;AAqCD;;;;;;GAMG;AACH,6EAFa,MAAM,CA8ClB;AAtFD;;;;GAIG;AACH,uEAiBC;AAED;;;;;GAKG;AACH,4EAHW,MAAM,GACJ,OAAO,CAKnB;AAjgBD;;;;GAIG;AACH,kDA+FC;AAED;;;GAGG;AACH,wCAsCC;AA2GD;;;;GAIG;AACH,2DAmFC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
export = CICDOptimizer;
|
|
2
|
+
declare class CICDOptimizer {
|
|
3
|
+
constructor(options?: {});
|
|
4
|
+
projectRoot: any;
|
|
5
|
+
cacheDir: string;
|
|
6
|
+
optimizationConfig: string;
|
|
7
|
+
/**
|
|
8
|
+
* Analyze project and generate CI/CD optimization recommendations
|
|
9
|
+
*/
|
|
10
|
+
analyzeProject(specPath?: string): Promise<{
|
|
11
|
+
project_tier: string;
|
|
12
|
+
recommended_optimizations: any[];
|
|
13
|
+
cache_strategy: {};
|
|
14
|
+
parallel_groups: any[];
|
|
15
|
+
conditional_execution: {};
|
|
16
|
+
estimated_savings: {};
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Generate tier-based conditional execution rules
|
|
20
|
+
*/
|
|
21
|
+
generateConditionalExecutionRules(tier: any): {
|
|
22
|
+
coverage_required: boolean;
|
|
23
|
+
mutation_required: boolean;
|
|
24
|
+
contract_testing: boolean;
|
|
25
|
+
accessibility_check: boolean;
|
|
26
|
+
performance_budget: boolean;
|
|
27
|
+
security_scan: boolean;
|
|
28
|
+
lint_strict: boolean;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Analyze what optimizations are beneficial for this tier
|
|
32
|
+
*/
|
|
33
|
+
analyzeOptimizationOpportunities(tier: any): Promise<{
|
|
34
|
+
type: string;
|
|
35
|
+
description: string;
|
|
36
|
+
impact: string;
|
|
37
|
+
effort: string;
|
|
38
|
+
}[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Generate intelligent caching strategy
|
|
41
|
+
*/
|
|
42
|
+
generateCacheStrategy(): Promise<{
|
|
43
|
+
node_modules: {
|
|
44
|
+
key: string;
|
|
45
|
+
paths: string[];
|
|
46
|
+
restore_keys: string[];
|
|
47
|
+
};
|
|
48
|
+
build_artifacts: {
|
|
49
|
+
key: string;
|
|
50
|
+
paths: string[];
|
|
51
|
+
restore_keys: any[];
|
|
52
|
+
};
|
|
53
|
+
test_cache: {
|
|
54
|
+
key: string;
|
|
55
|
+
paths: string[];
|
|
56
|
+
restore_keys: string[];
|
|
57
|
+
};
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Create parallel execution groups for quality gates
|
|
61
|
+
*/
|
|
62
|
+
createParallelGroups(): Promise<{
|
|
63
|
+
name: string;
|
|
64
|
+
description: string;
|
|
65
|
+
jobs: string[];
|
|
66
|
+
max_parallel: number;
|
|
67
|
+
timeout: number;
|
|
68
|
+
}[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Analyze changed files to determine what tests to run
|
|
71
|
+
*/
|
|
72
|
+
analyzeChangedFiles(changedFiles?: any[]): Promise<{
|
|
73
|
+
unit: any[];
|
|
74
|
+
integration: any[];
|
|
75
|
+
contract: any[];
|
|
76
|
+
e2e: any[];
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Estimate time savings from optimizations
|
|
80
|
+
*/
|
|
81
|
+
estimateTimeSavings(analysis: any): {
|
|
82
|
+
original_minutes: any;
|
|
83
|
+
optimized_minutes: number;
|
|
84
|
+
savings_percent: number;
|
|
85
|
+
monthly_savings_hours: number;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Generate optimized CI/CD configuration
|
|
89
|
+
*/
|
|
90
|
+
generateOptimizedConfig(platform?: string): Promise<string | {
|
|
91
|
+
name: string;
|
|
92
|
+
on: {
|
|
93
|
+
push: {
|
|
94
|
+
branches: string[];
|
|
95
|
+
};
|
|
96
|
+
pull_request: {
|
|
97
|
+
branches: string[];
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
jobs: {};
|
|
101
|
+
} | {
|
|
102
|
+
stages: string[];
|
|
103
|
+
cache: {
|
|
104
|
+
key: string;
|
|
105
|
+
paths: string[];
|
|
106
|
+
};
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Generate optimized GitHub Actions workflow
|
|
110
|
+
*/
|
|
111
|
+
generateGitHubActionsConfig(analysis: any): {
|
|
112
|
+
name: string;
|
|
113
|
+
on: {
|
|
114
|
+
push: {
|
|
115
|
+
branches: string[];
|
|
116
|
+
};
|
|
117
|
+
pull_request: {
|
|
118
|
+
branches: string[];
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
jobs: {};
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Generate GitLab CI configuration
|
|
125
|
+
*/
|
|
126
|
+
generateGitLabCIConfig(analysis: any): {
|
|
127
|
+
stages: string[];
|
|
128
|
+
cache: {
|
|
129
|
+
key: string;
|
|
130
|
+
paths: string[];
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Generate Jenkins pipeline configuration
|
|
135
|
+
*/
|
|
136
|
+
generateJenkinsConfig(analysis: any): string;
|
|
137
|
+
/**
|
|
138
|
+
* Create hash for cache invalidation
|
|
139
|
+
*/
|
|
140
|
+
createCacheHash(files: any): string;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=cicd-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cicd-optimizer.d.ts","sourceRoot":"","sources":["../src/cicd-optimizer.js"],"names":[],"mappings":";AAaA;IACE,0BASC;IARC,iBAAuD;IACvD,iBAA6D;IAC7D,2BAAkF;IAQpF;;OAEG;IACH;;;;;;;OAyCC;IAED;;OAEG;IACH;;;;;;;;MAyBC;IAED;;OAEG;IACH;;;;;SA6CC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;;OA8CC;IAED;;OAEG;IACH;;;;;;SA0BC;IAED;;OAEG;IACH;;;;;OA2BC;IAED;;OAEG;IACH;;;;;MA+BC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;;;OAYC;IAED;;OAEG;IACH;;;;;;;;;;;MA4EC;IAED;;OAEG;IACH;;;;;;MAiCC;IAED;;OAEG;IACH,6CA+CC;IAED;;OAEG;IACH,oCAQC;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Archive command handler
|
|
3
|
+
* @param {string} changeId - Change identifier to archive
|
|
4
|
+
* @param {Object} options - Command options
|
|
5
|
+
*/
|
|
6
|
+
export function archiveCommand(changeId: string, options?: any): Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* Load change folder structure
|
|
9
|
+
* @param {string} changeId - Change identifier
|
|
10
|
+
* @returns {Promise<Object|null>} Change data or null
|
|
11
|
+
*/
|
|
12
|
+
export function loadChange(changeId: string): Promise<any | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Validate all acceptance criteria are met
|
|
15
|
+
* @param {Object} workingSpec - Working specification
|
|
16
|
+
* @returns {Promise<Object>} Validation result
|
|
17
|
+
*/
|
|
18
|
+
export function validateAcceptanceCriteria(workingSpec: any): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Validate change meets quality gates
|
|
21
|
+
* @param {string} changeId - Change identifier
|
|
22
|
+
* @returns {Promise<Object>} Quality gate result
|
|
23
|
+
*/
|
|
24
|
+
export function validateQualityGates(_changeId: any): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Generate change summary for archival
|
|
27
|
+
* @param {Object} change - Change data
|
|
28
|
+
* @returns {Promise<string>} Summary text
|
|
29
|
+
*/
|
|
30
|
+
export function generateChangeSummary(change: any): Promise<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Archive change folder to archive directory
|
|
33
|
+
* @param {Object} change - Change data
|
|
34
|
+
* @returns {Promise<void>}
|
|
35
|
+
*/
|
|
36
|
+
export function archiveChange(change: any): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Update provenance with completion
|
|
39
|
+
* @param {Object} change - Change data
|
|
40
|
+
* @returns {Promise<void>}
|
|
41
|
+
*/
|
|
42
|
+
export function updateProvenance(change: any): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Display archive results
|
|
45
|
+
* @param {Object} change - Change data
|
|
46
|
+
* @param {Object} validation - Validation result
|
|
47
|
+
* @param {Object} qualityGates - Quality gates result
|
|
48
|
+
*/
|
|
49
|
+
export function displayArchiveResults(change: any, validation: any, qualityGates: any): void;
|
|
50
|
+
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.js"],"names":[],"mappings":"AA8OA;;;;GAIG;AACH,yCAHW,MAAM,+BAqGhB;AAtUD;;;;GAIG;AACH,qCAHW,MAAM,GACJ,OAAO,CAAC,MAAO,IAAI,CAAC,CAgChC;AAED;;;;GAIG;AACH,8DAFa,OAAO,KAAQ,CA8B3B;AAED;;;;GAIG;AACH,sDAFa,OAAO,KAAQ,CAS3B;AAED;;;;GAIG;AACH,oDAFa,OAAO,CAAC,MAAM,CAAC,CAgC3B;AAED;;;;GAIG;AACH,4CAFa,OAAO,CAAC,IAAI,CAAC,CAazB;AAED;;;;GAIG;AACH,+CAFa,OAAO,CAAC,IAAI,CAAC,CAoCzB;AAED;;;;;GAKG;AACH,6FAiCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"burnup.d.ts","sourceRoot":"","sources":["../../src/commands/burnup.js"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wCAFW,MAAM,iBAsEhB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnose command handler
|
|
3
|
+
* @param {Object} options - Command options
|
|
4
|
+
*/
|
|
5
|
+
export function diagnoseCommand(options?: any): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Run all health checks
|
|
8
|
+
* @returns {Promise<Object>} Diagnosis results
|
|
9
|
+
*/
|
|
10
|
+
export function runDiagnosis(): Promise<any>;
|
|
11
|
+
/**
|
|
12
|
+
* Display diagnosis results
|
|
13
|
+
* @param {Object[]} results - Diagnosis results
|
|
14
|
+
*/
|
|
15
|
+
export function displayResults(results: any[]): void;
|
|
16
|
+
/**
|
|
17
|
+
* Apply automatic fixes
|
|
18
|
+
* @param {Object[]} results - Diagnosis results
|
|
19
|
+
* @returns {Promise<Object>} Fix results
|
|
20
|
+
*/
|
|
21
|
+
export function applyAutoFixes(results: any[]): Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* Health check: Working spec validity
|
|
24
|
+
* @returns {Promise<Object>} Check result
|
|
25
|
+
*/
|
|
26
|
+
export function checkWorkingSpec(): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
* Health check: Git repository
|
|
29
|
+
* @returns {Promise<Object>} Check result
|
|
30
|
+
*/
|
|
31
|
+
export function checkGitSetup(): Promise<any>;
|
|
32
|
+
/**
|
|
33
|
+
* Health check: Git hooks
|
|
34
|
+
* @returns {Promise<Object>} Check result
|
|
35
|
+
*/
|
|
36
|
+
export function checkGitHooks(): Promise<any>;
|
|
37
|
+
/**
|
|
38
|
+
* Health check: TypeScript configuration
|
|
39
|
+
* @returns {Promise<Object>} Check result
|
|
40
|
+
*/
|
|
41
|
+
export function checkTypeScriptConfig(): Promise<any>;
|
|
42
|
+
/**
|
|
43
|
+
* Health check: Test files exist
|
|
44
|
+
* @returns {Promise<Object>} Check result
|
|
45
|
+
*/
|
|
46
|
+
export function checkTestFiles(): Promise<any>;
|
|
47
|
+
/**
|
|
48
|
+
* Health check: CAWS tools directory
|
|
49
|
+
* @returns {Promise<Object>} Check result
|
|
50
|
+
*/
|
|
51
|
+
export function checkCAWSTools(): Promise<any>;
|
|
52
|
+
//# sourceMappingURL=diagnose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/commands/diagnose.js"],"names":[],"mappings":"AA0bA;;;GAGG;AACH,8DAoDC;AAvND;;;GAGG;AACH,gCAFa,OAAO,KAAQ,CAkD3B;AAED;;;GAGG;AACH,wCAFW,KAAQ,QA4ClB;AAED;;;;GAIG;AACH,wCAHW,KAAQ,GACN,OAAO,KAAQ,CAoD3B;AAzaD;;;GAGG;AACH,oCAFa,OAAO,KAAQ,CA2C3B;AAED;;;GAGG;AACH,iCAFa,OAAO,KAAQ,CAiB3B;AAED;;;GAGG;AACH,iCAFa,OAAO,KAAQ,CA0C3B;AAED;;;GAGG;AACH,yCAFa,OAAO,KAAQ,CAgE3B;AAED;;;GAGG;AACH,kCAFa,OAAO,KAAQ,CAoC3B;AAED;;;GAGG;AACH,kCAFa,OAAO,KAAQ,CA0C3B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate command handler
|
|
3
|
+
*
|
|
4
|
+
* @param {string} specFile - Path to working spec file
|
|
5
|
+
* @param {object} options - Command options
|
|
6
|
+
*/
|
|
7
|
+
export function evaluateCommand(specFile?: string, options?: object): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=evaluate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/commands/evaluate.js"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,2CAHW,MAAM,YACN,MAAM,iBA0QhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,2EAwiBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iterate command handler
|
|
3
|
+
*
|
|
4
|
+
* @param {string} specFile - Path to working spec file
|
|
5
|
+
* @param {object} options - Command options
|
|
6
|
+
*/
|
|
7
|
+
export function iterateCommand(specFile?: string, options?: object): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=iterate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterate.d.ts","sourceRoot":"","sources":["../../src/commands/iterate.js"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,0CAHW,MAAM,YACN,MAAM,iBAgLhB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mode command handler
|
|
3
|
+
* @param {string} action - Action to perform (current, set, compare, recommend)
|
|
4
|
+
* @param {Object} options - Command options
|
|
5
|
+
*/
|
|
6
|
+
export function modeCommand(action: string, options?: any): Promise<any>;
|
|
7
|
+
import { getCurrentMode } from "../config/modes";
|
|
8
|
+
import { setCurrentMode } from "../config/modes";
|
|
9
|
+
/**
|
|
10
|
+
* Display current mode status
|
|
11
|
+
*/
|
|
12
|
+
export function displayCurrentMode(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Display mode details
|
|
15
|
+
* @param {string} mode - Mode to display
|
|
16
|
+
*/
|
|
17
|
+
export function displayModeDetails(mode: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Interactive mode selection
|
|
20
|
+
* @returns {Promise<string>} Selected mode
|
|
21
|
+
*/
|
|
22
|
+
export function interactiveModeSelection(): Promise<string>;
|
|
23
|
+
export { getCurrentMode, setCurrentMode };
|
|
24
|
+
//# sourceMappingURL=mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/commands/mode.js"],"names":[],"mappings":"AAuHA;;;;GAIG;AACH,oCAHW,MAAM,+BAgIhB;;;AAvOD;;GAEG;AACH,2CAOC;AAED;;;GAGG;AACH,yCAFW,MAAM,QA+ChB;AAED;;;GAGG;AACH,4CAFa,OAAO,CAAC,MAAM,CAAC,CAkC3B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan command handler
|
|
3
|
+
* @param {string} action - Action to perform (generate)
|
|
4
|
+
* @param {Object} options - Command options
|
|
5
|
+
*/
|
|
6
|
+
export function planCommand(action: string, options?: any): Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* Generate implementation plan from spec
|
|
9
|
+
* @param {Object} spec - Spec data
|
|
10
|
+
* @returns {Object} Generated plan
|
|
11
|
+
*/
|
|
12
|
+
export function generateImplementationPlan(spec: any): any;
|
|
13
|
+
/**
|
|
14
|
+
* Write plan to file
|
|
15
|
+
* @param {Object} plan - Plan data
|
|
16
|
+
* @param {string} outputPath - Output file path
|
|
17
|
+
* @returns {Promise<void>}
|
|
18
|
+
*/
|
|
19
|
+
export function writePlanToFile(plan: any, outputPath: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Generate markdown content from plan
|
|
22
|
+
* @param {Object} plan - Plan data
|
|
23
|
+
* @returns {string} Markdown content
|
|
24
|
+
*/
|
|
25
|
+
export function generatePlanMarkdown(plan: any): string;
|
|
26
|
+
/**
|
|
27
|
+
* Display generated plan
|
|
28
|
+
* @param {Object} plan - Plan data
|
|
29
|
+
*/
|
|
30
|
+
export function displayGeneratedPlan(plan: any): void;
|
|
31
|
+
export namespace PLAN_TEMPLATES {
|
|
32
|
+
namespace feature {
|
|
33
|
+
let sections: string[];
|
|
34
|
+
let defaultTasks: string[];
|
|
35
|
+
}
|
|
36
|
+
namespace fix {
|
|
37
|
+
let sections_1: string[];
|
|
38
|
+
export { sections_1 as sections };
|
|
39
|
+
let defaultTasks_1: string[];
|
|
40
|
+
export { defaultTasks_1 as defaultTasks };
|
|
41
|
+
}
|
|
42
|
+
namespace refactor {
|
|
43
|
+
let sections_2: string[];
|
|
44
|
+
export { sections_2 as sections };
|
|
45
|
+
let defaultTasks_2: string[];
|
|
46
|
+
export { defaultTasks_2 as defaultTasks };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.js"],"names":[],"mappings":"AA6XA;;;;GAIG;AACH,oCAHW,MAAM,+BAuDhB;AA1OD;;;;GAIG;AACH,2DA8CC;AAED;;;;;GAKG;AACH,uDAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAQzB;AAED;;;;GAIG;AACH,iDAFa,MAAM,CAiElB;AAED;;;GAGG;AACH,sDAkCC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance command handler
|
|
3
|
+
* @param {string} subcommand - The subcommand to execute
|
|
4
|
+
* @param {Object} options - Command options
|
|
5
|
+
*/
|
|
6
|
+
export function provenanceCommand(subcommand: string, options: any): Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* Update provenance with new commit information
|
|
9
|
+
* @param {Object} options - Command options
|
|
10
|
+
*/
|
|
11
|
+
export function updateProvenance(options: any): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Show current provenance information
|
|
14
|
+
* @param {Object} options - Command options
|
|
15
|
+
*/
|
|
16
|
+
export function showProvenance(options: any): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Verify provenance chain integrity
|
|
19
|
+
* @param {Object} options - Command options
|
|
20
|
+
*/
|
|
21
|
+
export function verifyProvenance(options: any): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize provenance tracking for the project
|
|
24
|
+
* @param {Object} options - Command options
|
|
25
|
+
*/
|
|
26
|
+
export function initProvenance(options: any): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Install git hooks for automatic provenance updates
|
|
29
|
+
* @param {Object} options - Command options
|
|
30
|
+
*/
|
|
31
|
+
export function installHooks(options: any): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/commands/provenance.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,8CAHW,MAAM,8BA+BhB;AAED;;;GAGG;AACH,8DA4EC;AAED;;;GAGG;AACH,4DAyEC;AAED;;;GAGG;AACH,8DA8CC;AA6iBD;;;GAGG;AACH,4DAmEC;AAzcD;;;GAGG;AACH,0DAwEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/commands/quality-gates.js"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,iEA4ZC"}
|
|
@@ -212,6 +212,12 @@ async function qualityGatesCommand(options = {}) {
|
|
|
212
212
|
if (options.fix) {
|
|
213
213
|
npxArgs.push('--fix');
|
|
214
214
|
}
|
|
215
|
+
// Handle context options: --all-files takes precedence, then --context
|
|
216
|
+
if (options.allFiles) {
|
|
217
|
+
npxArgs.push('--context=ci');
|
|
218
|
+
} else if (options.context && options.context !== 'commit') {
|
|
219
|
+
npxArgs.push(`--context=${options.context}`);
|
|
220
|
+
}
|
|
215
221
|
|
|
216
222
|
Output.progress('Executing quality gates via npx...');
|
|
217
223
|
Output.info(`Command: ${npxArgs.join(' ')}`);
|
|
@@ -310,6 +316,13 @@ async function qualityGatesCommand(options = {}) {
|
|
|
310
316
|
args.push('--fix');
|
|
311
317
|
}
|
|
312
318
|
|
|
319
|
+
// Handle context options: --all-files takes precedence, then --context
|
|
320
|
+
if (options.allFiles) {
|
|
321
|
+
args.push('--context=ci');
|
|
322
|
+
} else if (options.context && options.context !== 'commit') {
|
|
323
|
+
args.push(`--context=${options.context}`);
|
|
324
|
+
}
|
|
325
|
+
|
|
313
326
|
// Add CAWS-specific environment variables for integration
|
|
314
327
|
const env = {
|
|
315
328
|
...process.env,
|
|
@@ -336,7 +349,47 @@ async function qualityGatesCommand(options = {}) {
|
|
|
336
349
|
const timeoutMs = options.timeout || (options.ci ? 30 * 60 * 1000 : 10 * 60 * 1000);
|
|
337
350
|
|
|
338
351
|
const completionPromise = new Promise((resolve, reject) => {
|
|
352
|
+
let resolved = false;
|
|
353
|
+
|
|
354
|
+
// Handle process termination signals
|
|
355
|
+
const signalHandlers = {
|
|
356
|
+
SIGINT: () => {
|
|
357
|
+
if (!resolved && !child.killed && child.pid) {
|
|
358
|
+
child.kill('SIGINT');
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
SIGTERM: () => {
|
|
362
|
+
if (!resolved && !child.killed && child.pid) {
|
|
363
|
+
child.kill('SIGTERM');
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
process.on('SIGINT', signalHandlers.SIGINT);
|
|
369
|
+
process.on('SIGTERM', signalHandlers.SIGTERM);
|
|
370
|
+
|
|
371
|
+
const cleanup = () => {
|
|
372
|
+
if (resolved) return;
|
|
373
|
+
resolved = true;
|
|
374
|
+
|
|
375
|
+
// Remove signal handlers
|
|
376
|
+
try {
|
|
377
|
+
process.removeListener('SIGINT', signalHandlers.SIGINT);
|
|
378
|
+
process.removeListener('SIGTERM', signalHandlers.SIGTERM);
|
|
379
|
+
} catch (e) {
|
|
380
|
+
// Ignore errors removing listeners
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Remove event listeners to prevent memory leaks
|
|
384
|
+
try {
|
|
385
|
+
child.removeAllListeners();
|
|
386
|
+
} catch (e) {
|
|
387
|
+
// Ignore errors removing listeners
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
|
|
339
391
|
child.on('close', (code) => {
|
|
392
|
+
cleanup();
|
|
340
393
|
if (code === 0) {
|
|
341
394
|
resolve();
|
|
342
395
|
} else {
|
|
@@ -345,12 +398,36 @@ async function qualityGatesCommand(options = {}) {
|
|
|
345
398
|
});
|
|
346
399
|
|
|
347
400
|
child.on('error', (error) => {
|
|
401
|
+
cleanup();
|
|
348
402
|
reject(new Error(`Failed to execute quality gates runner: ${error.message}`));
|
|
349
403
|
});
|
|
350
404
|
});
|
|
351
405
|
|
|
352
|
-
|
|
353
|
-
|
|
406
|
+
try {
|
|
407
|
+
await withTimeout(completionPromise, timeoutMs, 'Quality gates execution timed out');
|
|
408
|
+
Output.success('Quality gates completed successfully');
|
|
409
|
+
} catch (error) {
|
|
410
|
+
// Ensure child process is killed on timeout or error
|
|
411
|
+
try {
|
|
412
|
+
if (!child.killed && child.pid) {
|
|
413
|
+
child.kill('SIGTERM');
|
|
414
|
+
// Give it a moment to exit gracefully, then force kill
|
|
415
|
+
// eslint-disable-next-line no-undef
|
|
416
|
+
setTimeout(() => {
|
|
417
|
+
if (!child.killed && child.pid) {
|
|
418
|
+
try {
|
|
419
|
+
child.kill('SIGKILL');
|
|
420
|
+
} catch (e) {
|
|
421
|
+
// Ignore errors killing process
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}, 1000);
|
|
425
|
+
}
|
|
426
|
+
} catch (killError) {
|
|
427
|
+
// Ignore errors killing process
|
|
428
|
+
}
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
354
431
|
},
|
|
355
432
|
{
|
|
356
433
|
commandName: 'quality-gates',
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality monitor command handler
|
|
3
|
+
*
|
|
4
|
+
* @param {string} action - Type of action to monitor
|
|
5
|
+
* @param {object} options - Command options
|
|
6
|
+
*/
|
|
7
|
+
export function qualityMonitorCommand(action: string, options?: object): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Analyze quality impact of an action
|
|
10
|
+
*
|
|
11
|
+
* @param {string} action - Type of action (file_saved, code_edited, test_run)
|
|
12
|
+
* @param {array} files - Files affected by the action
|
|
13
|
+
* @param {object} context - Additional context information
|
|
14
|
+
* @returns {object} Quality analysis
|
|
15
|
+
*/
|
|
16
|
+
export function analyzeQualityImpact(action: string, files?: any[], context?: object): object;
|
|
17
|
+
//# sourceMappingURL=quality-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-monitor.d.ts","sourceRoot":"","sources":["../../src/commands/quality-monitor.js"],"names":[],"mappings":"AAoIA;;;;;GAKG;AACH,8CAHW,MAAM,YACN,MAAM,iBA2HhB;AArPD;;;;;;;GAOG;AACH,6CALW,MAAM,2BAEN,MAAM,GACJ,MAAM,CA8GlB"}
|