@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,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,6 @@
1
+ /**
2
+ * Burn-up command handler
3
+ * @param {string} specFile - Path to spec file
4
+ */
5
+ export function burnupCommand(specFile: string): Promise<void>;
6
+ //# sourceMappingURL=burnup.d.ts.map
@@ -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,5 @@
1
+ /**
2
+ * Initialize a new project with CAWS
3
+ */
4
+ export function initProject(projectName: any, options: any): Promise<void>;
5
+ //# sourceMappingURL=init.d.ts.map
@@ -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,6 @@
1
+ /**
2
+ * Run comprehensive quality gates on staged files
3
+ * @param {Object} options - Command options
4
+ */
5
+ export function qualityGatesCommand(options?: any): Promise<any>;
6
+ //# sourceMappingURL=quality-gates.d.ts.map
@@ -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
- await withTimeout(completionPromise, timeoutMs, 'Quality gates execution timed out');
353
- Output.success('Quality gates completed successfully');
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"}