ai-sdlc 0.2.1-alpha.1 → 0.3.0-alpha.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 (65) hide show
  1. package/README.md +19 -6
  2. package/dist/agents/implementation.d.ts +30 -1
  3. package/dist/agents/implementation.d.ts.map +1 -1
  4. package/dist/agents/implementation.js +108 -17
  5. package/dist/agents/implementation.js.map +1 -1
  6. package/dist/agents/review.d.ts +40 -1
  7. package/dist/agents/review.d.ts.map +1 -1
  8. package/dist/agents/review.js +276 -44
  9. package/dist/agents/review.js.map +1 -1
  10. package/dist/agents/rework.d.ts.map +1 -1
  11. package/dist/agents/rework.js +3 -1
  12. package/dist/agents/rework.js.map +1 -1
  13. package/dist/agents/verification.d.ts.map +1 -1
  14. package/dist/agents/verification.js +26 -12
  15. package/dist/agents/verification.js.map +1 -1
  16. package/dist/cli/batch-processor.d.ts +64 -0
  17. package/dist/cli/batch-processor.d.ts.map +1 -0
  18. package/dist/cli/batch-processor.js +85 -0
  19. package/dist/cli/batch-processor.js.map +1 -0
  20. package/dist/cli/batch-validator.d.ts +80 -0
  21. package/dist/cli/batch-validator.d.ts.map +1 -0
  22. package/dist/cli/batch-validator.js +121 -0
  23. package/dist/cli/batch-validator.js.map +1 -0
  24. package/dist/cli/commands.d.ts +8 -0
  25. package/dist/cli/commands.d.ts.map +1 -1
  26. package/dist/cli/commands.js +756 -46
  27. package/dist/cli/commands.js.map +1 -1
  28. package/dist/cli/daemon.d.ts.map +1 -1
  29. package/dist/cli/daemon.js +5 -0
  30. package/dist/cli/daemon.js.map +1 -1
  31. package/dist/cli/runner.d.ts.map +1 -1
  32. package/dist/cli/runner.js +17 -2
  33. package/dist/cli/runner.js.map +1 -1
  34. package/dist/core/client.d.ts +19 -1
  35. package/dist/core/client.d.ts.map +1 -1
  36. package/dist/core/client.js +191 -5
  37. package/dist/core/client.js.map +1 -1
  38. package/dist/core/config.d.ts +9 -1
  39. package/dist/core/config.d.ts.map +1 -1
  40. package/dist/core/config.js +103 -0
  41. package/dist/core/config.js.map +1 -1
  42. package/dist/core/kanban.d.ts +125 -1
  43. package/dist/core/kanban.d.ts.map +1 -1
  44. package/dist/core/kanban.js +277 -1
  45. package/dist/core/kanban.js.map +1 -1
  46. package/dist/core/process-manager.d.ts +15 -0
  47. package/dist/core/process-manager.d.ts.map +1 -0
  48. package/dist/core/process-manager.js +132 -0
  49. package/dist/core/process-manager.js.map +1 -0
  50. package/dist/core/story.d.ts +24 -0
  51. package/dist/core/story.d.ts.map +1 -1
  52. package/dist/core/story.js +78 -0
  53. package/dist/core/story.js.map +1 -1
  54. package/dist/core/worktree.d.ts +111 -2
  55. package/dist/core/worktree.d.ts.map +1 -1
  56. package/dist/core/worktree.js +310 -2
  57. package/dist/core/worktree.js.map +1 -1
  58. package/dist/index.js +11 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/types/index.d.ts +121 -0
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/index.js +23 -0
  63. package/dist/types/index.js.map +1 -1
  64. package/package.json +2 -2
  65. package/templates/story.md +5 -0
@@ -1,7 +1,7 @@
1
1
  import ora from 'ora';
2
2
  import { getSdlcRoot, loadConfig, isStageGateEnabled } from '../core/config.js';
3
3
  import { assessState, kanbanExists } from '../core/kanban.js';
