@neurcode-ai/cli 0.1.1 → 0.1.2

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.
Files changed (39) hide show
  1. package/README.md +33 -0
  2. package/dist/api-client.d.ts +169 -2
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +271 -15
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/commands/apply.d.ts +9 -0
  7. package/dist/commands/apply.d.ts.map +1 -0
  8. package/dist/commands/apply.js +186 -0
  9. package/dist/commands/apply.js.map +1 -0
  10. package/dist/commands/check.d.ts.map +1 -1
  11. package/dist/commands/check.js +87 -4
  12. package/dist/commands/check.js.map +1 -1
  13. package/dist/commands/config.d.ts +16 -0
  14. package/dist/commands/config.d.ts.map +1 -0
  15. package/dist/commands/config.js +134 -0
  16. package/dist/commands/config.js.map +1 -0
  17. package/dist/commands/plan.d.ts +6 -0
  18. package/dist/commands/plan.d.ts.map +1 -0
  19. package/dist/commands/plan.js +204 -0
  20. package/dist/commands/plan.js.map +1 -0
  21. package/dist/commands/refactor.d.ts +3 -0
  22. package/dist/commands/refactor.d.ts.map +1 -0
  23. package/dist/commands/refactor.js +166 -0
  24. package/dist/commands/refactor.js.map +1 -0
  25. package/dist/commands/revert.d.ts +23 -0
  26. package/dist/commands/revert.d.ts.map +1 -0
  27. package/dist/commands/revert.js +234 -0
  28. package/dist/commands/revert.js.map +1 -0
  29. package/dist/commands/security.d.ts +3 -0
  30. package/dist/commands/security.d.ts.map +1 -0
  31. package/dist/commands/security.js +167 -0
  32. package/dist/commands/security.js.map +1 -0
  33. package/dist/config.d.ts +17 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +88 -21
  36. package/dist/config.js.map +1 -1
  37. package/dist/index.js +83 -0
  38. package/dist/index.js.map +1 -1
  39. package/package.json +2 -1
package/README.md CHANGED
@@ -90,3 +90,36 @@ After running AI analysis, you'll get a session ID. View it in the dashboard:
90
90
  https://neurcode.com/dashboard/sessions/{sessionId}
