prism-pr 1.0.0-alpha.74 → 1.0.0-alpha.76

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 (197) hide show
  1. package/dist/ai/orchestrator/orchestrator.d.ts +19 -1
  2. package/dist/ai/orchestrator/orchestrator.d.ts.map +1 -1
  3. package/dist/ai/orchestrator/orchestrator.js +70 -3
  4. package/dist/ai/orchestrator/orchestrator.js.map +1 -1
  5. package/dist/ai/providers/openai-provider.d.ts +3 -0
  6. package/dist/ai/providers/openai-provider.d.ts.map +1 -1
  7. package/dist/ai/providers/openai-provider.js +78 -7
  8. package/dist/ai/providers/openai-provider.js.map +1 -1
  9. package/dist/bitbucket/client.d.ts +12 -0
  10. package/dist/bitbucket/client.d.ts.map +1 -1
  11. package/dist/bitbucket/client.js +43 -20
  12. package/dist/bitbucket/client.js.map +1 -1
  13. package/dist/commands/interactive.d.ts.map +1 -1
  14. package/dist/commands/interactive.js +14 -8
  15. package/dist/commands/interactive.js.map +1 -1
  16. package/dist/commands/review/clean.d.ts +37 -0
  17. package/dist/commands/review/clean.d.ts.map +1 -0
  18. package/dist/commands/review/clean.js +201 -0
  19. package/dist/commands/review/clean.js.map +1 -0
  20. package/dist/commands/review/start.d.ts.map +1 -1
  21. package/dist/commands/review/start.js +6 -2
  22. package/dist/commands/review/start.js.map +1 -1
  23. package/dist/core/clean-re-review-service.d.ts +45 -0
  24. package/dist/core/clean-re-review-service.d.ts.map +1 -0
  25. package/dist/core/clean-re-review-service.js +128 -0
  26. package/dist/core/clean-re-review-service.js.map +1 -0
  27. package/dist/core/cli-workflow-callbacks.d.ts +1 -0
  28. package/dist/core/cli-workflow-callbacks.d.ts.map +1 -1
  29. package/dist/core/cli-workflow-callbacks.js +3 -0
  30. package/dist/core/cli-workflow-callbacks.js.map +1 -1
  31. package/dist/core/comment-publisher.d.ts +8 -0
  32. package/dist/core/comment-publisher.d.ts.map +1 -1
  33. package/dist/core/comment-publisher.js +45 -1
  34. package/dist/core/comment-publisher.js.map +1 -1
  35. package/dist/core/interactive-deps.d.ts +51 -0
  36. package/dist/core/interactive-deps.d.ts.map +1 -0
  37. package/dist/core/interactive-deps.js +30 -0
  38. package/dist/core/interactive-deps.js.map +1 -0
  39. package/dist/core/session-manager.d.ts +37 -0
  40. package/dist/core/session-manager.d.ts.map +1 -1
  41. package/dist/core/session-manager.js +80 -0
  42. package/dist/core/session-manager.js.map +1 -1
  43. package/dist/core/session-publish-retry.d.ts +47 -0
  44. package/dist/core/session-publish-retry.d.ts.map +1 -0
  45. package/dist/core/session-publish-retry.js +146 -0
  46. package/dist/core/session-publish-retry.js.map +1 -0
  47. package/dist/core/workflow-callbacks.d.ts +2 -0
  48. package/dist/core/workflow-callbacks.d.ts.map +1 -1
  49. package/dist/core/workflow-engine.d.ts +2 -0
  50. package/dist/core/workflow-engine.d.ts.map +1 -1
  51. package/dist/core/workflow-engine.js +49 -14
  52. package/dist/core/workflow-engine.js.map +1 -1
  53. package/dist/persistence/migrations/0007_session_data_integrity.sql +1 -0
  54. package/dist/persistence/migrations/0008_review_errors.sql +21 -0
  55. package/dist/persistence/migrations/0009_clean_rereview.sql +1 -0
  56. package/dist/persistence/migrations/meta/_journal.json +21 -0
  57. package/dist/persistence/repository.d.ts +24 -1
  58. package/dist/persistence/repository.d.ts.map +1 -1
  59. package/dist/persistence/repository.js +87 -2
  60. package/dist/persistence/repository.js.map +1 -1
  61. package/dist/persistence/review-error-repository.d.ts +19 -0
  62. package/dist/persistence/review-error-repository.d.ts.map +1 -0
  63. package/dist/persistence/review-error-repository.js +90 -0
  64. package/dist/persistence/review-error-repository.js.map +1 -0
  65. package/dist/persistence/schema.d.ts +279 -0
  66. package/dist/persistence/schema.d.ts.map +1 -1
  67. package/dist/persistence/schema.js +22 -0
  68. package/dist/persistence/schema.js.map +1 -1
  69. package/dist/rules-engine/finding-aggregator.js +1 -1
  70. package/dist/rules-engine/finding-aggregator.js.map +1 -1
  71. package/dist/tui/callbacks/tui-workflow-callbacks.d.ts +1 -0
  72. package/dist/tui/callbacks/tui-workflow-callbacks.d.ts.map +1 -1
  73. package/dist/tui/callbacks/tui-workflow-callbacks.js +3 -0
  74. package/dist/tui/callbacks/tui-workflow-callbacks.js.map +1 -1
  75. package/dist/tui/components/scroll-list.d.ts +7 -1
  76. package/dist/tui/components/scroll-list.d.ts.map +1 -1
  77. package/dist/tui/components/scroll-list.js +23 -10
  78. package/dist/tui/components/scroll-list.js.map +1 -1
  79. package/dist/tui/deps-context.d.ts +2 -0
  80. package/dist/tui/deps-context.d.ts.map +1 -1
  81. package/dist/tui/deps-context.js.map +1 -1
  82. package/dist/tui/hooks/use-session-retry.d.ts +31 -0
  83. package/dist/tui/hooks/use-session-retry.d.ts.map +1 -0
  84. package/dist/tui/hooks/use-session-retry.js +80 -0
  85. package/dist/tui/hooks/use-session-retry.js.map +1 -0
  86. package/dist/tui/hooks/use-session.d.ts +2 -0
  87. package/dist/tui/hooks/use-session.d.ts.map +1 -1
  88. package/dist/tui/hooks/use-sessions.d.ts +31 -0
  89. package/dist/tui/hooks/use-sessions.d.ts.map +1 -0
  90. package/dist/tui/hooks/use-sessions.js +60 -0
  91. package/dist/tui/hooks/use-sessions.js.map +1 -0
  92. package/dist/tui/screen-router.d.ts.map +1 -1
  93. package/dist/tui/screen-router.js +45 -2
  94. package/dist/tui/screen-router.js.map +1 -1
  95. package/dist/tui/screens/agent-select.d.ts.map +1 -1
  96. package/dist/tui/screens/agent-select.js +5 -2
  97. package/dist/tui/screens/agent-select.js.map +1 -1
  98. package/dist/tui/screens/clean-rereview-confirm.d.ts +3 -0
  99. package/dist/tui/screens/clean-rereview-confirm.d.ts.map +1 -0
  100. package/dist/tui/screens/clean-rereview-confirm.js +54 -0
  101. package/dist/tui/screens/clean-rereview-confirm.js.map +1 -0
  102. package/dist/tui/screens/clean-rereview-running.d.ts +3 -0
  103. package/dist/tui/screens/clean-rereview-running.d.ts.map +1 -0
  104. package/dist/tui/screens/clean-rereview-running.js +77 -0
  105. package/dist/tui/screens/clean-rereview-running.js.map +1 -0
  106. package/dist/tui/screens/home.d.ts.map +1 -1
  107. package/dist/tui/screens/home.js +10 -2
  108. package/dist/tui/screens/home.js.map +1 -1
  109. package/dist/tui/screens/pr-list.d.ts.map +1 -1
  110. package/dist/tui/screens/pr-list.js +7 -1
  111. package/dist/tui/screens/pr-list.js.map +1 -1
  112. package/dist/tui/screens/repo-select.js +1 -1
  113. package/dist/tui/screens/repo-select.js.map +1 -1
  114. package/dist/tui/screens/review-errors.d.ts +3 -0
  115. package/dist/tui/screens/review-errors.d.ts.map +1 -0
  116. package/dist/tui/screens/review-errors.js +95 -0
  117. package/dist/tui/screens/review-errors.js.map +1 -0
  118. package/dist/tui/screens/review-running.d.ts.map +1 -1
  119. package/dist/tui/screens/review-running.js +16 -4
  120. package/dist/tui/screens/review-running.js.map +1 -1
  121. package/dist/tui/screens/session-detail.d.ts +3 -1
  122. package/dist/tui/screens/session-detail.d.ts.map +1 -1
  123. package/dist/tui/screens/session-detail.js +16 -3
  124. package/dist/tui/screens/session-detail.js.map +1 -1
  125. package/dist/tui/screens/session-list.js +1 -1
  126. package/dist/tui/screens/session-list.js.map +1 -1
  127. package/dist/tui/screens/session-publish-confirm.d.ts +9 -0
  128. package/dist/tui/screens/session-publish-confirm.d.ts.map +1 -0
  129. package/dist/tui/screens/session-publish-confirm.js +44 -0
  130. package/dist/tui/screens/session-publish-confirm.js.map +1 -0
  131. package/dist/tui/screens/session-publishing.d.ts +7 -0
  132. package/dist/tui/screens/session-publishing.d.ts.map +1 -0
  133. package/dist/tui/screens/session-publishing.js +48 -0
  134. package/dist/tui/screens/session-publishing.js.map +1 -0
  135. package/dist/tui/screens/unified-settings/agent-model-picker.d.ts +28 -0
  136. package/dist/tui/screens/unified-settings/agent-model-picker.d.ts.map +1 -0
  137. package/dist/tui/screens/unified-settings/agent-model-picker.js +18 -0
  138. package/dist/tui/screens/unified-settings/agent-model-picker.js.map +1 -0
  139. package/dist/tui/screens/unified-settings/constants.d.ts +1 -1
  140. package/dist/tui/screens/unified-settings/constants.d.ts.map +1 -1
  141. package/dist/tui/screens/unified-settings/constants.js +19 -6
  142. package/dist/tui/screens/unified-settings/constants.js.map +1 -1
  143. package/dist/tui/screens/unified-settings/cross-provider-banner.d.ts +27 -0
  144. package/dist/tui/screens/unified-settings/cross-provider-banner.d.ts.map +1 -0
  145. package/dist/tui/screens/unified-settings/cross-provider-banner.js +14 -0
  146. package/dist/tui/screens/unified-settings/cross-provider-banner.js.map +1 -0
  147. package/dist/tui/screens/unified-settings/cycler-helpers.d.ts +23 -0
  148. package/dist/tui/screens/unified-settings/cycler-helpers.d.ts.map +1 -0
  149. package/dist/tui/screens/unified-settings/cycler-helpers.js +30 -0
  150. package/dist/tui/screens/unified-settings/cycler-helpers.js.map +1 -0
  151. package/dist/tui/screens/unified-settings/provider-confirmation-prompt.d.ts +24 -0
  152. package/dist/tui/screens/unified-settings/provider-confirmation-prompt.d.ts.map +1 -0
  153. package/dist/tui/screens/unified-settings/provider-confirmation-prompt.js +6 -0
  154. package/dist/tui/screens/unified-settings/provider-confirmation-prompt.js.map +1 -0
  155. package/dist/tui/screens/unified-settings/state.d.ts +57 -2
  156. package/dist/tui/screens/unified-settings/state.d.ts.map +1 -1
  157. package/dist/tui/screens/unified-settings/state.js +182 -23
  158. package/dist/tui/screens/unified-settings/state.js.map +1 -1
  159. package/dist/tui/screens/unified-settings/tab-bar.d.ts +10 -2
  160. package/dist/tui/screens/unified-settings/tab-bar.d.ts.map +1 -1
  161. package/dist/tui/screens/unified-settings/tab-bar.js +7 -7
  162. package/dist/tui/screens/unified-settings/tab-bar.js.map +1 -1
  163. package/dist/tui/screens/unified-settings/tab-models-agents.d.ts +27 -0
  164. package/dist/tui/screens/unified-settings/tab-models-agents.d.ts.map +1 -0
  165. package/dist/tui/screens/unified-settings/tab-models-agents.js +55 -0
  166. package/dist/tui/screens/unified-settings/tab-models-agents.js.map +1 -0
  167. package/dist/tui/screens/unified-settings.d.ts +8 -1
  168. package/dist/tui/screens/unified-settings.d.ts.map +1 -1
  169. package/dist/tui/screens/unified-settings.js +100 -45
  170. package/dist/tui/screens/unified-settings.js.map +1 -1
  171. package/dist/tui/state/router-reducer.d.ts +1 -1
  172. package/dist/tui/state/router-reducer.d.ts.map +1 -1
  173. package/dist/tui/state/router-reducer.js.map +1 -1
  174. package/dist/tui/state/tui-reducer.d.ts +8 -1
  175. package/dist/tui/state/tui-reducer.d.ts.map +1 -1
  176. package/dist/tui/state/tui-reducer.js +6 -0
  177. package/dist/tui/state/tui-reducer.js.map +1 -1
  178. package/dist/types/review-error.d.ts +20 -0
  179. package/dist/types/review-error.d.ts.map +1 -0
  180. package/dist/types/review-error.js +2 -0
  181. package/dist/types/review-error.js.map +1 -0
  182. package/dist/types/review-finding.d.ts +1 -1
  183. package/dist/types/review-finding.d.ts.map +1 -1
  184. package/dist/types/review-finding.js +2 -0
  185. package/dist/types/review-finding.js.map +1 -1
  186. package/dist/types/review-session.d.ts +1 -0
  187. package/dist/types/review-session.d.ts.map +1 -1
  188. package/dist/utils/session-row-mapper.d.ts +34 -0
  189. package/dist/utils/session-row-mapper.d.ts.map +1 -0
  190. package/dist/utils/session-row-mapper.js +80 -0
  191. package/dist/utils/session-row-mapper.js.map +1 -0
  192. package/dist/utils/summary-generator.d.ts +3 -1
  193. package/dist/utils/summary-generator.d.ts.map +1 -1
  194. package/dist/utils/summary-generator.js +8 -2
  195. package/dist/utils/summary-generator.js.map +1 -1
  196. package/oclif.manifest.json +93 -1
  197. package/package.json +1 -1
