@neurcode-ai/cli 0.7.12 → 0.8.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.
Files changed (63) hide show
  1. package/dist/api-client.d.ts +37 -17
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +224 -120
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/commands/check.d.ts.map +1 -1
  6. package/dist/commands/check.js +56 -13
  7. package/dist/commands/check.js.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +14 -11
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +95 -33
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/login.d.ts.map +1 -1
  15. package/dist/commands/login.js +47 -57
  16. package/dist/commands/login.js.map +1 -1
  17. package/dist/commands/plan.d.ts +2 -0
  18. package/dist/commands/plan.d.ts.map +1 -1
  19. package/dist/commands/plan.js +177 -10
  20. package/dist/commands/plan.js.map +1 -1
  21. package/dist/commands/revert.d.ts.map +1 -1
  22. package/dist/commands/revert.js +10 -0
  23. package/dist/commands/revert.js.map +1 -1
  24. package/dist/commands/session.d.ts +29 -0
  25. package/dist/commands/session.d.ts.map +1 -0
  26. package/dist/commands/session.js +382 -0
  27. package/dist/commands/session.js.map +1 -0
  28. package/dist/commands/verify.d.ts.map +1 -1
  29. package/dist/commands/verify.js +59 -3
  30. package/dist/commands/verify.js.map +1 -1
  31. package/dist/commands/watch.d.ts.map +1 -1
  32. package/dist/commands/watch.js +20 -15
  33. package/dist/commands/watch.js.map +1 -1
  34. package/dist/index.js +78 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/services/integrations/TicketService.d.ts +68 -0
  37. package/dist/services/integrations/TicketService.d.ts.map +1 -0
  38. package/dist/services/integrations/TicketService.js +151 -0
  39. package/dist/services/integrations/TicketService.js.map +1 -0
  40. package/dist/services/security/SecurityGuard.d.ts +80 -0
  41. package/dist/services/security/SecurityGuard.d.ts.map +1 -0
  42. package/dist/services/security/SecurityGuard.js +410 -0
  43. package/dist/services/security/SecurityGuard.js.map +1 -0
  44. package/dist/services/watch/Syncer.d.ts.map +1 -1
  45. package/dist/services/watch/Syncer.js +22 -1
  46. package/dist/services/watch/Syncer.js.map +1 -1
  47. package/dist/utils/ROILogger.d.ts +16 -0
  48. package/dist/utils/ROILogger.d.ts.map +1 -0
  49. package/dist/utils/ROILogger.js +45 -0
  50. package/dist/utils/ROILogger.js.map +1 -0
  51. package/dist/utils/box.d.ts +16 -0
  52. package/dist/utils/box.d.ts.map +1 -0
  53. package/dist/utils/box.js +85 -0
  54. package/dist/utils/box.js.map +1 -0
  55. package/dist/utils/messages.d.ts +81 -0
  56. package/dist/utils/messages.d.ts.map +1 -0
  57. package/dist/utils/messages.js +306 -0
  58. package/dist/utils/messages.js.map +1 -0
  59. package/dist/utils/user-context.d.ts +28 -0
  60. package/dist/utils/user-context.d.ts.map +1 -0
  61. package/dist/utils/user-context.js +68 -0
  62. package/dist/utils/user-context.js.map +1 -0
  63. package/package.json +4 -4
