codeguard-testgen 1.0.10 → 1.0.11

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 CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  AI-powered code review and unit test generator with AST analysis for TypeScript/JavaScript projects. Automatically reviews code quality and generates comprehensive Jest tests using Claude, OpenAI, or Gemini.
4
4
 
5
- > **⚡ NEW: Unified Auto Mode** - Automatically review code quality AND generate tests for changed functions!
5
+ > **⚡ NEW: Unified Auto Mode** - Automatically review code quality AND generate tests for staged functions!
6
6
  > ```bash
7
7
  > testgen auto # Reviews code + generates tests
8
8
  > testgen review # Only code review
9
9
  > testgen test # Only test generation
10
+ > testgen doc # Generate API documentation
10
11
  > ```
11
12
 
12
13
  ## Features
@@ -31,6 +32,7 @@ AI-powered code review and unit test generator with AST analysis for TypeScript/
31
32
  - ⚡ **Auto Mode**: Reviews code quality + generates tests for changed functions
32
33
  - 🔄 **Git Integration**: Detects changes via git diff (staged and unstaged)
33
34
  - 🚀 **CI/CD Ready**: Non-interactive modes perfect for automation
35
+ - 📚 **Documentation Mode**: AI-powered OpenAPI/Swagger documentation generation
34
36
 
35
37
  ## Installation
36
38
 
@@ -66,7 +68,13 @@ Create a `codeguard.json` file in your project root:
66
68
  "testDir": "src/tests",
67
69
  "extensions": [".ts", ".tsx", ".js", ".jsx"],
68
70
  "excludeDirs": ["node_modules", "dist", "build", ".git", "coverage"],
69
- "validationInterval": 5
71
+ "validationInterval": 5,
72
+ "docsDir": "docs",
73
+ "docFormat": "json",
74
+ "docTitle": "My API Documentation",
75
+ "docVersion": "1.0.0",
76
+ "includeGenericFunctions": true,
77
+ "repoDoc": false
70
78
  }
