@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,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect project type from existing files and structure
|
|
3
|
+
* @param {string} cwd - Current working directory
|
|
4
|
+
* @returns {string} Project type
|
|
5
|
+
*/
|
|
6
|
+
export function detectProjectType(cwd?: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Detect if current directory appears to be a project that should be initialized directly
|
|
9
|
+
* @param {string} projectName - Project name from command line
|
|
10
|
+
* @param {string} currentDir - Current directory path
|
|
11
|
+
* @returns {boolean} Whether to init in current directory
|
|
12
|
+
*/
|
|
13
|
+
export function shouldInitInCurrentDirectory(projectName: string, currentDir: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Detect if project publishes packages to registries
|
|
16
|
+
* Checks for publishing configuration in package.json, pyproject.toml, etc.
|
|
17
|
+
* @param {string} cwd - Current working directory
|
|
18
|
+
* @returns {boolean} Whether project appears to publish packages
|
|
19
|
+
*/
|
|
20
|
+
export function detectsPublishing(cwd?: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Detect primary programming language(s) used in project
|
|
23
|
+
* @param {string} cwd - Current working directory
|
|
24
|
+
* @returns {Object} Language detection result with primary language and indicators
|
|
25
|
+
*/
|
|
26
|
+
export function detectProjectLanguage(cwd?: string): any;
|
|
27
|
+
/**
|
|
28
|
+
* Get language-agnostic suggestion for TODO analyzer installation
|
|
29
|
+
* Focuses on runtime availability (Node.js/npx) rather than project language
|
|
30
|
+
* @param {string} cwd - Current working directory
|
|
31
|
+
* @returns {string} Installation suggestion message
|
|
32
|
+
*/
|
|
33
|
+
export function getTodoAnalyzerSuggestion(cwd?: string): string;
|
|
34
|
+
//# sourceMappingURL=project-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-analysis.d.ts","sourceRoot":"","sources":["../../src/utils/project-analysis.js"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wCAHW,MAAM,GACJ,MAAM,CAmDlB;AAED;;;;;GAKG;AACH,0DAJW,MAAM,cACN,MAAM,GACJ,OAAO,CA8BnB;AAED;;;;;GAKG;AACH,wCAHW,MAAM,GACJ,OAAO,CAsFnB;AAED;;;;GAIG;AACH,4CAHW,MAAM,OAiHhB;AAED;;;;;GAKG;AACH,gDAHW,MAAM,GACJ,MAAM,CA6ClB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Promise Utilities
|
|
3
|
+
* Utilities for converting callback-based APIs to promises
|
|
4
|
+
* @author @darianrosebrook
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Convert readline question to promise
|
|
8
|
+
* @param {readline.Interface} rl - Readline interface
|
|
9
|
+
* @param {string} question - Question to ask
|
|
10
|
+
* @returns {Promise<string>} User's answer
|
|
11
|
+
*/
|
|
12
|
+
export function question(rl: readline.Interface, questionText: any): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Close readline interface and return promise
|
|
15
|
+
* @param {readline.Interface} rl - Readline interface
|
|
16
|
+
* @returns {Promise<void>}
|
|
17
|
+
*/
|
|
18
|
+
export function closeReadline(rl: readline.Interface): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Create a promise that resolves when event fires
|
|
21
|
+
* @param {EventEmitter} emitter - Event emitter
|
|
22
|
+
* @param {string} event - Event name
|
|
23
|
+
* @param {Object} options - Options
|
|
24
|
+
* @param {number} [options.timeout] - Timeout in ms
|
|
25
|
+
* @returns {Promise<any>} Event data
|
|
26
|
+
*/
|
|
27
|
+
export function once(emitter: EventEmitter, event: string, options?: {
|
|
28
|
+
timeout?: number;
|
|
29
|
+
}): Promise<any>;
|
|
30
|
+
//# sourceMappingURL=promise-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-utils.d.ts","sourceRoot":"","sources":["../../src/utils/promise-utils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,6BAJW,QAAQ,CAAC,SAAS,sBAEhB,OAAO,CAAC,MAAM,CAAC,CAQ3B;AAED;;;;GAIG;AACH,kCAHW,QAAQ,CAAC,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAOzB;AAED;;;;;;;GAOG;AACH,8BANW,YAAY,SACZ,MAAM,YAEd;IAAyB,OAAO,GAAxB,MAAM;CACd,GAAU,OAAO,CAAC,GAAG,CAAC,CAyBxB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get staged files from git
|
|
3
|
+
* @returns {string[]} Array of staged file paths
|
|
4
|
+
*/
|
|
5
|
+
export function getStagedFiles(): string[];
|
|
6
|
+
/**
|
|
7
|
+
* Check for god objects in staged files
|
|
8
|
+
* @param {string[]} stagedFiles - Array of staged file paths
|
|
9
|
+
* @param {string} language - Language to check ('rust', 'typescript', etc.)
|
|
10
|
+
* @returns {Object} God object analysis results
|
|
11
|
+
*/
|
|
12
|
+
export function checkGodObjects(stagedFiles: string[], language?: string): any;
|
|
13
|
+
/**
|
|
14
|
+
* Check for hidden TODOs in staged files
|
|
15
|
+
* @param {string[]} stagedFiles - Array of staged file paths
|
|
16
|
+
* @returns {Object} TODO analysis results
|
|
17
|
+
*/
|
|
18
|
+
export function checkHiddenTodos(stagedFiles: string[]): any;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a waiver applies to the given gate
|
|
21
|
+
* @param {string} gate - Gate name to check
|
|
22
|
+
* @returns {Object} Waiver check result
|
|
23
|
+
*/
|
|
24
|
+
export function checkWaiver(gate: string): any;
|
|
25
|
+
/**
|
|
26
|
+
* Detect if project is in crisis response mode
|
|
27
|
+
* @returns {boolean} True if in crisis mode
|
|
28
|
+
*/
|
|
29
|
+
export function detectCrisisMode(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Run comprehensive quality gates on staged files
|
|
32
|
+
* @param {Object} options - Options for quality gates
|
|
33
|
+
* @returns {Object} Quality gate results
|
|
34
|
+
*/
|
|
35
|
+
export function runQualityGates(options?: any): any;
|
|
36
|
+
export namespace CONFIG {
|
|
37
|
+
namespace godObjectThresholds {
|
|
38
|
+
let warning: number;
|
|
39
|
+
let critical: number;
|
|
40
|
+
}
|
|
41
|
+
let todoConfidenceThreshold: number;
|
|
42
|
+
let supportedExtensions: string[];
|
|
43
|
+
namespace crisisResponseThresholds {
|
|
44
|
+
export let godObjectCritical: number;
|
|
45
|
+
let todoConfidenceThreshold_1: number;
|
|
46
|
+
export { todoConfidenceThreshold_1 as todoConfidenceThreshold };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=quality-gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/utils/quality-gates.js"],"names":[],"mappings":"AA0GA;;;GAGG;AACH,kCAFa,MAAM,EAAE,CAcpB;AAED;;;;;GAKG;AACH,6CAJW,MAAM,EAAE,aACR,MAAM,OAqDhB;AAED;;;;GAIG;AACH,8CAHW,MAAM,EAAE,OAmFlB;AA5OD;;;;GAIG;AACH,kCAHW,MAAM,OAiChB;AAED;;;GAGG;AACH,oCAFa,OAAO,CAkCnB;AAqKD;;;;GAIG;AACH,oDAqHC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve spec file path based on priority
|
|
3
|
+
* @param {Object} options - Resolution options
|
|
4
|
+
* @param {string} [options.specId] - Feature-specific spec ID (e.g., 'user-auth', 'FEAT-001')
|
|
5
|
+
* @param {string} [options.specFile] - Explicit file path override
|
|
6
|
+
* @param {boolean} [options.warnLegacy=true] - Warn when falling back to legacy spec
|
|
7
|
+
* @param {boolean} [options.interactive=false] - Use interactive spec selection for multiple specs
|
|
8
|
+
* @returns {Promise<{path: string, type: 'feature' | 'legacy', spec: Object}>}
|
|
9
|
+
*/
|
|
10
|
+
export function resolveSpec(options?: {
|
|
11
|
+
specId?: string;
|
|
12
|
+
specFile?: string;
|
|
13
|
+
warnLegacy?: boolean;
|
|
14
|
+
interactive?: boolean;
|
|
15
|
+
}): Promise<{
|
|
16
|
+
path: string;
|
|
17
|
+
type: "feature" | "legacy";
|
|
18
|
+
spec: any;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* List all available specs
|
|
22
|
+
* @returns {Promise<Array<{id: string, path: string, type: string}>>}
|
|
23
|
+
*/
|
|
24
|
+
export function listAvailableSpecs(): Promise<Array<{
|
|
25
|
+
id: string;
|
|
26
|
+
path: string;
|
|
27
|
+
type: string;
|
|
28
|
+
}>>;
|
|
29
|
+
/**
|
|
30
|
+
* Check if project is using multi-spec architecture
|
|
31
|
+
* @returns {Promise<{isMultiSpec: boolean, specCount: number, needsMigration: boolean}>}
|
|
32
|
+
*/
|
|
33
|
+
export function checkMultiSpecStatus(): Promise<{
|
|
34
|
+
isMultiSpec: boolean;
|
|
35
|
+
specCount: number;
|
|
36
|
+
needsMigration: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Check for scope conflicts between specs
|
|
40
|
+
* @param {string[]} specIds - Array of spec IDs to check
|
|
41
|
+
* @returns {Promise<Array<{spec1: string, spec2: string, conflicts: string[]}>>} Array of conflicts
|
|
42
|
+
*/
|
|
43
|
+
export function checkScopeConflicts(specIds: string[]): Promise<Array<{
|
|
44
|
+
spec1: string;
|
|
45
|
+
spec2: string;
|
|
46
|
+
conflicts: string[];
|
|
47
|
+
}>>;
|
|
48
|
+
/**
|
|
49
|
+
* Suggest migration from legacy to multi-spec
|
|
50
|
+
* @returns {Promise<void>}
|
|
51
|
+
*/
|
|
52
|
+
export function suggestMigration(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Interactive spec selection using readline
|
|
55
|
+
* @param {string[]} specIds - Available spec IDs
|
|
56
|
+
* @returns {Promise<string>} Selected spec ID
|
|
57
|
+
*/
|
|
58
|
+
export function interactiveSpecSelection(specIds: string[]): Promise<string>;
|
|
59
|
+
/**
|
|
60
|
+
* Load specs registry
|
|
61
|
+
* @returns {Promise<Object>} Registry data
|
|
62
|
+
*/
|
|
63
|
+
export function loadSpecsRegistry(): Promise<any>;
|
|
64
|
+
export function suggestFeatureBreakdown(legacySpec: any): any[];
|
|
65
|
+
/**
|
|
66
|
+
* Check if two paths overlap (simplified implementation)
|
|
67
|
+
* @param {string} path1 - First path
|
|
68
|
+
* @param {string} path2 - Second path
|
|
69
|
+
* @returns {boolean} True if paths overlap
|
|
70
|
+
*/
|
|
71
|
+
export function pathsOverlap(path1: string, path2: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Spec resolution priority:
|
|
74
|
+
* 1. .caws/specs/<spec-id>.yaml (feature-specific, multi-agent safe)
|
|
75
|
+
* 2. .caws/working-spec.yaml (legacy, single-agent only)
|
|
76
|
+
*/
|
|
77
|
+
export const SPECS_DIR: ".caws/specs";
|
|
78
|
+
export const LEGACY_SPEC: ".caws/working-spec.yaml";
|
|
79
|
+
export const SPECS_REGISTRY: ".caws/specs/registry.json";
|
|
80
|
+
//# sourceMappingURL=spec-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/spec-resolver.js"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,sCANG;IAAyB,MAAM,GAAvB,MAAM;IACW,QAAQ,GAAzB,MAAM;IACY,UAAU,GAA5B,OAAO;IACW,WAAW,GAA7B,OAAO;CACf,GAAU,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,IAAI,MAAQ;CAAC,CAAC,CA+K7E;AA6BD;;;GAGG;AACH,sCAFa,OAAO,CAAC,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAoDpE;AAgDD;;;GAGG;AACH,wCAFa,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAC,CAAC,CAavF;AAED;;;;GAIG;AACH,6CAHW,MAAM,EAAE,GACN,OAAO,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC,CAAC,CAwE/E;AA+DD;;;GAGG;AACH,oCAFa,OAAO,CAAC,IAAI,CAAC,CAczB;AAzND;;;;GAIG;AACH,kDAHW,MAAM,EAAE,GACN,OAAO,CAAC,MAAM,CAAC,CAyC3B;AA/HD;;;GAGG;AACH,qCAFa,OAAO,KAAQ,CAuB3B;AAsRD,gEAmGC;AAnLD;;;;;GAKG;AACH,oCAJW,MAAM,SACN,MAAM,GACJ,OAAO,CAuDnB;AA3dD;;;;GAIG;AACH,wBAAkB,aAAa,CAAC;AAChC,0BAAoB,yBAAyB,CAAC;AAC9C,6BAAuB,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect if project is using TypeScript
|
|
3
|
+
* @param {string} projectDir - Project directory path
|
|
4
|
+
* @returns {Object} TypeScript detection result
|
|
5
|
+
*/
|
|
6
|
+
export function detectTypeScript(projectDir?: string): any;
|
|
7
|
+
/**
|
|
8
|
+
* Detect testing framework in use
|
|
9
|
+
* @param {string} projectDir - Project directory path
|
|
10
|
+
* @param {Object} packageJson - Parsed package.json (optional)
|
|
11
|
+
* @returns {Object} Testing framework detection result
|
|
12
|
+
*/
|
|
13
|
+
export function detectTestFramework(projectDir?: string, packageJson?: any): any;
|
|
14
|
+
export function getWorkspaceDirectories(projectDir?: string): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Get workspace directories from package.json
|
|
17
|
+
* @param {string} projectDir - Project directory path
|
|
18
|
+
* @returns {string[]} Array of workspace directories
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Get workspace directories from npm/yarn package.json workspaces
|
|
22
|
+
* @param {string} projectDir - Project directory path
|
|
23
|
+
* @returns {string[]} Array of workspace directories
|
|
24
|
+
*/
|
|
25
|
+
export function getNpmWorkspaces(projectDir: string): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get workspace directories from pnpm-workspace.yaml
|
|
28
|
+
* @param {string} projectDir - Project directory path
|
|
29
|
+
* @returns {string[]} Array of workspace directories
|
|
30
|
+
*/
|
|
31
|
+
export function getPnpmWorkspaces(projectDir: string): string[];
|
|
32
|
+
/**
|
|
33
|
+
* Get workspace directories from lerna.json
|
|
34
|
+
* @param {string} projectDir - Project directory path
|
|
35
|
+
* @returns {string[]} Array of workspace directories
|
|
36
|
+
*/
|
|
37
|
+
export function getLernaWorkspaces(projectDir: string): string[];
|
|
38
|
+
/**
|
|
39
|
+
* Check if a dependency exists in hoisted node_modules
|
|
40
|
+
* @param {string} depName - Dependency name to check
|
|
41
|
+
* @param {string} projectDir - Project directory path
|
|
42
|
+
* @returns {boolean} True if dependency found in hoisted node_modules
|
|
43
|
+
*/
|
|
44
|
+
export function checkHoistedDependency(depName: string, projectDir: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Check if TypeScript project needs test configuration
|
|
47
|
+
* @param {string} projectDir - Project directory path
|
|
48
|
+
* @returns {Object} Configuration status
|
|
49
|
+
*/
|
|
50
|
+
export function checkTypeScriptTestConfig(projectDir?: string): any;
|
|
51
|
+
/**
|
|
52
|
+
* Generate configuration recommendations
|
|
53
|
+
* @param {Object} tsDetection - TypeScript detection result
|
|
54
|
+
* @param {Object} testDetection - Test framework detection result
|
|
55
|
+
* @returns {string[]} Array of recommendations
|
|
56
|
+
*/
|
|
57
|
+
export function generateRecommendations(tsDetection: any, testDetection: any): string[];
|
|
58
|
+
/**
|
|
59
|
+
* Display TypeScript detection results
|
|
60
|
+
* @param {Object} detection - Detection result from checkTypeScriptTestConfig
|
|
61
|
+
*/
|
|
62
|
+
export function displayTypeScriptDetection(detection: any): void;
|
|
63
|
+
//# sourceMappingURL=typescript-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-detector.d.ts","sourceRoot":"","sources":["../../src/utils/typescript-detector.js"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,8CAHW,MAAM,OAkChB;AAED;;;;;GAKG;AACH,iDAJW,MAAM,0BAkDhB;AAuKD,uEASC;AA9KD;;;;GAIG;AACH;;;;GAIG;AACH,6CAHW,MAAM,GACJ,MAAM,EAAE,CA6CpB;AAED;;;;GAIG;AACH,8CAHW,MAAM,GACJ,MAAM,EAAE,CA6CpB;AAED;;;;GAIG;AACH,+CAHW,MAAM,GACJ,MAAM,EAAE,CA4CpB;AAED;;;;;GAKG;AACH,gDAJW,MAAM,cACN,MAAM,GACJ,OAAO,CAKnB;AAaD;;;;GAIG;AACH,uDAHW,MAAM,OA0EhB;AAED;;;;;GAKG;AACH,+EAFa,MAAM,EAAE,CAuBpB;AAED;;;GAGG;AACH,iEAoBC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate YAML syntax for a file
|
|
3
|
+
* @param {string} filePath - Path to YAML file
|
|
4
|
+
* @returns {Object} Validation result with valid flag and error details
|
|
5
|
+
*/
|
|
6
|
+
export function validateYamlSyntax(filePath: string): any;
|
|
7
|
+
/**
|
|
8
|
+
* Validate YAML syntax for multiple files
|
|
9
|
+
* @param {string[]} filePaths - Array of file paths to validate
|
|
10
|
+
* @returns {Object} Validation results with summary
|
|
11
|
+
*/
|
|
12
|
+
export function validateYamlFiles(filePaths: string[]): any;
|
|
13
|
+
/**
|
|
14
|
+
* Find all YAML files in .caws directory
|
|
15
|
+
* @param {string} projectRoot - Project root directory
|
|
16
|
+
* @returns {string[]} Array of YAML file paths
|
|
17
|
+
*/
|
|
18
|
+
export function findCawsYamlFiles(projectRoot: string): string[];
|
|
19
|
+
/**
|
|
20
|
+
* Validate all CAWS YAML files in project
|
|
21
|
+
* @param {string} projectRoot - Project root directory
|
|
22
|
+
* @returns {Object} Validation results
|
|
23
|
+
*/
|
|
24
|
+
export function validateAllCawsYamlFiles(projectRoot: string): any;
|
|
25
|
+
/**
|
|
26
|
+
* Format validation error for display
|
|
27
|
+
* @param {Object} error - Error object from validateYamlSyntax
|
|
28
|
+
* @param {string} filePath - File path
|
|
29
|
+
* @returns {string} Formatted error message
|
|
30
|
+
*/
|
|
31
|
+
export function formatYamlError(error: any, filePath: string): string;
|
|
32
|
+
//# sourceMappingURL=yaml-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-validation.d.ts","sourceRoot":"","sources":["../../src/utils/yaml-validation.js"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,6CAHW,MAAM,OA2BhB;AAED;;;;GAIG;AACH,6CAHW,MAAM,EAAE,OAgClB;AAED;;;;GAIG;AACH,+CAHW,MAAM,GACJ,MAAM,EAAE,CA6BpB;AAED;;;;GAIG;AACH,sDAHW,MAAM,OAMhB;AAED;;;;;GAKG;AACH,sDAHW,MAAM,GACJ,MAAM,CAoBlB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Basic validation of working spec
|
|
3
|
+
* @param {Object} spec - Working spec object
|
|
4
|
+
* @param {Object} options - Validation options
|
|
5
|
+
* @returns {Object} Validation result
|
|
6
|
+
*/
|
|
7
|
+
export function validateWorkingSpec(spec: any, _options?: {}): any;
|
|
8
|
+
/**
|
|
9
|
+
* Enhanced validation with suggestions and auto-fix
|
|
10
|
+
* @param {Object} spec - Working spec object
|
|
11
|
+
* @param {Object} options - Validation options
|
|
12
|
+
* @returns {Object} Enhanced validation result
|
|
13
|
+
*/
|
|
14
|
+
export function validateWorkingSpecWithSuggestions(spec: any, options?: any): any;
|
|
15
|
+
/**
|
|
16
|
+
* Get suggestion for a missing field
|
|
17
|
+
* @param {string} field - Field name
|
|
18
|
+
* @param {Object} _spec - Spec object (for context)
|
|
19
|
+
* @returns {string} Suggestion text
|
|
20
|
+
*/
|
|
21
|
+
export function getFieldSuggestion(field: string, _spec: any): string;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a field can be auto-fixed
|
|
24
|
+
* @param {string} field - Field name
|
|
25
|
+
* @param {Object} _spec - Spec object (for context)
|
|
26
|
+
* @returns {boolean} Whether field can be auto-fixed
|
|
27
|
+
*/
|
|
28
|
+
export function canAutoFixField(field: string, _spec: any): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Calculate compliance score based on errors and warnings
|
|
31
|
+
* Score ranges from 0 (many issues) to 1 (perfect)
|
|
32
|
+
* @param {Array} errors - Validation errors
|
|
33
|
+
* @param {Array} warnings - Validation warnings
|
|
34
|
+
* @returns {number} Compliance score (0-1)
|
|
35
|
+
*/
|
|
36
|
+
export function calculateComplianceScore(errors: any[], warnings: any[]): number;
|
|
37
|
+
/**
|
|
38
|
+
* Get compliance grade from score
|
|
39
|
+
* @param {number} score - Compliance score (0-1)
|
|
40
|
+
* @returns {string} Grade (A, B, C, D, F)
|
|
41
|
+
*/
|
|
42
|
+
export function getComplianceGrade(score: number): string;
|
|
43
|
+
//# sourceMappingURL=spec-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-validation.d.ts","sourceRoot":"","sources":["../../src/validation/spec-validation.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,mEA8HC;AAED;;;;;GAKG;AACH,kFAgdC;AAoCD;;;;;GAKG;AACH,0CAJW,MAAM,eAEJ,MAAM,CAkBlB;AAED;;;;;GAKG;AACH,uCAJW,MAAM,eAEJ,OAAO,CAKnB;AAnED;;;;;;GAMG;AACH,0EAFa,MAAM,CAclB;AAED;;;;GAIG;AACH,0CAHW,MAAM,GACJ,MAAM,CAQlB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
export = WaiversManager;
|
|
2
|
+
/**
|
|
3
|
+
* Waiver Manager Class
|
|
4
|
+
* Handles waiver creation, validation, expiration, and audit logging
|
|
5
|
+
*/
|
|
6
|
+
declare class WaiversManager {
|
|
7
|
+
constructor(options?: {});
|
|
8
|
+
projectRoot: any;
|
|
9
|
+
waiversDir: string;
|
|
10
|
+
waiversFile: string;
|
|
11
|
+
auditLogFile: string;
|
|
12
|
+
/**
|
|
13
|
+
* Waiver Schema Definition
|
|
14
|
+
*/
|
|
15
|
+
getWaiverSchema(): {
|
|
16
|
+
type: string;
|
|
17
|
+
required: string[];
|
|
18
|
+
properties: {
|
|
19
|
+
id: {
|
|
20
|
+
type: string;
|
|
21
|
+
pattern: string;
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
title: {
|
|
25
|
+
type: string;
|
|
26
|
+
minLength: number;
|
|
27
|
+
maxLength: number;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
reason: {
|
|
31
|
+
type: string;
|
|
32
|
+
enum: string[];
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
description: {
|
|
36
|
+
type: string;
|
|
37
|
+
minLength: number;
|
|
38
|
+
maxLength: number;
|
|
39
|
+
description: string;
|
|
40
|
+
};
|
|
41
|
+
gates: {
|
|
42
|
+
type: string;
|
|
43
|
+
items: {
|
|
44
|
+
type: string;
|
|
45
|
+
enum: string[];
|
|
46
|
+
};
|
|
47
|
+
minItems: number;
|
|
48
|
+
description: string;
|
|
49
|
+
};
|
|
50
|
+
risk_assessment: {
|
|
51
|
+
type: string;
|
|
52
|
+
properties: {
|
|
53
|
+
impact_level: {
|
|
54
|
+
type: string;
|
|
55
|
+
enum: string[];
|
|
56
|
+
};
|
|
57
|
+
mitigation_plan: {
|
|
58
|
+
type: string;
|
|
59
|
+
minLength: number;
|
|
60
|
+
};
|
|
61
|
+
review_required: {
|
|
62
|
+
type: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
required: string[];
|
|
66
|
+
};
|
|
67
|
+
expires_at: {
|
|
68
|
+
type: string;
|
|
69
|
+
format: string;
|
|
70
|
+
description: string;
|
|
71
|
+
};
|
|
72
|
+
approved_by: {
|
|
73
|
+
type: string;
|
|
74
|
+
description: string;
|
|
75
|
+
};
|
|
76
|
+
created_at: {
|
|
77
|
+
type: string;
|
|
78
|
+
format: string;
|
|
79
|
+
description: string;
|
|
80
|
+
};
|
|
81
|
+
metadata: {
|
|
82
|
+
type: string;
|
|
83
|
+
properties: {
|
|
84
|
+
related_pr: {
|
|
85
|
+
type: string;
|
|
86
|
+
};
|
|
87
|
+
related_issue: {
|
|
88
|
+
type: string;
|
|
89
|
+
};
|
|
90
|
+
environment: {
|
|
91
|
+
type: string;
|
|
92
|
+
enum: string[];
|
|
93
|
+
};
|
|
94
|
+
urgency: {
|
|
95
|
+
type: string;
|
|
96
|
+
enum: string[];
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Create a new waiver
|
|
104
|
+
*/
|
|
105
|
+
createWaiver(waiverData: any): Promise<{
|
|
106
|
+
id: string;
|
|
107
|
+
title: any;
|
|
108
|
+
reason: any;
|
|
109
|
+
description: any;
|
|
110
|
+
gates: any;
|
|
111
|
+
risk_assessment: any;
|
|
112
|
+
expires_at: any;
|
|
113
|
+
approved_by: any;
|
|
114
|
+
created_at: string;
|
|
115
|
+
metadata: any;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Check if waiver applies to specific gates
|
|
119
|
+
*/
|
|
120
|
+
checkWaiverCoverage(gatesToCheck: any, context?: {}): Promise<{
|
|
121
|
+
coveredGates: any[];
|
|
122
|
+
waiverDetails: {
|
|
123
|
+
gate: any;
|
|
124
|
+
waiver_id: any;
|
|
125
|
+
reason: any;
|
|
126
|
+
expires_at: any;
|
|
127
|
+
approved_by: any;
|
|
128
|
+
}[];
|
|
129
|
+
allCovered: boolean;
|
|
130
|
+
}>;
|
|
131
|
+
/**
|
|
132
|
+
* Get all active waivers
|
|
133
|
+
*/
|
|
134
|
+
getActiveWaivers(): Promise<any[]>;
|
|
135
|
+
/**
|
|
136
|
+
* Revoke a waiver
|
|
137
|
+
*/
|
|
138
|
+
revokeWaiver(waiverId: any, reason?: string): Promise<any>;
|
|
139
|
+
/**
|
|
140
|
+
* Extend waiver expiration
|
|
141
|
+
*/
|
|
142
|
+
extendWaiver(waiverId: any, newExpiryDate: any, approvedBy: any): Promise<any>;
|
|
143
|
+
/**
|
|
144
|
+
* Get waiver statistics and health metrics
|
|
145
|
+
*/
|
|
146
|
+
getWaiverStats(): Promise<{
|
|
147
|
+
total_active: number;
|
|
148
|
+
by_reason: {};
|
|
149
|
+
by_risk_level: {};
|
|
150
|
+
expiring_soon: any[];
|
|
151
|
+
high_risk: any[];
|
|
152
|
+
total_gates_waived: number;
|
|
153
|
+
average_lifespan_days: number;
|
|
154
|
+
}>;
|
|
155
|
+
generateWaiverId(): Promise<string>;
|
|
156
|
+
validateWaiver(waiver: any): {
|
|
157
|
+
valid: boolean;
|
|
158
|
+
errors: string[];
|
|
159
|
+
};
|
|
160
|
+
checkWaiverConflicts(newWaiver: any): Promise<string[]>;
|
|
161
|
+
waiverAppliesToContext(waiver: any, context: any): boolean;
|
|
162
|
+
loadActiveWaivers(): Promise<any[]>;
|
|
163
|
+
saveActiveWaivers(waivers: any): Promise<void>;
|
|
164
|
+
auditLog(action: any, waiverId: any, details: any): Promise<void>;
|
|
165
|
+
flagForReview(waiver: any): Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=waivers-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waivers-manager.d.ts","sourceRoot":"","sources":["../src/waivers-manager.js"],"names":[],"mappings":";AAaA;;;GAGG;AACH;IACE,0BAUC;IATC,iBAAuD;IACvD,mBAAiE;IACjE,oBAAoE;IACpE,qBAAkE;IAQpE;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiGC;IAED;;OAEG;IACH;;;;;;;;;;;OA4DC;IAED;;OAEG;IACH;;;;;;;;;;OA+BC;IAED;;OAEG;IACH,mCAgBC;IAED;;OAEG;IACH,2DAeC;IAED;;OAEG;IACH,+EAuBC;IAED;;OAEG;IACH;;;;;;;;OA2DC;IAID,oCAUC;IAED;;;MAkDC;IAED,wDAkBC;IAED,2DAUC;IAED,oCAyCC;IAED,+CAuBC;IAED,kEAaC;IAED,0CA2CC;CACF"}
|