@@ -57,7 +57,12 @@ export declare class ApiClient {
57
57
  private apiUrl;
58
58
  private apiKey?;
59
59
  private readonly requestTimeout;
60
+ private isRetryingAuth;
60
61
  constructor(config: NeurcodeConfig);
62
+ /**
63
+ * Update API key after re-login
64
+ */
65
+ updateApiKey(newApiKey: string): void;
61
66
  /**
62
67
  * Get API key, requiring it if not set
63
68
  * Shows helpful error message if missing
@@ -73,6 +78,11 @@ export declare class ApiClient {
73
78
  * Logs the exact URL attempted when fetch fails
74
79
  */
75
80
  private fetchWithDebug;
81
+ /**
82
+ * Central request handler with 401 recovery
83
+ * Handles authentication failures gracefully by prompting for re-login
84
+ */
85
+ private makeRequest;
76
86
  analyzeDiff(diff: string, projectId?: string): Promise<AnalyzeDiffResponse>;
77
87
  analyzeBloat(diff: string, intent?: string, projectId?: string, sessionId?: string, fileContents?: Record<string, string>): Promise<AnalyzeBloatResponse>;
78
88
  getFileVersions(filePath: string, projectId?: string, limit?: number): Promise<Array<{
@@ -191,7 +201,12 @@ export declare class ApiClient {
191
201
  id: string;
192
202
  name: string;
193
203
  }>;
194
- generatePlan(intent: string, files: string[], projectId?: string): Promise<GeneratePlanResponse>;
204
+ generatePlan(intent: string, files: string[], projectId?: string, ticketMetadata?: {
205
+ id: string;
206
+ title: string;
207
+ description: string;
208
+ acceptanceCriteria?: string;
209
+ }): Promise<GeneratePlanResponse>;
195
210
  applyPlan(planId: string, snapshots?: Array<{
196
211
  path: string;
197
212
  originalContent: string;
@@ -222,22 +237,6 @@ export declare class ApiClient {
222
237
  * Allow a file to be modified in a session (bypass scope guard)
223
238
  */
224
239
  allowFile(sessionId: string, filePath: string): Promise<AISession>;
225
- /**
226
- * Get session by ID
227
- */
228
- getSession(sessionId: string): Promise<{
229
- session: AISession;
230
- files: Array<{
231
- id: string;
232
- sessionId: string;
233
- filePath: string;
234
- changeType: string;
235
- linesAdded: number;
236
- linesRemoved: number;
237
- analysisResult: any;
238
- createdAt: string;
239
- }>;
240
- }>;
241
240
  /**
242
241
  * Get plan by ID
243
242
  */
@@ -312,6 +311,27 @@ export declare class ApiClient {
312
311
  status: string;
313
312
  createdAt: string;
314
313
  }>>;
314
+ /**
315
+ * End a session (mark as completed)
316
+ */
317
+ endSession(sessionId: string): Promise<{
318
+ message: string;
319
+ }>;
320
+ /**
321
+ * Get a specific session by ID
322
+ */
323
+ getSession(sessionId: string): Promise<{
324
+ session: {
325
+ id: string;
326
+ sessionId: string;
327
+ title: string | null;
328
+ intentDescription: string | null;
329
+ status: string;
330
+ createdAt: string;
331
+ endedAt: string | null;
332
+ };
333
+ files: Array<any>;
334
+ }>;
315
335
  }
316
336
  export interface AISession {
317
337
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAC;AAEzD,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,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;gBAErC,MAAM,EAAE,cAAc;IAOlC;;;OAGG;IACH,OAAO,CAAC,SAAS;IAQjB;;;OAGG;YACW,gBAAgB;IAoB9B;;;OAGG;YACW,cAAc;IAetB,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,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6CzJ,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7F,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC1D,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IAsDG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACnF,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC;YACjB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;YAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IAiEF;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,EAC1D,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC;YACjB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;YAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IA8DI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAClG,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC;YACjB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;YAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;YAC1D,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,kBAAkB,EAAE;YAClB,MAAM,EAAE,cAAc,CAAC;YACvB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IAwEI,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,EACvF,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1E,OAAO,CAAC,gBAAgB,CAAC;IA2CtB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwC5F;;;;;;;;;;OAUG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAsDpF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2ChG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0CnH,UAAU,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,EACD,YAAY,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACnD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;gBACtC,OAAO,EAAE,MAAM,CAAC;gBAChB,UAAU,CAAC,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC,EACF,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IA0C9B;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqCxE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,SAAS,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,cAAc,EAAE,GAAG,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IAgDF;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACrC,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QACzD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAkDF;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAoChE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QACjC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IA8CH;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,IAAI,CAAC;IA+CT;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IA0CF;;OAEG;IACG,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,KAAK,CAAC;QACtE,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CAoCJ;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;YACvC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,YAAY,EAAE,KAAK,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE;YACd,eAAe,EAAE,OAAO,CAAC;YACzB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;YACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE;QACR,MAAM,EAAE,KAAK,CAAC;YACZ,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;YACjD,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;KAC9D,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,yBAAyB,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;YACtC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;QACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjD,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ApiClient = void 0;
4
37
  const config_1 = require("./config");
@@ -6,12 +39,19 @@ class ApiClient {
6
39
  apiUrl;
7
40
  apiKey;
8
41
  requestTimeout = 300000; // 5 minutes (300,000ms)
42
+ isRetryingAuth = false; // Flag to prevent infinite retry loops
9
43
  constructor(config) {
10
44
  // API URL will always be set (defaults to production)
11
45
  // This check is no longer needed, but kept for safety
12
46
  this.apiUrl = (config.apiUrl || 'https://api.neurcode.com').replace(/\/$/, ''); // Remove trailing slash
13
47
  this.apiKey = config.apiKey;
14
48
  }
49
+ /**
50
+ * Update API key after re-login
51
+ */
52
+ updateApiKey(newApiKey) {
53
+ this.apiKey = newApiKey;
54
+ }
15
55
  /**
16
56
  * Get API key, requiring it if not set
17
57
  * Shows helpful error message if missing
@@ -65,17 +105,147 @@ class ApiClient {
65
105
  throw error;
66
106
  }
67
107
  }
108
+ /**
109
+ * Central request handler with 401 recovery
110
+ * Handles authentication failures gracefully by prompting for re-login
111
+ */
112
+ async makeRequest(url, options, retryOnAuth = true) {
113
+ // Get API key for authorization
114
+ const apiKey = this.getApiKey();
115
+ const authHeader = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
116
+ // Ensure headers exist
117
+ if (!options.headers) {
118
+ options.headers = {};
119
+ }
120
+ const headers = options.headers;
121
+ headers['Authorization'] = authHeader;
122
+ try {
123
+ const response = await this.fetchWithDebug(url, options);
124
+ // Check for 401 Unauthorized
125
+ if (response.status === 401) {
126
+ const errorText = await response.text().catch(() => '');
127
+ let errorJson = null;
128
+ try {
129
+ errorJson = JSON.parse(errorText);
130
+ }
131
+ catch {
132
+ // Error body is not JSON, use default message
133
+ }
134
+ // If we're already retrying or this is a retry attempt, don't loop
135
+ if (this.isRetryingAuth || !retryOnAuth) {
136
+ const errorMessage = errorJson?.message || errorJson?.error || 'Authentication failed';
137
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
138
+ }
139
+ // Check if terminal is interactive
140
+ if (process.stdout.isTTY && !process.env.CI) {
141
+ // Import readline for interactive prompt
142
+ const { createInterface } = await Promise.resolve().then(() => __importStar(require('readline/promises')));
143
+ const { stdin, stdout } = await Promise.resolve().then(() => __importStar(require('process')));
144
+ const rl = createInterface({ input: stdin, output: stdout });
145
+ try {
146
+ const answer = await rl.question('❌ Session expired or invalid. Would you like to log in again? (Y/n) ');
147
+ rl.close();
148
+ const shouldRelogin = answer.trim().toLowerCase() !== 'n' && answer.trim().toLowerCase() !== 'no';
149
+ if (shouldRelogin) {
150
+ // Set flag to prevent infinite loops
151
+ this.isRetryingAuth = true;
152
+ try {
153
+ // Import and call login command
154
+ const { loginCommand } = await Promise.resolve().then(() => __importStar(require('./commands/login')));
155
+ await loginCommand();
156
+ // Reload config to get new API key
157
+ const { loadConfig } = await Promise.resolve().then(() => __importStar(require('./config')));
158
+ const newConfig = loadConfig();
159
+ if (newConfig.apiKey) {
160
+ this.updateApiKey(newConfig.apiKey);
161
+ // Retry the request once with new auth
162
+ // Create new options object with updated authorization header
163
+ const newAuthHeader = newConfig.apiKey.startsWith('Bearer ')
164
+ ? newConfig.apiKey
165
+ : `Bearer ${newConfig.apiKey}`;
166
+ const retryOptions = {
167
+ ...options,
168
+ headers: {
169
+ ...headers,
170
+ 'Authorization': newAuthHeader,
171
+ },
172
+ };
173
+ // Retry with retry flag set to false to prevent loops
174
+ const retryResponse = await this.fetchWithDebug(url, retryOptions);
175
+ if (retryResponse.status === 401) {
176
+ // Still 401 after login - something is wrong
177
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
178
+ }
179
+ if (!retryResponse.ok) {
180
+ const retryErrorText = await retryResponse.text();
181
+ throw new Error(`API request failed with status ${retryResponse.status}: ${retryErrorText}`);
182
+ }
183
+ return retryResponse.json();
184
+ }
185
+ else {
186
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
187
+ }
188
+ }
189
+ catch (loginError) {
190
+ // Login failed or was cancelled
191
+ if (loginError instanceof Error && loginError.message.includes('Authentication failed')) {
192
+ throw loginError;
193
+ }
194
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
195
+ }
196
+ finally {
197
+ // Reset flag
198
+ this.isRetryingAuth = false;
199
+ }
200
+ }
201
+ else {
202
+ // User declined to login
203
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
204
+ }
205
+ }
206
+ catch (promptError) {
207
+ rl.close();
208
+ throw promptError;
209
+ }
210
+ }
211
+ else {
212
+ // Non-interactive terminal (CI, scripts, etc.)
213
+ const errorMessage = errorJson?.message || errorJson?.error || 'Authentication failed';
214
+ throw new Error(`Error: Authentication failed. Please run 'neurcode login'.`);
215
+ }
216
+ }
217
+ if (!response.ok) {
218
+ const errorText = await response.text();
219
+ let errorMessage = `API request failed with status ${response.status}`;
220
+ try {
221
+ const errorJson = JSON.parse(errorText);
222
+ errorMessage = errorJson.error || errorMessage;
223
+ if (errorJson.message) {
224
+ errorMessage += `: ${errorJson.message}`;
225
+ }
226
+ }
227
+ catch {
228
+ errorMessage += `: ${errorText}`;
229
+ }
230
+ throw new Error(errorMessage);
231
+ }
232
+ return response.json();
233
+ }
234
+ catch (error) {
235
+ // Re-throw if it's already our formatted error
236
+ if (error instanceof Error && error.message.startsWith('Error: Authentication failed')) {
237
+ throw error;
238
+ }
239
+ // For other errors, wrap them appropriately
240
+ throw error;
241
+ }
242
+ }
68
243
  async analyzeDiff(diff, projectId) {
69
244
  const url = `${this.apiUrl}/api/v1/analyze-diff`;
70
245
  const headers = {
71
246
  'Content-Type': 'application/json'
72
247
  };
73
- // Get API key (will show helpful error if missing)
74
- const apiKey = this.getApiKey();
75
- // Support both "Bearer nk_live_..." and just "nk_live_..."
76
- const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
77
- headers['Authorization'] = key;
78
- const response = await this.fetchWithDebug(url, {
248
+ return this.makeRequest(url, {
79
249
  method: 'POST',
80
250
  headers,
81
251
  body: JSON.stringify({
@@ -83,34 +253,13 @@ class ApiClient {
83
253
  projectId
84
254
  })
85
255
  });
86
- if (!response.ok) {
87
- const errorText = await response.text();
88
- let errorMessage = `API request failed with status ${response.status}`;
89
- try {
90
- const errorJson = JSON.parse(errorText);
91
- errorMessage = errorJson.error || errorMessage;
92
- if (errorJson.message) {
93
- errorMessage += `: ${errorJson.message}`;
94
- }
95
- }
96
- catch {
97
- errorMessage += `: ${errorText}`;
98
- }
99
- throw new Error(errorMessage);
100
- }
101
- return response.json();
102
256
  }
103
257
  async analyzeBloat(diff, intent, projectId, sessionId, fileContents) {
104
258
  const url = `${this.apiUrl}/api/v1/analyze-bloat`;
105
259
  const headers = {
106
260
  'Content-Type': 'application/json'
107
261
  };
108
- // Get API key (will show helpful error if missing)
109
- const apiKey = this.getApiKey();
110
- // Support both "Bearer nk_live_..." and just "nk_live_..."
111
- const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
112
- headers['Authorization'] = key;
113
- const response = await this.fetchWithDebug(url, {
262
+ return this.makeRequest(url, {
114
263
  method: 'POST',
115
264
  headers,
116
265
  body: JSON.stringify({
@@ -121,22 +270,6 @@ class ApiClient {
121
270
  fileContents
122
271
  })
123
272
  });
124
- if (!response.ok) {
125
- const errorText = await response.text();
126
- let errorMessage = `API request failed with status ${response.status}`;
127
- try {
128
- const errorJson = JSON.parse(errorText);
129
- errorMessage = errorJson.error || errorMessage;
130
- if (errorJson.message) {
131
- errorMessage += `: ${errorJson.message}`;
132
- }
133
- }
134
- catch {
135
- errorMessage += `: ${errorText}`;
136
- }
137
- throw new Error(errorMessage);
138
- }
139
- return response.json();
140
273
  }
141
274
  async getFileVersions(filePath, projectId, limit = 50) {
142
275
  const url = `${this.apiUrl}/api/v1/revert/versions`;
@@ -412,41 +545,21 @@ class ApiClient {
412
545
  const result = await response.json();
413
546
  return { id: result.id, name: result.name };
414
547
  }
415
- async generatePlan(intent, files, projectId) {
548
+ async generatePlan(intent, files, projectId, ticketMetadata) {
416
549
  const url = `${this.apiUrl}/api/v1/plan`;
417
550
  const headers = {
418
551
  'Content-Type': 'application/json'
419
552
  };
420
- // Get API key (will show helpful error if missing)
421
- const apiKey = this.getApiKey();
422
- // Support both "Bearer nk_live_..." and just "nk_live_..."
423
- const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
424
- headers['Authorization'] = key;
425
- const response = await this.fetchWithTimeout(url, {
553
+ return this.makeRequest(url, {
426
554
  method: 'POST',
427
555
  headers,
428
556
  body: JSON.stringify({
429
557
  intent,
430
558
  files,
431
559
  projectId,
560
+ ticketMetadata,
432
561
  })
433
562
  });
434
- if (!response.ok) {
435
- const errorText = await response.text();
436
- let errorMessage = `API request failed with status ${response.status}`;
437
- try {
438
- const errorJson = JSON.parse(errorText);
439
- errorMessage = errorJson.error || errorMessage;
440
- if (errorJson.message) {
441
- errorMessage += `: ${errorJson.message}`;
442
- }
443
- }
444
- catch {
445
- errorMessage += `: ${errorText}`;
446
- }
447
- throw new Error(errorMessage);
448
- }
449
- return response.json();
450
563
  }
451
564
  async applyPlan(planId, snapshots) {
452
565
  const url = `${this.apiUrl}/api/v1/apply`;
@@ -551,38 +664,6 @@ class ApiClient {
551
664
  }
552
665
  return response.json();
553
666
  }
554
- /**
555
- * Get session by ID
556
- */
557
- async getSession(sessionId) {
558
- const url = `${this.apiUrl}/api/v1/sessions/${sessionId}`;
559
- const headers = {
560
- 'Content-Type': 'application/json'
561
- };
562
- const apiKey = this.getApiKey();
563
- const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
564
- headers['Authorization'] = key;
565
- const response = await this.fetchWithDebug(url, {
566
- method: 'GET',
567
- headers,
568
- });
569
- if (!response.ok) {
570
- const errorText = await response.text();
571
- let errorMessage = `API request failed with status ${response.status}`;
572
- try {
573
- const errorJson = JSON.parse(errorText);
574
- errorMessage = errorJson.error || errorMessage;
575
- if (errorJson.message) {
576
- errorMessage += `: ${errorJson.message}`;
577
- }
578
- }
579
- catch {
580
- errorMessage += `: ${errorText}`;
581
- }
582
- throw new Error(errorMessage);
583
- }
584
- return response.json();
585
- }
586
667
  /**
587
668
  * Get plan by ID
588
669
  */
@@ -721,29 +802,10 @@ class ApiClient {
721
802
  const headers = {
722
803
  'Content-Type': 'application/json'
723
804
  };
724
- const apiKey = this.getApiKey();
725
- const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
726
- headers['Authorization'] = key;
727
- const response = await this.fetchWithDebug(url, {
805
+ return this.makeRequest(url, {
728
806
  method: 'GET',
729
807
  headers,
730
- });
731
- if (!response.ok) {
732
- const errorText = await response.text();
733
- let errorMessage = `API request failed with status ${response.status}`;
734
- try {
735
- const errorJson = JSON.parse(errorText);
736
- errorMessage = errorJson.error || errorMessage;
737
- if (errorJson.message) {
738
- errorMessage += `: ${errorJson.message}`;
739
- }
740
- }
741
- catch {
742
- errorMessage += `: ${errorText}`;
743
- }
744
- throw new Error(errorMessage);
745
- }
746
- return response.json();
808
+ }, false); // Don't retry on auth for getCurrentUser (used to check login status)
747
809
  }
748
810
  /**
749
811
  * Get sessions for a project
@@ -771,6 +833,48 @@ class ApiClient {
771
833
  const sessions = await response.json();
772
834
  return sessions;
773
835
  }
836
+ /**
837
+ * End a session (mark as completed)
838
+ */
839
+ async endSession(sessionId) {
840
+ const url = `${this.apiUrl}/api/v1/sessions/${sessionId}/end`;
841
+ const headers = {
842
+ 'Content-Type': 'application/json'
843
+ };
844
+ const apiKey = this.getApiKey();
845
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
846
+ headers['Authorization'] = key;
847
+ const response = await this.fetchWithDebug(url, {
848
+ method: 'POST',
849
+ headers,
850
+ });
851
+ if (!response.ok) {
852
+ const errorText = await response.text();
853
+ throw new Error(`API request failed: ${errorText}`);
854
+ }
855
+ return await response.json();
856
+ }
857
+ /**
858
+ * Get a specific session by ID
859
+ */
860
+ async getSession(sessionId) {
861
+ const url = `${this.apiUrl}/api/v1/sessions/${sessionId}`;
862
+ const headers = {
863
+ 'Content-Type': 'application/json'
864
+ };
865
+ const apiKey = this.getApiKey();
866
+ const key = apiKey.startsWith('Bearer ') ? apiKey : `Bearer ${apiKey}`;
867
+ headers['Authorization'] = key;
868
+ const response = await this.fetchWithDebug(url, {
869
+ method: 'GET',
870
+ headers,
871
+ });
872
+ if (!response.ok) {
873
+ const errorText = await response.text();
874
+ throw new Error(`API request failed: ${errorText}`);
875
+ }
876
+ return await response.json();
877
+ }
774
878
  }
775
879
  exports.ApiClient = ApiClient;
776
880
  //# sourceMappingURL=api-client.js.map