@vyuhlabs/dxkit 0.2.0 → 0.4.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 CHANGED
@@ -58,8 +58,8 @@ CLAUDE.md # Main context file for Claude Code
58
58
 
59
59
  | Language | Detection | Linters | Tests | Coverage |
60
60
  |---|---|---|---|---|
61
- | Node.js / TypeScript | `package.json` | ESLint, Prettier, tsc | Jest | jest --coverage |
62
- | Python | `pyproject.toml`, `setup.py` | ruff, mypy | pytest | pytest-cov |
61
+ | Node.js / TypeScript | `package.json` | ESLint, Prettier, tsc | Auto-detected (Jest, Mocha, Vitest, Ava) | framework-specific |
62
+ | Python | `pyproject.toml`, `setup.py`, `*.py` | ruff, mypy | pytest | pytest-cov |
63
63
  | Go | `go.mod` | golangci-lint, go vet | go test | go cover |
64
64
  | C# | `*.csproj`, `*.sln` | dotnet format, Roslyn | dotnet test | coverlet |
65
65
  | Rust | `Cargo.toml` | clippy, rustfmt | cargo test | tarpaulin |
@@ -73,6 +73,16 @@ Auto-detected and integrated when present:
73
73
  - **Pulumi** — IaC with preview-before-apply safety
74
74
  - **Docker** — Container commands
75
75
 
76
+ ## Supported Frameworks
77
+
78
+ Auto-detected with framework-specific rules:
79
+
80
+ - **LoopBack** — Controller/model/repository patterns, decorator conventions
81
+ - **Express** — Middleware/routing conventions, error handling patterns
82
+ - **NestJS**, **Fastify**, **Koa**, **Hapi** — Detected (rules coming soon)
83
+ - **FastAPI**, **Django**, **Flask** — Detected (rules coming soon)
84
+ - **Gin**, **Echo**, **Fiber** — Detected (rules coming soon)
85
+
76
86
  ## Commands
77
87
 
78
88
  After init, these slash commands are available in Claude Code:
@@ -88,23 +98,27 @@ After init, these slash commands are available in Claude Code:
88
98
  ### Quality & Testing
89
99
  | Command | Description |
90
100
  |---|---|
91
- | `/quality` | Run language-specific linters and type checks |
92
- | `/test` | Run tests with coverage enforcement |
101
+ | `/quality` | Run language-specific linters + AI review |
102
+ | `/test` | Run tests (auto-detected runner: Jest, Mocha, Vitest, etc.) |
93
103
  | `/check` | Full pre-commit validation (quality + tests + AI review) |
94
104
  | `/fix` | Auto-fix formatting and lint issues |
105
+ | `/build` | Build the project |
95
106
  | `/setup-hooks` | Install git pre-commit/pre-push hooks |
107
+ | `/test-gaps` | Find critical untested code paths |
96
108
 
97
109
  ### Exploration & Onboarding
98
110
  | Command | Description |
99
111
  |---|---|
100
112
  | `/onboarding` | Interactive onboarding for new developers |
101
113
  | `/explore-codebase` | Deep architecture exploration |
114
+ | `/deps` | Map dependencies ("what breaks if I change X?") |
102
115
  | `/help` | List all commands and agents |
103
116
 
104
117
  ### Operations
105
118
  | Command | Description |
106
119
  |---|---|
107
120
  | `/fix-issue <number>` | Investigate and fix a GitHub issue |
121
+ | `/setup-pr-review` | Set up automated PR review GitHub Action |
108
122
  | `/doctor` | Diagnose environment issues |
109
123
  | `/enable-agent <name>` | Activate a dormant agent |
110
124
 
@@ -121,6 +135,8 @@ These agents auto-trigger when Claude detects a matching question:
121
135
  - **codebase-explorer** — Deep architecture analysis, generates documentation
122
136
  - **code-reviewer** — PR review and security audit (read-only)
123
137
  - **test-writer** — Writes tests for existing code
138
+ - **test-gap-finder** — Identifies critical untested code paths, prioritized by risk
139
+ - **dependency-mapper** — Maps import chains and blast radius of changes
124
140
  - **debugger** — Systematic root cause analysis
125
141
 
126
142
  ## Learning System
@@ -135,9 +151,23 @@ DXKit includes a continuous learning system that improves over time:
135
151
  - `.claude/skills/learned/references/conventions.md`
136
152
  - `.claude/skills/learned/references/deny-recommendations.md`
137
153
 
138
- ## Coverage Enforcement
154
+ ## PR Review Automation
155
+
156
+ DXKit generates a GitHub Action (`.github/workflows/pr-review.yml`) that automatically reviews PRs using Claude Code. Enable it by:
157
+
158
+ 1. Set `ENABLE_AI_REVIEW=true` as a GitHub Actions variable
159
+ 2. Add `ANTHROPIC_API_KEY` to repo secrets
160
+
161
+ Reviews appear as PR comments with issues rated as critical/warning/suggestion.
162
+
163
+ ## Smart Detection
164
+
165
+ DXKit goes beyond language detection:
139
166
 
