cxgrd 1.0.0 → 1.1.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
@@ -1,180 +1,74 @@
1
- # CXGRD CLI
1
+ <table align="center">
2
+ <tr>
3
+ <td><img src="https://www.cxgrd.com/cxgrdlogo.png" width="88" alt="CXGRD logo" /></td>
4
+ <td><h1> CXGRD </h1></td>
5
+ </tr>
6
+ </table>
2
7
 
3
- > Make AI-assisted code changes without breaking your codebase.
4
- > **[cxgrd.com](https://www.cxgrd.com)**
8
+ <p align="center">
9
+ <img alt="License" src="https://img.shields.io/badge/License-MIT%20-4f5d75?style=flat-square" />
10
+ <img alt="Release" src="https://img.shields.io/badge/release-v1.0.0-8b5cf6?style=flat-square" />
11
+ </p>
5
12
 
6
- ---
7
-
8
- ## What is CXGRD?
13
+ <h1 align="center">Architectural Guardrail for AI-native development</h1>
9
14
 
10
- Modern codebases are deeply interconnected — changing one file can silently break a dozen others. When you ask an AI assistant to refactor a service or add a feature, it typically has no awareness of your project's dependency graph, architectural layers, or downstream impact.
15
+ <p align="center">CXGRD maps blast radius across your codebase, so AI tools know what they will break - before they write a line</p>
11
16
 
12
- **CXGRD** solves this. It scans your project and builds a complete dependency graph, then uses that graph to:
17
+ <div align="center">
18
+ <img src=".github/profile/assets/example-flow.png" width="500" alt="example workflow"/>
19
+ </div>
13
20
 
14
- - **Tell you exactly what will break** before you make a change
15
- - **Enrich your AI prompts** with architectural context so the AI makes safer, smarter suggestions
16
- - **Validate your code** for circular dependencies, orphaned files, and layer violations — both structurally and with compiler-backed checks
21
+ **CXGRD** scans your project, builds a dependency graph, and gives AI assistants the architectural context they need to make safer changes.
17
22
 
18
- Think of it as giving your AI assistant a map of your codebase before it starts digging.
23
+ - **Tell you exactly what will break** before a change lands.
24
+ - **Enrich AI prompts** with project structure, dependencies, and blast-radius analysis.
25
+ - **Validate architecture** with circular dependency checks, orphan detection, and compiler-backed validation.
26
+ - **Enforce merge policies** in GitHub Actions to protect your team from risky changes.
19
27
 
20
28
  ---
21
29
 
22
- ## Installation
30
+ ### Typical workflow
23
31
 
24
32
  ```bash
33
+ # 1. Install
25
34
  npm install -g cxgrd
26
- ```
27
-
28
- ---
29
35
 
30
- ## Core Commands
31
-
32
- ### `cxgrd auth login`
33
- **Authenticate with CXGRD before first use.**
34
-
35
- ```bash
36
+ # 2. Authenticate
36
37
  cxgrd auth login
37
- ```
38
-
39
- ---
40
-
41
- ### `cxgrd scan [path]`
42
- **Build a complete dependency graph of your project.**
43
-
44
- This is the first command to run. It recursively analyzes your source files and produces a `.cg/` directory containing the full dependency graph, exported symbols, architectural layers, and metadata.
45
-
46
- ```bash
47
- cxgrd scan # scan current directory
48
- cxgrd scan /path/to/myapp # scan a specific project
49
- ```
50
-
51
- **What gets created in `.cg/`:**
52
-
53
- | File | Description |
54
- |---|---|
55
- | `graph.json` | Full dependency graph |
56
- | `symbols.json` | Exported symbols per file |
57
- | `arch.json` | Inferred architectural layers |
58
- | `meta.json` | Scan metadata |
59
- | `history.json` | Operation history |
60
- | `patterns.json` | Pattern analysis |
61
-
62
- ---
63
-
64
- ### `cxgrd input "<description>"`
65
- **Analyze the blast radius of a planned change.**
66
-
67
- Before touching any code, describe what you're planning to change. CXGRD will tell you every file that will be affected, why it's affected, and how severe the impact is.
68
-
69
- ```bash
70
- cxgrd input "rename AuthService to AuthController" --path /myapp
71
- ```
72
-
73
- **Output includes:**
74
- - List of affected files
75
- - Severity levels (high / medium / low)
76
- - Reason each file is impacted
77
- - Total downstream impact count
78
-
79
- Use this before making any significant refactor or before handing a task off to an AI assistant.
80
-
81
- ---
82
-
83
- ### `cxgrd prompt "<description>"`
84
- **Generate an architecturally-aware prompt for your AI assistant.**
85
-
86
- Instead of giving your AI a vague instruction, CXGRD generates an enriched prompt that includes the relevant modules, symbols, dependencies, and architectural constraints. Your AI gets the full picture — not just your words.
87
-
88
- ```bash
89
- cxgrd prompt "add OAuth2 authentication" --path /myapp
90
- ```
91
-
92
- **The generated prompt includes:**
93
- - Your original request
94
- - Affected modules and files
95
- - Architectural considerations
96
- - Related symbols to be aware of
97
- - Key dependencies
98
- - AI-friendly recommendations
38
+ # Required for Pro, Team, and Enterprise plans
99
39
 
100
- Paste the output directly into Claude, ChatGPT, Cursor, or any AI tool.
40
+ # 3. Scan your project
41
+ cxgrd scan
101
42
 
102
- ---
103
-
104
- ## Additional Commands
105
-
106
- ### `cxgrd check [path]`
107
- Validates your project structurally and with compiler-backed checks. Catches circular dependencies, orphaned files, layer violations, and type/syntax errors.
108
-
109
- ```bash
110
- cxgrd check .
111
- cxgrd check . --staged # only staged files (great for pre-commit hooks)
112
- cxgrd check . --strict # fail if compiler tools are missing (recommended for CI)
113
- ```
114
-
115
- Supports TypeScript, Python (Pyright), and Rust (cargo check) out of the box.
116
-
117
- ### `cxgrd doctor [path]`
118
- Verifies your toolchain is ready before enabling strict checks.
119
-
120
- ```bash
121
- cxgrd doctor # check global toolchain
122
- cxgrd doctor . # check project-specific readiness
123
- ```
124
-
125
- ### `cxgrd init-hooks`
126
- Sets up a pre-commit hook so CXGRD checks run automatically before every commit.
127
-
128
- ```bash
129
- cxgrd init-hooks
130
- cxgrd init-hooks --threshold 80 --block-critical
131
- cxgrd init-hooks --uninstall
132
- ```
133
-
134
- ### `cxgrd watch`
135
- Runs in the background and monitors your project for dependency changes in real time.
136
-
137
- ```bash
138
- cxgrd watch
139
- ```
140
-
141
- ---
142
-
143
- ## Typical Workflow
144
-
145
- ```bash
146
- # 1. Authenticate
147
- cxgrd auth login
148
-
149
- # 2. Scan your project
150
- cxgrd scan .
151
-
152
- # 3. Before making a change — check the blast radius
43
+ # 4. Check blast radius before a change
153
44
  cxgrd input "extract UserService into a separate module"
154
45
 
155
- # 4. Generate an enriched prompt for your AI
46
+ # 5. Generate an enriched prompt for your AI
156
47
  cxgrd prompt "extract UserService into a separate module"
157
48
 
158
- # 5. Paste the prompt into your AI tool, make the changes
159
-
160
49
  # 6. Validate the result
161
- cxgrd check .
50
+ cxgrd check
162
51
  ```
163
52
 
164
- ---
53
+ ### See it in action
165
54
 
166
- ## Development
55
+ [![CXGRD Demo]](https://github.com/user-attachments/assets/7ea3ff22-d187-4166-9a84-1395bf7a625a)
167
56
 
168
- ```bash
169
- npm install
170
- npm run build
57
+ ---
171
58
 
172
- # Run commands locally
173
- npm run dev -- scan /path/to/project
174
- npm run dev -- input "describe your change"
175
- npm run dev -- prompt "describe your feature"
176
- ```
59
+ ### Core commands
60
+
61
+ - `cxgrd scan` → writes .cg/ from scratch or diffs it
62
+ - `cxgrd input` → reads graph + architecture + history, writes to history.json
63
+ - `cxgrd prompt` → builds a deterministic coding prompt from the request and blast-radius results
64
+ - `cxgrd check` → reads graph + compiler output, writes result to history.json
65
+ - `cxgrd auth login` → log in for Pro, Team, and Enterprise users
66
+ - `cxgrd doctor` → verifies toolchain readiness before strict checks
67
+ - `cxgrd watch` → monitors dependency changes in real time
68
+ - `cxgrd init-hooks` → installs pre-commit checks automatically
177
69
 
178
70
  ---
179
71
 
180
- **Learn more at [cxgrd.com](https://www.cxgrd.com)**
72
+ For more information, visit the [official website](https://www.cxgrd.com) or read the docs [here](https://docs.cxgrd.com).
73
+
74
+ [Report Bug](https://github.com/cxgrd/cli/issues/new/choose) · [Request Feature](https://github.com/cxgrd/cli/issues/new/choose)
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/commands/input.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAcxF,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAuJ5B"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/commands/input.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAcxF,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CA4J5B"}
@@ -78,12 +78,12 @@ async function inputCommand(description, projectPath, opts = {}) {
78
78
  const changeDetector = new change_detector_1.ChangeDetector(rootPath);
79
79
  const gitChanges = changeDetector.getChangedFiles();
80
80
  const descriptionMatch = changeDetector.parseDescription(description, allFiles);
81
- // Combine all sources
82
- const uniqueFiles = [...new Set([
83
- ...gitChanges.files,
84
- ...descriptionMatch.files,
85
- ...symbolMatches,
86
- ])];
81
+ // Prefer files identified from this request; unrelated working-tree edits
82
+ // should only be used when the request itself resolves no target files.
83
+ const uniqueFiles = (0, change_detector_1.selectChangeTargets)(descriptionMatch.files, symbolMatches, gitChanges.files);
84
+ if (!json && uniqueFiles.length > 0 && descriptionMatch.files.length + symbolMatches.length === 0) {
85
+ cli_formatter_1.RichOutput.info('No request-specific files matched; using changed Git files.');
86
+ }
87
87
  if (!json) {
88
88
  if (uniqueFiles.length === 0) {
89
89
  cli_formatter_1.RichOutput.warning('Could not identify changed files. Using heuristics based on description.');
@@ -126,7 +126,7 @@ async function inputCommand(description, projectPath, opts = {}) {
126
126
  });
127
127
  if (!json)
128
128
  cli_formatter_1.RichOutput.success('Blast radius analysis saved to history');
129
- console.log(chalk_1.default.gray(' Tip: run `cxgrd prompt "same description"` to get an LLM prompt targeting these files.'));
129
+ console.log(chalk_1.default.gray(' Tip: run `cxgrd prompt "same description"` to generate a coding prompt targeting these files.'));
130
130
  if (!session || session.plan === 'free') {
131
131
  await (0, audit_usage_1.incrementAuditCount)();
132
132
  await (0, audit_usage_1.printAuditUsageStatus)(json);
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/commands/input.ts"],"names":[],"mappings":";;;;;AAgBA,oCA2JC;AA3KD,+BAA+B;AAC/B,kDAA8C;AAC9C,0EAAwF;AACxF,8DAA0D;AAC1D,0DAAkE;AAClE,uDAA4D;AAC5D,uDAA4D;AAC5D,yCAAuD;AACvD,qDAK6B;AAC7B,kDAA0B;AAEnB,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,WAAoB,EACpB,OAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,0BAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC3C,0BAAU,CAAC,IAAI,CAAC,sBAAsB,WAAW,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,mCAAoB,GAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,IAAA,iCAAmB,GAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qCAAuB,EAAE,CAAC;oBAC3C,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,0BAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChC,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oDAAoD,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACjH,CAAC;iBAAM,CAAC;gBACN,0BAAU,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5D,wDAAwD;QACxD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAmC,CAAC,EAAE,CAAC;YAC1F,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAC3D,CAAC;QAEF,yDAAyD;QACzD,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3D,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,IAAI,CAAC,IAAI,EAAC,CAAC;wBACT,0BAAU,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,QAAQ,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEhF,sBAAsB;QACtB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;gBAC9B,GAAG,UAAU,CAAC,KAAK;gBACnB,GAAG,gBAAgB,CAAC,KAAK;gBACzB,GAAG,aAAa;aACjB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,IAAI,EAAC,CAAC;YACT,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,0BAAU,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC;YACjG,CAAC;iBAAM,CAAC;gBACN,0BAAU,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,MAAM,kBAAkB,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,2CAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAExF,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExC,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,KAAK,CAAC,cAAc,CAAC;YACzB,WAAW;YACX,SAAS,EAAE,WAAW;YACtB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,OAAO;YACb,WAAW;YACX,aAAa,EAAE,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB;YACpE,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,gBAAgB,CAAC,UAAU;SACxC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,IAAA,iCAAmB,EAAC,KAAK,EAAE;YAC/B,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAClC,QAAQ,EAAE;gBACR,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM;aACtC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI;YAAE,0BAAU,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC,CAAC;QAErH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxC,MAAM,IAAA,iCAAmB,GAAE,CAAC;YAC5B,MAAM,IAAA,mCAAqB,EAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAA,8BAAsB,EAAC,OAAO,EAAE,QAAQ,EAAE;YAC9C,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM;YAC1C,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAEhB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI;YAAE,0BAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAyB,EAAE,IAAS;IACrE,IAAI,IAAI;QAAE,OAAO;IAEjB,0BAAU,CAAC,KAAK,EAAE,CAAC;IACnB,0BAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,4BAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,SAAS,MAAM,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,MAAM,4BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAErE,0BAAU,CAAC,KAAK,EAAE,CAAC;IACnB,0BAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,gBAAgB,UAAU,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,oBAAoB,UAAU,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,aAAa,CAAC,MAAM,UAAU,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,0BAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,4BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,QAAQ,GAAG,CAAC;YACjG,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACrC,0BAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,aAAa,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,0BAAU,CAAC,KAAK,EAAE,CAAC;QACnB,0BAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,KAAK,UAAU,cAAc,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,0BAAU,CAAC,KAAK,EAAE,CAAC;QACnB,0BAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,0BAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/commands/input.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGlG"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFlG"}
@@ -13,18 +13,17 @@ const env_1 = require("../config/env");
13
13
  const entitlements_1 = require("../auth/entitlements");
14
14
  const repo_memory_1 = require("../memory/repo-memory");
15
15
  const subgraph_1 = require("../prompt/subgraph");
16
- const llm_client_1 = require("../prompt/llm-client");
16
+ const generator_1 = require("../prompt/generator");
17
17
  async function promptCommand(changeDescription, projectPath) {
18
18
  await (0, env_1.loadCxgrdEnv)();
19
19
  const rootPath = (0, path_1.resolve)(projectPath || process.cwd());
20
- console.log(chalk_1.default.blue('Generating AI prompt (Pro)...'));
20
+ console.log(chalk_1.default.blue('Generating deterministic coding prompt (Pro)...'));
21
21
  console.log(chalk_1.default.gray(` Input: ${changeDescription}`));
22
22
  try {
23
23
  const session = await (0, entitlements_1.requireProFeature)('prompt');
24
24
  const cgDir = new cg_directory_1.CgDirectory(rootPath);
25
25
  const graph = await cgDir.readGraph();
26
26
  const arch = await cgDir.readArch();
27
- const meta = await cgDir.readMeta();
28
27
  const symbols = await cgDir.readSymbols();
29
28
  const patterns = await cgDir.readPatterns();
30
29
  const err_code = 'NO_GRAPH';
@@ -32,38 +31,24 @@ async function promptCommand(changeDescription, projectPath) {
32
31
  console.error(chalk_1.default.red('✗ No dependency graph found. Run "cxgrd scan" first.'), err_code);
33
32
  process.exit(1);
34
33
  }
35
- // Read the last blast radius result from history — produced by `cxgrd input`
36
- // These are already resolved, cwd-filtered files so we pass them directly
37
- // to the subgraph builder instead of re-resolving from scratch.
38
- const history = await cgDir.readHistory();
39
- const lastInput = [...history]
40
- .reverse()
41
- .find((h) => h.type === 'input' || h.description);
42
34
  const preSolvedFiles = [];
43
- if (lastInput) {
44
- // Read the last blast radius result which has the resolved affected files
45
- const lastCheck = await cgDir.readCheckResult().catch(() => null);
46
- // Also try reading from last-blast.json if it exists
47
- const lastBlast = await cgDir.readLastBlast().catch(() => null);
48
- if (lastBlast?.affectedFiles?.length) {
49
- for (const f of lastBlast.affectedFiles.slice(0, 20)) {
50
- if (typeof f === 'string')
51
- preSolvedFiles.push(f);
52
- else if (f?.path)
53
- preSolvedFiles.push(f.path);
54
- }
35
+ const lastBlast = await cgDir.readLastBlast();
36
+ if (typeof lastBlast?.description === 'string' &&
37
+ lastBlast.description.trim().toLowerCase() === changeDescription.trim().toLowerCase() &&
38
+ Array.isArray(lastBlast.seedFiles)) {
39
+ for (const file of lastBlast.seedFiles) {
40
+ if (typeof file === 'string')
41
+ preSolvedFiles.push(file);
55
42
  }
56
43
  }
57
44
  const memory = await (0, repo_memory_1.readRepoMemory)(cgDir);
58
45
  const repoMemoryBlock = (0, repo_memory_1.formatMemoryForPrompt)(memory, patterns);
59
46
  // Pass pre-solved files so subgraph builder skips broad re-resolution
60
47
  const subgraph = (0, subgraph_1.buildPromptSubgraph)(changeDescription, graph, symbols, arch, rootPath, preSolvedFiles.length > 0 ? preSolvedFiles : undefined);
61
- const contextPayload = (0, subgraph_1.serializeSubgraphForLlm)(subgraph, repoMemoryBlock);
62
- console.log(chalk_1.default.gray(' Calling LLM with architectural subgraph + repo memory...'));
63
- const { prompt, provider, model } = await (0, llm_client_1.generatePromptWithLlm)(contextPayload, session);
64
- console.log(chalk_1.default.green('\n✓ Enriched prompt\n'));
48
+ const prompt = (0, generator_1.generateDeterministicPrompt)(subgraph, repoMemoryBlock);
49
+ console.log(chalk_1.default.green('\n✓ Generated prompt\n'));
65
50
  console.log(chalk_1.default.yellow(prompt));
66
- console.log(chalk_1.default.gray(`\n via ${provider} (${model}) · plan: ${session.plan}`));
51
+ console.log(chalk_1.default.gray(`\n deterministic engine · plan: ${session.plan}`));
67
52
  const outPath = (0, path_2.join)(cgDir.getPath(), 'last-prompt.md');
68
53
  await (0, promises_1.writeFile)(outPath, prompt, 'utf-8');
69
54
  console.log(chalk_1.default.gray(` Saved to ${outPath}`));
@@ -71,19 +56,19 @@ async function promptCommand(changeDescription, projectPath) {
71
56
  type: 'prompt',
72
57
  summary: changeDescription.slice(0, 120),
73
58
  metadata: {
74
- provider,
75
- model,
59
+ generator: 'deterministic',
76
60
  affectedCount: subgraph.affectedFiles.length,
77
61
  riskLevel: subgraph.riskLevel,
78
62
  usedPreSolvedFiles: preSolvedFiles.length > 0,
79
63
  },
80
64
  });
65
+ const history = await cgDir.readHistory();
81
66
  history.push({
82
67
  timestamp: Date.now(),
83
68
  type: 'prompt',
84
69
  input: changeDescription,
85
70
  status: 'completed',
86
- provider,
71
+ generator: 'deterministic',
87
72
  });
88
73
  await cgDir.writeHistory(history);
89
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ async function main() {
38
38
  (0, telemetry_1.trackEvent)('cli_input');
39
39
  await (0, input_1.inputCommand)(argv.description, argv.path, { json: argv.json });
40
40
  })
41
- .command('prompt <description>', 'Generate LLM-enriched AI prompt (Pro / Team)', (y) => y
41
+ .command('prompt <description>', 'Generate a deterministic architecture-aware prompt (Pro / Team)', (y) => y
42
42
  .positional('description', { describe: 'Description of the change', type: 'string' })
43
43
  .option('path', { describe: 'Project path (default: current directory)', type: 'string', alias: 'p' }), async (argv) => {
44
44
  (0, telemetry_1.trackEvent)('cli_prompt');
@@ -110,7 +110,7 @@ async function main() {
110
110
  .command('watch [path]', 'Monitor project for real-time architecture analysis', (y) => y
111
111
  .positional('path', { describe: 'Project path (default: current directory)', type: 'string' })
112
112
  .option('debounce', { type: 'number', default: 500 }), async (argv) => { (0, telemetry_1.trackEvent)('cli_watch'); await (0, watch_1.watchCommand)(argv.path, { debounce: argv.debounce }); })
113
- .version('1.0.0')
113
+ .version('1.1.0')
114
114
  .help()
115
115
  .alias('h', 'help')
116
116
  .epilogue(chalk_1.default.gray('For more information, visit: https://www.cxgrd.com'))
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PromptSubgraph } from './subgraph';
2
+ export declare function generateDeterministicPrompt(subgraph: PromptSubgraph, repoMemoryBlock?: string): string;
3
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/prompt/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,eAAe,SAAK,GACnB,MAAM,CAiFR"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDeterministicPrompt = generateDeterministicPrompt;
4
+ function generateDeterministicPrompt(subgraph, repoMemoryBlock = '') {
5
+ const changeRequest = formatChangeRequest(subgraph.changeDescription);
6
+ const lines = [
7
+ changeRequest,
8
+ '',
9
+ 'Refactor/change focus:',
10
+ ];
11
+ const layerByFile = new Map();
12
+ for (const [layer, files] of Object.entries(subgraph.architectureLayers)) {
13
+ for (const file of files) {
14
+ const layers = layerByFile.get(file) || [];
15
+ layers.push(layer);
16
+ layerByFile.set(file, layers);
17
+ }
18
+ }
19
+ if (subgraph.seedFiles.length === 0 && subgraph.affectedFiles.length === 0) {
20
+ lines.push('- No files were resolved by the blast-radius analysis. Inspect the repository and identify the correct files before editing; do not assume a file scope.');
21
+ }
22
+ else {
23
+ for (const file of subgraph.seedFiles) {
24
+ const layers = layerByFile.get(file);
25
+ const layerNote = layers?.length ? `; architecture layer: ${layers.join(', ')}` : '';
26
+ lines.push(`- \`${file}\` — direct change target identified from the request${layerNote}.`);
27
+ }
28
+ for (const file of subgraph.affectedFiles) {
29
+ if (subgraph.seedFiles.includes(file.path))
30
+ continue;
31
+ const distance = file.distance === 1 ? 'direct dependent' : `transitive dependent, depth ${file.distance}`;
32
+ const required = file.changeRequired ? 'review and update if the change requires it' : 'review for compatibility';
33
+ const layers = layerByFile.get(file.path);
34
+ const layerNote = layers?.length ? `; architecture layer: ${layers.join(', ')}` : '';
35
+ lines.push(`- \`${file.path}\` — ${file.severity} risk, ${distance}; ${file.reason}; ${required}${layerNote}.`);
36
+ if (file.suggestedFix)
37
+ lines.push(` Suggested action: ${file.suggestedFix}`);
38
+ }
39
+ }
40
+ lines.push('', `Blast-radius summary: ${subgraph.riskLevel} overall risk; ${subgraph.seedFiles.length} direct target(s), ${subgraph.affectedFiles.length} affected dependent(s).`);
41
+ const hasResolvedFiles = subgraph.seedFiles.length > 0 || subgraph.affectedFiles.length > 0;
42
+ if (hasResolvedFiles && subgraph.dependencies.length > 0) {
43
+ lines.push('', 'Relevant dependency edges:');
44
+ for (const dependency of subgraph.dependencies.slice(0, 25)) {
45
+ lines.push(`- \`${dependency.from}\` → \`${dependency.to}\` (${dependency.type})`);
46
+ }
47
+ }
48
+ const symbolEntries = hasResolvedFiles ? Object.entries(subgraph.symbols) : [];
49
+ if (symbolEntries.length > 0) {
50
+ lines.push('', 'Relevant symbols to inspect:');
51
+ for (const [file, symbols] of symbolEntries) {
52
+ lines.push(`- \`${file}\`: ${symbols.join(', ')}`);
53
+ }
54
+ }
55
+ if (subgraph.recommendations.length > 0) {
56
+ lines.push('', 'Analyzer recommendations:');
57
+ for (const recommendation of subgraph.recommendations) {
58
+ lines.push(`- ${recommendation}`);
59
+ }
60
+ }
61
+ lines.push('', 'Actionable steps:', '1. Inspect the direct targets and their listed dependents; preserve existing public interfaces and dependency direction unless the request requires changing them.', '2. Make the requested change in the focused files, updating dependent files only where the blast-radius notes indicate compatibility work is needed.', '3. Run the targeted unit and integration tests for the affected files. Include relevant boundary, error-handling, and regression cases, then run the project test suite.', '4. Run `cxgrd check --changed` and review any new architecture or dependency issues.');
62
+ if (repoMemoryBlock.trim()) {
63
+ lines.push('', 'Repository context:', repoMemoryBlock.trim());
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ function formatChangeRequest(description) {
68
+ const trimmed = description.trim();
69
+ const actionMatch = trimmed.match(/^(implement|change|modify)\b(.*)$/i);
70
+ if (actionMatch) {
71
+ const action = actionMatch[1][0].toUpperCase() + actionMatch[1].slice(1).toLowerCase();
72
+ return `${action}${actionMatch[2]}`;
73
+ }
74
+ return `Implement ${trimmed}`;
75
+ }
76
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/prompt/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.test.d.ts","sourceRoot":"","sources":["../../src/prompt/generator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const generator_1 = require("./generator");
9
+ function createSubgraph(overrides = {}) {
10
+ return {
11
+ changeDescription: 'rename the exported helper',
12
+ seedFiles: ['src/helper.ts'],
13
+ affectedFiles: [{
14
+ path: 'src/consumer.ts',
15
+ severity: 'high',
16
+ reason: 'Depends on helper.ts',
17
+ distance: 1,
18
+ impactType: 'direct',
19
+ changeRequired: true,
20
+ suggestedFix: 'Update the imported symbol name',
21
+ }],
22
+ dependencies: [{ from: 'src/consumer.ts', to: './helper', type: 'import' }],
23
+ symbols: { 'src/helper.ts': ['helper', 'HelperOptions'] },
24
+ architectureLayers: { service: ['src/helper.ts'], application: ['src/consumer.ts'] },
25
+ riskLevel: 'high',
26
+ recommendations: ['Review all import sites.'],
27
+ ...overrides,
28
+ };
29
+ }
30
+ (0, node_test_1.test)('generates a deterministic prompt with request, per-file impact, and verification steps', () => {
31
+ const subgraph = createSubgraph();
32
+ const first = (0, generator_1.generateDeterministicPrompt)(subgraph);
33
+ const second = (0, generator_1.generateDeterministicPrompt)(subgraph);
34
+ strict_1.default.equal(first, second);
35
+ strict_1.default.match(first, /^Implement rename the exported helper/);
36
+ strict_1.default.match(first, /`src\/helper\.ts` — direct change target/);
37
+ strict_1.default.match(first, /`src\/consumer\.ts` — high risk, direct dependent/);
38
+ strict_1.default.match(first, /Suggested action: Update the imported symbol name/);
39
+ strict_1.default.match(first, /Run the targeted unit and integration tests/);
40
+ strict_1.default.match(first, /cxgrd check --changed/);
41
+ });
42
+ (0, node_test_1.test)('preserves an explicit change action and identifies unresolved file scope', () => {
43
+ const prompt = (0, generator_1.generateDeterministicPrompt)(createSubgraph({
44
+ changeDescription: 'Modify the cache invalidation behavior',
45
+ seedFiles: [],
46
+ affectedFiles: [],
47
+ }));
48
+ strict_1.default.match(prompt, /^Modify the cache invalidation behavior/);
49
+ strict_1.default.match(prompt, /No files were resolved by the blast-radius analysis/);
50
+ strict_1.default.doesNotMatch(prompt, /`src\/helper\.ts`/);
51
+ });
52
+ (0, node_test_1.test)('adds repository memory only when provided', () => {
53
+ const prompt = (0, generator_1.generateDeterministicPrompt)(createSubgraph(), '## Repository context\n- Keep adapters thin');
54
+ strict_1.default.match(prompt, /Repository context:\n## Repository context\n- Keep adapters thin/);
55
+ });
56
+ //# sourceMappingURL=generator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.test.js","sourceRoot":"","sources":["../../src/prompt/generator.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiC;AACjC,gEAAwC;AACxC,2CAA0D;AAG1D,SAAS,cAAc,CAAC,YAAqC,EAAE;IAC7D,OAAO;QACL,iBAAiB,EAAE,4BAA4B;QAC/C,SAAS,EAAE,CAAC,eAAe,CAAC;QAC5B,aAAa,EAAE,CAAC;gBACd,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,iCAAiC;aAChD,CAAC;QACF,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3E,OAAO,EAAE,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACzD,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC,iBAAiB,CAAC,EAAE;QACpF,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,CAAC,0BAA0B,CAAC;QAC7C,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,IAAA,gBAAI,EAAC,wFAAwF,EAAE,GAAG,EAAE;IAClG,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAA,uCAA2B,EAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAA,uCAA2B,EAAC,QAAQ,CAAC,CAAC;IAErD,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,uCAAuC,CAAC,CAAC;IAC7D,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC;IAChE,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;IACzE,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;IACzE,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;IACnE,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,0EAA0E,EAAE,GAAG,EAAE;IACpF,MAAM,MAAM,GAAG,IAAA,uCAA2B,EAAC,cAAc,CAAC;QACxD,iBAAiB,EAAE,wCAAwC;QAC3D,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC,CAAC;IAEJ,gBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAC;IAChE,gBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qDAAqD,CAAC,CAAC;IAC5E,gBAAM,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;IACrD,MAAM,MAAM,GAAG,IAAA,uCAA2B,EAAC,cAAc,EAAE,EAAE,6CAA6C,CAAC,CAAC;IAC5G,gBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kEAAkE,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC"}
@@ -1,12 +1,8 @@
1
+ import type { ImpactedFile } from '../utils/blast-radius-analyzer';
1
2
  export interface PromptSubgraph {
2
3
  changeDescription: string;
3
4
  seedFiles: string[];
4
- affectedFiles: Array<{
5
- path: string;
6
- severity: string;
7
- reason: string;
8
- distance: number;
9
- }>;
5
+ affectedFiles: Array<Pick<ImpactedFile, 'path' | 'severity' | 'reason' | 'distance' | 'impactType' | 'changeRequired' | 'suggestedFix'>>;
10
6
  dependencies: Array<{
11
7
  from: string;
12
8
  to: string;
@@ -22,5 +18,4 @@ export declare function buildPromptSubgraph(changeDescription: string, graph: {
22
18
  }, symbols: Record<string, string[]>, arch: {
23
19
  layers?: Record<string, string[]>;
24
20
  } | null, projectRoot: string, preSolvedFiles?: string[]): PromptSubgraph;
25
- export declare function serializeSubgraphForLlm(subgraph: PromptSubgraph, repoMemoryBlock: string): string;
26
21
  //# sourceMappingURL=subgraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../src/prompt/subgraph.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3F,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,EAClD,WAAW,EAAE,MAAM,EAEnB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,cAAc,CAkFhB;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,MAAM,GACtB,MAAM,CAiDR"}
1
+ {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../src/prompt/subgraph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EACpC,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,cAAc,CAC/F,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,EAClD,WAAW,EAAE,MAAM,EAEnB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,cAAc,CAqFhB"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildPromptSubgraph = buildPromptSubgraph;
4
- exports.serializeSubgraphForLlm = serializeSubgraphForLlm;
5
4
  const blast_radius_analyzer_1 = require("../utils/blast-radius-analyzer");
6
5
  const change_detector_1 = require("../utils/change-detector");
7
6
  function buildPromptSubgraph(changeDescription, graph, symbols, arch, projectRoot,
@@ -70,6 +69,9 @@ preSolvedFiles) {
70
69
  severity: f.severity,
71
70
  reason: f.reason,
72
71
  distance: f.distance,
72
+ impactType: f.impactType,
73
+ changeRequired: f.changeRequired,
74
+ suggestedFix: f.suggestedFix,
73
75
  })),
74
76
  dependencies: dependencies.slice(0, 40),
75
77
  symbols: relevantSymbols,
@@ -78,47 +80,4 @@ preSolvedFiles) {
78
80
  recommendations: blast.recommendations.slice(0, 6),
79
81
  };
80
82
  }
81
- function serializeSubgraphForLlm(subgraph, repoMemoryBlock) {
82
- const parts = [
83
- `# Change request\n${subgraph.changeDescription}`,
84
- `\n## Blast radius (${subgraph.riskLevel} risk)`,
85
- `Seed files: ${subgraph.seedFiles.length ? subgraph.seedFiles.join(', ') : '(inferred from description)'}`,
86
- ];
87
- if (subgraph.affectedFiles.length) {
88
- parts.push('\n### Affected files');
89
- for (const f of subgraph.affectedFiles) {
90
- parts.push(`- [${f.severity}] ${f.path} — ${f.reason} (depth ${f.distance})`);
91
- }
92
- }
93
- if (subgraph.dependencies.length) {
94
- parts.push('\n### Dependency edges (subgraph)');
95
- for (const d of subgraph.dependencies.slice(0, 25)) {
96
- parts.push(`- ${d.from} → ${d.to} (${d.type})`);
97
- }
98
- }
99
- const symbolEntries = Object.entries(subgraph.symbols);
100
- if (symbolEntries.length) {
101
- parts.push('\n### Symbols in affected modules');
102
- for (const [file, syms] of symbolEntries.slice(0, 12)) {
103
- parts.push(`- ${file}: ${syms.join(', ')}`);
104
- }
105
- }
106
- const layers = Object.entries(subgraph.architectureLayers);
107
- if (layers.length) {
108
- parts.push('\n### Architecture layers');
109
- for (const [layer, files] of layers) {
110
- parts.push(`- ${layer}: ${files.length} files`);
111
- }
112
- }
113
- if (subgraph.recommendations.length) {
114
- parts.push('\n### Analyzer recommendations');
115
- for (const r of subgraph.recommendations) {
116
- parts.push(`- ${r}`);
117
- }
118
- }
119
- if (repoMemoryBlock.trim()) {
120
- parts.push('\n' + repoMemoryBlock);
121
- }
122
- return parts.join('\n');
123
- }
124
83
  //# sourceMappingURL=subgraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/prompt/subgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/prompt/subgraph.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export interface IntentMatch {
14
14
  confidence: number;
15
15
  intent: string;
16
16
  }
17
+ export declare function selectChangeTargets(descriptionMatches: string[], symbolMatches: string[], gitChanges: string[]): string[];
17
18
  export declare class ChangeDetector {
18
19
  private projectRoot;
19
20
  constructor(projectRoot: string);
@@ -1 +1 @@
1
- {"version":3,"file":"change-detector.d.ts","sourceRoot":"","sources":["../../src/utils/change-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEvC;;OAEG;IACH,eAAe,IAAI,gBAAgB;IAsBnC;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW;IA0D5E;;OAEG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,mBAAmB,CACjB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,GAAE,MAAU,GACzB,MAAM,EAAE;IAgCX,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;CAmB5B"}
1
+ {"version":3,"file":"change-detector.d.ts","sourceRoot":"","sources":["../../src/utils/change-detector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAGV;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEvC;;OAEG;IACH,eAAe,IAAI,gBAAgB;IAsBnC;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW;IA0D5E;;OAEG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,mBAAmB,CACjB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,GAAE,MAAU,GACzB,MAAM,EAAE;IAgCX,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;CAmB5B"}
@@ -6,7 +6,12 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.ChangeDetector = void 0;
9
+ exports.selectChangeTargets = selectChangeTargets;
9
10
  const child_process_1 = require("child_process");
11
+ function selectChangeTargets(descriptionMatches, symbolMatches, gitChanges) {
12
+ const explicitMatches = [...new Set([...descriptionMatches, ...symbolMatches])];
13
+ return explicitMatches.length > 0 ? explicitMatches : [...new Set(gitChanges)];
14
+ }
10
15
  class ChangeDetector {
11
16
  projectRoot;
12
17
  constructor(projectRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"change-detector.js","sourceRoot":"","sources":["../../src/utils/change-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-detector.js","sourceRoot":"","sources":["../../src/utils/change-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=change-detector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-detector.test.d.ts","sourceRoot":"","sources":["../../src/utils/change-detector.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const change_detector_1 = require("./change-detector");
9
+ (0, node_test_1.test)('uses request-matched files instead of unrelated Git changes', () => {
10
+ strict_1.default.deepEqual((0, change_detector_1.selectChangeTargets)([], ['src/prompt/generator.ts'], ['src/commands/input.ts', 'src/commands/prompt.ts']), ['src/prompt/generator.ts']);
11
+ });
12
+ (0, node_test_1.test)('combines and deduplicates explicit description and symbol matches', () => {
13
+ strict_1.default.deepEqual((0, change_detector_1.selectChangeTargets)(['src/prompt/generator.ts'], ['src/prompt/generator.ts', 'src/prompt/subgraph.ts'], ['src/commands/input.ts']), ['src/prompt/generator.ts', 'src/prompt/subgraph.ts']);
14
+ });
15
+ (0, node_test_1.test)('falls back to unique Git changes when the request identifies no files', () => {
16
+ strict_1.default.deepEqual((0, change_detector_1.selectChangeTargets)([], [], ['src/commands/input.ts', 'src/commands/input.ts']), ['src/commands/input.ts']);
17
+ });
18
+ //# sourceMappingURL=change-detector.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-detector.test.js","sourceRoot":"","sources":["../../src/utils/change-detector.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiC;AACjC,gEAAwC;AACxC,uDAAwD;AAExD,IAAA,gBAAI,EAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,gBAAM,CAAC,SAAS,CACd,IAAA,qCAAmB,EACjB,EAAE,EACF,CAAC,yBAAyB,CAAC,EAC3B,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CACpD,EACD,CAAC,yBAAyB,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,gBAAM,CAAC,SAAS,CACd,IAAA,qCAAmB,EACjB,CAAC,yBAAyB,CAAC,EAC3B,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACrD,CAAC,uBAAuB,CAAC,CAC1B,EACD,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CACtD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,gBAAM,CAAC,SAAS,CACd,IAAA,qCAAmB,EAAC,EAAE,EAAE,EAAE,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,EAC/E,CAAC,uBAAuB,CAAC,CAC1B,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cxgrd",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "AI context guardrail CLI — dependency-aware architecture safety for AI-assisted development",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,8 +0,0 @@
1
- import type { ActiveSession } from '../auth/auth-session';
2
- export interface LlmResult {
3
- prompt: string;
4
- provider: string;
5
- model: string;
6
- }
7
- export declare function generatePromptWithLlm(contextPayload: string, session: ActiveSession): Promise<LlmResult>;
8
- //# sourceMappingURL=llm-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/prompt/llm-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAc1D,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CAuBpB"}
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatePromptWithLlm = generatePromptWithLlm;
4
- const env_1 = require("../config/env");
5
- const SYSTEM_PROMPT = `You are an expert software architect helping a developer write a precise prompt for their AI coding assistant (Cursor, Copilot, etc.).
6
-
7
- Given dependency graph context, blast radius, symbols, and repo memory from the cxgrd tool, produce ONE markdown prompt the developer can paste into their AI assistant.
8
-
9
- Requirements:
10
- - Preserve the developer's original intent
11
- - List concrete files/modules to touch and why
12
- - Mention architectural layers and dependency constraints
13
- - Include verification steps (tests, cxgrd check)
14
- - Be actionable and concise (under 800 words)
15
- - Do not invent files not mentioned in the context`;
16
- async function generatePromptWithLlm(contextPayload, session) {
17
- const apiKey = (0, env_1.envString)('CXGRD_LLM_API_KEY');
18
- const cloudUrl = (0, env_1.envString)('CXGRD_PROMPT_API_URL', 'https://www.cxgrd.com/api/prompt');
19
- if (session.source === 'auth_file') {
20
- try {
21
- return await callCloudPromptApi(cloudUrl, contextPayload, session.token);
22
- }
23
- catch (err) {
24
- const message = err instanceof Error ? err.message : String(err);
25
- if (apiKey && message.includes('not deployed')) {
26
- return callDirectLlm(contextPayload, apiKey);
27
- }
28
- throw err;
29
- }
30
- }
31
- if (apiKey) {
32
- return callDirectLlm(contextPayload, apiKey);
33
- }
34
- throw new Error('No LLM configured. Run cxgrd auth login to use the cloud API, or set CXGRD_LLM_API_KEY in .env for local dev.');
35
- }
36
- async function callCloudPromptApi(url, context, token) {
37
- const response = await fetch(url.replace(/\/$/, ''), {
38
- method: 'POST',
39
- headers: {
40
- 'Content-Type': 'application/json',
41
- // Send token in both headers — some proxies strip Authorization on POST
42
- 'Authorization': `Bearer ${token}`,
43
- },
44
- body: JSON.stringify({ context }),
45
- });
46
- if (response.status === 404 || response.status === 501) {
47
- throw new Error('Cloud prompt API is not deployed yet.');
48
- }
49
- if (response.status === 401) {
50
- throw new Error('Session expired. Run cxgrd auth login again.');
51
- }
52
- if (response.status === 403) {
53
- throw new Error('This feature requires a Pro plan. Visit https://www.cxgrd.com/pricing to upgrade.');
54
- }
55
- if (!response.ok) {
56
- const body = await response.text().catch(() => '');
57
- throw new Error(`Prompt API error (${response.status}): ${body || response.statusText}`);
58
- }
59
- const data = (await response.json());
60
- if (!data.prompt) {
61
- throw new Error('Prompt API returned an empty response');
62
- }
63
- return {
64
- prompt: data.prompt,
65
- provider: data.provider || 'cxgrd-cloud',
66
- model: data.model || 'default',
67
- };
68
- }
69
- async function callDirectLlm(context, apiKey) {
70
- const provider = (0, env_1.envString)('CXGRD_LLM_PROVIDER', 'groq').toLowerCase();
71
- const model = (0, env_1.envString)('CXGRD_LLM_MODEL', 'gpt-oss-120b');
72
- const baseUrl = (0, env_1.envString)('CXGRD_LLM_BASE_URL') ||
73
- (provider === 'openai'
74
- ? 'https://api.openai.com/v1'
75
- : 'https://api.groq.com/openai/v1');
76
- const response = await fetch(`${baseUrl.replace(/\/$/, '')}/chat/completions`, {
77
- method: 'POST',
78
- headers: {
79
- 'Content-Type': 'application/json',
80
- 'Authorization': `Bearer ${apiKey}`,
81
- },
82
- body: JSON.stringify({
83
- model,
84
- temperature: 0.3,
85
- max_tokens: 2048,
86
- messages: [
87
- { role: 'system', content: SYSTEM_PROMPT },
88
- {
89
- role: 'user',
90
- content: `Generate the enriched AI coding prompt from this cxgrd context:\n\n${context}`,
91
- },
92
- ],
93
- }),
94
- });
95
- if (!response.ok) {
96
- const body = await response.text().catch(() => '');
97
- throw new Error(`LLM request failed (${response.status}): ${body || response.statusText}`);
98
- }
99
- const data = (await response.json());
100
- const content = data.choices?.[0]?.message?.content?.trim();
101
- if (!content) {
102
- throw new Error('LLM returned an empty response');
103
- }
104
- return { prompt: content, provider, model };
105
- }
106
- //# sourceMappingURL=llm-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/prompt/llm-client.ts"],"names":[],"mappings":"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"}