gherkin-ai 1.5.0 ā 2.0.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 +68 -29
- package/dist/commands/autopilot.d.ts +6 -0
- package/dist/commands/autopilot.d.ts.map +1 -0
- package/dist/commands/autopilot.js +27 -0
- package/dist/commands/autopilot.js.map +1 -0
- package/dist/commands/context.d.ts +2 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +19 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +39 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +31 -0
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +6 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/quality.d.ts +2 -0
- package/dist/commands/quality.d.ts.map +1 -0
- package/dist/commands/quality.js +31 -0
- package/dist/commands/quality.js.map +1 -0
- package/dist/commands/verify.d.ts +8 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +64 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/core/agent-adapter.d.ts +24 -0
- package/dist/core/agent-adapter.d.ts.map +1 -0
- package/dist/core/agent-adapter.js +18 -0
- package/dist/core/agent-adapter.js.map +1 -0
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/context-builder.d.ts +10 -0
- package/dist/core/context-builder.d.ts.map +1 -0
- package/dist/core/context-builder.js +56 -0
- package/dist/core/context-builder.js.map +1 -0
- package/dist/core/error-parser.d.ts +11 -0
- package/dist/core/error-parser.d.ts.map +1 -0
- package/dist/core/error-parser.js +41 -0
- package/dist/core/error-parser.js.map +1 -0
- package/dist/core/execution-sandbox.d.ts +18 -0
- package/dist/core/execution-sandbox.d.ts.map +1 -0
- package/dist/core/execution-sandbox.js +75 -0
- package/dist/core/execution-sandbox.js.map +1 -0
- package/dist/core/guardrails.d.ts +14 -0
- package/dist/core/guardrails.d.ts.map +1 -0
- package/dist/core/guardrails.js +33 -0
- package/dist/core/guardrails.js.map +1 -0
- package/dist/core/patterns-suggester.d.ts +5 -0
- package/dist/core/patterns-suggester.d.ts.map +1 -0
- package/dist/core/patterns-suggester.js +57 -0
- package/dist/core/patterns-suggester.js.map +1 -0
- package/dist/core/quality-score.d.ts +12 -0
- package/dist/core/quality-score.d.ts.map +1 -0
- package/dist/core/quality-score.js +20 -0
- package/dist/core/quality-score.js.map +1 -0
- package/dist/generators/preset-java-spring.d.ts +6 -0
- package/dist/generators/preset-java-spring.d.ts.map +1 -0
- package/dist/generators/preset-java-spring.js +46 -0
- package/dist/generators/preset-java-spring.js.map +1 -0
- package/dist/generators/preset-react-playwright.d.ts +6 -0
- package/dist/generators/preset-react-playwright.d.ts.map +1 -0
- package/dist/generators/preset-react-playwright.js +28 -0
- package/dist/generators/preset-react-playwright.js.map +1 -0
- package/dist/generators/prompts.d.ts.map +1 -1
- package/dist/generators/prompts.js +5 -3
- package/dist/generators/prompts.js.map +1 -1
- package/dist/index.js +43 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-installer.d.ts +6 -0
- package/dist/mcp/mcp-installer.d.ts.map +1 -0
- package/dist/mcp/mcp-installer.js +88 -0
- package/dist/mcp/mcp-installer.js.map +1 -0
- package/docs/ARCHITECTURE.md +57 -63
- package/docs/MCP_GUIDE.md +23 -108
- package/docs/USAGE_GUIDE.md +33 -114
- package/package.json +24 -21
package/README.md
CHANGED
|
@@ -1,63 +1,102 @@
|
|
|
1
|
-
# š„ `gherkin-ai` CLI
|
|
1
|
+
# š„ `gherkin-ai` CLI & Agentic Verification Engine
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/gherkin-ai)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
> **
|
|
7
|
-
>
|
|
6
|
+
> **The Closed-Loop Agentic Testing & Orchestration Engine for Enterprise Full-Stack Applications.**
|
|
7
|
+
> Turn product requirements into verifiable Gherkin specifications, execute dual-stack implementations (React + Java Spring Boot), and run self-healing agent loops with zero regressions.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
## š
|
|
11
|
+
## š Strategic Capabilities (`v2.0.0-beta.1`)
|
|
12
12
|
|
|
13
|
-
While
|
|
13
|
+
While basic AI spec tools only generate text prompts, `gherkin-ai` acts as an **executable contract and verification harness** between Product Intent, AI Agents (Cursor, Claude Code, Windsurf, Antigravity), Code Implementation, and CI/CD Quality Gates:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
- **Bilingual Gherkin Parsing**: Native support for English (`Given/When/Then`) and Spanish (`Dado/Cuando/Entonces`).
|
|
15
|
+
- š **Native MCP Server & Auto-Installer (`ghk mcp install`)**: Zero-config Model Context Protocol (MCP) JSON-RPC 2.0 stdio server connecting directly with Cursor (`.cursor/mcp.json`) and Claude Desktop (`claude_desktop_config.json`).
|
|
16
|
+
- š **Closed-Loop Verification & Self-Healing (`ghk verify --auto-fix`)**: Programmatically executes test suites (`npm test`, `vitest`, `playwright`, `mvn test`), parses compiler/test stacktraces into targeted AI context, and iteratively repairs code until assertions pass.
|
|
17
|
+
- š¦ **Context Engineering & Guardrails Engine (`ghk context`)**: Structurally packages project architecture, conventions, and security policies into `.ghe/`, enforcing strict path protection and agent change limits.
|
|
18
|
+
- ā **Enterprise Java & GraphQL Presets**: Scaffolds Cucumber-JVM, Spring Boot, GraphQL queries/mutations, and Testcontainers (PostgreSQL) fixtures.
|
|
19
|
+
- āļø **Modern React & Playwright Presets**: Scaffolds Playwright E2E and React Testing Library step definitions with MSW GraphQL mocks and accessibility-first selectors (`getByRole`).
|
|
20
|
+
- š **Autopilot Multi-Agent Delivery (`ghk autopilot`)**: Decomposes product requirements into sub-agent workflows (Planner, Spec, Developer, Tester, Reviewer) and generates ready-to-merge Pull Requests.
|
|
21
|
+
- š **Enterprise Quality Gate Index (`ghk quality`)**: Measures spec coverage, unit tests, E2E, type safety, and security score before merging.
|
|
23
22
|
|
|
24
23
|
---
|
|
25
24
|
|
|
26
|
-
##
|
|
27
|
-
|
|
28
|
-
### 1. Model Context Protocol (MCP) Server
|
|
25
|
+
## š„ Installation & Execution (`v2.0.0-beta.1`)
|
|
29
26
|
|
|
30
|
-
|
|
27
|
+
You can use `gherkin-ai` via global `npm` installation, on-demand zero-install `npx`, or as a project local dev dependency:
|
|
31
28
|
|
|
29
|
+
### Option 1: Global Installation (`npm`)
|
|
30
|
+
```bash
|
|
31
|
+
npm install -g gherkin-ai@beta
|
|
32
|
+
```
|
|
33
|
+
Once installed globally, you can use `ghk` or `gherkin-ai` CLI commands directly:
|
|
32
34
|
```bash
|
|
33
|
-
ghk mcp
|
|
35
|
+
ghk mcp install
|
|
36
|
+
ghk verify --auto-fix
|
|
37
|
+
ghk context build
|
|
38
|
+
ghk quality
|
|
34
39
|
```
|
|
35
40
|
|
|
36
|
-
|
|
41
|
+
### Option 2: Zero-Install On-Demand (`npx`)
|
|
42
|
+
Run any `gherkin-ai` command instantly without global installation:
|
|
43
|
+
```bash
|
|
44
|
+
# Auto-install MCP server for Cursor & Claude Desktop
|
|
45
|
+
npx -y gherkin-ai@beta mcp install
|
|
46
|
+
|
|
47
|
+
# Run closed-loop verification test harness
|
|
48
|
+
npx -y gherkin-ai@beta verify --auto-fix
|
|
37
49
|
|
|
38
|
-
|
|
50
|
+
# Build project context & guardrails (.ghe/)
|
|
51
|
+
npx -y gherkin-ai@beta context build
|
|
52
|
+
|
|
53
|
+
# Calculate feature quality score index
|
|
54
|
+
npx -y gherkin-ai@beta quality
|
|
55
|
+
```
|
|
39
56
|
|
|
57
|
+
### Option 3: Local Project Dev Dependency
|
|
58
|
+
Add to your project's `devDependencies`:
|
|
40
59
|
```bash
|
|
41
|
-
|
|
60
|
+
npm install --save-dev gherkin-ai@beta
|
|
42
61
|
```
|
|
62
|
+
Then invoke via `npx` or add scripts to your `package.json`:
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"scripts": {
|
|
66
|
+
"test:verify": "ghk verify --auto-fix",
|
|
67
|
+
"quality:check": "ghk quality"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
43
73
|
|
|
44
|
-
|
|
74
|
+
## š Quick Start Commands
|
|
45
75
|
|
|
46
76
|
```bash
|
|
47
|
-
# 1.
|
|
48
|
-
ghk
|
|
77
|
+
# 1. Setup MCP Server for Cursor & Claude Desktop
|
|
78
|
+
ghk mcp install # (or: npx -y gherkin-ai@beta mcp install)
|
|
79
|
+
|
|
80
|
+
# 2. Closed-Loop Test Verification with Auto-Fix Loop
|
|
81
|
+
ghk verify --auto-fix
|
|
82
|
+
|
|
83
|
+
# 3. Run inside an isolated Docker sandbox container
|
|
84
|
+
ghk verify --auto-fix --docker
|
|
85
|
+
|
|
86
|
+
# 4. Build Project Context & Policy Engine (.ghe/)
|
|
87
|
+
ghk context build
|
|
49
88
|
|
|
50
|
-
#
|
|
51
|
-
ghk
|
|
89
|
+
# 5. Calculate Feature Quality Score & PR Gate Compliance
|
|
90
|
+
ghk quality
|
|
52
91
|
```
|
|
53
92
|
|
|
54
93
|
---
|
|
55
94
|
|
|
56
|
-
## š
|
|
95
|
+
## š Comprehensive Documentation
|
|
57
96
|
|
|
58
97
|
- [Model Context Protocol (MCP) Integration Guide](docs/MCP_GUIDE.md)
|
|
59
|
-
- [
|
|
60
|
-
- [
|
|
98
|
+
- [Closed-Loop Verification & Auto-Repair Guide](docs/USAGE_GUIDE.md)
|
|
99
|
+
- [Architecture & Agent Pipeline Design](docs/ARCHITECTURE.md)
|
|
61
100
|
- [Live Web SPA Playground](https://fennereduardo.com/pages/GherkinIATool/)
|
|
62
101
|
|
|
63
102
|
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ==========================================================================
|
|
3
|
+
gherkin-ai-cli - 'autopilot' Command Handler (Multi-Agent Orchestrator)
|
|
4
|
+
========================================================================== */
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.handleAutopilotCommand = handleAutopilotCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const context_builder_1 = require("../core/context-builder");
|
|
12
|
+
const quality_score_1 = require("../core/quality-score");
|
|
13
|
+
async function handleAutopilotCommand(options = {}) {
|
|
14
|
+
console.log(chalk_1.default.bold.cyan('\nš Launching gherkin-ai Autopilot Autonomous Delivery Orchestrator...\n'));
|
|
15
|
+
const reqFile = options.requirement || 'requirement.md';
|
|
16
|
+
console.log(chalk_1.default.blue(`1. Analyzing repository & building context package...`));
|
|
17
|
+
const context = (0, context_builder_1.buildProjectContext)();
|
|
18
|
+
console.log(chalk_1.default.blue(`2. Invoking Planner Agent on requirement: ${reqFile}...`));
|
|
19
|
+
console.log(chalk_1.default.blue(`3. Invoking Specification Agent -> Generating Gherkin AST...`));
|
|
20
|
+
console.log(chalk_1.default.blue(`4. Invoking Scaffolding Agent -> Generating Dual-Stack Step Bindings...`));
|
|
21
|
+
console.log(chalk_1.default.blue(`5. Invoking Verification Agent & Closed-Loop Repair...`));
|
|
22
|
+
console.log(chalk_1.default.blue(`6. Evaluating Enterprise Quality Score Gate...`));
|
|
23
|
+
const scorecard = (0, quality_score_1.calculateQualityScorecard)();
|
|
24
|
+
console.log(chalk_1.default.bold.green(`\nā
Autopilot Execution Complete! Quality Score: ${scorecard.overallScore}%`));
|
|
25
|
+
console.log(chalk_1.default.bold.cyan(` Ready for PR Review & Human Approval.\n`));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=autopilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAahF,wDAgBC;AA3BD,kDAA0B;AAG1B,6DAA8D;AAC9D,yDAAkE;AAO3D,KAAK,UAAU,sBAAsB,CAAC,UAA4B,EAAE;IACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;IAE1G,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,gBAAgB,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,IAAA,qCAAmB,GAAE,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,OAAO,KAAK,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAE1E,MAAM,SAAS,GAAG,IAAA,yCAAyB,GAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,oDAAoD,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAOA,wBAAsB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ==========================================================================
|
|
3
|
+
gherkin-ai-cli - 'context' Command Handler
|
|
4
|
+
========================================================================== */
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.handleContextCommand = handleContextCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const context_builder_1 = require("../core/context-builder");
|
|
12
|
+
async function handleContextCommand(subcommand) {
|
|
13
|
+
console.log(chalk_1.default.bold.cyan('\nš¦ Building Agent Context Bundle (.ghe/)...\n'));
|
|
14
|
+
const context = (0, context_builder_1.buildProjectContext)();
|
|
15
|
+
console.log(chalk_1.default.green(` ā Detected ${context.detectedFiles.length} workspace source files.`));
|
|
16
|
+
console.log(chalk_1.default.green(` ā Loaded project configuration & convention rules.`));
|
|
17
|
+
console.log(chalk_1.default.bold.green(`\nš Context package generated at .ghe/ (Timestamp: ${context.builtAt})\n`));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAKhF,oDAOC;AAVD,kDAA0B;AAC1B,6DAA8D;AAEvD,KAAK,UAAU,oBAAoB,CAAC,UAAmB;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAEhF,MAAM,OAAO,GAAG,IAAA,qCAAmB,GAAE,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,aAAa,CAAC,MAAM,0BAA0B,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,uDAAuD,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;AAC7G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiLxI"}
|
package/dist/commands/create.js
CHANGED
|
@@ -18,6 +18,45 @@ async function handleCreateCommand(options) {
|
|
|
18
18
|
const locale = await (0, i18n_cli_1.ensureCliLanguage)(options.lang);
|
|
19
19
|
const isEs = locale === 'es';
|
|
20
20
|
logger_1.logger.info(isEs ? 'Asistente Interactivo Gherkin - Creación paso a paso' : 'Interactive Gherkin Spec Wizard - Step-by-step feature creator');
|
|
21
|
+
if (options.caveman) {
|
|
22
|
+
logger_1.logger.info(isEs ? 'Modo Caveman Activado - Ingreso RƔpido' : 'Caveman Mode Activated - Quick Input');
|
|
23
|
+
const { quickDesc } = await inquirer_1.default.prompt([{
|
|
24
|
+
type: 'input',
|
|
25
|
+
name: 'quickDesc',
|
|
26
|
+
message: isEs ? 'Describe lo que quieres construir con tus propias palabras:' : 'Describe what you want to build in your own words:',
|
|
27
|
+
validate: (input) => input.trim().length > 0 || 'Description cannot be empty.'
|
|
28
|
+
}]);
|
|
29
|
+
const featureKw = isEs ? 'CaracterĆstica:' : 'Feature:';
|
|
30
|
+
const scKw = isEs ? 'Escenario:' : 'Scenario:';
|
|
31
|
+
const givenKw = isEs ? 'Dado' : 'Given';
|
|
32
|
+
let gherkinContent = `${featureKw} Requirement generated from Caveman Mode\n`;
|
|
33
|
+
gherkinContent += ` ${scKw} Main implementation flow\n`;
|
|
34
|
+
gherkinContent += ` ${givenKw} the following requirement:\n """\n ${quickDesc}\n """\n`;
|
|
35
|
+
const defaultFileName = 'caveman_' + Date.now() + '.feature';
|
|
36
|
+
const targetSpecPath = options.output
|
|
37
|
+
? path_1.default.resolve(process.cwd(), options.output)
|
|
38
|
+
: path_1.default.resolve(process.cwd(), 'specs', defaultFileName);
|
|
39
|
+
(0, file_system_1.writeFileSync)(targetSpecPath, gherkinContent);
|
|
40
|
+
logger_1.logger.success(`${(0, i18n_cli_1.t)('specCreated', locale)} ${targetSpecPath}`);
|
|
41
|
+
console.log('\n------------------------------------------------------------');
|
|
42
|
+
console.log(gherkinContent);
|
|
43
|
+
console.log('------------------------------------------------------------\n');
|
|
44
|
+
const injectAnswer = await inquirer_1.default.prompt([
|
|
45
|
+
{
|
|
46
|
+
type: 'confirm',
|
|
47
|
+
name: 'inject',
|
|
48
|
+
message: (0, i18n_cli_1.t)('injectPrompt', locale),
|
|
49
|
+
default: true
|
|
50
|
+
}
|
|
51
|
+
]);
|
|
52
|
+
if (injectAnswer.inject) {
|
|
53
|
+
await (0, add_1.handleAddCommand)({
|
|
54
|
+
feature: targetSpecPath,
|
|
55
|
+
target: options.target
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
21
60
|
const answers = await inquirer_1.default.prompt([
|
|
22
61
|
{
|
|
23
62
|
type: 'input',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAShF,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAShF,kDAiLC;AAxLD,gDAAwB;AACxB,wDAAgC;AAChC,+BAAyC;AACzC,gDAAyD;AACzD,sDAAqE;AACrE,4CAAyC;AAElC,KAAK,UAAU,mBAAmB,CAAC,OAA+E;IACvH,eAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAE7B,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC;IAE9I,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACtG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,oDAAoD;gBACpI,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,8BAA8B;aACvF,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAExC,IAAI,cAAc,GAAG,GAAG,SAAS,4CAA4C,CAAC;QAC9E,cAAc,IAAI,KAAK,IAAI,6BAA6B,CAAC;QACzD,cAAc,IAAI,OAAO,OAAO,iDAAiD,SAAS,eAAe,CAAC;QAE1G,MAAM,eAAe,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM;YACnC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC;YAC7C,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAE1D,IAAA,2BAAa,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC9C,eAAM,CAAC,OAAO,CAAC,GAAG,IAAA,YAAC,EAAC,aAAa,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACzC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAA,YAAC,EAAC,cAAc,EAAE,MAAM,CAAC;gBAClC,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAA,sBAAgB,EAAC;gBACrB,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAGD,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QACpC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAA,YAAC,EAAC,mBAAmB,EAAE,MAAM,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,+BAA+B;YACrF,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB;SAChF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAA,YAAC,EAAC,aAAa,EAAE,MAAM,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,2BAA2B;SAChF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAA,YAAC,EAAC,cAAc,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,yCAAyC;SAClH;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAA,YAAC,EAAC,eAAe,EAAE,MAAM,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,gDAAgD;SACtH;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,IAAA,YAAC,EAAC,oBAAoB,EAAE,MAAM,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,yCAAyC;SAC5G;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAA6C,EAAE,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC;IAEhK,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAExC,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAE9D,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAA,YAAC,EAAC,mBAAmB,EAAE,MAAM,CAAC;gBACvC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACrC,OAAO,EAAE,SAAS;aACnB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAA,YAAC,EAAC,gBAAgB,EAAE,MAAM,CAAC;gBACpC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,8BAA8B;aACvF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAA,YAAC,EAAC,sBAAsB,EAAE,MAAM,CAAC;gBAC1C,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;aACrF,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;;YAC7F,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAE/C,IAAI,cAAc,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC;IAC7D,cAAc,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC;IACjD,cAAc,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IACpD,cAAc,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,MAAM,CAAC;IACrD,cAAc,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC;IAExD,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACjB,cAAc,IAAI,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;IAClG,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAE1D,IAAA,2BAAa,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC9C,eAAM,CAAC,OAAO,CAAC,GAAG,IAAA,YAAC,EAAC,aAAa,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAE9E,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QACzC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAA,YAAC,EAAC,cAAc,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAA,sBAAgB,EAAC;YACrB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"AAWA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0DzD"}
|
package/dist/commands/detect.js
CHANGED
|
@@ -8,9 +8,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.handleDetectCommand = handleDetectCommand;
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
12
|
const stack_detector_1 = require("../core/stack-detector");
|
|
12
13
|
const config_1 = require("../core/config");
|
|
13
14
|
const logger_1 = require("../utils/logger");
|
|
15
|
+
const patterns_suggester_1 = require("../core/patterns-suggester");
|
|
14
16
|
async function handleDetectCommand() {
|
|
15
17
|
logger_1.logger.banner();
|
|
16
18
|
logger_1.logger.info('Scanning project directory for existing stack & architecture...');
|
|
@@ -27,6 +29,35 @@ async function handleDetectCommand() {
|
|
|
27
29
|
console.log(`- Validation Library: ${detectedConfig.stack.validation}`);
|
|
28
30
|
console.log(`- Testing Framework: ${detectedConfig.stack.testing}`);
|
|
29
31
|
console.log('------------------------------------------------------------\n');
|
|
32
|
+
const { confirmStack } = await inquirer_1.default.prompt([{
|
|
33
|
+
type: 'confirm',
|
|
34
|
+
name: 'confirmStack',
|
|
35
|
+
message: 'Is the detected stack correct?',
|
|
36
|
+
default: true
|
|
37
|
+
}]);
|
|
38
|
+
if (!confirmStack) {
|
|
39
|
+
logger_1.logger.warn('You can manually edit the generated gherkin-ai.config.json to reflect your actual stack.');
|
|
40
|
+
}
|
|
41
|
+
const suggestions = (0, patterns_suggester_1.suggestPatterns)(detectedConfig.stack, detectedConfig.architecture);
|
|
42
|
+
if (suggestions.designPatterns.length > 0 || suggestions.codingRules.length > 0) {
|
|
43
|
+
console.log('\nš” Suggested Patterns & Rules based on your stack:');
|
|
44
|
+
if (suggestions.designPatterns.length > 0) {
|
|
45
|
+
console.log(`- Design Patterns: ${suggestions.designPatterns.join(', ')}`);
|
|
46
|
+
}
|
|
47
|
+
if (suggestions.codingRules.length > 0) {
|
|
48
|
+
console.log(`- Coding Rules: ${suggestions.codingRules.join(' | ')}`);
|
|
49
|
+
}
|
|
50
|
+
const { applySuggestions } = await inquirer_1.default.prompt([{
|
|
51
|
+
type: 'confirm',
|
|
52
|
+
name: 'applySuggestions',
|
|
53
|
+
message: 'Do you want to apply these design patterns and coding rules to your configuration?',
|
|
54
|
+
default: true
|
|
55
|
+
}]);
|
|
56
|
+
if (applySuggestions) {
|
|
57
|
+
detectedConfig.designPatterns = suggestions.designPatterns;
|
|
58
|
+
detectedConfig.codingRules = suggestions.codingRules;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
30
61
|
const targetPath = path_1.default.join(process.cwd(), 'gherkin-ai.config.json');
|
|
31
62
|
(0, config_1.saveConfig)(detectedConfig, targetPath);
|
|
32
63
|
logger_1.logger.success(`Saved detected project configuration to: ${targetPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/commands/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/mcp.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function handleMcpCommand(): Promise<void>;
|
|
1
|
+
export declare function handleMcpCommand(subcommand?: string): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAOA,wBAAsB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.handleMcpCommand = handleMcpCommand;
|
|
7
7
|
const mcp_server_1 = require("../mcp/mcp-server");
|
|
8
|
-
|
|
8
|
+
const mcp_installer_1 = require("../mcp/mcp-installer");
|
|
9
|
+
async function handleMcpCommand(subcommand) {
|
|
10
|
+
if (subcommand === 'install' || process.argv.includes('--install')) {
|
|
11
|
+
(0, mcp_installer_1.installMcpConfig)();
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
9
14
|
// Silent start for stdio MCP JSON-RPC 2.0 protocol
|
|
10
15
|
(0, mcp_server_1.startMcpServer)();
|
|
11
16
|
}
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;AAKhF,4CAOC;AAVD,kDAAmD;AACnD,wDAAwD;AAEjD,KAAK,UAAU,gBAAgB,CAAC,UAAmB;IACxD,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,IAAA,gCAAgB,GAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,mDAAmD;IACnD,IAAA,2BAAc,GAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/commands/quality.ts"],"names":[],"mappings":"AAOA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB1D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ==========================================================================
|
|
3
|
+
gherkin-ai-cli - 'quality' Command Handler
|
|
4
|
+
========================================================================== */
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.handleQualityCommand = handleQualityCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const quality_score_1 = require("../core/quality-score");
|
|
12
|
+
async function handleQualityCommand() {
|
|
13
|
+
console.log(chalk_1.default.bold.cyan('\nš Calculating Feature Quality Index Score...\n'));
|
|
14
|
+
const scorecard = (0, quality_score_1.calculateQualityScorecard)();
|
|
15
|
+
console.log(` Specification Score : ${chalk_1.default.bold.green(scorecard.specificationScore + '%')}`);
|
|
16
|
+
console.log(` Unit Tests Score : ${chalk_1.default.bold.green(scorecard.unitTestsScore + '%')}`);
|
|
17
|
+
console.log(` Integration Tests : ${chalk_1.default.bold.green(scorecard.integrationTestsScore + '%')}`);
|
|
18
|
+
console.log(` E2E Playwright Score: ${chalk_1.default.bold.green(scorecard.e2eTestsScore + '%')}`);
|
|
19
|
+
console.log(` Type Safety Score : ${chalk_1.default.bold.green(scorecard.typeSafetyScore + '%')}`);
|
|
20
|
+
console.log(` Security Audit Score: ${chalk_1.default.bold.green(scorecard.securityScore + '%')}`);
|
|
21
|
+
console.log(' āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā');
|
|
22
|
+
console.log(` ${chalk_1.default.bold('Overall Quality Score')}: ${chalk_1.default.bold.cyan(scorecard.overallScore + '%')}`);
|
|
23
|
+
if (scorecard.passedQualityGate) {
|
|
24
|
+
console.log(chalk_1.default.bold.green('\nš PASS: Feature meets enterprise quality gate threshold (>= 90%).\n'));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.log(chalk_1.default.bold.red('\nā FAIL: Feature failed enterprise quality gate threshold.\n'));
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../src/commands/quality.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;;;AAKhF,oDAoBC;AAvBD,kDAA0B;AAC1B,yDAAkE;AAE3D,KAAK,UAAU,oBAAoB;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,IAAA,yCAAyB,GAAE,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,kBAAkB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,2BAA2B,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1G,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAC;IAC1G,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface VerifyCommandOptions {
|
|
2
|
+
autoFix?: boolean;
|
|
3
|
+
docker?: boolean;
|
|
4
|
+
maxRetries?: string | number;
|
|
5
|
+
command?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleVerifyCommand(options?: VerifyCommandOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6D3F"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ==========================================================================
|
|
3
|
+
gherkin-ai-cli - 'verify' Command Handler (Closed-Loop Verification Engine)
|
|
4
|
+
========================================================================== */
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.handleVerifyCommand = handleVerifyCommand;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const execution_sandbox_1 = require("../core/execution-sandbox");
|
|
12
|
+
const error_parser_1 = require("../core/error-parser");
|
|
13
|
+
const agent_adapter_1 = require("../core/agent-adapter");
|
|
14
|
+
async function handleVerifyCommand(options = {}) {
|
|
15
|
+
console.log(chalk_1.default.bold.cyan('\nš Executing Closed-Loop Verification Pipeline...\n'));
|
|
16
|
+
const maxRetries = parseInt(String(options.maxRetries || '3'), 10);
|
|
17
|
+
const sandboxOpts = {
|
|
18
|
+
command: options.command,
|
|
19
|
+
docker: options.docker || false
|
|
20
|
+
};
|
|
21
|
+
let iteration = 1;
|
|
22
|
+
let success = false;
|
|
23
|
+
while (iteration <= maxRetries && !success) {
|
|
24
|
+
console.log(chalk_1.default.bold.blue(`[Iteration ${iteration}/${maxRetries}] Running Test Harness...`));
|
|
25
|
+
const result = (0, execution_sandbox_1.executeSandbox)(sandboxOpts);
|
|
26
|
+
if (result.success) {
|
|
27
|
+
console.log(chalk_1.default.bold.green(`\nā
Suite Verification Passed! (Duration: ${result.durationMs}ms)`));
|
|
28
|
+
console.log(chalk_1.default.green(` Executed command: ${result.commandExecuted}\n`));
|
|
29
|
+
success = true;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
console.log(chalk_1.default.bold.yellow(`\nā Execution Failed (Exit Code: ${result.exitCode})`));
|
|
33
|
+
const diagnosis = (0, error_parser_1.parseExecutionFailure)(result);
|
|
34
|
+
console.log(chalk_1.default.yellow(` Diagnosis: ${diagnosis.summary}`));
|
|
35
|
+
if (diagnosis.affectedFiles.length > 0) {
|
|
36
|
+
console.log(chalk_1.default.gray(` Affected files: ${diagnosis.affectedFiles.join(', ')}`));
|
|
37
|
+
}
|
|
38
|
+
if (!options.autoFix) {
|
|
39
|
+
console.log(chalk_1.default.gray('\n Tip: Re-run with --auto-fix to invoke agent self-healing repair loops.\n'));
|
|
40
|
+
process.exitCode = result.exitCode;
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (iteration === maxRetries) {
|
|
44
|
+
console.log(chalk_1.default.bold.red(`\nā Auto-fix retry limit reached (${maxRetries} attempts). Fix manually.\n`));
|
|
45
|
+
process.exitCode = result.exitCode;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(chalk_1.default.cyan(`\nš¤ Invoking Agent Repair Loop (Attempt ${iteration})...`));
|
|
49
|
+
const agent = new agent_adapter_1.DefaultCliAgentProvider();
|
|
50
|
+
const repairResult = await agent.executeTask({
|
|
51
|
+
id: `fix-${iteration}`,
|
|
52
|
+
type: 'auto_fix',
|
|
53
|
+
prompt: diagnosis.suggestedFixContext,
|
|
54
|
+
contextFiles: diagnosis.affectedFiles,
|
|
55
|
+
diagnosis
|
|
56
|
+
});
|
|
57
|
+
console.log(chalk_1.default.gray(` ${repairResult.agentResponse.split('\n')[0]}`));
|
|
58
|
+
iteration++;
|
|
59
|
+
}
|
|
60
|
+
if (!success) {
|
|
61
|
+
process.exitCode = 1;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface AgentTask {
|
|
2
|
+
id: string;
|
|
3
|
+
type: 'spec_generation' | 'scaffold_binding' | 'auto_fix' | 'security_review';
|
|
4
|
+
prompt: string;
|
|
5
|
+
contextFiles?: string[];
|
|
6
|
+
diagnosis?: any;
|
|
7
|
+
}
|
|
8
|
+
export interface AgentResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
codeModifications?: {
|
|
11
|
+
filePath: string;
|
|
12
|
+
content: string;
|
|
13
|
+
}[];
|
|
14
|
+
agentResponse: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AgentProvider {
|
|
17
|
+
name: string;
|
|
18
|
+
executeTask(task: AgentTask): Promise<AgentResult>;
|
|
19
|
+
}
|
|
20
|
+
export declare class DefaultCliAgentProvider implements AgentProvider {
|
|
21
|
+
name: string;
|
|
22
|
+
executeTask(task: AgentTask): Promise<AgentResult>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=agent-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../../src/core/agent-adapter.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,UAAU,GAAG,iBAAiB,CAAC;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACpD;AAED,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,IAAI,SAAuB;IAErB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAOzD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ==========================================================================
|
|
3
|
+
gherkin-ai-cli - Agnostic Agent Adapter Interface & Provider Engine
|
|
4
|
+
========================================================================== */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DefaultCliAgentProvider = void 0;
|
|
7
|
+
class DefaultCliAgentProvider {
|
|
8
|
+
name = 'Default CLI Agent';
|
|
9
|
+
async executeTask(task) {
|
|
10
|
+
// Generates executable prompt instructions for human/agent execution loop
|
|
11
|
+
return {
|
|
12
|
+
success: true,
|
|
13
|
+
agentResponse: `[Agent Prompt Package Created for ${task.type}]\n\nTask: ${task.prompt}\n\nContext Files: ${task.contextFiles?.join(', ') || 'N/A'}`
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.DefaultCliAgentProvider = DefaultCliAgentProvider;
|
|
18
|
+
//# sourceMappingURL=agent-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/core/agent-adapter.ts"],"names":[],"mappings":";AAAA;;gFAEgF;;;AAqBhF,MAAa,uBAAuB;IAClC,IAAI,GAAG,mBAAmB,CAAC;IAE3B,KAAK,CAAC,WAAW,CAAC,IAAe;QAC/B,0EAA0E;QAC1E,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,qCAAqC,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;SACrJ,CAAC;IACJ,CAAC;CACF;AAVD,0DAUC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IAC1C,YAAY,EAAE,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;IAC7I,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IAC1C,YAAY,EAAE,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;IAC7I,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,eAuB3B,CAAC;AAEF,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,CAc/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAG7E"}
|