140
- Tests run with a minimum coverage threshold (default: 80%). Configure at init time or in `.vyuh-dxkit.json`.
167
+ - **Test runner** Detects Jest, Mocha, Vitest, Ava, Tap, pytest, go test from package.json scripts and dependencies
168
+ - **Framework** — Detects LoopBack, Express, NestJS, FastAPI, Gin, etc. and generates framework-specific rules
169
+ - **Test presence** — Counts test files vs source files and warns about minimal test coverage
170
+ - **Multi-language** — Detects Python from `.py` files even without `pyproject.toml` (common in mixed repos)
141
171
 
142
172
  ## CLI Reference
143
173
 
@@ -183,10 +213,11 @@ npx @vyuhlabs/dxkit init --detect --yes
183
213
  This generates:
184
214
  - `CLAUDE.md` with Node.js-specific context
185
215
  - `.claude/commands/quality.md` with `npx eslint .` and `npx tsc --noEmit`
186
- - `.claude/commands/test.md` with `npx jest --coverage` (80% threshold)
187
- - `.claude/rules/` with Node.js conventions
216
+ - `.claude/commands/test.md` with auto-detected test runner and framework
217
+ - `.claude/rules/` with Node.js + framework-specific conventions
188
218
  - `.claude/skills/codebase/SKILL.md` with auto-scanned architecture overview
189
- - 3 active agents + 4 dormant agents
219
+ - `.github/workflows/pr-review.yml` for automated PR review
220
+ - 3 active agents + 7 dormant agents
190
221
 
191
222
  Then in Claude Code:
192
223
  ```
@@ -26,6 +26,8 @@ export interface CodebaseAnalysis {
26
26
  description: string;
27
27
  }[];
28
28
  fileCount: number;
29
+ testFileCount: number;
30
+ sourceFileCount: number;
29
31
  }
30
32
  export declare function scanCodebase(cwd: string): CodebaseAnalysis;
31
33
  export declare function renderCodebaseSkill(analysis: CodebaseAnalysis): string;
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-scanner.d.ts","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AA8VD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAa1D;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAiEtE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CA4CxE"}
1
+ {"version":3,"file":"codebase-scanner.d.ts","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAiWD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAwB1D;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAwEtE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CA4CxE"}
@@ -391,9 +391,21 @@ function detectConventions(cwd) {
391
391
  return conventions;
392
392
  }
393
393
  // --- Main Scanner ---
394
+ const TEST_FILE_PATTERNS = /(_test\.go$|\.test\.[tj]sx?$|\.spec\.[tj]sx?$|test_.*\.py$|Tests?\.cs$|_test\.rs$)/;
395
+ const SOURCE_FILE_EXTENSIONS = /\.(ts|tsx|js|jsx|py|go|rs|cs|java)$/;
394
396
  function scanCodebase(cwd) {
395
397
  let fileCount = 0;
396
- walkFiles(cwd, () => { fileCount++; }, 4);
398
+ let testFileCount = 0;
399
+ let sourceFileCount = 0;
400
+ walkFiles(cwd, (rel) => {
401
+ fileCount++;
402
+ if (TEST_FILE_PATTERNS.test(rel) || rel.includes('__tests__/') || rel.includes('/tests/') || rel.includes('/test/')) {
403
+ testFileCount++;
404
+ }
405
+ else if (SOURCE_FILE_EXTENSIONS.test(rel)) {
406
+ sourceFileCount++;
407
+ }
408
+ }, 4);
397
409
  return {
398
410
  entryPoints: findEntryPoints(cwd),
399
411
  directories: classifyDirectories(cwd),
@@ -402,6 +414,8 @@ function scanCodebase(cwd) {
402
414
  configFiles: findConfigFiles(cwd),
403
415
  conventions: detectConventions(cwd),
404
416
  fileCount,
417
+ testFileCount,
418
+ sourceFileCount,
405
419
  };
406
420
  }
407
421
  // --- Render Functions ---
@@ -441,13 +455,21 @@ function renderCodebaseSkill(analysis) {
441
455
  }
442
456
  lines.push('');
443
457
  }
458
+ // Test overview
459
+ lines.push('## Testing', '');
460
+ lines.push(`- **${analysis.testFileCount}** test files found across **${analysis.sourceFileCount}** source files`);
461
+ if (analysis.testFileCount === 0) {
462
+ lines.push('- **No tests found.** This project needs test infrastructure.');
463
+ }
464
+ else if (analysis.sourceFileCount > 50 && analysis.testFileCount < analysis.sourceFileCount * 0.1) {
465
+ lines.push('- **Minimal test presence.** Most code paths are likely untested.');
466
+ }
444
467
  if (analysis.testPatterns.length) {
445
- lines.push('## Test Patterns', '');
446
468
  for (const tp of analysis.testPatterns) {
447
469
  lines.push(`- **${tp.framework}** — ${tp.location} (${tp.pattern})`);
448
470
  }
449
- lines.push('');
450
471
  }
472
+ lines.push('');
451
473
  if (analysis.configFiles.length) {
452
474
  lines.push('## Configuration', '');
453
475
  for (const cf of analysis.configFiles) {
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-scanner.js","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codebase-scanner.js","sourceRoot":"","sources":["../src/codebase-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ResolvedConfig } from './types';
2
- export declare const VERSION = "0.2.0";
2
+ export declare const VERSION = "0.4.0";
3
3
  export declare const DEFAULT_VERSIONS: {
4
4
  python: string;
5
5
  go: string;
package/dist/constants.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EVOLVING_FILES = exports.DEFAULT_COVERAGE = exports.DEFAULT_VERSIONS = exports.VERSION = void 0;
4
4
  exports.buildVariables = buildVariables;
5
5
  exports.buildConditions = buildConditions;
6
- exports.VERSION = '0.2.0';
6
+ exports.VERSION = '0.4.0';
7
7
  exports.DEFAULT_VERSIONS = {
8
8
  python: '3.12',
9
9
  go: '1.24.0',
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAsRxC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAqCjD"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAsRxC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAsCjD"}
package/dist/detect.js CHANGED
@@ -325,7 +325,8 @@ function detect(cwd) {
325
325
  return {
326
326
  languages: {
327
327
  python: fileExists(cwd, 'pyproject.toml') || fileExists(cwd, 'setup.py') ||
328
- fileExists(cwd, 'requirements.txt') || fileExists(cwd, 'Pipfile'),
328
+ fileExists(cwd, 'requirements.txt') || fileExists(cwd, 'Pipfile') ||
329
+ !!findFileRecursive(cwd, /\.py$/, 2),
329
330
  go: fileExists(cwd, 'go.mod'),
330
331
  node: fileExists(cwd, 'package.json') && !isNextjs,
331
332
  nextjs: isNextjs,
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AA+D9E,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,UAAQ,GACb,OAAO,CAAC,cAAc,CAAC,CAkQzB"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AA+D9E,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,UAAQ,GACb,OAAO,CAAC,cAAc,CAAC,CA+QzB"}
package/dist/generator.js CHANGED
@@ -204,6 +204,11 @@ async function generate(targetDir, config, mode, force, noScan = false) {
204
204
  copyStatic('.claude/rules/rust.md', '.claude/rules/rust.md');
205
205
  if (conditions.IF_CSHARP)
206
206
  copyStatic('.claude/rules/csharp.md', '.claude/rules/csharp.md');
207
+ // Framework-specific rules
208
+ if (config.framework === 'loopback')
209
+ copyStatic('.claude/rules/loopback.md', '.claude/rules/loopback.md');
210
+ if (config.framework === 'express')
211
+ copyStatic('.claude/rules/express.md', '.claude/rules/express.md');
207
212
  logger.success('.claude/rules/');
208
213
  // 5. Commands (static .md copied as-is, .md.template processed through engine)
209
214
  const commandsDir = path.join(templatesDir, '.claude', 'commands');
@@ -237,6 +242,12 @@ async function generate(targetDir, config, mode, force, noScan = false) {
237
242
  }
238
243
  }
239
244
  logger.success('.claude/agents/');
245
+ // 6b. PR review workflow (dx-only mode — always copy if GitHub Actions dir doesn't conflict)
246
+ const prReviewSrc = path.join(templatesDir, '.github', 'workflows', 'pr-review.yml');
247
+ if (fs.existsSync(prReviewSrc)) {
248
+ copyStatic('.github/workflows/pr-review.yml', '.github/workflows/pr-review.yml');
249
+ logger.success('.github/workflows/pr-review.yml');
250
+ }
240
251
  // 7. Codebase scan
241
252
  if (!noScan) {
242
253
  logger.info('Scanning codebase...');
@@ -249,7 +260,10 @@ async function generate(targetDir, config, mode, force, noScan = false) {
249
260
  const refPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'references', 'architecture.md');
250
261
  const refRes = await (0, files_1.writeFile)(refPath, refContent, opts(true));
251
262
  track(refPath, null, refRes, true);
252
- logger.success(`.claude/skills/codebase/ (${analysis.fileCount} files scanned, ${analysis.entryPoints.length} entry points, ${analysis.apiEndpoints.length} API routes)`);
263
+ logger.success(`.claude/skills/codebase/ (${analysis.fileCount} files, ${analysis.entryPoints.length} entry points, ${analysis.apiEndpoints.length} API routes)`);
264
+ if (analysis.testFileCount < 5 && analysis.sourceFileCount > 20) {
265
+ logger.warn(`Minimal tests: ${analysis.testFileCount} test files for ${analysis.sourceFileCount} source files`);
266
+ }
253
267
  }
254
268
  // === FULL TIER ===
255
269
  if (mode === 'full') {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,4BAwQC;AAhVD,uCAAyB;AACzB,2CAA6B;AAE7B,2CAAuF;AACvF,uDAAoD;AACpD,mCAAqF;AACrF,yDAA8F;AAC9F,iDAAmC;AAEnC,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsB,EAAE,UAAmC;IACpF,MAAM,KAAK,GAAa;QACtB,mBAAmB,EAAE,wBAAwB,EAAE,4BAA4B;QAC3E,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB;QACvE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB;QAC/D,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB;QACnE,uBAAuB,EAAE,oBAAoB,EAAE,oBAAoB;QACnE,mBAAmB,EAAE,mBAAmB,EAAE,2BAA2B;QACrE,wBAAwB;QACxB,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB;KAClF,CAAC;IAEF,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC1F,IAAI,UAAU,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACnH,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACjH,IAAI,UAAU,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IACxG,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;IACnI,IAAI,UAAU,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;IAClG,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,6BAA6B,CAAC,CAAC;IACtH,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,kCAAkC,CAAC,CAAC;IAClK,IAAI,UAAU,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;IAEhH,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,wDAAwD;QACjE,WAAW,EAAE;YACX,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;SACT;QACD,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,qJAAqJ;yBAC/J;qBACF;iBACF;aACF;SACF;KACF,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AACrB,CAAC;AASM,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,MAAsB,EACtB,IAAoB,EACpB,KAAc,EACd,MAAM,GAAG,KAAK;IAEd,MAAM,SAAS,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAmB;QAC7B,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,mBAAO;YAChB,IAAI;YACJ,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,MAAM;YACN,KAAK,EAAE,EAAE;SACV;KACF,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhF,SAAS,KAAK,CAAC,UAAkB,EAAE,OAAsB,EAAE,WAAmB,EAAE,QAAiB;QAC/F,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxD,IAAI,WAAW,KAAK,aAAa;YAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;YAC3B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK;QACpF,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,IAAA,iCAAe,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAS,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,6BAA6B;IAC7B,SAAS,UAAU,CAAC,YAAoB,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB;IAEvB,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAE3C,eAAe;IACf,MAAM,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5B,mBAAmB;IACnB,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,IAAA,iBAAS,EAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAExC,iCAAiC;IACjC,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACvE,MAAM,aAAa,CAAC,kBAAkB,KAAK,oBAAoB,EAAE,kBAAkB,KAAK,WAAW,CAAC,CAAC;IACvG,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACrD,UAAU,CAAC,kBAAkB,KAAK,WAAW,EAAE,kBAAkB,KAAK,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,uCAAuC;IACvC,MAAM,aAAa,CAAC,yCAAyC,EAAE,gCAAgC,CAAC,CAAC;IACjG,UAAU,CAAC,6CAA6C,EAAE,6CAA6C,EAAE,IAAI,CAAC,CAAC;IAE/G,2BAA2B;IAC3B,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,kBAAkB,KAAK,aAAa,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,UAAU,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,UAAU,CAAC,iCAAiC,EAAE,iCAAiC,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,CAAC;QAC/E,UAAU,CAAC,6CAA6C,EAAE,6CAA6C,EAAE,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElC,qCAAqC;IACrC,IAAI,UAAU,CAAC,SAAS;QAAE,UAAU,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;IAC3F,IAAI,UAAU,CAAC,KAAK;QAAE,UAAU,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAC/E,IAAI,UAAU,CAAC,SAAS;QAAE,UAAU,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;IAC3F,IAAI,UAAU,CAAC,OAAO;QAAE,UAAU,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;IACrF,IAAI,UAAU,CAAC,SAAS;QAAE,UAAU,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEjC,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACjD,MAAM,aAAa,CAAC,oBAAoB,IAAI,EAAE,EAAE,oBAAoB,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,oBAAoB,IAAI,EAAE,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3E,+DAA+D;IAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC9E,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,UAAU,CAAC,4BAA4B,IAAI,EAAE,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,kBAAkB,IAAI,EAAE,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElC,mBAAmB;IACnB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAA,+BAAY,EAAC,SAAS,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAA,sCAAmB,EAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAS,EAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,IAAA,wCAAqB,EAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEnC,MAAM,CAAC,OAAO,CAAC,6BAA6B,QAAQ,CAAC,SAAS,mBAAmB,QAAQ,CAAC,WAAW,CAAC,MAAM,kBAAkB,QAAQ,CAAC,YAAY,CAAC,MAAM,cAAc,CAAC,CAAC;IAC5K,CAAC;IAED,oBAAoB;IAEpB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAErD,oBAAoB;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxF,0BAA0B;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;oBAChD,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;oBAChD,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,WAAW;QACX,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3B,iBAAiB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAA,qBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,iDAAiD;QACjD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,sBAAsB,CAAC,wCAAwC,EAAE,gBAAgB,CAAC,CAAC;YACzF,MAAM,sBAAsB,CAAC,mCAAmC,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,sBAAsB,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,sBAAsB,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,sBAAsB,CAAC,qCAAqC,EAAE,eAAe,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAEtD,oBAAoB;QACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;QACtF,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAChE,MAAM,aAAa,CAAC,kCAAkC,EAAE,yBAAyB,CAAC,CAAC;YACnF,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACtF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,aAAa,CAAC,mCAAmC,EAAE,0BAA0B,CAAC,CAAC;YACrF,MAAM,aAAa,CAAC,wCAAwC,EAAE,+BAA+B,CAAC,CAAC;YAC/F,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;QAED,gBAAgB;QAChB,UAAU,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEhC,gBAAgB;QAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAS,EAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB;IACjB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAErF,OAAO,MAAM,CAAC;IAEd,wEAAwE;IACxE,KAAK,UAAU,sBAAsB,CAAC,YAAoB,EAAE,SAAiB;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB;IACjD,MAAM,KAAK,GAAG;QACZ,UAAU;QACV,YAAY,MAAM,CAAC,WAAW,GAAG;QACjC,mBAAmB,MAAM,CAAC,kBAAkB,GAAG;QAC/C,EAAE;QACF,YAAY;QACZ,WAAW;QACX,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACzC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG;QAC1C,cAAc;QACd,mBAAmB,MAAM,CAAC,iBAAiB,EAAE;QAC7C,kBAAkB;QAClB,uBAAuB;QACvB,oBAAoB;QACpB,OAAO;QACP,gBAAgB,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE;QACrC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG;QACtC,cAAc;QACd,mBAAmB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE;QACzE,kBAAkB;QAClB,oBAAoB;QACpB,SAAS;QACT,gBAAgB,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QAClE,iBAAiB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG;QACxC,SAAS;QACT,gBAAgB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QACvC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG;QACxC,WAAW;QACX,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACzC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG;QAC1C,cAAc;QACd,kBAAkB;QAClB,oBAAoB;QACpB,WAAW;QACX,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACzC,EAAE;QACF,iBAAiB;QACjB,aAAa;QACb,gBAAgB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;QAChD,UAAU;QACV,gBAAgB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;QAC7C,EAAE;QACF,cAAc,MAAM,CAAC,SAAS,EAAE;QAChC,EAAE;QACF,QAAQ;QACR,qBAAqB;QACrB,iBAAiB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACrC,aAAa,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE;QAC3C,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAClC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAClC,gBAAgB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;KACzC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,GAAW;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;aAC1D,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vyuhlabs/dxkit",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "AI-native developer experience toolkit for any repository",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: dependency-mapper
3
+ description: Maps internal dependencies and import chains. Use when asked "what depends on this?", "what breaks if I change X?", or "show me the dependency graph". Read-only — cannot modify files.
4
+ model: sonnet
5
+ tools: Read, Grep, Glob
6
+ ---
7
+
8
+ You are a dependency analysis specialist. Your job is to trace import chains and map how code modules depend on each other.
9
+
10
+ ## Strategy
11
+
12
+ ### Phase 1: Map Imports
13
+ 1. Find all source files using Glob
14
+ 2. For each file, extract imports:
15
+ - TypeScript/JS: `import ... from '...'`, `require('...')`
16
+ - Python: `import ...`, `from ... import ...`
17
+ - Go: `import "..."` blocks
18
+ - C#: `using ...;`
19
+ 3. Build a dependency graph: file → [files it imports]
20
+
21
+ ### Phase 2: Identify Key Nodes
22
+ Find files that are:
23
+ - **Most depended on** (many files import them) — changing these is high risk
24
+ - **Most dependencies** (import many files) — these are complex/fragile
25
+ - **Circular dependencies** — these cause maintenance problems
26
+
27
+ ### Phase 3: Impact Analysis
28
+ If the user asks about a specific file:
29
+ 1. Find everything that imports it (direct dependents)
30
+ 2. Find everything that depends on those (transitive dependents)
31
+ 3. Estimate blast radius: "Changing X directly affects Y files, indirectly affects Z files"
32
+
33
+ ### Phase 4: Generate Report
34
+
35
+ ```markdown
36
+ ## Dependency Map
37
+
38
+ ### Most Depended On (high-risk to change)
39
+ | File | Depended on by | Risk |
40
+ |------|---------------|------|
41
+ | `src/models/user.model.ts` | 12 files | High — used across all controllers |
42
+
43
+ ### Most Complex (many imports)
44
+ | File | Imports | Note |
45
+ |------|---------|------|
46
+ | `src/server.ts` | 25 modules | Consider breaking up |
47
+
48
+ ### Circular Dependencies
49
+ - `src/services/a.ts` ↔ `src/services/b.ts`
50
+
51
+ ### Service Boundaries
52
+ - `src/controllers/` → `src/services/` → `src/repositories/` → `src/models/`
53
+ - External: `src/services/` → axios, kafka, elasticsearch
54
+ ```
55
+
56
+ If the user asks about a specific file, provide:
57
+ ```markdown
58
+ ### Impact of changing `src/models/user.model.ts`
59
+ **Direct dependents (12):**
60
+ - src/controllers/user.controller.ts
61
+ - src/services/user.service.ts
62
+ - ...
63
+
64
+ **Transitive dependents (5):**
65
+ - src/server.ts (via user.controller.ts)
66
+ - ...
67
+
68
+ **Estimated blast radius:** 17 files
69
+ ```
70
+
71
+ ## Rules
72
+
73
+ - **Read-only** — never modify files
74
+ - **Be specific** — show actual file paths and import statements
75
+ - **Focus on internal deps** — skip node_modules/external packages unless asked
76
+ - **Never output secrets**
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: test-gap-finder
3
+ description: Identifies critical code paths that lack tests. Use when asked about test gaps, untested code, "what should I test?", or "where are we missing tests?". Read-only — cannot modify files.
4
+ model: sonnet
5
+ tools: Read, Grep, Glob
6
+ ---
7
+
8
+ You are a test coverage analyst. Your job is to find critical untested code by cross-referencing source files with test files.
9
+
10
+ ## Strategy
11
+
12
+ ### Phase 1: Map Test Landscape
13
+ 1. Find all test files:
14
+ - `Glob("**/*.test.ts")`, `Glob("**/*.spec.ts")`, `Glob("**/__tests__/**")`
15
+ - `Glob("**/*_test.go")`, `Glob("**/test_*.py")`, `Glob("**/*Tests.cs")`
16
+ 2. Find all source files (excluding tests, configs, generated code)
17
+ 3. Build a mapping: source file → test file(s) that cover it
18
+
19
+ ### Phase 2: Identify Gaps
20
+ For each source file WITHOUT tests:
21
+ 1. Read the file to assess criticality
22
+ 2. Score based on risk:
23
+ - **Critical**: Handles money, auth, permissions, data mutations, external APIs, scheduled jobs
24
+ - **Important**: Business logic, data transformations, validations, middleware
25
+ - **Low risk**: Pure utilities, constants, type definitions, simple CRUD wrappers
26
+
27
+ ### Phase 3: Analyze Existing Tests
28
+ For files WITH tests, check if they're thorough:
29
+ - Error/edge cases covered?
30
+ - Auth/permission checks tested?
31
+ - Boundary conditions handled?
32
+
33
+ ### Phase 4: Generate Report
34
+
35
+ ```markdown
36
+ ## Test Gap Analysis
37
+
38
+ ### Critical — Test These First
39
+ | File | Why | What to Test |
40
+ |------|-----|-------------|
41
+ | `src/services/payment.ts` | Handles payments, no tests | Happy path, failed payment, refund, idempotency |
42
+
43
+ ### Important — Should Have Tests
44
+ | File | Why | What to Test |
45
+ |------|-----|-------------|
46
+ | `src/middleware/auth.ts` | Auth logic, partial tests | Token expiry, role escalation, invalid signatures |
47
+
48
+ ### Well Tested
49
+ - `src/controllers/user.controller.ts` — 15 test cases, good coverage
50
+
51
+ ### Summary
52
+ - X source files, Y test files
53
+ - Z critical files with no tests
54
+ - Top 5 files to prioritize
55
+ ```
56
+
57
+ ## Rules
58
+
59
+ - **Read-only** — never modify files
60
+ - **Be specific** — name exact functions that need tests, not just files
61
+ - **Prioritize by risk** — money > auth > data mutations > business logic > utilities
62
+ - **Check indirect testing** — a function may be tested through integration tests
63
+ - **Never output secrets** found while reading source files
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Build the project
3
+ ---
4
+
5
+ Build the project. Run these commands:
6
+
7
+ {{#IF_NODE}}
8
+ ## Node / TypeScript
9
+ 1. `npm install` — Install dependencies (if node_modules is missing)
10
+ 2. `npm run build` — Build/compile
11
+ {{/IF_NODE}}
12
+ {{#IF_PYTHON}}
13
+ ## Python
14
+ 1. `pip install -e .` — Install in development mode (if not already)
15
+ {{/IF_PYTHON}}
16
+ {{#IF_GO}}
17
+ ## Go
18
+ 1. `go build ./...` — Build all packages
19
+ {{/IF_GO}}
20
+ {{#IF_CSHARP}}
21
+ ## C#
22
+ 1. `dotnet restore` — Restore dependencies
23
+ 2. `dotnet build` — Build
24
+ {{/IF_CSHARP}}
25
+ {{#IF_RUST}}
26
+ ## Rust
27
+ 1. `cargo build` — Build
28
+ {{/IF_RUST}}
29
+
30
+ Report build results. If there are errors, diagnose and suggest fixes.
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Map dependencies — "what depends on X?" or "what breaks if I change Y?"
3
+ ---
4
+
5
+ Delegate to the **dependency-mapper** agent. It will trace import chains and show what depends on what.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,72 @@
1
+ ---
2
+ description: Set up automated PR review with Claude Code
3
+ ---
4
+
5
+ Set up a GitHub Action that automatically reviews pull requests using Claude Code.
6
+
7
+ ## What to Create
8
+
9
+ Create `.github/workflows/pr-review.yml` with this content:
10
+
11
+ ```yaml
12
+ name: PR Review
13
+
14
+ on:
15
+ pull_request:
16
+ types: [opened, synchronize, reopened]
17
+
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+
22
+ jobs:
23
+ review:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ with:
28
+ fetch-depth: 0
29
+
30
+ - name: Install Claude Code
31
+ run: npm install -g @anthropic-ai/claude-code
32
+
33
+ - name: Review PR
34
+ env:
35
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
36
+ run: |
37
+ # Get the diff
38
+ git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr-diff.txt
39
+
40
+ # Run Claude Code in non-interactive mode
41
+ claude -p "Review this pull request diff for bugs, security issues, and code quality problems. Focus on:
42
+ 1. Logic errors and edge cases
43
+ 2. Security vulnerabilities (hardcoded secrets, injection, auth gaps)
44
+ 3. Error handling gaps
45
+ 4. Breaking changes
46
+
47
+ Be specific: reference file:line numbers. Rate each issue as critical/warning/suggestion.
48
+ Only flag real issues — not style (linters handle that).
49
+
50
+ The diff:
51
+ $(cat /tmp/pr-diff.txt)" > /tmp/review.md
52
+
53
+ - name: Post Review Comment
54
+ uses: actions/github-script@v7
55
+ with:
56
+ script: |
57
+ const fs = require('fs');
58
+ const review = fs.readFileSync('/tmp/review.md', 'utf8');
59
+ await github.rest.issues.createComment({
60
+ owner: context.repo.owner,
61
+ repo: context.repo.repo,
62
+ issue_number: context.issue.number,
63
+ body: `## 🤖 Claude Code Review\n\n${review}\n\n---\n*Automated review by Claude Code*`
64
+ });
65
+ ```
66
+
67
+ ## After Creating
68
+
69
+ Tell the user:
70
+ 1. Add `ANTHROPIC_API_KEY` to the repo's GitHub Secrets (Settings → Secrets → Actions)
71
+ 2. The workflow will run automatically on every PR
72
+ 3. Reviews appear as PR comments
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: Find critical code paths that lack test coverage
3
+ ---
4
+
5
+ Delegate to the **test-gap-finder** agent. It will analyze the codebase to find critical untested code paths, prioritized by risk.
6
+
7
+ $ARGUMENTS
@@ -0,0 +1,30 @@
1
+ ---
2
+ paths:
3
+ - "**/routes/**/*"
4
+ - "**/middleware/**/*"
5
+ - "**/controllers/**/*"
6
+ - "**/*.router.ts"
7
+ - "**/*.router.js"
8
+ ---
9
+
10
+ ## Express Conventions
11
+
12
+ ### Routes
13
+ - Use `express.Router()` for modular route definitions
14
+ - Group routes by domain: `/api/users`, `/api/orders`
15
+ - Use middleware for auth, validation, error handling — not route handlers
16
+
17
+ ### Middleware
18
+ - Error-handling middleware has 4 params: `(err, req, res, next)`
19
+ - Always call `next()` in non-terminal middleware
20
+ - Order matters: auth before route handlers, error handler last
21
+
22
+ ### Error Handling
23
+ - Use `next(error)` to pass errors to error-handling middleware
24
+ - Never swallow errors silently in catch blocks
25
+ - Return appropriate HTTP status codes (400 for validation, 401 for auth, 500 for server)
26
+
27
+ ### Request Handling
28
+ - Validate request body/params before processing
29
+ - Use `async/await` with try/catch (or express-async-errors)
30
+ - Always send a response — never leave requests hanging
@@ -0,0 +1,41 @@
1
+ ---
2
+ paths:
3
+ - "**/*.controller.ts"
4
+ - "**/*.model.ts"
5
+ - "**/*.repository.ts"
6
+ - "**/*.datasource.ts"
7
+ - "**/*.service.ts"
8
+ - "**/controllers/**/*"
9
+ - "**/models/**/*"
10
+ - "**/repositories/**/*"
11
+ ---
12
+
13
+ ## LoopBack 4 Conventions
14
+
15
+ ### Controllers
16
+ - Use decorators: `@get`, `@post`, `@put`, `@patch`, `@del` for route definitions
17
+ - Use `@param` for path/query parameters, `@requestBody` for body
18
+ - Controllers should delegate business logic to services, not implement it directly
19
+ - Use `@response` decorator for OpenAPI documentation
20
+
21
+ ### Models
22
+ - Extend `Entity` for database-backed models
23
+ - Use `@model()` and `@property()` decorators
24
+ - Define relationships with `@hasMany`, `@belongsTo`, `@hasOne`
25
+ - Set `id: true` on the primary key property
26
+
27
+ ### Repositories
28
+ - Extend `DefaultCrudRepository` for standard CRUD
29
+ - Use `@repository` decorator for dependency injection
30
+ - Custom queries should be methods on the repository, not the controller
31
+
32
+ ### Dependency Injection
33
+ - Use constructor injection: `@inject('key')` or `@repository(ModelRepository)`
34
+ - Bind services in `application.ts`
35
+ - Use `@service` decorator for service injection
36
+
37
+ ### Naming
38
+ - Controllers: `*.controller.ts` with class `*Controller`
39
+ - Models: `*.model.ts` with class `*` (PascalCase)
40
+ - Repositories: `*.repository.ts` with class `*Repository`
41
+ - Datasources: `*.datasource.ts`
@@ -0,0 +1,72 @@
1
+ name: PR Review
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+
7
+ permissions:
8
+ contents: read
9
+ pull-requests: write
10
+
11
+ jobs:
12
+ review:
13
+ runs-on: ubuntu-latest
14
+ # Only run if ANTHROPIC_API_KEY is configured
15
+ if: ${{ vars.ENABLE_AI_REVIEW == 'true' }}
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Set up Node.js
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: '20'
25
+
26
+ - name: Install Claude Code
27
+ run: npm install -g @anthropic-ai/claude-code
28
+
29
+ - name: Review PR
30
+ env:
31
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
32
+ run: |
33
+ # Get changed files
34
+ CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
35
+ DIFF=$(git diff origin/${{ github.base_ref }}...HEAD)
36
+
37
+ # Run Claude Code review
38
+ claude -p "You are reviewing a pull request. Review the following changes for:
39
+
40
+ 1. **Bugs** — Logic errors, null handling, race conditions, off-by-one
41
+ 2. **Security** — Hardcoded secrets, injection vectors, auth gaps
42
+ 3. **Error handling** — Swallowed errors, missing edge cases
43
+ 4. **Breaking changes** — API changes, schema changes, config changes
44
+
45
+ Changed files:
46
+ $CHANGED_FILES
47
+
48
+ Diff:
49
+ $DIFF
50
+
51
+ Rules:
52
+ - Be specific: reference file:line numbers
53
+ - Rate each issue: 🔴 critical / 🟡 warning / 🔵 suggestion
54
+ - Only flag real issues — not style (linters handle that)
55
+ - If everything looks good, say so
56
+ - Keep it concise" > /tmp/review.md
57
+
58
+ - name: Post Review Comment
59
+ if: success()
60
+ uses: actions/github-script@v7
61
+ with:
62
+ script: |
63
+ const fs = require('fs');
64
+ const review = fs.readFileSync('/tmp/review.md', 'utf8');
65
+ if (review.trim()) {
66
+ await github.rest.issues.createComment({
67
+ owner: context.repo.owner,
68
+ repo: context.repo.repo,
69
+ issue_number: context.issue.number,
70
+ body: `## Claude Code Review\n\n${review}\n\n---\n*Automated review by [Claude Code](https://claude.ai/claude-code)*`
71
+ });
72
+ }
@@ -155,6 +155,9 @@ Slash commands for common workflows. Run `/help` to list all with descriptions.
155
155
  - `/setup-hooks` - Install git pre-commit/pre-push hooks
156
156
  - `/learn` - Capture a gotcha, convention, or thing to avoid
157
157
  - `/test` - Run tests
158
+ - `/setup-pr-review` - Set up automated PR review with Claude Code
159
+ - `/test-gaps` - Find critical untested code paths
160
+ - `/deps` - Map dependencies ("what breaks if I change X?")
158
161
  - `/fix-issue <number>` - Investigate and fix a GitHub issue
159
162
 
160
163
  ### Rules (`.claude/rules/`)
@@ -170,6 +173,8 @@ Language-specific conventions that activate automatically when editing matching
170
173
  - `codebase-explorer` — Deep architecture analysis, generates codebase skill (sonnet, read-only)
171
174
  - `code-reviewer` — Read-only PR review and security audit (sonnet, no write access)
172
175
  - `test-writer` — Writes tests for existing code (sonnet)
176
+ - `test-gap-finder` — Identifies critical untested code paths (sonnet, read-only)
177
+ - `dependency-mapper` — Maps import chains and blast radius (sonnet, read-only)
173
178
  - `debugger` — Traces root causes systematically (sonnet, no file edits)
174
179
 
175
180
  ## AI-Assisted Development Workflow