@@ -7,6 +7,7 @@ import type { ContentMode } from '../../types/agent.js';
7
7
  import type { ReviewStrategy } from './strategy.js';
8
8
  import type { StackProfile } from '../../stack-detector/types.js';
9
9
  import type { FileReviewCacheRepository } from '../../persistence/file-review-cache-repository.js';
10
+ import type { ReviewErrorRepository } from '../../persistence/review-error-repository.js';
10
11
  export interface OrchestratorInput {
11
12
  files: DiffFile[];
12
13
  prMetadata: PRMetadata;
@@ -32,6 +33,13 @@ export interface AgentRunResult {
32
33
  status: 'success' | 'failed';
33
34
  error?: string;
34
35
  usage: TokenUsage;
36
+ /** Number of per-file failures for this agent (file-by-file mode). */
37
+ errorCount?: number;
38
+ /** Details of per-file failures (file-by-file mode). */
39
+ fileErrors?: Array<{
40
+ filePath: string;
41
+ message: string;
42
+ }>;
35
43
  }
36
44
  export interface OrchestratorResult {
37
45
  findings: ReviewFinding[];
@@ -39,6 +47,10 @@ export interface OrchestratorResult {
39
47
  agentResults: AgentRunResult[];
40
48
  totalUsage: TokenUsage;
41
49
  skippedFilesCount: number;
50
+ /** True when at least one agent or file-level error occurred during the review. */
51
+ hadErrors: boolean;
52
+ /** Total count of agent/file-level errors across all agents. */
53
+ errorCount: number;
42
54
  }
43
55
  export type AgentStatus = 'pending' | 'running' | 'complete' | 'failed' | 'skipped';
44
56
  export interface AgentProgressEvent {
@@ -69,12 +81,18 @@ export interface OrchestratorOptions {
69
81
  sessionId?: string;
70
82
  /** When true, skip cache lookup and force re-review of every file. */
71
83
  forceReview?: boolean;
84
+ /** PR context — threaded into agent-error records so persisted errors carry real workspace/repo/prId. */
85
+ workspace?: string;
86
+ repo?: string;
87
+ prId?: number;
72
88
  }
73
89
  export declare class ReviewOrchestrator {
74
90
  private readonly logger;
75
91
  private readonly cacheRepo?;
76
92
  private readonly strategy?;
77
- constructor(logger: Logger, cacheRepo?: FileReviewCacheRepository | undefined, strategy?: ReviewStrategy | undefined);
93
+ private readonly reviewErrors?;
94
+ constructor(logger: Logger, cacheRepo?: FileReviewCacheRepository | undefined, strategy?: ReviewStrategy | undefined, reviewErrors?: ReviewErrorRepository | undefined);
95
+ private recordAgentError;
78
96
  run(input: OrchestratorInput, provider: ModelProvider, options?: OrchestratorOptions): Promise<OrchestratorResult>;
79
97
  }
80
98
  //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AAGnG,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,mBAAmB,EAAE,YAAY,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oFAAoF;IACpF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC3C,0EAA0E;IAC1E,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,uGAAuG;IACvG,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAWD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAOD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAFT,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,yBAAyB,YAAA,EACrC,QAAQ,CAAC,EAAE,cAAc,YAAA;IAGtC,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA8dzH"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { Semaphore } from './semaphore.js';
9
9
  import { SlotRegistry } from './slot-registry.js';
10
10
  import { buildSingleFileContent } from '../agents/shared/content-builder.js';
11
11
  import { computeFileHash } from '../../utils/hash.js';
12
+ import { ProviderResponseError } from '../providers/errors.js';
12
13
  // Severity sort order — lower index = higher priority
13
14
  const SEVERITY_ORDER = {
14
15
  critical: 0,
@@ -25,20 +26,53 @@ function safeEmit(cb, event) {
25
26
  }
26
27
  catch { /* UI bugs must never crash the review */ }
27
28
  }
29
+ /** Pull the provider response body out of a ProviderResponseError so it lands in the error's detail column. */
30
+ function extractErrorDetail(err) {
31
+ return err instanceof ProviderResponseError ? err.rawContent : undefined;
32
+ }
28
33
  export class ReviewOrchestrator {
29
34
  logger;
30
35
  cacheRepo;
31
36
  strategy;
32
- constructor(logger, cacheRepo, strategy) {
37
+ reviewErrors;
38
+ constructor(logger, cacheRepo, strategy, reviewErrors) {
33
39
  this.logger = logger;
34
40
  this.cacheRepo = cacheRepo;
35
41
  this.strategy = strategy;
42
+ this.reviewErrors = reviewErrors;
43
+ }
44
+ // ── Non-fatal error capture helper ───────────────────────────────────────────
45
+ recordAgentError(agentId, message, context, filePath, detail) {
46
+ try {
47
+ this.reviewErrors?.record({
48
+ source: 'agent',
49
+ severity: 'error',
50
+ agentId,
51
+ workspace: context.workspace,
52
+ repo: context.repo,
53
+ prId: context.prId,
54
+ message,
55
+ ...(context.sessionId !== undefined ? { sessionId: context.sessionId } : {}),
56
+ ...(filePath !== undefined ? { filePath } : {}),
57
+ ...(detail !== undefined ? { detail } : {}),
58
+ ...(filePath !== undefined ? { category: 'file-execution' } : { category: 'agent-execution' }),
59
+ });
60
+ }
61
+ catch (err) {
62
+ this.logger.warn(`[review-errors] capture failed: ${err instanceof Error ? err.message : String(err)}`);
63
+ }
36
64
  }
37
65
  async run(input, provider, options) {
38
66
  const repoConfig = options?.repoConfig;
39
67
  const onProgress = options?.onAgentProgress;
40
68
  const sessionId = options?.sessionId ?? '';
41
69
  const forceReview = options?.forceReview ?? false;
70
+ const prContext = {
71
+ workspace: options?.workspace ?? '',
72
+ repo: options?.repo ?? '',
73
+ prId: options?.prId ?? 0,
74
+ ...(sessionId !== '' ? { sessionId } : {}),
75
+ };
42
76
  // Use provided strategy or create a default RuleBasedStrategy
43
77
  const activeStrategy = this.strategy ?? new RuleBasedStrategy();
44
78
  // Build the agent execution plan
@@ -160,6 +194,7 @@ export class ReviewOrchestrator {
160
194
  catch (err) {
161
195
  const message = err instanceof Error ? err.message : String(err);
162
196
  this.logger.warn(`⚠ Agent ${spec.agentId} failed: ${message} — skipping`);
197
+ this.recordAgentError(spec.agentId, message, prContext, undefined, extractErrorDetail(err));
163
198
  return { agentId: spec.agentId, status: 'failed', error: message };
164
199
  }
165
200
  }
@@ -301,6 +336,7 @@ export class ReviewOrchestrator {
301
336
  catch (err) {
302
337
  const message = err instanceof Error ? err.message : String(err);
303
338
  this.logger.warn(`⚠ Agent ${item.agentId} failed on ${item.file.newPath}: ${message} — skipping file`);
339
+ this.recordAgentError(item.agentId, message, prContext, item.file.newPath, extractErrorDetail(err));
304
340
  safeEmit(onProgress, {
305
341
  agentId: item.agentId,
306
342
  status: 'failed',
@@ -326,15 +362,20 @@ export class ReviewOrchestrator {
326
362
  list.push(r);
327
363
  agentFileResults.set(r.agentId, list);
328
364
  }
329
- // Build AgentExecResult for each file-by-file agent
330
365
  const fileByFileResults = [];
331
366
  for (const [agentId, results] of agentFileResults) {
332
367
  const findings = results.flatMap((r) => r.findings);
333
368
  const usage = { inputTokens: 0, outputTokens: 0 };
334
369
  let skippedCount = 0;
370
+ let fileErrorCount = 0;
371
+ const fileErrors = [];
335
372
  for (const r of results) {
336
373
  if (r.status === 'skipped')
337
374
  skippedCount++;
375
+ if (r.status === 'failed') {
376
+ fileErrorCount++;
377
+ fileErrors.push({ filePath: r.filePath, message: 'file review failed' });
378
+ }
338
379
  usage.inputTokens += r.usage.inputTokens;
339
380
  usage.outputTokens += r.usage.outputTokens;
340
381
  if (r.usage.cacheReadTokens)
@@ -352,19 +393,21 @@ export class ReviewOrchestrator {
352
393
  findingsCount: findings.length,
353
394
  skippedFilesCount: skippedCount,
354
395
  });
355
- fileByFileResults.push({ agentId, status: 'success', findings, usage, skippedCount });
396
+ fileByFileResults.push({ agentId, status: 'success', findings, usage, skippedCount, errorCount: fileErrorCount, fileErrors });
356
397
  }
357
398
  const execResults = [...batchResults, ...fileByFileResults];
358
399
  // Collect findings and results from all settled agent runs
359
400
  const agentResults = [];
360
401
  const allFindings = [];
361
402
  let totalSkippedFilesCount = 0;
403
+ let totalErrorCount = 0;
362
404
  for (const value of execResults) {
363
405
  if (value.status === 'not-found') {
364
406
  // Already warned above; skip
365
407
  continue;
366
408
  }
367
409
  if (value.status === 'failed') {
410
+ totalErrorCount++;
368
411
  agentResults.push({
369
412
  agentId: value.agentId,
370
413
  status: 'failed',
@@ -373,6 +416,28 @@ export class ReviewOrchestrator {
373
416
  });
374
417
  continue;
375
418
  }
419
+ // File-by-file results may have per-file errors even on 'success' status
420
+ if ('errorCount' in value) {
421
+ totalErrorCount += value.errorCount;
422
+ const fbf = value;
423
+ allFindings.push(...fbf.findings);
424
+ agentResults.push({
425
+ agentId: fbf.agentId,
426
+ status: 'success',
427
+ usage: fbf.usage,
428
+ ...(fbf.errorCount > 0 ? { errorCount: fbf.errorCount, fileErrors: fbf.fileErrors } : {}),
429
+ });
430
+ totalSkippedFilesCount += fbf.skippedCount;
431
+ totalUsage.inputTokens += fbf.usage.inputTokens;
432
+ totalUsage.outputTokens += fbf.usage.outputTokens;
433
+ if (fbf.usage.cacheReadTokens) {
434
+ totalUsage.cacheReadTokens = (totalUsage.cacheReadTokens ?? 0) + fbf.usage.cacheReadTokens;
435
+ }
436
+ if (fbf.usage.cacheWriteTokens) {
437
+ totalUsage.cacheWriteTokens = (totalUsage.cacheWriteTokens ?? 0) + fbf.usage.cacheWriteTokens;
438
+ }
439
+ continue;
440
+ }
376
441
  allFindings.push(...value.findings);
377
442
  agentResults.push({
378
443
  agentId: value.agentId,
@@ -415,6 +480,8 @@ export class ReviewOrchestrator {
415
480
  agentResults,
416
481
  totalUsage,
417
482
  skippedFilesCount: totalSkippedFilesCount,
483
+ hadErrors: totalErrorCount > 0,
484
+ errorCount: totalErrorCount,
418
485
  };
419
486
  }
420
487
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ export declare class OpenAIProvider implements ModelProvider {
9
9
  maxTokens?: number;
10
10
  });
11
11
  analyze(params: AnalyzeParams): Promise<AnalyzeResult>;
12
+ private analyzeViaChatCompletions;
13
+ private analyzeViaResponses;
14
+ private parseToolArgs;
12
15
  estimateCost(usage: TokenUsage): CostEstimate;
13
16
  private throwProviderError;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA+BlH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IASpE,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA8D5D,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY;YAY/B,kBAAkB;CAoBjC"}
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiElH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IASpE,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAS9C,yBAAyB;YAyDzB,mBAAmB;IA4DjC,OAAO,CAAC,aAAa;IAQrB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY;YAY/B,kBAAkB;CAoBjC"}
@@ -3,6 +3,23 @@ import { ProviderAuthError, ProviderRateLimitError, ProviderServerError, Provide
3
3
  const DEFAULT_MODEL = 'gpt-4.1-nano';
4
4
  const DEFAULT_MAX_TOKENS = 4096;
5
5
  const OPENAI_CHAT_COMPLETIONS_URL = 'https://api.openai.com/v1/chat/completions';
6
+ const OPENAI_RESPONSES_URL = 'https://api.openai.com/v1/responses';
7
+ /**
8
+ * Reasoning/codex models spend tokens on internal reasoning that count against
9
+ * max_output_tokens. A 4096 budget gets consumed by reasoning before any findings
10
+ * are emitted, yielding status:"incomplete" (reason max_output_tokens) and no
11
+ * function call. Floor the Responses budget so the model has room to both reason
12
+ * and produce the tool call.
13
+ */
14
+ const RESPONSES_MIN_OUTPUT_TOKENS = 16000;
15
+ /**
16
+ * The codex family (gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5.1-codex-max, …) is
17
+ * served ONLY by the Responses API. Posting these to /v1/chat/completions returns
18
+ * a 404 ("This model is only supported in v1/responses and not in v1/chat/completions").
19
+ */
20
+ function usesResponsesApi(model) {
21
+ return model.toLowerCase().includes('codex');
22
+ }
6
23
  // Conservative defaults for modern OpenAI small-tier models (USD/token).
7
24
  const PRICING = {
8
25
  inputPerToken: 0.25 / 1_000_000,
@@ -23,6 +40,11 @@ export class OpenAIProvider {
23
40
  async analyze(params) {
24
41
  const model = params.model ?? this.model;
25
42
  const maxTokens = params.maxTokens ?? this.maxTokens;
43
+ return usesResponsesApi(model)
44
+ ? this.analyzeViaResponses(params, model, maxTokens)
45
+ : this.analyzeViaChatCompletions(params, model, maxTokens);
46
+ }
47
+ async analyzeViaChatCompletions(params, model, maxTokens) {
26
48
  const response = await fetch(OPENAI_CHAT_COMPLETIONS_URL, {
27
49
  method: 'POST',
28
50
  headers: {
@@ -59,13 +81,7 @@ export class OpenAIProvider {
59
81
  if (!toolArgs) {
60
82
  throw new ProviderResponseError('No function tool call found in OpenAI response', raw);
61
83
  }
62
- let parsed;
63
- try {
64
- parsed = JSON.parse(toolArgs);
65
- }
66
- catch {
67
- throw new ProviderResponseError('Failed to parse OpenAI tool call arguments as JSON', toolArgs);
68
- }
84
+ const parsed = this.parseToolArgs(toolArgs);
69
85
  const usage = {
70
86
  inputTokens: json.usage?.prompt_tokens ?? 0,
71
87
  outputTokens: json.usage?.completion_tokens ?? 0,
@@ -75,6 +91,61 @@ export class OpenAIProvider {
75
91
  usage,
76
92
  };
77
93
  }
94
+ async analyzeViaResponses(params, model, maxTokens) {
95
+ const response = await fetch(OPENAI_RESPONSES_URL, {
96
+ method: 'POST',
97
+ headers: {
98
+ 'content-type': 'application/json',
99
+ authorization: `Bearer ${this.apiKey}`,
100
+ },
101
+ body: JSON.stringify({
102
+ model,
103
+ instructions: params.systemPrompt,
104
+ input: [{ role: 'user', content: params.userContent }],
105
+ max_output_tokens: Math.max(maxTokens, RESPONSES_MIN_OUTPUT_TOKENS),
106
+ tools: [
107
+ {
108
+ type: 'function',
109
+ name: params.toolName,
110
+ description: `Report code review findings using the ${params.toolName} tool`,
111
+ parameters: params.toolSchema,
112
+ strict: false,
113
+ },
114
+ ],
115
+ tool_choice: 'required',
116
+ }),
117
+ });
118
+ if (!response.ok) {
119
+ await this.throwProviderError(response);
120
+ }
121
+ const json = await response.json();
122
+ const raw = JSON.stringify(json);
123
+ const functionCall = json.output?.find((item) => item.type === 'function_call');
124
+ const toolArgs = functionCall?.arguments;
125
+ if (!toolArgs) {
126
+ if (json.status === 'incomplete' && json.incomplete_details?.reason === 'max_output_tokens') {
127
+ throw new ProviderResponseError(`OpenAI Responses output was truncated: the model hit max_output_tokens (${model} spent the budget on reasoning before emitting findings). Increase maxOutputTokens in the repo config.`, raw);
128
+ }
129
+ throw new ProviderResponseError('No function call found in OpenAI Responses output', raw);
130
+ }
131
+ const parsed = this.parseToolArgs(toolArgs);
132
+ const usage = {
133
+ inputTokens: json.usage?.input_tokens ?? 0,
134
+ outputTokens: json.usage?.output_tokens ?? 0,
135
+ };
136
+ return {
137
+ findings: parsed.findings ?? [],
138
+ usage,
139
+ };
140
+ }
141
+ parseToolArgs(toolArgs) {
142
+ try {
143
+ return JSON.parse(toolArgs);
144
+ }
145
+ catch {
146
+ throw new ProviderResponseError('Failed to parse OpenAI tool call arguments as JSON', toolArgs);
147
+ }
148
+ }
78
149
  estimateCost(usage) {
79
150
  const inputCost = parseFloat((usage.inputTokens * PRICING.inputPerToken).toFixed(6));
80
151
  const outputCost = parseFloat((usage.outputTokens * PRICING.outputPerToken).toFixed(6));
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../src/ai/providers/openai-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../src/ai/providers/openai-provider.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,18 @@ export declare class BitbucketClient {
29
29
  putFileContent(ws: string, repo: string, branch: string, filePath: string, content: string, commitMessage: string): Promise<void>;
30
30
  approvePullRequest(ws: string, repo: string, prId: number): Promise<void>;
31
31
  requestChanges(ws: string, repo: string, prId: number): Promise<void>;
32
+ /**
33
+ * Resolve a PR comment (POST .../comments/{commentId}/resolve).
34
+ * Runs the 429 retry-once loop internally; all other errors propagate to the caller.
35
+ * The service classifies 404/409/410 as idempotent-success.
36
+ */
37
+ resolveComment(ws: string, repo: string, prId: number, commentId: number): Promise<void>;
38
+ /**
39
+ * Unresolve a PR comment (DELETE .../comments/{commentId}/resolve).
40
+ * Mirrors resolveComment — 429 retry-once loop; all other errors propagate.
41
+ * Shipped for symmetry; not wired to any v1 command.
42
+ */
43
+ unresolveComment(ws: string, repo: string, prId: number, commentId: number): Promise<void>;
32
44
  private mapComment;
33
45
  private request;
34
46
  private requestText;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitbucket/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EAEd,MAAM,mBAAmB,CAAC;AA+B3B;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAMxC,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;IAS7C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC3E,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAW5D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsCnE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;IAuCzF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyC1F;;;OAGG;IACG,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAenB,sBAAsB,CAC1B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqBxB,iBAAiB,CACrB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,gBAAgB,CAAC;IAyBtB,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;IA0B5B;;;OAGG;IACG,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAgDV,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAczE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3E,OAAO,CAAC,UAAU;YAqBJ,OAAO;YAuDP,WAAW;IA4CzB,OAAO,CAAC,cAAc;IAwCtB,+CAA+C;cAC/B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitbucket/client.ts"],"names":[],"mappings":"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"}
@@ -196,26 +196,11 @@ export class BitbucketClient {
196
196
  }
197
197
  async postInlineComment(ws, repo, prId, body) {
198
198
  const endpoint = `/2.0/repositories/${ws}/${repo}/pullrequests/${prId}/comments`;
199
- try {
200
- const data = await this.request(endpoint, {
201
- method: 'POST',
202
- body,
203
- });
204
- return this.mapComment(data);
205
- }
206
- catch (err) {
207
- if (err instanceof BitbucketRateLimitError) {
208
- // Retry once after waiting
209
- const waitMs = err.retryAfter * 1000;
210
- await this.sleep(waitMs);
211
- const data = await this.request(endpoint, {
212
- method: 'POST',
213
- body,
214
- });
215
- return this.mapComment(data);
216
- }
217
- throw err;
218
- }
199
+ const data = await this.request(endpoint, {
200
+ method: 'POST',
201
+ body,
202
+ });
203
+ return this.mapComment(data);
219
204
  }
220
205
  async postGeneralComment(ws, repo, prId, markdown) {
221
206
  const endpoint = `/2.0/repositories/${ws}/${repo}/pullrequests/${prId}/comments`;
@@ -322,6 +307,44 @@ export class BitbucketClient {
322
307
  throw err;
323
308
  }
324
309
  }
310
+ /**
311
+ * Resolve a PR comment (POST .../comments/{commentId}/resolve).
312
+ * Runs the 429 retry-once loop internally; all other errors propagate to the caller.
313
+ * The service classifies 404/409/410 as idempotent-success.
314
+ */
315
+ async resolveComment(ws, repo, prId, commentId) {
316
+ const endpoint = `/2.0/repositories/${ws}/${repo}/pullrequests/${prId}/comments/${commentId}/resolve`;
317
+ try {
318
+ await this.request(endpoint, { method: 'POST' });
319
+ }
320
+ catch (err) {
321
+ if (err instanceof BitbucketRateLimitError) {
322
+ await this.sleep(err.retryAfter * 1000);
323
+ await this.request(endpoint, { method: 'POST' }); // 2nd failure propagates
324
+ return;
325
+ }
326
+ throw err;
327
+ }
328
+ }
329
+ /**
330
+ * Unresolve a PR comment (DELETE .../comments/{commentId}/resolve).
331
+ * Mirrors resolveComment — 429 retry-once loop; all other errors propagate.
332
+ * Shipped for symmetry; not wired to any v1 command.
333
+ */
334
+ async unresolveComment(ws, repo, prId, commentId) {
335
+ const endpoint = `/2.0/repositories/${ws}/${repo}/pullrequests/${prId}/comments/${commentId}/resolve`;
336
+ try {
337
+ await this.request(endpoint, { method: 'DELETE' });
338
+ }
339
+ catch (err) {
340
+ if (err instanceof BitbucketRateLimitError) {
341
+ await this.sleep(err.retryAfter * 1000);
342
+ await this.request(endpoint, { method: 'DELETE' }); // 2nd failure propagates
343
+ return;
344
+ }
345
+ throw err;
346
+ }
347
+ }
325
348
  // ── Private helpers ───────────────────────────────────────────────────────
326
349
  mapComment(raw) {
327
350
  const content = raw['content'] ?? {};