71
79
  ```
72
80
 
@@ -81,6 +89,147 @@ Create a `codeguard.json` file in your project root:
81
89
  | `extensions` | No | File extensions to process (default: `.ts`, `.tsx`, `.js`, `.jsx`) |
82
90
  | `excludeDirs` | No | Directories to exclude from scanning |
83
91
  | `validationInterval` | No | Validation frequency in function-wise mode: `undefined` = no validation, `0` = only at end, `N` = validate every N functions |
92
+ | `docsDir` | No | Directory for generated documentation (default: `docs`) |
93
+ | `docFormat` | No | Documentation format: `json` or `yaml` (default: `json`) |
94
+ | `docTitle` | No | API documentation title (default: from package.json name) |
95
+ | `docVersion` | No | API version (default: from package.json version) |
96
+ | `includeGenericFunctions` | No | Include non-API functions in documentation (default: `true`) |
97
+ | `repoDoc` | No | Document entire repository (`true`) or only staged changes (`false`, default) |
98
+ | `reviewSteps` | No | Array of review steps with custom rulesets (see below) |
99
+ | `reviewExecutionMode` | No | How to execute review steps: `parallel` or `sequential` (default: `parallel`) |
100
+
101
+ ### Configurable Review Steps
102
+
103
+ Configure custom review steps with rulesets defined in markdown files. Each ruleset is stored in the `codeguard-ruleset/` folder at your project root.
104
+
105
+ ```json
106
+ {
107
+ "reviewExecutionMode": "parallel",
108
+ "reviewSteps": [
109
+ {
110
+ "id": "code-quality",
111
+ "name": "Code Quality",
112
+ "category": "quality",
113
+ "type": "ai",
114
+ "enabled": true,
115
+ "ruleset": "code-quality.md"
116
+ },
117
+ {
118
+ "id": "security",
119
+ "name": "Security Vulnerabilities",
120
+ "category": "security",
121
+ "type": "ai",
122
+ "enabled": true,
123
+ "ruleset": "security.md"
124
+ }
125
+ ]
126
+ }
127
+ ```
128
+
129
+ **Review Step Options:**
130
+
131
+ | Option | Required | Description |
132
+ |--------|----------|-------------|
133
+ | `id` | Yes | Unique identifier for the step |
134
+ | `name` | Yes | Display name for the review step |
135
+ | `category` | Yes | Category of the review (e.g., `quality`, `security`, `performance`) |
136
+ | `type` | Yes | Type of review (currently only `ai` supported) |
137
+ | `enabled` | Yes | Whether this step is active (`true` or `false`) |
138
+ | `ruleset` | Yes | Filename of markdown ruleset in `codeguard-ruleset/` folder |
139
+
140
+ **Ruleset Files:**
141
+
142
+ Rulesets are markdown files stored in `codeguard-ruleset/` at your project root:
143
+
144
+ ```
145
+ your-project/
146
+ ├── codeguard.json
147
+ ├── codeguard-ruleset/
148
+ │ ├── code-quality.md
149
+ │ ├── security.md
150
+ │ ├── performance.md
151
+ │ └── custom-rules.md
152
+ └── src/
153
+ ```
154
+
155
+ Each ruleset file can contain:
156
+ - Detailed review criteria
157
+ - Specific rules and guidelines
158
+ - Examples and code snippets
159
+ - Severity guidelines
160
+ - OWASP references (for security)
161
+ - Best practices documentation
162
+
163
+ **Example Ruleset File** (`codeguard-ruleset/code-quality.md`):
164
+
165
+ ```markdown
166
+ # Code Quality Review Ruleset
167
+
168
+ ## Review Criteria
169
+
170
+ ### 1. Naming Conventions
171
+ - Functions: Use clear, descriptive names
172
+ - Variables: Use meaningful names
173
+ - Boolean variables: Prefix with is, has, should
174
+
175
+ ### 2. Code Complexity
176
+ - Functions should be concise (< 50 lines)
177
+ - Cyclomatic complexity should be low (< 10)
178
+ - Avoid deeply nested conditionals
179
+
180
+ ...
181
+ ```
182
+
183
+ **Execution Modes:**
184
+
185
+ - **`parallel`** (default): All enabled review steps run simultaneously for faster completion
186
+ - **`sequential`**: Steps run one after another in the order defined
187
+
188
+ **Default Review Steps:**
189
+
190
+ If you don't specify `reviewSteps` in your config, CodeGuard uses these default steps:
191
+ - ✅ **Code Quality** (`code-quality.md`) - Naming, complexity, readability, best practices
192
+ - ✅ **Potential Bugs** (`potential-bugs.md`) - Logic errors, edge cases, type issues, async problems
193
+ - ✅ **Performance** (`performance.md`) - Algorithm efficiency, unnecessary computations, memory leaks
194
+ - ✅ **Security** (`security.md`) - Input validation, injection risks, OWASP vulnerabilities
195
+
196
+ **Included Ruleset Files:**
197
+
198
+ CodeGuard comes with comprehensive default rulesets in `codeguard-ruleset/`:
199
+ - `code-quality.md` - 8 categories including naming, complexity, patterns, error handling
200
+ - `potential-bugs.md` - 8 categories covering logic errors, edge cases, async issues
201
+ - `performance.md` - 8 categories for algorithms, caching, data structures, optimizations
202
+ - `security.md` - OWASP Top 10 coverage with specific checks and references
203
+
204
+ You can customize these files or create your own rulesets for project-specific requirements.
205
+
206
+ **Output Format:**
207
+
208
+ Reviews are organized by step in the final markdown file:
209
+
210
+ ```markdown
211
+ # Code Review
212
+
213
+ ## Summary
214
+ [Overall assessment]
215
+
216
+ ## Files Changed
217
+ [List of files]
218
+
219
+ ## Code Quality
220
+ [Findings from code quality step]
221
+
222
+ ## Security Vulnerabilities
223
+ [Findings from security step]
224
+
225
+ ## Performance Issues
226
+ [Findings from performance step]
227
+
228
+ ## Conclusion
229
+ [Final assessment]
230
+ ```
231
+
232
+ See `codeguard.example.json` for a complete configuration example with additional review steps like Accessibility and Documentation Quality.
84
233
 
85
234
  ### Validation Interval
86
235
 
@@ -258,6 +407,12 @@ cat reviews/user.service.review.md
258
407
  testgen test
259
408
  ```
260
409
 
410
+ **Documentation generation:**
411
+ ```bash
412
+ # Generate API documentation
413
+ testgen doc
414
+ ```
415
+
261
416
  **Output:**