4
- import { parseStory, resetRPIVCycle, isAtMaxRetries, getStory, incrementImplementationRetryCount, autoCompleteStoryAfterReview } from '../core/story.js';
4
+ import { parseStory, resetRPIVCycle, isAtMaxRetries, getStory, incrementImplementationRetryCount, autoCompleteStoryAfterReview, isAtGlobalRecoveryLimit, getTotalRecoveryAttempts, incrementTotalRecoveryAttempts, moveToBlocked } from '../core/story.js';
5
5
  import { ReviewDecision } from '../types/index.js';
6
6
  import { runRefinementAgent } from '../agents/refinement.js';
7
7
  import { runResearchAgent } from '../agents/research.js';
@@ -136,8 +136,9 @@ export class WorkflowRunner {
136
136
  const config = loadConfig();
137
137
  // Resolve story by ID to get current path (handles moves between folders)
138
138
  let currentStoryPath;
139
+ let story;
139
140
  try {
140
- const story = getStory(this.sdlcRoot, action.storyId);
141
+ story = getStory(this.sdlcRoot, action.storyId);
141
142
  currentStoryPath = story.path;
142
143
  }
143
144
  catch (error) {
@@ -150,6 +151,16 @@ export class WorkflowRunner {
150
151
  }
151
152
  return { success: false, error: error instanceof Error ? error.message : 'Story not found', changesMade: [] };
152
153
  }
154
+ // Check global recovery circuit breaker
155
+ if (isAtGlobalRecoveryLimit(story)) {
156
+ const c = getThemedChalk(config);
157
+ const currentAttempts = getTotalRecoveryAttempts(story);
158
+ const reason = `Global recovery limit exceeded (${currentAttempts}/10)`;
159
+ console.log(c.error(`\n⚠️ ${reason}`));
160
+ console.log(c.warning('Story has been blocked. Use "ai-sdlc unblock --reset-retries" to reset the counter.'));
161
+ await moveToBlocked(currentStoryPath, reason);
162
+ return { success: false, error: reason, changesMade: [] };
163
+ }
153
164
  switch (action.type) {
154
165
  case 'refine':
155
166
  return runRefinementAgent(currentStoryPath, this.sdlcRoot);
@@ -237,6 +248,8 @@ export class WorkflowRunner {
237
248
  // Display executive summary
238
249
  const summary = generateReviewSummary(reviewResult.issues, getTerminalWidth());
239
250
  console.log(c.dim(` Summary: ${summary}`));
251
+ // Increment global recovery counter
252
+ await incrementTotalRecoveryAttempts(story);
240
253
  await resetRPIVCycle(story, reviewResult.feedback);
241
254
  console.log(c.info('RPIV cycle reset. Planning phase will restart on next run.'));
242
255
  }
@@ -251,6 +264,8 @@ export class WorkflowRunner {
251
264
  story = parseStory(storyPath);
252
265
  // Increment implementation retry count
253
266
  await incrementImplementationRetryCount(story);
267
+ // Increment global recovery counter
268
+ await incrementTotalRecoveryAttempts(story);
254
269
  console.log(c.info('Implementation phase will re-run on next execution.'));
255
270
  }
256
271
  else if (reviewResult.decision === ReviewDecision.FAILED) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,12 @@ export type AgentProgressEvent = {
33
33
  } | {
34
34
  type: 'error';
35
35
  message: string;
36
+ } | {
37
+ type: 'retry';
38
+ attempt: number;
39
+ delay: number;
40
+ error: string;
41
+ errorType: string;
36
42
  };
37
43
  /**
38
44
  * Callback for receiving real-time progress from agent execution
@@ -67,7 +73,19 @@ export interface AgentMessage {
67
73
  session_id?: string;
68
74
  }
69
75
  /**
70
- * Run an agent query using the Claude Agent SDK.
76
+ * Classify an error as transient (should retry) or permanent (fail immediately)
77
+ */
78
+ export declare function classifyApiError(error: Error): 'transient' | 'permanent';
79
+ /**
80
+ * Determine if an error should be retried based on classification and attempt count
81
+ */
82
+ export declare function shouldRetry(error: Error, attemptNumber: number, maxRetries: number): boolean;
83
+ /**
84
+ * Calculate exponential backoff delay with jitter
85
+ */
86
+ export declare function calculateBackoff(attemptNumber: number, initialDelay: number, maxDelay: number): number;
87
+ /**
88
+ * Run an agent query using the Claude Agent SDK with automatic retry logic.
71
89
  * Automatically configures authentication from environment or keychain.
72
90
  * CLAUDE.md discovery is handled automatically by the SDK when settingSources includes 'project'.
73
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,cAAc,EAA0B,MAAM,WAAW,CAAC;AAMxH;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,SAAS,EAAE,MAAM;CAK9B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgBD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwK/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,cAAc,EAA0B,MAAM,WAAW,CAAC;AAMxH;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,SAAS,EAAE,MAAM;CAK9B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAsCxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAS5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYtG;AA6MD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8F/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
@@ -38,13 +38,116 @@ function isValidWorkingDirectory(workingDir) {
38
38
  }
39
39
  }
40
40
  /**
41
- * Run an agent query using the Claude Agent SDK.
42
- * Automatically configures authentication from environment or keychain.
43
- * CLAUDE.md discovery is handled automatically by the SDK when settingSources includes 'project'.
41
+ * Classify an error as transient (should retry) or permanent (fail immediately)
44
42
  */
45
- export async function runAgentQuery(options) {
43
+ export function classifyApiError(error) {
44
+ // Check for HTTP status codes
45
+ if ('status' in error && typeof error.status === 'number') {
46
+ const status = error.status;
47
+ // Transient errors (should retry)
48
+ if (status === 429)
49
+ return 'transient'; // Rate limit
50
+ if (status === 503)
51
+ return 'transient'; // Service unavailable
52
+ if (status >= 500 && status < 600)
53
+ return 'transient'; // Server errors
54
+ // Permanent errors (don't retry)
55
+ if (status === 400)
56
+ return 'permanent'; // Bad request
57
+ if (status === 401)
58
+ return 'permanent'; // Unauthorized
59
+ if (status === 403)
60
+ return 'permanent'; // Forbidden
61
+ if (status === 404)
62
+ return 'permanent'; // Not found
63
+ }
64
+ // Check for AuthenticationError
65
+ if (error instanceof AuthenticationError) {
66
+ return 'permanent';
67
+ }
68
+ // Check for network errors (should retry)
69
+ if ('code' in error) {
70
+ const code = error.code;
71
+ const transientNetworkCodes = [
72
+ 'ETIMEDOUT',
73
+ 'ECONNRESET',
74
+ 'ENOTFOUND',
75
+ 'ECONNREFUSED',
76
+ 'EHOSTUNREACH',
77
+ 'EPIPE',
78
+ ];
79
+ if (transientNetworkCodes.includes(code))
80
+ return 'transient';
81
+ }
82
+ // Default to permanent (fail-safe)
83
+ return 'permanent';
84
+ }
85
+ /**
86
+ * Determine if an error should be retried based on classification and attempt count
87
+ */
88
+ export function shouldRetry(error, attemptNumber, maxRetries) {
89
+ // Check if we've exceeded max retries
90
+ if (attemptNumber >= maxRetries) {
91
+ return false;
92
+ }
93
+ // Check error classification
94
+ const classification = classifyApiError(error);
95
+ return classification === 'transient';
96
+ }
97
+ /**
98
+ * Calculate exponential backoff delay with jitter
99
+ */
100
+ export function calculateBackoff(attemptNumber, initialDelay, maxDelay) {
101
+ // Exponential backoff: initialDelay * 2^attemptNumber
102
+ const exponentialDelay = initialDelay * Math.pow(2, attemptNumber);
103
+ // Cap at maxDelay
104
+ const cappedDelay = Math.min(exponentialDelay, maxDelay);
105
+ // Apply jitter (±20% variance)
106
+ const jitterFactor = 0.8 + Math.random() * 0.4; // Range: 0.8 to 1.2
107
+ const delayWithJitter = cappedDelay * jitterFactor;
108
+ return Math.round(delayWithJitter);
109
+ }
110
+ /**
111
+ * Sleep for a specified number of milliseconds
112
+ */
113
+ function sleep(ms) {
114
+ return new Promise(resolve => setTimeout(resolve, ms));
115
+ }
116
+ /**
117
+ * Get human-readable error type label for display
118
+ */
119
+ function getErrorTypeLabel(error) {
120
+ if ('status' in error && typeof error.status === 'number') {
121
+ const status = error.status;
122
+ if (status === 429)
123
+ return 'rate limit';
124
+ if (status === 503)
125
+ return 'service unavailable';
126
+ if (status >= 500)
127
+ return 'server error';
128
+ }
129
+ if ('code' in error) {
130
+ const code = error.code;
131
+ if (code === 'ETIMEDOUT')
132
+ return 'network timeout';
133
+ if (code === 'ECONNRESET')
134
+ return 'connection reset';
135
+ if (code === 'ENOTFOUND')
136
+ return 'DNS lookup failed';
137
+ if (code === 'ECONNREFUSED')
138
+ return 'connection refused';
139
+ if (code === 'EHOSTUNREACH')
140
+ return 'host unreachable';
141
+ if (code === 'EPIPE')
142
+ return 'broken pipe';
143
+ }
144
+ return 'error';
145
+ }
146
+ /**
147
+ * Execute the agent query (internal implementation, no retry logic)
148
+ */
149
+ async function executeAgentQuery(options, queryStartTime) {
46
150
  const logger = getLogger();
47
- const queryStartTime = Date.now();
48
151
  // Configure authentication
49
152
  const authResult = configureAgentSdkAuth();
50
153
  if (!authResult.configured) {
@@ -195,6 +298,89 @@ export async function runAgentQuery(options) {
195
298
  throw error;
196
299
  }
197
300
  }
301
+ /**
302
+ * Run an agent query using the Claude Agent SDK with automatic retry logic.
303
+ * Automatically configures authentication from environment or keychain.
304
+ * CLAUDE.md discovery is handled automatically by the SDK when settingSources includes 'project'.
305
+ */
306
+ export async function runAgentQuery(options) {
307
+ const logger = getLogger();
308
+ const config = loadConfig(options.workingDirectory || process.cwd());
309
+ const retryConfig = config.retry || { maxRetries: 3, initialDelay: 2000, maxDelay: 32000, maxTotalDuration: 60000 };
310
+ const overallStartTime = Date.now();
311
+ let lastError;
312
+ // Retry loop: attempt 0 is the initial try, attempts 1+ are retries
313
+ for (let attempt = 0; attempt <= retryConfig.maxRetries; attempt++) {
314
+ const queryStartTime = Date.now();
315
+ try {
316
+ // Execute the query
317
+ const result = await executeAgentQuery(options, queryStartTime);
318
+ return result;
319
+ }
320
+ catch (error) {
321
+ lastError = error instanceof Error ? error : new Error(String(error));
322
+ // Check if we should retry
323
+ if (!shouldRetry(lastError, attempt, retryConfig.maxRetries)) {
324
+ // Check if this is a permanent error (not retryable) vs max retries exceeded
325
+ const errorType = classifyApiError(lastError);
326
+ if (errorType === 'permanent') {
327
+ // Permanent error - fail immediately with original error
328
+ throw lastError;
329
+ }
330
+ // Max retries exceeded for transient error - break to enhance the error message
331
+ break;
332
+ }
333
+ // Check total duration cap
334
+ const elapsedTime = Date.now() - overallStartTime;
335
+ if (elapsedTime >= retryConfig.maxTotalDuration) {
336
+ logger.warn('agent-sdk', 'Total retry duration exceeded', {
337
+ elapsedMs: elapsedTime,
338
+ maxDurationMs: retryConfig.maxTotalDuration,
339
+ attempt,
340
+ });
341
+ throw lastError;
342
+ }
343
+ // Calculate backoff delay
344
+ const delay = calculateBackoff(attempt, retryConfig.initialDelay, retryConfig.maxDelay);
345
+ // Get error type label for logging/display
346
+ const errorTypeLabel = getErrorTypeLabel(lastError);
347
+ // Log retry attempt
348
+ logger.info('agent-sdk', 'Retrying after transient error', {
349
+ attempt: attempt + 1,
350
+ maxRetries: retryConfig.maxRetries,
351
+ delayMs: delay,
352
+ errorType: errorTypeLabel,
353
+ error: lastError.message,
354
+ });
355
+ // Notify progress callback
356
+ options.onProgress?.({
357
+ type: 'retry',
358
+ attempt: attempt + 1,
359
+ delay,
360
+ error: lastError.message,
361
+ errorType: errorTypeLabel,
362
+ });
363
+ // Show warning after 2nd retry (attempt 2+)
364
+ if (attempt >= 2) {
365
+ console.warn('⚠️ Experiencing temporary issues with API...');
366
+ }
367
+ // Wait before retry
368
+ await sleep(delay);
369
+ }
370
+ }
371
+ // If we get here, we've exhausted retries - enhance error message with context
372
+ if (lastError) {
373
+ const errorTypeLabel = getErrorTypeLabel(lastError);
374
+ const isRateLimit = 'status' in lastError && lastError.status === 429;
375
+ if (isRateLimit) {
376
+ throw new Error(`Rate limit exceeded after ${retryConfig.maxRetries} retry attempts. ` +
377
+ `API may be rate limiting your requests. Try again in a few minutes or reduce concurrent requests.`);
378
+ }
379
+ throw new Error(`API request failed after ${retryConfig.maxRetries} retry attempts. ` +
380
+ `Last error (${errorTypeLabel}): ${lastError.message}`);
381
+ }
382
+ throw new Error('Max retries exceeded');
383
+ }
198
384
  /**
199
385
  * Get the current credential type being used
200
386
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Config, StageGateConfig, RefinementConfig, ReviewConfig, ImplementationConfig, TimeoutConfig, DaemonConfig, TDDConfig, WorktreeConfig, LogConfig } from '../types/index.js';
1
+ import { Config, StageGateConfig, RefinementConfig, ReviewConfig, ImplementationConfig, TimeoutConfig, DaemonConfig, TDDConfig, WorktreeConfig, LogConfig, RetryConfig } from '../types/index.js';
2
2
  /**
3
3
  * Default timeout configuration
4
4
  */
@@ -23,6 +23,10 @@ export declare const DEFAULT_IMPLEMENTATION_CONFIG: ImplementationConfig;
23
23
  * Default logging configuration
24
24
  */
25
25
  export declare const DEFAULT_LOGGING_CONFIG: LogConfig;
26
+ /**
27
+ * Default retry configuration
28
+ */
29
+ export declare const DEFAULT_RETRY_CONFIG: RetryConfig;
26
30
  export declare const DEFAULT_CONFIG: Config;
27
31
  /**
28
32
  * Get the SDLC root folder path
@@ -65,6 +69,10 @@ export declare function validateReviewConfig(reviewConfig: ReviewConfig): Review
65
69
  * Update review configuration
66
70
  */
67
71
  export declare function updateReviewConfig(reviewConfig: Partial<ReviewConfig>, workingDir?: string): Config;
72
+ /**
73
+ * Validate retry configuration
74
+ */
75
+ export declare function validateRetryConfig(retryConfig: RetryConfig): RetryConfig;
68
76
  /**
69
77
  * Validate implementation configuration
70
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAIrL;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAI9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAGrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,oBAG3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAKpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAyC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAOtE;AAiMD;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAsIrE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAsB,GAAG,IAAI,CAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,EAC/B,UAAU,GAAE,MAAsB,GACjC,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,eAAe,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAQrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC3C,UAAU,GAAE,MAAsB,GACjC,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAGrF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CA8B7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,EACnC,UAAU,GAAE,MAAsB,GACjC,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,CA8B7G;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACnD,UAAU,GAAE,MAAsB,GACjC,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAYtF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAOrF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIlM;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAI9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAGrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,oBAG3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAKpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAKlC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MA6C5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAOtE;AAuQD;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CA+IrE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAsB,GAAG,IAAI,CAGnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,EAC/B,UAAU,GAAE,MAAsB,GACjC,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,eAAe,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAQrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC3C,UAAU,GAAE,MAAsB,GACjC,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAGrF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CA8B7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,EACnC,UAAU,GAAE,MAAsB,GACjC,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CA4BzE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,CA8B7G;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACnD,UAAU,GAAE,MAAsB,GACjC,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAYtF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAOrF"}
@@ -54,6 +54,15 @@ export const DEFAULT_LOGGING_CONFIG = {
54
54
  maxFileSizeMb: 10,
55
55
  maxFiles: 5,
56
56
  };
57
+ /**
58
+ * Default retry configuration
59
+ */
60
+ export const DEFAULT_RETRY_CONFIG = {
61
+ maxRetries: 3,
62
+ initialDelay: 2000,
63
+ maxDelay: 32000,
64
+ maxTotalDuration: 60000,
65
+ };
57
66
  export const DEFAULT_CONFIG = {
58
67
  sdlcFolder: '.ai-sdlc',
59
68
  stageGates: {
@@ -74,9 +83,11 @@ export const DEFAULT_CONFIG = {
74
83
  autoCompleteOnApproval: true,
75
84
  autoRestartOnRejection: true,
76
85
  detectTestAntipatterns: true,
86
+ autoCreatePROnApproval: false, // Set to true in automated mode at runtime
77
87
  },
78
88
  implementation: { ...DEFAULT_IMPLEMENTATION_CONFIG },
79
89
  defaultLabels: [],
90
+ groupings: undefined, // Use DEFAULT_GROUPINGS at runtime if not specified
80
91
  theme: 'auto',
81
92
  // Test and build commands - auto-detected from package.json if present
82
93
  testCommand: 'npm test',
@@ -85,6 +96,8 @@ export const DEFAULT_CONFIG = {
85
96
  settingSources: ['project'],
86
97
  // Timeout configuration
87
98
  timeouts: { ...DEFAULT_TIMEOUTS },
99
+ // Retry configuration
100
+ retry: { ...DEFAULT_RETRY_CONFIG },
88
101
  // Daemon configuration
89
102
  daemon: { ...DEFAULT_DAEMON_CONFIG },
90
103
  // TDD configuration
@@ -140,6 +153,54 @@ function validateCommand(command, fieldName) {
140
153
  }
141
154
  return true;
142
155
  }
156
+ /**
157
+ * Validate groupings configuration
158
+ */
159
+ function validateGroupingsConfig(groupings) {
160
+ if (!Array.isArray(groupings)) {
161
+ console.warn('Invalid groupings in config (must be array), ignoring');
162
+ return false;
163
+ }
164
+ const validDimensions = ['thematic', 'temporal', 'structural'];
165
+ const validCardinalities = ['single', 'many'];
166
+ for (const grouping of groupings) {
167
+ if (typeof grouping !== 'object' || grouping === null) {
168
+ console.warn('Invalid grouping entry in config (must be object), ignoring groupings');
169
+ return false;
170
+ }
171
+ // Validate dimension
172
+ if (!validDimensions.includes(grouping.dimension)) {
173
+ console.warn(`Invalid grouping dimension "${grouping.dimension}". Valid values: ${validDimensions.join(', ')}`);
174
+ return false;
175
+ }
176
+ // Validate prefix
177
+ if (typeof grouping.prefix !== 'string' || grouping.prefix === '') {
178
+ console.warn('Invalid grouping prefix (must be non-empty string)');
179
+ return false;
180
+ }
181
+ // Validate cardinality
182
+ if (!validCardinalities.includes(grouping.cardinality)) {
183
+ console.warn(`Invalid grouping cardinality "${grouping.cardinality}". Valid values: ${validCardinalities.join(', ')}`);
184
+ return false;
185
+ }
186
+ // externalMapping is optional, but if present, validate structure
187
+ if (grouping.externalMapping !== undefined) {
188
+ if (typeof grouping.externalMapping !== 'object' || grouping.externalMapping === null) {
189
+ console.warn('Invalid externalMapping (must be object), ignoring');
190
+ return false;
191
+ }
192
+ if (typeof grouping.externalMapping.system !== 'string') {
193
+ console.warn('Invalid externalMapping.system (must be string)');
194
+ return false;
195
+ }
196
+ if (typeof grouping.externalMapping.field !== 'string') {
197
+ console.warn('Invalid externalMapping.field (must be string)');
198
+ return false;
199
+ }
200
+ }
201
+ }
202
+ return true;
203
+ }
143
204
  /**
144
205
  * Validate and sanitize user configuration to prevent prototype pollution
145
206
  */
@@ -274,6 +335,13 @@ function sanitizeUserConfig(userConfig) {
274
335
  }
275
336
  }
276
337
  }
338
+ // Validate groupings configuration if present
339
+ if (userConfig.groupings !== undefined) {
340
+ if (!validateGroupingsConfig(userConfig.groupings)) {
341
+ console.warn('Invalid groupings configuration, using defaults');
342
+ delete userConfig.groupings;
343
+ }
344
+ }
277
345
  return userConfig;
278
346
  }
279
347
  /**
@@ -313,6 +381,10 @@ export function loadConfig(workingDir = process.cwd()) {
313
381
  ...DEFAULT_TIMEOUTS,
314
382
  ...userConfig.timeouts,
315
383
  },
384
+ retry: {
385
+ ...DEFAULT_RETRY_CONFIG,
386
+ ...userConfig.retry,
387
+ },
316
388
  daemon: {
317
389
  ...DEFAULT_DAEMON_CONFIG,
318
390
  ...userConfig.daemon,
@@ -402,6 +474,10 @@ export function loadConfig(workingDir = process.cwd()) {
402
474
  config.reviewConfig = validateReviewConfig(config.reviewConfig);
403
475
  // Validate implementation config
404
476
  config.implementation = validateImplementationConfig(config.implementation);
477
+ // Validate retry config
478
+ if (config.retry) {
479
+ config.retry = validateRetryConfig(config.retry);
480
+ }
405
481
  return config;
406
482
  }
407
483
  /**
@@ -499,6 +575,33 @@ export function updateReviewConfig(reviewConfig, workingDir = process.cwd()) {
499
575
  saveConfig(config, workingDir);
500
576
  return config;
501
577
  }
578
+ /**
579
+ * Validate retry configuration
580
+ */
581
+ export function validateRetryConfig(retryConfig) {
582
+ const validated = { ...retryConfig };
583
+ // Validate maxRetries
584
+ if (typeof validated.maxRetries !== 'number' || validated.maxRetries < 0) {
585
+ console.warn('Warning: retry.maxRetries must be non-negative number, using 3');
586
+ validated.maxRetries = 3;
587
+ }
588
+ // Validate initialDelay
589
+ if (typeof validated.initialDelay !== 'number' || validated.initialDelay < 0) {
590
+ console.warn('Warning: retry.initialDelay must be non-negative number, using 2000');
591
+ validated.initialDelay = 2000;
592
+ }
593
+ // Validate maxDelay
594
+ if (typeof validated.maxDelay !== 'number' || validated.maxDelay < validated.initialDelay) {
595
+ console.warn('Warning: retry.maxDelay must be >= initialDelay, using 32000');
596
+ validated.maxDelay = 32000;
597
+ }
598
+ // Validate maxTotalDuration
599
+ if (typeof validated.maxTotalDuration !== 'number' || validated.maxTotalDuration < 0) {
600
+ console.warn('Warning: retry.maxTotalDuration must be non-negative number, using 60000');
601
+ validated.maxTotalDuration = 60000;
602
+ }
603
+ return validated;
604
+ }
502
605
  /**
503
606
  * Validate implementation configuration
504
607
  */