@vfarcic/dot-ai 0.35.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -72
- package/dist/core/doc-discovery.d.ts +38 -0
- package/dist/core/doc-discovery.d.ts.map +1 -0
- package/dist/core/doc-discovery.js +231 -0
- package/dist/core/doc-testing-session.d.ts +109 -0
- package/dist/core/doc-testing-session.d.ts.map +1 -0
- package/dist/core/doc-testing-session.js +747 -0
- package/dist/core/doc-testing-types.d.ts +125 -0
- package/dist/core/doc-testing-types.d.ts.map +1 -0
- package/dist/core/doc-testing-types.js +53 -0
- package/dist/core/error-handling.d.ts +14 -14
- package/dist/core/error-handling.d.ts.map +1 -1
- package/dist/core/error-handling.js +43 -31
- package/dist/core/kubernetes-utils.d.ts +0 -3
- package/dist/core/kubernetes-utils.d.ts.map +1 -1
- package/dist/core/kubernetes-utils.js +40 -8
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +12 -6
- package/dist/interfaces/cli.d.ts +1 -0
- package/dist/interfaces/cli.d.ts.map +1 -1
- package/dist/interfaces/cli.js +76 -1
- package/dist/interfaces/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp.js +10 -2
- package/dist/tools/test-docs.d.ts +21 -0
- package/dist/tools/test-docs.d.ts.map +1 -0
- package/dist/tools/test-docs.js +349 -0
- package/package.json +4 -1
- package/prompts/doc-testing-done.md +51 -0
- package/prompts/doc-testing-fix.md +120 -0
- package/prompts/doc-testing-scan.md +140 -0
- package/prompts/doc-testing-test-section.md +239 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation Testing Types
|
|
3
|
+
*
|
|
4
|
+
* Flexible TypeScript interfaces for the documentation testing system.
|
|
5
|
+
* Designed to let AI agents dynamically identify and categorize testable content.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Main session object that tracks a documentation validation workflow
|
|
9
|
+
*/
|
|
10
|
+
export interface ValidationSession {
|
|
11
|
+
sessionId: string;
|
|
12
|
+
filePath: string;
|
|
13
|
+
startTime: string;
|
|
14
|
+
currentPhase: ValidationPhase;
|
|
15
|
+
status: SessionStatus;
|
|
16
|
+
metadata: SessionMetadata;
|
|
17
|
+
sections?: DocumentSection[];
|
|
18
|
+
sectionResults?: Record<string, SectionTestResult>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Session metadata with counters and summary information
|
|
22
|
+
*/
|
|
23
|
+
export interface SessionMetadata {
|
|
24
|
+
totalSections: number;
|
|
25
|
+
completedSections: number;
|
|
26
|
+
sectionStatus: Record<string, SectionStatus>;
|
|
27
|
+
nextItemId: number;
|
|
28
|
+
sessionDir: string;
|
|
29
|
+
lastUpdated: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The five phases of documentation validation workflow
|
|
33
|
+
*/
|
|
34
|
+
export declare enum ValidationPhase {
|
|
35
|
+
SCAN = "scan",// Find all testable items in the documentation
|
|
36
|
+
TEST = "test",// Execute tests on the found items
|
|
37
|
+
ANALYZE = "analyze",// Analyze results and categorize issues
|
|
38
|
+
FIX = "fix",// Generate fixes for identified problems
|
|
39
|
+
DONE = "done"
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Overall status of a validation session
|
|
43
|
+
*/
|
|
44
|
+
export declare enum SessionStatus {
|
|
45
|
+
ACTIVE = "active",// Session is currently being worked on
|
|
46
|
+
COMPLETED = "completed",// All phases completed successfully
|
|
47
|
+
FAILED = "failed",// Session failed due to errors
|
|
48
|
+
PAUSED = "paused"
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Status of a document section during validation
|
|
52
|
+
*/
|
|
53
|
+
export declare enum SectionStatus {
|
|
54
|
+
PENDING = "pending",// Section not yet processed
|
|
55
|
+
SCANNING = "scanning",// Currently identifying testable items
|
|
56
|
+
TESTING = "testing",// Currently executing validation items
|
|
57
|
+
ANALYZING = "analyzing",// Currently analyzing test results
|
|
58
|
+
FIXING = "fixing",// Currently generating fixes
|
|
59
|
+
COMPLETED = "completed",// Section validation completed successfully
|
|
60
|
+
FAILED = "failed"
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Logical section of a document for validation
|
|
64
|
+
*/
|
|
65
|
+
export interface DocumentSection {
|
|
66
|
+
id: string;
|
|
67
|
+
title: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Individual issue or recommendation with tracking
|
|
71
|
+
*/
|
|
72
|
+
export interface FixableItem {
|
|
73
|
+
id: number;
|
|
74
|
+
text: string;
|
|
75
|
+
status: 'pending' | 'fixed' | 'deferred' | 'failed';
|
|
76
|
+
explanation?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Structured test results for a section (JSON format from client agent)
|
|
80
|
+
*/
|
|
81
|
+
export interface SectionTestResult {
|
|
82
|
+
whatWasDone: string;
|
|
83
|
+
issues: FixableItem[];
|
|
84
|
+
recommendations: FixableItem[];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Workflow step returned by MCP interface to guide AI agents
|
|
88
|
+
*/
|
|
89
|
+
export interface WorkflowStep {
|
|
90
|
+
sessionId: string;
|
|
91
|
+
phase: ValidationPhase;
|
|
92
|
+
prompt: string;
|
|
93
|
+
nextPhase?: ValidationPhase;
|
|
94
|
+
nextAction?: string;
|
|
95
|
+
instruction?: string;
|
|
96
|
+
agentInstructions?: string;
|
|
97
|
+
workflow: {
|
|
98
|
+
completed: ValidationPhase[];
|
|
99
|
+
current: ValidationPhase;
|
|
100
|
+
remaining: ValidationPhase[];
|
|
101
|
+
};
|
|
102
|
+
data?: any;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Phase-specific result tracking
|
|
106
|
+
*/
|
|
107
|
+
export interface PhaseResult {
|
|
108
|
+
phase: ValidationPhase;
|
|
109
|
+
startTime: string;
|
|
110
|
+
endTime?: string;
|
|
111
|
+
status: PhaseStatus;
|
|
112
|
+
summary: string;
|
|
113
|
+
nextPhase?: ValidationPhase;
|
|
114
|
+
aiInsights?: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Status of a validation phase
|
|
118
|
+
*/
|
|
119
|
+
export declare enum PhaseStatus {
|
|
120
|
+
PENDING = "pending",
|
|
121
|
+
IN_PROGRESS = "in_progress",
|
|
122
|
+
COMPLETED = "completed",
|
|
123
|
+
FAILED = "failed"
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=doc-testing-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-testing-types.d.ts","sourceRoot":"","sources":["../../src/core/doc-testing-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Documentation Testing Types
|
|
4
|
+
*
|
|
5
|
+
* Flexible TypeScript interfaces for the documentation testing system.
|
|
6
|
+
* Designed to let AI agents dynamically identify and categorize testable content.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PhaseStatus = exports.SectionStatus = exports.SessionStatus = exports.ValidationPhase = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* The five phases of documentation validation workflow
|
|
12
|
+
*/
|
|
13
|
+
var ValidationPhase;
|
|
14
|
+
(function (ValidationPhase) {
|
|
15
|
+
ValidationPhase["SCAN"] = "scan";
|
|
16
|
+
ValidationPhase["TEST"] = "test";
|
|
17
|
+
ValidationPhase["ANALYZE"] = "analyze";
|
|
18
|
+
ValidationPhase["FIX"] = "fix";
|
|
19
|
+
ValidationPhase["DONE"] = "done"; // Mark session as completed
|
|
20
|
+
})(ValidationPhase || (exports.ValidationPhase = ValidationPhase = {}));
|
|
21
|
+
/**
|
|
22
|
+
* Overall status of a validation session
|
|
23
|
+
*/
|
|
24
|
+
var SessionStatus;
|
|
25
|
+
(function (SessionStatus) {
|
|
26
|
+
SessionStatus["ACTIVE"] = "active";
|
|
27
|
+
SessionStatus["COMPLETED"] = "completed";
|
|
28
|
+
SessionStatus["FAILED"] = "failed";
|
|
29
|
+
SessionStatus["PAUSED"] = "paused"; // Session temporarily paused
|
|
30
|
+
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
|
31
|
+
/**
|
|
32
|
+
* Status of a document section during validation
|
|
33
|
+
*/
|
|
34
|
+
var SectionStatus;
|
|
35
|
+
(function (SectionStatus) {
|
|
36
|
+
SectionStatus["PENDING"] = "pending";
|
|
37
|
+
SectionStatus["SCANNING"] = "scanning";
|
|
38
|
+
SectionStatus["TESTING"] = "testing";
|
|
39
|
+
SectionStatus["ANALYZING"] = "analyzing";
|
|
40
|
+
SectionStatus["FIXING"] = "fixing";
|
|
41
|
+
SectionStatus["COMPLETED"] = "completed";
|
|
42
|
+
SectionStatus["FAILED"] = "failed"; // Section validation failed
|
|
43
|
+
})(SectionStatus || (exports.SectionStatus = SectionStatus = {}));
|
|
44
|
+
/**
|
|
45
|
+
* Status of a validation phase
|
|
46
|
+
*/
|
|
47
|
+
var PhaseStatus;
|
|
48
|
+
(function (PhaseStatus) {
|
|
49
|
+
PhaseStatus["PENDING"] = "pending";
|
|
50
|
+
PhaseStatus["IN_PROGRESS"] = "in_progress";
|
|
51
|
+
PhaseStatus["COMPLETED"] = "completed";
|
|
52
|
+
PhaseStatus["FAILED"] = "failed";
|
|
53
|
+
})(PhaseStatus || (exports.PhaseStatus = PhaseStatus = {}));
|
|
@@ -52,21 +52,21 @@ export interface ErrorContext {
|
|
|
52
52
|
retryCount?: number;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
* Structured error
|
|
55
|
+
* Structured error class that extends native Error
|
|
56
56
|
*/
|
|
57
|
-
export
|
|
58
|
-
id: string;
|
|
59
|
-
code: string;
|
|
60
|
-
category: ErrorCategory;
|
|
61
|
-
severity: ErrorSeverity;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
cause?: AppError;
|
|
57
|
+
export declare class AppError extends Error {
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly code: string;
|
|
60
|
+
readonly category: ErrorCategory;
|
|
61
|
+
readonly severity: ErrorSeverity;
|
|
62
|
+
readonly userMessage?: string;
|
|
63
|
+
readonly technicalDetails?: string;
|
|
64
|
+
readonly context: ErrorContext;
|
|
65
|
+
readonly timestamp: Date;
|
|
66
|
+
readonly suggestedActions: string[];
|
|
67
|
+
readonly isRetryable: boolean;
|
|
68
|
+
readonly cause?: AppError;
|
|
69
|
+
constructor(id: string, code: string, category: ErrorCategory, severity: ErrorSeverity, message: string, context: ErrorContext, timestamp: Date, suggestedActions: string[], isRetryable: boolean, userMessage?: string, technicalDetails?: string, cause?: AppError);
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Log levels for structured logging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/core/error-handling.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAa,MAAM,oCAAoC,CAAC;AAEzE;;GAEG;AACH,oBAAY,aAAa;IAEvB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAG/B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IAGvB,UAAU,eAAe;IACzB,OAAO,YAAY;IAGnB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAG/B,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,GAAG,QAAQ,CAAY,uCAAuC;IAC9D,MAAM,WAAW,CAAM,4BAA4B;IACnD,IAAI,SAAS,CAAU,yCAAyC;IAChE,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAGhB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGjC,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/core/error-handling.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* with support for MCP protocol, CLI operations, and core functionality.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ErrorHandler = exports.ConsoleLogger = exports.LogLevel = exports.ErrorSeverity = exports.ErrorCategory = void 0;
|
|
9
|
+
exports.ErrorHandler = exports.ConsoleLogger = exports.LogLevel = exports.AppError = exports.ErrorSeverity = exports.ErrorCategory = void 0;
|
|
10
10
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
11
11
|
/**
|
|
12
12
|
* Error categories for systematic error classification
|
|
@@ -42,6 +42,44 @@ var ErrorSeverity;
|
|
|
42
42
|
ErrorSeverity["HIGH"] = "high";
|
|
43
43
|
ErrorSeverity["CRITICAL"] = "critical"; // System-threatening, immediate action required
|
|
44
44
|
})(ErrorSeverity || (exports.ErrorSeverity = ErrorSeverity = {}));
|
|
45
|
+
/**
|
|
46
|
+
* Structured error class that extends native Error
|
|
47
|
+
*/
|
|
48
|
+
class AppError extends Error {
|
|
49
|
+
// Core identification
|
|
50
|
+
id;
|
|
51
|
+
code;
|
|
52
|
+
category;
|
|
53
|
+
severity;
|
|
54
|
+
// User-facing information
|
|
55
|
+
userMessage;
|
|
56
|
+
technicalDetails;
|
|
57
|
+
// Context and debugging
|
|
58
|
+
context;
|
|
59
|
+
// Timing
|
|
60
|
+
timestamp;
|
|
61
|
+
// Recovery guidance
|
|
62
|
+
suggestedActions;
|
|
63
|
+
isRetryable;
|
|
64
|
+
// Chaining
|
|
65
|
+
cause;
|
|
66
|
+
constructor(id, code, category, severity, message, context, timestamp, suggestedActions, isRetryable, userMessage, technicalDetails, cause) {
|
|
67
|
+
super(message);
|
|
68
|
+
this.name = 'AppError';
|
|
69
|
+
this.id = id;
|
|
70
|
+
this.code = code;
|
|
71
|
+
this.category = category;
|
|
72
|
+
this.severity = severity;
|
|
73
|
+
this.context = context;
|
|
74
|
+
this.timestamp = timestamp;
|
|
75
|
+
this.suggestedActions = suggestedActions;
|
|
76
|
+
this.isRetryable = isRetryable;
|
|
77
|
+
this.userMessage = userMessage;
|
|
78
|
+
this.technicalDetails = technicalDetails;
|
|
79
|
+
this.cause = cause;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.AppError = AppError;
|
|
45
83
|
/**
|
|
46
84
|
* Log levels for structured logging
|
|
47
85
|
*/
|
|
@@ -161,21 +199,8 @@ class ErrorHandler {
|
|
|
161
199
|
...context
|
|
162
200
|
};
|
|
163
201
|
const suggestedActions = context.suggestedActions || this.getDefaultSuggestedActions(category);
|
|
164
|
-
const appError =
|
|
165
|
-
|
|
166
|
-
code: this.generateErrorCode(category, severity),
|
|
167
|
-
category,
|
|
168
|
-
severity,
|
|
169
|
-
message,
|
|
170
|
-
userMessage: this.getUserFriendlyMessage(category),
|
|
171
|
-
technicalDetails: originalError?.message,
|
|
172
|
-
context: fullContext,
|
|
173
|
-
timestamp,
|
|
174
|
-
suggestedActions,
|
|
175
|
-
isRetryable: fullContext.isRetryable || false,
|
|
176
|
-
// Don't wrap the original error to prevent circular references
|
|
177
|
-
cause: undefined
|
|
178
|
-
};
|
|
202
|
+
const appError = new AppError(errorId, this.generateErrorCode(category, severity), category, severity, message, fullContext, timestamp, suggestedActions, fullContext.isRetryable || false, this.getUserFriendlyMessage(category), originalError?.message, undefined // Don't wrap the original error to prevent circular references
|
|
203
|
+
);
|
|
179
204
|
// Log the error
|
|
180
205
|
this.logger.error(`Error created: ${message}`, appError, {
|
|
181
206
|
category,
|
|
@@ -378,21 +403,8 @@ class ErrorHandler {
|
|
|
378
403
|
isRetryable: false,
|
|
379
404
|
retryCount: 0
|
|
380
405
|
};
|
|
381
|
-
const appError =
|
|
382
|
-
|
|
383
|
-
code: this.generateErrorCode(category, severity),
|
|
384
|
-
category,
|
|
385
|
-
severity,
|
|
386
|
-
message: error.message,
|
|
387
|
-
userMessage: this.getUserFriendlyMessage(category),
|
|
388
|
-
technicalDetails: error.message,
|
|
389
|
-
context,
|
|
390
|
-
timestamp,
|
|
391
|
-
suggestedActions: this.getDefaultSuggestedActions(category),
|
|
392
|
-
isRetryable: false,
|
|
393
|
-
// No cause to prevent circular reference
|
|
394
|
-
cause: undefined
|
|
395
|
-
};
|
|
406
|
+
const appError = new AppError(errorId, this.generateErrorCode(category, severity), category, severity, error.message, context, timestamp, this.getDefaultSuggestedActions(category), false, this.getUserFriendlyMessage(category), error.message, undefined // No cause to prevent circular reference
|
|
407
|
+
);
|
|
396
408
|
return appError;
|
|
397
409
|
}
|
|
398
410
|
}
|
|
@@ -13,9 +13,6 @@ export interface KubectlConfig {
|
|
|
13
13
|
* Execute kubectl command with proper configuration
|
|
14
14
|
*/
|
|
15
15
|
export declare function executeKubectl(args: string[], config?: KubectlConfig): Promise<string>;
|
|
16
|
-
/**
|
|
17
|
-
* Build kubectl command string with proper flags
|
|
18
|
-
*/
|
|
19
16
|
export declare function buildKubectlCommand(args: string[], config?: KubectlConfig): string;
|
|
20
17
|
export declare class ErrorClassifier {
|
|
21
18
|
static classifyError(error: Error): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kubernetes-utils.d.ts","sourceRoot":"","sources":["../../src/core/kubernetes-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5F;
|
|
1
|
+
{"version":3,"file":"kubernetes-utils.d.ts","sourceRoot":"","sources":["../../src/core/kubernetes-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB5F;AAsBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAmBlF;AAGD,qBAAa,eAAe;IAC1B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IA0D7E,OAAO,CAAC,MAAM,CAAC,cAAc;IAa7B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAYpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAI1C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAYlC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAgBzC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAYxC,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAQ1C,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC,OAAO,CAAC,MAAM,CAAC,gCAAgC;CAGhD"}
|
|
@@ -39,19 +39,34 @@ async function executeKubectl(args, config) {
|
|
|
39
39
|
/**
|
|
40
40
|
* Build kubectl command string with proper flags
|
|
41
41
|
*/
|
|
42
|
+
/**
|
|
43
|
+
* Safely escape shell arguments to prevent command injection
|
|
44
|
+
*/
|
|
45
|
+
function escapeShellArg(arg) {
|
|
46
|
+
if (!arg || typeof arg !== 'string') {
|
|
47
|
+
return '""';
|
|
48
|
+
}
|
|
49
|
+
// If the argument contains only safe characters, return as-is
|
|
50
|
+
if (/^[a-zA-Z0-9._/-]+$/.test(arg)) {
|
|
51
|
+
return arg;
|
|
52
|
+
}
|
|
53
|
+
// Otherwise, quote and escape
|
|
54
|
+
return `"${arg.replace(/["\\]/g, '\\$&')}"`;
|
|
55
|
+
}
|
|
42
56
|
function buildKubectlCommand(args, config) {
|
|
43
|
-
|
|
57
|
+
const cmdParts = ['kubectl'];
|
|
44
58
|
if (config?.kubeconfig) {
|
|
45
|
-
|
|
59
|
+
cmdParts.push('--kubeconfig', escapeShellArg(config.kubeconfig));
|
|
46
60
|
}
|
|
47
61
|
if (config?.context) {
|
|
48
|
-
|
|
62
|
+
cmdParts.push('--context', escapeShellArg(config.context));
|
|
49
63
|
}
|
|
50
64
|
if (config?.namespace) {
|
|
51
|
-
|
|
65
|
+
cmdParts.push('--namespace', escapeShellArg(config.namespace));
|
|
52
66
|
}
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
// Safely add all arguments
|
|
68
|
+
args.forEach(arg => cmdParts.push(escapeShellArg(arg)));
|
|
69
|
+
return cmdParts.join(' ');
|
|
55
70
|
}
|
|
56
71
|
// Enhanced Error Classification System
|
|
57
72
|
class ErrorClassifier {
|
|
@@ -106,10 +121,27 @@ class ErrorClassifier {
|
|
|
106
121
|
};
|
|
107
122
|
}
|
|
108
123
|
static isNetworkError(message) {
|
|
109
|
-
|
|
124
|
+
// Fixed: Avoid catastrophic backtracking by using non-overlapping alternation
|
|
125
|
+
const networkPatterns = [
|
|
126
|
+
'getaddrinfo ENOTFOUND',
|
|
127
|
+
'timeout',
|
|
128
|
+
'ECONNREFUSED',
|
|
129
|
+
'ENOTFOUND',
|
|
130
|
+
'network',
|
|
131
|
+
'unreachable'
|
|
132
|
+
];
|
|
133
|
+
return networkPatterns.some(pattern => message.toLowerCase().includes(pattern.toLowerCase()));
|
|
110
134
|
}
|
|
111
135
|
static isAuthenticationError(message) {
|
|
112
|
-
|
|
136
|
+
// Fixed: Avoid catastrophic backtracking by using non-overlapping alternation
|
|
137
|
+
const authPatterns = [
|
|
138
|
+
'unauthorized',
|
|
139
|
+
'invalid bearer token',
|
|
140
|
+
'certificate',
|
|
141
|
+
'auth',
|
|
142
|
+
'authentication'
|
|
143
|
+
];
|
|
144
|
+
return authPatterns.some(pattern => message.toLowerCase().includes(pattern.toLowerCase()));
|
|
113
145
|
}
|
|
114
146
|
static isAuthorizationError(message) {
|
|
115
147
|
return /forbidden|cannot list|cannot get|cannot create|RBAC|permission denied/i.test(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/core/schema.js
CHANGED
|
@@ -145,19 +145,25 @@ class SchemaParser {
|
|
|
145
145
|
if (maxMatch) {
|
|
146
146
|
constraints.maximum = parseInt(maxMatch[1]);
|
|
147
147
|
}
|
|
148
|
-
// Extract enum values
|
|
149
|
-
const enumMatch = description.match(/(
|
|
148
|
+
// Extract enum values - Fixed: Avoid catastrophic backtracking
|
|
149
|
+
const enumMatch = description.match(/(possible values|valid values|values)\s*(?:are)?:\s*([^.]+)/i);
|
|
150
150
|
if (enumMatch) {
|
|
151
|
-
const values = enumMatch[
|
|
151
|
+
const values = enumMatch[2]
|
|
152
152
|
.split(/,|\s+and\s+/)
|
|
153
153
|
.map(v => v.trim())
|
|
154
154
|
.filter(v => v.length > 0);
|
|
155
155
|
constraints.enum = values;
|
|
156
156
|
}
|
|
157
|
-
// Extract default values -
|
|
158
|
-
|
|
157
|
+
// Extract default values - Fixed: Use simpler non-catastrophic patterns
|
|
158
|
+
let defaultMatch = description.match(/\(default:\s*([^)]+)\)/i);
|
|
159
|
+
if (!defaultMatch) {
|
|
160
|
+
defaultMatch = description.match(/defaults?\s+to\s+(\w+)/i);
|
|
161
|
+
}
|
|
162
|
+
if (!defaultMatch) {
|
|
163
|
+
defaultMatch = description.match(/\.\s+default:\s*(\w+)/i);
|
|
164
|
+
}
|
|
159
165
|
if (defaultMatch) {
|
|
160
|
-
const defaultValue =
|
|
166
|
+
const defaultValue = defaultMatch[1].trim();
|
|
161
167
|
if (type === 'integer') {
|
|
162
168
|
const parsed = parseInt(defaultValue);
|
|
163
169
|
if (!isNaN(parsed)) {
|
package/dist/interfaces/cli.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare class CliInterface {
|
|
|
45
45
|
private handleAnswerQuestionCommand;
|
|
46
46
|
private handleGenerateManifestsCommand;
|
|
47
47
|
private handleDeployManifestsCommand;
|
|
48
|
+
private handleTestDocsCommand;
|
|
48
49
|
continueWorkflow(workflowId: string, input: {
|
|
49
50
|
responses: Record<string, any>;
|
|
50
51
|
}): Promise<CliResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/interfaces/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAahC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,GAAE,SAAc;IAiBjD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/interfaces/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAahC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,GAAE,SAAc;IAiBjD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IA4NrB,WAAW,IAAI,MAAM,EAAE;IAIvB,cAAc,IAAI,MAAM,EAAE;IAIpB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAoB1B,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAgD9D,OAAO,CAAC,yBAAyB;IA4B3B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAsC9E,mBAAmB;YAoBnB,kBAAkB;YAsBlB,sBAAsB;YAsCtB,2BAA2B;YAoC3B,2BAA2B;YAuC3B,8BAA8B;YAoC9B,4BAA4B;YAiC5B,qBAAqB;IAmD7B,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBzG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAgCvD,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,YAAY;IAyBpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;YACW,6BAA6B;IA+BrC,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CASxD;AAGD,eAAe,YAAY,CAAC"}
|
package/dist/interfaces/cli.js
CHANGED
|
@@ -255,6 +255,35 @@ For more help on specific commands, use:
|
|
|
255
255
|
const result = await this.executeCommand('deployManifests', options);
|
|
256
256
|
this.outputResult(result, options.output || this.config.defaultOutput || 'json', this.config.outputFile);
|
|
257
257
|
});
|
|
258
|
+
// Test Docs command
|
|
259
|
+
this.program
|
|
260
|
+
.command('test-docs')
|
|
261
|
+
.description('Test documentation for accuracy and functionality')
|
|
262
|
+
.option('--file <path>', 'Path to documentation file to test (optional - if not provided, will discover available files)')
|
|
263
|
+
.option('--file-pattern <pattern>', 'File pattern for discovery (e.g., "**/*.md", "*.rst") - defaults to DOT_AI_DOC_PATTERN env var or "**/*.md"')
|
|
264
|
+
.option('--session-id <id>', 'Existing session ID to continue')
|
|
265
|
+
.option('--session-dir <path>', 'Directory to store session files (defaults to DOT_AI_SESSION_DIR env var)')
|
|
266
|
+
.option('--phase <phase>', 'Specific phase to run (scan, test, analyze, fix, done)', 'scan')
|
|
267
|
+
.option('--section-id <id>', 'Section ID when submitting test results')
|
|
268
|
+
.option('--results <text>', 'Test results to store (for client agent reporting back)')
|
|
269
|
+
.option('--output <format>', 'Output format (json|yaml|table)', 'json')
|
|
270
|
+
.action(async (options, command) => {
|
|
271
|
+
// Get global options from parent command
|
|
272
|
+
const globalOptions = command.parent?.opts() || {};
|
|
273
|
+
this.processGlobalOptions(globalOptions);
|
|
274
|
+
// Validate output format
|
|
275
|
+
if (options.output && !['json', 'yaml', 'table'].includes(options.output)) {
|
|
276
|
+
console.error('Error: Invalid output format. Supported: json, yaml, table');
|
|
277
|
+
process.exit(1);
|
|
278
|
+
}
|
|
279
|
+
// Validate phase
|
|
280
|
+
if (options.phase && !['scan', 'test', 'analyze', 'fix', 'done'].includes(options.phase)) {
|
|
281
|
+
console.error('Error: Invalid phase. Supported: scan, test, analyze, fix, done');
|
|
282
|
+
process.exit(1);
|
|
283
|
+
}
|
|
284
|
+
const result = await this.executeCommand('testDocs', options);
|
|
285
|
+
this.outputResult(result, options.output || this.config.defaultOutput || 'json', this.config.outputFile);
|
|
286
|
+
});
|
|
258
287
|
// REMOVED: enhance command - moved to legacy reference
|
|
259
288
|
// See src/legacy/tools/enhance-solution.ts for reference implementation
|
|
260
289
|
}
|
|
@@ -345,6 +374,8 @@ For more help on specific commands, use:
|
|
|
345
374
|
return [...commonOptions, 'solution-id', 'session-dir'];
|
|
346
375
|
case 'deployManifests':
|
|
347
376
|
return [...commonOptions, 'solution-id', 'session-dir', 'timeout'];
|
|
377
|
+
case 'testDocs':
|
|
378
|
+
return [...commonOptions, 'file', 'file-pattern', 'session-id', 'session-dir', 'phase', 'section-id', 'results'];
|
|
348
379
|
// REMOVED: enhance command, deploy command
|
|
349
380
|
default:
|
|
350
381
|
return commonOptions;
|
|
@@ -353,7 +384,7 @@ For more help on specific commands, use:
|
|
|
353
384
|
async executeCommand(command, options = {}) {
|
|
354
385
|
try {
|
|
355
386
|
// Only initialize DotAI for commands that need cluster access
|
|
356
|
-
if (command !== 'chooseSolution' && command !== 'answerQuestion' && command !== 'generateManifests') {
|
|
387
|
+
if (command !== 'chooseSolution' && command !== 'answerQuestion' && command !== 'generateManifests' && command !== 'testDocs') {
|
|
357
388
|
await this.ensureDotAI().initialize();
|
|
358
389
|
}
|
|
359
390
|
switch (command) {
|
|
@@ -371,6 +402,8 @@ For more help on specific commands, use:
|
|
|
371
402
|
return await this.handleGenerateManifestsCommand(options);
|
|
372
403
|
case 'deployManifests':
|
|
373
404
|
return await this.handleDeployManifestsCommand(options);
|
|
405
|
+
case 'testDocs':
|
|
406
|
+
return await this.handleTestDocsCommand(options);
|
|
374
407
|
// REMOVED: enhance command, deploy command
|
|
375
408
|
default:
|
|
376
409
|
return {
|
|
@@ -572,6 +605,48 @@ For more help on specific commands, use:
|
|
|
572
605
|
};
|
|
573
606
|
}
|
|
574
607
|
}
|
|
608
|
+
async handleTestDocsCommand(options) {
|
|
609
|
+
try {
|
|
610
|
+
// Show progress for documentation testing
|
|
611
|
+
this.showProgress('📄 Analyzing documentation for testable items...');
|
|
612
|
+
// Validate file exists if provided
|
|
613
|
+
const fs = require('fs');
|
|
614
|
+
if (options.file && !fs.existsSync(options.file)) {
|
|
615
|
+
return {
|
|
616
|
+
success: false,
|
|
617
|
+
error: `Documentation file not found: ${options.file}`
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
// Prepare arguments for the testDocs tool
|
|
621
|
+
const toolArgs = {
|
|
622
|
+
filePath: options.file,
|
|
623
|
+
sessionId: options.sessionId,
|
|
624
|
+
phase: options.phase,
|
|
625
|
+
filePattern: options.filePattern,
|
|
626
|
+
sessionDir: options.sessionDir,
|
|
627
|
+
sectionId: options.sectionId,
|
|
628
|
+
results: options.results
|
|
629
|
+
};
|
|
630
|
+
// Execute the testDocs tool directly
|
|
631
|
+
const { handleTestDocsTool } = await Promise.resolve().then(() => __importStar(require('../tools/test-docs')));
|
|
632
|
+
const requestId = `cli_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
633
|
+
const result = await handleTestDocsTool(toolArgs, this.dotAI || null, this.logger, requestId);
|
|
634
|
+
this.clearProgress();
|
|
635
|
+
// Parse the tool result
|
|
636
|
+
const responseData = JSON.parse(result.content[0].text);
|
|
637
|
+
return {
|
|
638
|
+
success: true,
|
|
639
|
+
data: responseData
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
catch (error) {
|
|
643
|
+
this.clearProgress();
|
|
644
|
+
return {
|
|
645
|
+
success: false,
|
|
646
|
+
error: `Documentation testing failed: ${error.message}`
|
|
647
|
+
};
|
|
648
|
+
}
|
|
649
|
+
}
|
|
575
650
|
// REMOVED: handleEnhanceCommand method - moved to legacy reference
|
|
576
651
|
// See src/legacy/tools/enhance-solution.ts for reference implementation
|
|
577
652
|
async continueWorkflow(workflowId, input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/interfaces/mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/interfaces/mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAgDtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;IA2BjD;;OAEG;IACH,OAAO,CAAC,aAAa;IAmGrB,OAAO,CAAC,iBAAiB;IAKnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,OAAO;CAGnB"}
|