262
417
  ```
263
418
  🧪 AI-Powered Unit Test Generator with AST Analysis
@@ -361,6 +516,128 @@ Test generation only:
361
516
  - Faster when you only need tests
362
517
  - Use: `testgen test`
363
518
 
519
+ #### 7. Documentation Mode
520
+ AI-powered API documentation generation:
521
+ - **Default**: Documents only staged/changed functions (like review/test modes)
522
+ - **Full Repo**: Set `"repoDoc": true` to document entire codebase
523
+ - Analyzes codebase using AST tools
524
+ - Auto-detects API endpoints (Express, NestJS, Fastify, Koa)
525
+ - Generates comprehensive OpenAPI 3.0 specification
526
+ - Documents both API routes and generic functions
527
+ - Smart merge with existing documentation
528
+ - Supports JSON and YAML formats
529
+ - Use: `testgen doc`
530
+
531
+ **Two modes:**
532
+
533
+ **1. Changed Files Only (Default)** - `"repoDoc": false` or omitted
534
+ - Works like `testgen review` and `testgen test`
535
+ - Only documents staged/changed functions
536
+ - Fast and targeted
537
+ - Perfect for incremental updates
538
+ - Requires git repository
539
+
540
+ **2. Full Repository** - `"repoDoc": true`
541
+ - Documents entire codebase
542
+ - Comprehensive documentation generation
543
+ - Useful for initial documentation or major updates
544
+ - No git requirement
545
+
546
+ **What it documents:**
547
+ - ✅ **API Endpoints**: All REST API routes with methods, paths, parameters
548
+ - ✅ **Request/Response Schemas**: Inferred from TypeScript types
549
+ - ✅ **Authentication**: Detects and documents auth requirements
550
+ - ✅ **Error Responses**: Documents error cases and status codes
551
+ - ✅ **Generic Functions**: Optional documentation for utility functions
552
+ - ✅ **Usage Examples**: AI-generated examples for each endpoint
553
+
554
+ **Supported Frameworks:**
555
+ - **Express**: `app.get()`, `router.post()`, route methods
556
+ - **NestJS**: `@Controller()`, `@Get()`, `@Post()`, decorators
557
+ - **Fastify**: `fastify.route()`, route configurations
558
+ - **Koa**: `router.get()`, middleware patterns
559
+
560
+ **Example usage:**
561
+ ```bash
562
+ # Document only changed/staged functions (default)
563
+ testgen doc
564
+
565
+ # Output:
566
+ # 📚 Documentation Mode: Generating API documentation
567
+ #
568
+ # 🔍 Scanning git changes for documentation...
569
+ #
570
+ # 📝 Found changes in 2 file(s)
571
+ #
572
+ # 🤖 Generating OpenAPI specification...
573
+ #
574
+ # ✅ Documentation generated successfully
575
+ #
576
+ # ============================================================
577
+ # 📊 Documentation Summary
578
+ # ============================================================
579
+ # ✅ API Endpoints documented: 5
580
+ # ✅ Generic functions documented: 8
581
+ # 📁 Output: docs/openapi.json
582
+ # ============================================================
583
+
584
+ # For full repository documentation, set in codeguard.json:
585
+ # {
586
+ # "repoDoc": true
587
+ # }
588
+ ```
589
+
590
+ **Generated OpenAPI spec:**
591
+ ```json
592
+ {
593
+ "openapi": "3.0.0",
594
+ "info": {
595
+ "title": "My API",
596
+ "version": "1.0.0"
597
+ },
598
+ "paths": {
599
+ "/users": {
600
+ "get": {
601
+ "summary": "Get all users",
602
+ "responses": {
603
+ "200": {
604
+ "description": "Success",
605
+ "content": {
606
+ "application/json": {
607
+ "schema": {
608
+ "type": "array",
609
+ "items": { "$ref": "#/components/schemas/User" }
610
+ }
611
+ }
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+ },
618
+ "components": {
619
+ "schemas": {
620
+ "User": {
621
+ "type": "object",
622
+ "properties": {
623
+ "id": { "type": "string" },
624
+ "name": { "type": "string" },
625
+ "email": { "type": "string" }
626
+ }
627
+ }
628
+ }
629
+ }
630
+ }
631
+ ```
632
+
633
+ **Smart merging:**
634
+ When existing documentation is found, CodeGuard intelligently merges:
635
+ - ✅ Preserves manually edited descriptions and summaries
636
+ - ✅ Updates schemas with latest types from code
637
+ - ✅ Adds new endpoints without removing manual changes
638
+ - ✅ Maintains custom examples and documentation
639
+ - ✅ Tracks generation metadata and timestamps
640
+
364
641
  ## How It Works
365
642
 
366
643
  ### Code Review Process
@@ -395,6 +672,24 @@ Test generation only:
395
672
  - Type mismatches
396
673
  7. **Failure Detection**: Distinguishes between test bugs and source code bugs
397
674
 
675
+ ### Documentation Generation Process
676
+ 1. **File Scanning**: Recursively scans all source files in the project
677
+ 2. **AST Analysis**: Parses each file using Babel to understand structure
678
+ 3. **Endpoint Detection**: AI identifies API routes across different frameworks:
679
+ - Express: `app.METHOD()`, `router.METHOD()`
680
+ - NestJS: `@Controller()`, `@Get()`, `@Post()`, etc.
681
+ - Fastify: `fastify.route()`, route configurations
682
+ - Koa: `router.METHOD()`, middleware chains
683
+ 4. **Schema Inference**: Extracts TypeScript types for request/response schemas
684
+ 5. **AI Enhancement**: AI generates:
685
+ - Meaningful descriptions for each endpoint
686
+ - Parameter documentation
687
+ - Response examples
688
+ - Error scenarios
689
+ 6. **OpenAPI Generation**: Builds complete OpenAPI 3.0 specification
690
+ 7. **Smart Merge**: Intelligently merges with existing documentation
691
+ 8. **File Output**: Writes to `docs/openapi.json` or `.yaml`
692
+
398
693
  ## Generated Test Features
399
694
 
400
695
  The AI generates tests with:
package/dist/config.d.ts CHANGED
@@ -1,3 +1,11 @@
1
+ export interface ReviewStep {
2
+ id: string;
3
+ name: string;
4
+ category: string;
5
+ type: 'ai';
6
+ enabled: boolean;
7
+ ruleset: string;
8
+ }
1
9
  export interface CodeGuardConfig {
2
10
  aiProvider: 'openai' | 'gemini' | 'claude';
3
11
  apiKeys: {
@@ -11,14 +19,24 @@ export interface CodeGuardConfig {
11
19
  gemini?: string;
12
20
  };
13
21
  testDir?: string;
22
+ testEnv?: 'jest' | 'vitest';
14
23
  extensions?: string[];
15
24
  excludeDirs?: string[];
16
25
  validationInterval?: number;
26
+ docsDir?: string;
27
+ docFormat?: 'json' | 'yaml';
28
+ docTitle?: string;
29
+ docVersion?: string;
30
+ includeGenericFunctions?: boolean;
31
+ repoDoc?: boolean;
32
+ reviewSteps?: ReviewStep[];
33
+ reviewExecutionMode?: 'parallel' | 'sequential';
17
34
  }
18
35
  export interface Config {
19
36
  extensions: string[];
20
37
  excludeDirs: string[];
21
38
  testDir: string;
39
+ testEnv: 'jest' | 'vitest';
22
40
  aiProvider: 'openai' | 'gemini' | 'claude';
23
41
  apiKeys: {
24
42
  claude?: string;
@@ -31,6 +49,14 @@ export interface Config {
31
49
  gemini: string;
32
50
  };
33
51
  validationInterval?: number;
52
+ docsDir: string;
53
+ docFormat: 'json' | 'yaml';
54
+ docTitle: string;
55
+ docVersion: string;
56
+ includeGenericFunctions: boolean;
57
+ repoDoc: boolean;
58
+ reviewSteps: ReviewStep[];
59
+ reviewExecutionMode: 'parallel' | 'sequential';
34
60
  }
35
61
  export declare function loadConfig(): Config;
36
62
  export declare function validateConfig(config: Config): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD,wBAAgB,UAAU,IAAI,MAAM,CA6EnC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAuBnD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;CACjD;AAED,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,mBAAmB,EAAE,UAAU,GAAG,YAAY,CAAC;CAChD;AA2CD,wBAAgB,UAAU,IAAI,MAAM,CA6GnC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAuBnD"}
package/dist/config.js CHANGED
@@ -9,6 +9,40 @@ const DEFAULT_MODELS = {
9
9
  openai: 'gpt-5-mini',
10
10
  gemini: 'gemini-2.0-flash-lite'
11
11
  };
12
+ const DEFAULT_REVIEW_STEPS = [
13
+ {
14
+ id: 'code-quality',
15
+ name: 'Code Quality',
16
+ category: 'quality',
17
+ type: 'ai',
18
+ enabled: true,
19
+ ruleset: 'code-quality.md'
20
+ },
21
+ {
22
+ id: 'potential-bugs',
23
+ name: 'Potential Bugs',
24
+ category: 'bugs',
25
+ type: 'ai',
26
+ enabled: true,
27
+ ruleset: 'potential-bugs.md'
28
+ },
29
+ {
30
+ id: 'performance',
31
+ name: 'Performance Issues',
32
+ category: 'performance',
33
+ type: 'ai',
34
+ enabled: true,
35
+ ruleset: 'performance.md'
36
+ },
37
+ {
38
+ id: 'security',
39
+ name: 'Security Vulnerabilities',
40
+ category: 'security',
41
+ type: 'ai',
42
+ enabled: true,
43
+ ruleset: 'security.md'
44
+ }
45
+ ];
12
46
  function loadConfig() {
13
47
  const configPath = path.join(process.cwd(), 'codeguard.json');
14
48
  // Check if config file exists
@@ -20,6 +54,7 @@ function loadConfig() {
20
54
  return {
21
55
  aiProvider: 'claude',
22
56
  testDir: 'src/tests',
57
+ testEnv: 'jest',
23
58
  extensions: ['.ts', '.tsx', '.js', '.jsx'],
24
59
  excludeDirs: ['node_modules', 'dist', 'build', '.git', 'coverage', '__tests__'],
25
60
  apiKeys: {
@@ -27,7 +62,15 @@ function loadConfig() {
27
62
  openai: process.env.OPENAI_API_KEY,
28
63
  gemini: process.env.GEMINI_API_KEY
29
64
  },
30
- models: DEFAULT_MODELS
65
+ models: DEFAULT_MODELS,
66
+ docsDir: 'docs',
67
+ docFormat: 'json',
68
+ docTitle: 'API Documentation',
69
+ docVersion: '1.0.0',
70
+ includeGenericFunctions: true,
71
+ repoDoc: false,
72
+ reviewSteps: DEFAULT_REVIEW_STEPS,
73
+ reviewExecutionMode: 'parallel'
31
74
  };
32
75
  }
33
76
  // Load and parse config file
@@ -54,10 +97,25 @@ function loadConfig() {
54
97
  if (!selectedProviderKey) {
55
98
  throw new Error(`API key for "${config.aiProvider}" not found in codeguard.json`);
56
99
  }
100
+ // Try to read package.json for default title and version
101
+ let packageTitle = 'API Documentation';
102
+ let packageVersion = '1.0.0';
103
+ try {
104
+ const packagePath = path.join(process.cwd(), 'package.json');
105
+ if (fs.existsSync(packagePath)) {
106
+ const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf-8'));
107
+ packageTitle = packageJson.name || packageTitle;
108
+ packageVersion = packageJson.version || packageVersion;
109
+ }
110
+ }
111
+ catch {
112
+ // Ignore errors reading package.json
113
+ }
57
114
  // Build final config with defaults
58
115
  return {
59
116
  aiProvider: config.aiProvider,
60
117
  testDir: config.testDir || 'src/tests',
118
+ testEnv: config.testEnv || 'jest',
61
119
  extensions: config.extensions || ['.ts', '.tsx', '.js', '.jsx'],
62
120
  excludeDirs: config.excludeDirs || [
63
121
  'node_modules',
@@ -77,7 +135,15 @@ function loadConfig() {
77
135
  openai: config.models?.openai || DEFAULT_MODELS.openai,
78
136
  gemini: config.models?.gemini || DEFAULT_MODELS.gemini
79
137
  },
80
- validationInterval: config.validationInterval // undefined by default (no validation)
138
+ validationInterval: config.validationInterval, // undefined by default (no validation)
139
+ docsDir: config.docsDir || 'docs',
140
+ docFormat: config.docFormat || 'json',
141
+ docTitle: config.docTitle || packageTitle,
142
+ docVersion: config.docVersion || packageVersion,
143
+ includeGenericFunctions: config.includeGenericFunctions !== undefined ? config.includeGenericFunctions : true,
144
+ repoDoc: config.repoDoc !== undefined ? config.repoDoc : false,
145
+ reviewSteps: config.reviewSteps || DEFAULT_REVIEW_STEPS,
146
+ reviewExecutionMode: config.reviewExecutionMode || 'parallel'
81
147
  };
82
148
  }
83
149
  function validateConfig(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -23,7 +23,7 @@ interface Tool {
23
23
  };
24
24
  }
25
25
  declare const TOOLS: Tool[];
26
- declare function analyzeFileAST(filePath: string): any;
26
+ declare function analyzeFileAST(filePath: string, functionName?: string): any;
27
27
  declare function getFunctionAST(filePath: string, functionName: string): any;
28
28
  declare function getImportsAST(filePath: string): any;
29
29
  declare function getTypeDefinitions(filePath: string): any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}