91
91
  ```
92
92
 
93
+ ## Exit Codes (for CI/CD)
94
+
95
+ The CLI uses exit codes to indicate analysis results:
96
+
97
+ - **0**: `ALLOW` - Code is clean, no issues found
98
+ - **1**: `WARN` - Issues found but not blocking (moderate redundancy or warnings)
99
+ - **2**: `BLOCK` - Critical issues found (high redundancy, intent mismatch, or security violations)
100
+
101
+ ### CI/CD Integration
102
+
103
+ ```bash
104
+ # In your CI/CD pipeline
105
+ neurcode check --staged --ai --intent "Add feature"
106
+
107
+ # Exit code 0 = success, continue
108
+ # Exit code 1 = warnings, you may want to continue or fail
109
+ # Exit code 2 = blocked, should fail the build
110
+
111
+ # Example GitHub Actions
112
+ - name: Check code with Neurcode
113
+ run: neurcode check --staged --ai --intent "${{ github.event.head_commit.message }}"
114
+ continue-on-error: false # Fail on exit code 1 or 2
115
+ ```
116
+
117
+ ### Custom Exit Code Behavior
118
+
119
+ If you want to customize exit code behavior, you can wrap the command:
120
+
121
+ ```bash
122
+ # Only fail on BLOCK (exit code 2)
123
+ neurcode check --staged --ai --intent "Add feature" || [ $? -eq 1 ]
124
+ ```
125
+
@@ -50,14 +50,181 @@ export interface AnalyzeBloatResponse {
50
50
  recommendation: 'block' | 'warn' | 'allow';
51
51
  summary: string;
52
52
  };
53
- sessionId: string;
53
+ sessionId?: string;
54
54
  timestamp: string;
55
55
  }
56
56
  export declare class ApiClient {
57
57
  private apiUrl;
58
58
  private apiKey?;
59
59
  constructor(config: NeurcodeConfig);
60
+ /**
61
+ * Get API key, requiring it if not set
62
+ * Shows helpful error message if missing
63
+ */
64
+ private getApiKey;
60
65
  analyzeDiff(diff: string, projectId?: string): Promise<AnalyzeDiffResponse>;
61
- analyzeBloat(diff: string, intent?: string, projectId?: string, sessionId?: string): Promise<AnalyzeBloatResponse>;
66
+ analyzeBloat(diff: string, intent?: string, projectId?: string, sessionId?: string, fileContents?: Record<string, string>): Promise<AnalyzeBloatResponse>;
67
+ getFileVersions(filePath: string, projectId?: string, limit?: number): Promise<Array<{
68
+ id: string;
69
+ organizationId: string;
70
+ projectId: string | null;
71
+ filePath: string;
72
+ versionNumber: number;
73
+ fileContent: string;
74
+ diffFromPrevious: string | null;
75
+ sessionId: string | null;
76
+ userId: string | null;
77
+ changeType: 'add' | 'delete' | 'modify' | 'rename' | null;
78
+ linesAdded: number;
79
+ linesRemoved: number;
80
+ createdAt: string;
81
+ }>>;
82
+ getFileVersion(filePath: string, version: number, projectId?: string): Promise<{
83
+ version: {
84
+ id: string;
85
+ organizationId: string;
86
+ projectId: string | null;
87
+ filePath: string;
88
+ versionNumber: number;
89
+ fileContent: string;
90
+ diffFromPrevious: string | null;
91
+ sessionId: string | null;
92
+ userId: string | null;
93
+ changeType: 'add' | 'delete' | 'modify' | 'rename' | null;
94
+ linesAdded: number;
95
+ linesRemoved: number;
96
+ createdAt: string;
97
+ };
98
+ fileContent: string;
99
+ lineInfo: {
100
+ totalLines: number;
101
+ changeType: 'add' | 'delete' | 'modify' | 'rename' | null;
102
+ linesAdded: number;
103
+ linesRemoved: number;
104
+ };
105
+ }>;
106
+ revertFile(filePath: string, toVersion: number, projectId?: string, reason?: string): Promise<{
107
+ message: string;
108
+ version: {
109
+ id: string;
110
+ organizationId: string;
111
+ projectId: string | null;
112
+ filePath: string;
113
+ versionNumber: number;
114
+ fileContent: string;
115
+ diffFromPrevious: string | null;
116
+ sessionId: string | null;
117
+ userId: string | null;
118
+ changeType: 'add' | 'delete' | 'modify' | 'rename' | null;
119
+ linesAdded: number;
120
+ linesRemoved: number;
121
+ createdAt: string;
122
+ };
123
+ fileContent: string;
124
+ lineInfo: {
125
+ totalLines: number;
126
+ changeType: 'add' | 'delete' | 'modify' | 'rename' | null;
127
+ linesAdded: number;
128
+ linesRemoved: number;
129
+ };
130
+ revertInstructions: {
131
+ method: 'full_replace';
132
+ filePath: string;
133
+ fromVersion: number;
134
+ toVersion: number;
135
+ };
136
+ }>;
137
+ refactor(fileContent: string, redundantBlocks: Array<{
138
+ lines: [number, number];
139
+ reason: string;
140
+ suggestion: string;
141
+ }>, options?: {
142
+ projectType?: string;
143
+ framework?: string;
144
+ patterns?: string[];
145
+ }): Promise<RefactorResponse>;
146
+ analyzeSecurity(diff: string, projectType?: string): Promise<SecurityAnalysisResponse>;
147
+ generatePlan(intent: string, files: string[], projectId?: string): Promise<GeneratePlanResponse>;
148
+ applyPlan(planId: string, snapshots?: Array<{
149
+ path: string;
150
+ originalContent: string;
151
+ }>): Promise<ApplyPlanResponse>;
152
+ }
153
+ export interface ApplyPlanResponse {
154
+ success: boolean;
155
+ planId: string;
156
+ filesGenerated: number;
157
+ files: Array<{
158
+ path: string;
159
+ content: string;
160
+ }>;
161
+ message: string;
162
+ }
163
+ export interface RefactorResponse {
164
+ suggestion: {
165
+ originalCode: string;
166
+ optimizedCode: string;
167
+ changes: Array<{
168
+ type: 'removed' | 'modified' | 'added';
169
+ lines: [number, number];
170
+ original: string;
171
+ optimized: string;
172
+ reason: string;
173
+ }>;
174
+ improvements: Array<{
175
+ category: string;
176
+ description: string;
177
+ impact: 'high' | 'medium' | 'low';
178
+ }>;
179
+ tokenSavings: number;
180
+ costSavings: number;
181
+ riskAssessment: {
182
+ breakingChanges: boolean;
183
+ riskLevel: 'low' | 'medium' | 'high';
184
+ warnings: string[];
185
+ };
186
+ };
187
+ timestamp: string;
188
+ }
189
+ export interface SecurityAnalysisResponse {
190
+ analysis: {
191
+ issues: Array<{
192
+ severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
193
+ type: string;
194
+ description: string;
195
+ file: string;
196
+ lines: [number, number];
197
+ code: string;
198
+ exploitation: string;
199
+ fix: string;
200
+ cwe?: string;
201
+ }>;
202
+ summary: {
203
+ critical: number;
204
+ high: number;
205
+ medium: number;
206
+ low: number;
207
+ total: number;
208
+ };
209
+ recommendation: 'block' | 'warn' | 'allow';
210
+ overallRisk: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE';
211
+ };
212
+ timestamp: string;
213
+ }
214
+ export interface GeneratePlanResponse {
215
+ plan: {
216
+ type: 'neurcode_architect_plan';
217
+ summary: string;
218
+ files: Array<{
219
+ path: string;
220
+ action: 'CREATE' | 'MODIFY' | 'BLOCK';
221
+ reason?: string;
222
+ suggestion?: string;
223
+ }>;
224
+ recommendations?: string[];
225
+ estimatedComplexity?: 'low' | 'medium' | 'high';
226
+ };
227
+ planId: string;
228
+ timestamp: string;
62
229
  }
63
230
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;YACnD,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,UAAU,EAAE;YACV,aAAa,EAAE,MAAM,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,eAAe,EAAE,KAAK,CAAC;gBACrB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC;gBACf,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC,CAAC;YACH,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,WAAW,EAAE;YACX,OAAO,EAAE,OAAO,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,KAAK,CAAC;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC,CAAC;SACJ,CAAC;QACF,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,EAAE,cAAc;IAQ5B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0C3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA2CzH"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApiClient = void 0;
4
+ const config_1 = require("./config");
4
5
  class ApiClient {
5
6
  apiUrl;
6
7
  apiKey;
7
8
  constructor(config) {
8
- if (!config.apiUrl) {
9
- throw new Error('API URL not configured. Set NEURCODE_API_URL env var or add to neurcode.config.json');
10
- }
11
- this.apiUrl = config.apiUrl.replace(/\/$/, ''); // Remove trailing slash
9
+ // API URL will always be set (defaults to production)
10
+ // This check is no longer needed, but kept for safety
11
+ this.apiUrl = (config.apiUrl || 'https://api.neurcode.com').replace(/\/$/, ''); // Remove trailing slash
12
12
  this.apiKey = config.apiKey;
13
13
  }
14
+ /**
15
+ * Get API key, requiring it if not set
16
+ * Shows helpful error message if missing
17
+ */
18
+ getApiKey() {
19
+ if (this.apiKey) {
20
+ return this.apiKey;
21
+ }
22
+ // Use requireApiKey which shows helpful error message if missing
23
+ return (0, config_1.requireApiKey)();
24
+ }
14
25
  async analyzeDiff(diff, projectId) {
15
26
  const url = `${this.apiUrl}/api/v1/analyze-diff`;
16
27
  const headers = {
17
28
  'Content-Type': 'application/json'
18
29
  };
19
- if (this.apiKey) {
20
- // Support both "Bearer nk_live_..." and just "nk_live_..."
21
- const key = this.apiKey.startsWith('Bearer ') ? this.apiKey : `Bearer ${this.apiKey}`;
22
- headers['Authorization'] = key;
23
- }
30
+ // Get API key (will show helpful error if missing)
31
+ const apiKey = this.getApiKey();
32
+ // Support both "Bearer nk_live_..." and just "nk_live_..."
33
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
34
+ headers['Authorization'] = key;
24
35
  const response = await fetch(url, {
25
36
  method: 'POST',
26
37
  headers,
@@ -46,24 +57,269 @@ class ApiClient {
46
57
  }
47
58
  return response.json();
48
59
  }
49
- async analyzeBloat(diff, intent, projectId, sessionId) {
60
+ async analyzeBloat(diff, intent, projectId, sessionId, fileContents) {
50
61
  const url = `${this.apiUrl}/api/v1/analyze-bloat`;
51
62
  const headers = {
52
63
  'Content-Type': 'application/json'
53
64
  };
54
- if (this.apiKey) {
55
- // Support both "Bearer nk_live_..." and just "nk_live_..."
56
- const key = this.apiKey.startsWith('Bearer ') ? this.apiKey : `Bearer ${this.apiKey}`;
57
- headers['Authorization'] = key;
65
+ // Get API key (will show helpful error if missing)
66
+ const apiKey = this.getApiKey();
67
+ // Support both "Bearer nk_live_..." and just "nk_live_..."
68
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
69
+ headers['Authorization'] = key;
70
+ const response = await fetch(url, {
71
+ method: 'POST',
72
+ headers,
73
+ body: JSON.stringify({
74
+ diff,
75
+ intent,
76
+ projectId,
77
+ sessionId,
78
+ fileContents
79
+ })
80
+ });
81
+ if (!response.ok) {
82
+ const errorText = await response.text();
83
+ let errorMessage = `API request failed with status ${response.status}`;
84
+ try {
85
+ const errorJson = JSON.parse(errorText);
86
+ errorMessage = errorJson.error || errorMessage;
87
+ if (errorJson.message) {
88
+ errorMessage += `: ${errorJson.message}`;
89
+ }
90
+ }
91
+ catch {
92
+ errorMessage += `: ${errorText}`;
93
+ }
94
+ throw new Error(errorMessage);
95
+ }
96
+ return response.json();
97
+ }
98
+ async getFileVersions(filePath, projectId, limit = 50) {
99
+ const url = `${this.apiUrl}/api/v1/revert/versions`;
100
+ const params = new URLSearchParams({ filePath });
101
+ if (projectId)
102
+ params.set('projectId', projectId);
103
+ if (limit)
104
+ params.set('limit', limit.toString());
105
+ const headers = {
106
+ 'Content-Type': 'application/json'
107
+ };
108
+ const apiKey = this.getApiKey();
109
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
110
+ headers['Authorization'] = key;
111
+ const response = await fetch(`${url}?${params.toString()}`, {
112
+ method: 'GET',
113
+ headers,
114
+ });
115
+ if (!response.ok) {
116
+ const errorText = await response.text();
117
+ let errorMessage = `API request failed with status ${response.status}`;
118
+ try {
119
+ const errorJson = JSON.parse(errorText);
120
+ errorMessage = errorJson.error || errorMessage;
121
+ if (errorJson.message) {
122
+ errorMessage += `: ${errorJson.message}`;
123
+ }
124
+ }
125
+ catch {
126
+ errorMessage += `: ${errorText}`;
127
+ }
128
+ throw new Error(errorMessage);
129
+ }
130
+ return response.json();
131
+ }
132
+ async getFileVersion(filePath, version, projectId) {
133
+ const url = `${this.apiUrl}/api/v1/revert/version`;
134
+ const params = new URLSearchParams({
135
+ filePath,
136
+ version: version.toString()
137
+ });
138
+ if (projectId)
139
+ params.set('projectId', projectId);
140
+ const headers = {
141
+ 'Content-Type': 'application/json'
142
+ };
143
+ const apiKey = this.getApiKey();
144
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
145
+ headers['Authorization'] = key;
146
+ const response = await fetch(`${url}?${params.toString()}`, {
147
+ method: 'GET',
148
+ headers,
149
+ });
150
+ if (!response.ok) {
151
+ const errorText = await response.text();
152
+ let errorMessage = `API request failed with status ${response.status}`;
153
+ try {
154
+ const errorJson = JSON.parse(errorText);
155
+ errorMessage = errorJson.error || errorMessage;
156
+ if (errorJson.message) {
157
+ errorMessage += `: ${errorJson.message}`;
158
+ }
159
+ }
160
+ catch {
161
+ errorMessage += `: ${errorText}`;
162
+ }
163
+ throw new Error(errorMessage);
164
+ }
165
+ return response.json();
166
+ }
167
+ async revertFile(filePath, toVersion, projectId, reason) {
168
+ const url = `${this.apiUrl}/api/v1/revert/file`;
169
+ const headers = {
170
+ 'Content-Type': 'application/json'
171
+ };
172
+ const apiKey = this.getApiKey();
173
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
174
+ headers['Authorization'] = key;
175
+ const response = await fetch(url, {
176
+ method: 'POST',
177
+ headers,
178
+ body: JSON.stringify({
179
+ filePath,
180
+ toVersion,
181
+ projectId,
182
+ reason,
183
+ }),
184
+ });
185
+ if (!response.ok) {
186
+ const errorText = await response.text();
187
+ let errorMessage = `API request failed with status ${response.status}`;
188
+ try {
189
+ const errorJson = JSON.parse(errorText);
190
+ errorMessage = errorJson.error || errorMessage;
191
+ if (errorJson.message) {
192
+ errorMessage += `: ${errorJson.message}`;
193
+ }
194
+ }
195
+ catch {
196
+ errorMessage += `: ${errorText}`;
197
+ }
198
+ throw new Error(errorMessage);
199
+ }
200
+ return response.json();
201
+ }
202
+ async refactor(fileContent, redundantBlocks, options) {
203
+ const url = `${this.apiUrl}/api/v1/refactor`;
204
+ const headers = {
205
+ 'Content-Type': 'application/json'
206
+ };
207
+ const apiKey = this.getApiKey();
208
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
209
+ headers['Authorization'] = key;
210
+ const response = await fetch(url, {
211
+ method: 'POST',
212
+ headers,
213
+ body: JSON.stringify({
214
+ fileContent,
215
+ redundantBlocks,
216
+ projectType: options?.projectType,
217
+ framework: options?.framework,
218
+ patterns: options?.patterns,
219
+ })
220
+ });
221
+ if (!response.ok) {
222
+ const errorText = await response.text();
223
+ let errorMessage = `API request failed with status ${response.status}`;
224
+ try {
225
+ const errorJson = JSON.parse(errorText);
226
+ errorMessage = errorJson.error || errorMessage;
227
+ if (errorJson.message) {
228
+ errorMessage += `: ${errorJson.message}`;
229
+ }
230
+ }
231
+ catch {
232
+ errorMessage += `: ${errorText}`;
233
+ }
234
+ throw new Error(errorMessage);
58
235
  }
236
+ return response.json();
237
+ }
238
+ async analyzeSecurity(diff, projectType) {
239
+ const url = `${this.apiUrl}/api/v1/analyze-security`;
240
+ const headers = {
241
+ 'Content-Type': 'application/json'
242
+ };
243
+ const apiKey = this.getApiKey();
244
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
245
+ headers['Authorization'] = key;
59
246
  const response = await fetch(url, {
60
247
  method: 'POST',
61
248
  headers,
62
249
  body: JSON.stringify({
63
250
  diff,
251
+ projectType,
252
+ })
253
+ });
254
+ if (!response.ok) {
255
+ const errorText = await response.text();
256
+ let errorMessage = `API request failed with status ${response.status}`;
257
+ try {
258
+ const errorJson = JSON.parse(errorText);
259
+ errorMessage = errorJson.error || errorMessage;
260
+ if (errorJson.message) {
261
+ errorMessage += `: ${errorJson.message}`;
262
+ }
263
+ }
264
+ catch {
265
+ errorMessage += `: ${errorText}`;
266
+ }
267
+ throw new Error(errorMessage);
268
+ }
269
+ return response.json();
270
+ }
271
+ async generatePlan(intent, files, projectId) {
272
+ const url = `${this.apiUrl}/api/v1/plan`;
273
+ const headers = {
274
+ 'Content-Type': 'application/json'
275
+ };
276
+ // Get API key (will show helpful error if missing)
277
+ const apiKey = this.getApiKey();
278
+ // Support both "Bearer nk_live_..." and just "nk_live_..."
279
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
280
+ headers['Authorization'] = key;
281
+ const response = await fetch(url, {
282
+ method: 'POST',
283
+ headers,
284
+ body: JSON.stringify({
64
285
  intent,
286
+ files,
65
287
  projectId,
66
- sessionId
288
+ })
289
+ });
290
+ if (!response.ok) {
291
+ const errorText = await response.text();
292
+ let errorMessage = `API request failed with status ${response.status}`;
293
+ try {
294
+ const errorJson = JSON.parse(errorText);
295
+ errorMessage = errorJson.error || errorMessage;
296
+ if (errorJson.message) {
297
+ errorMessage += `: ${errorJson.message}`;
298
+ }
299
+ }
300
+ catch {
301
+ errorMessage += `: ${errorText}`;
302
+ }
303
+ throw new Error(errorMessage);
304
+ }
305
+ return response.json();
306
+ }
307
+ async applyPlan(planId, snapshots) {
308
+ const url = `${this.apiUrl}/api/v1/apply`;
309
+ const headers = {
310
+ 'Content-Type': 'application/json'
311
+ };
312
+ // Get API key (will show helpful error if missing)
313
+ const apiKey = this.getApiKey();
314
+ // Support both "Bearer nk_live_..." and just "nk_live_..."
315
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
316
+ headers['Authorization'] = key;
317
+ const response = await fetch(url, {
318
+ method: 'POST',
319
+ headers,
320
+ body: JSON.stringify({
321
+ planId,
322
+ snapshots: snapshots || [],
67
323
  })
68
324
  });
69
325
  if (!response.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface ApplyOptions {
2
+ force?: boolean;
3
+ }
4
+ /**
5
+ * Apply a saved architect plan by generating and writing code files
6
+ */
7
+ export declare function applyCommand(planId: string, options: ApplyOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"AAsBA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,iBAqLvE"}