zora-agent 0.9.3 → 0.9.5

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 (245) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +103 -92
  3. package/dist/cli/audit-commands.d.ts.map +1 -1
  4. package/dist/cli/audit-commands.js +3 -1
  5. package/dist/cli/audit-commands.js.map +1 -1
  6. package/dist/cli/daemon.js +86 -28
  7. package/dist/cli/daemon.js.map +1 -1
  8. package/dist/cli/edit-commands.d.ts.map +1 -1
  9. package/dist/cli/edit-commands.js +3 -1
  10. package/dist/cli/edit-commands.js.map +1 -1
  11. package/dist/cli/hook-commands.d.ts +9 -0
  12. package/dist/cli/hook-commands.d.ts.map +1 -0
  13. package/dist/cli/hook-commands.js +106 -0
  14. package/dist/cli/hook-commands.js.map +1 -0
  15. package/dist/cli/index.js +91 -36
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/init-command.d.ts.map +1 -1
  18. package/dist/cli/init-command.js +107 -8
  19. package/dist/cli/init-command.js.map +1 -1
  20. package/dist/cli/memory-commands.d.ts +1 -1
  21. package/dist/cli/memory-commands.d.ts.map +1 -1
  22. package/dist/cli/memory-commands.js +213 -1
  23. package/dist/cli/memory-commands.js.map +1 -1
  24. package/dist/cli/presets.d.ts.map +1 -1
  25. package/dist/cli/presets.js +2 -1
  26. package/dist/cli/presets.js.map +1 -1
  27. package/dist/cli/skill-commands.d.ts.map +1 -1
  28. package/dist/cli/skill-commands.js +4 -2
  29. package/dist/cli/skill-commands.js.map +1 -1
  30. package/dist/cli/steer-commands.d.ts.map +1 -1
  31. package/dist/cli/steer-commands.js +6 -4
  32. package/dist/cli/steer-commands.js.map +1 -1
  33. package/dist/cli/team-commands.d.ts.map +1 -1
  34. package/dist/cli/team-commands.js +3 -1
  35. package/dist/cli/team-commands.js.map +1 -1
  36. package/dist/config/defaults.d.ts.map +1 -1
  37. package/dist/config/defaults.js +12 -2
  38. package/dist/config/defaults.js.map +1 -1
  39. package/dist/config/loader.d.ts +23 -0
  40. package/dist/config/loader.d.ts.map +1 -1
  41. package/dist/config/loader.js +64 -3
  42. package/dist/config/loader.js.map +1 -1
  43. package/dist/config/policy-loader.d.ts +14 -0
  44. package/dist/config/policy-loader.d.ts.map +1 -1
  45. package/dist/config/policy-loader.js +33 -0
  46. package/dist/config/policy-loader.js.map +1 -1
  47. package/dist/dashboard/frontend/dist/assets/index-BcOGj1EF.css +1 -0
  48. package/dist/dashboard/frontend/dist/assets/index-BtiFO9YN.js +261 -0
  49. package/dist/dashboard/frontend/dist/assets/index-Cfjy5acU.css +1 -0
  50. package/dist/dashboard/frontend/dist/assets/index-D41hcjgc.js +253 -0
  51. package/dist/dashboard/frontend/dist/assets/index-D83BawFd.css +1 -0
  52. package/dist/dashboard/frontend/dist/assets/index-DAODjoxu.css +1 -0
  53. package/dist/dashboard/frontend/dist/assets/index-DB-Eu5oV.js +253 -0
  54. package/dist/dashboard/frontend/dist/assets/index-W0VVEDu6.js +253 -0
  55. package/dist/dashboard/frontend/dist/index.html +17 -0
  56. package/dist/dashboard/server.d.ts +19 -2
  57. package/dist/dashboard/server.d.ts.map +1 -1
  58. package/dist/dashboard/server.js +121 -20
  59. package/dist/dashboard/server.js.map +1 -1
  60. package/dist/hooks/hook-runner.d.ts +55 -0
  61. package/dist/hooks/hook-runner.d.ts.map +1 -0
  62. package/dist/hooks/hook-runner.js +120 -0
  63. package/dist/hooks/hook-runner.js.map +1 -0
  64. package/dist/hooks/hook-types.d.ts +82 -0
  65. package/dist/hooks/hook-types.d.ts.map +1 -0
  66. package/dist/hooks/hook-types.js +20 -0
  67. package/dist/hooks/hook-types.js.map +1 -0
  68. package/dist/hooks/index.d.ts +6 -0
  69. package/dist/hooks/index.d.ts.map +1 -0
  70. package/dist/hooks/index.js +6 -0
  71. package/dist/hooks/index.js.map +1 -0
  72. package/dist/memory/context-compressor.d.ts +108 -0
  73. package/dist/memory/context-compressor.d.ts.map +1 -0
  74. package/dist/memory/context-compressor.js +307 -0
  75. package/dist/memory/context-compressor.js.map +1 -0
  76. package/dist/memory/index.d.ts +1 -0
  77. package/dist/memory/index.d.ts.map +1 -1
  78. package/dist/memory/index.js +1 -0
  79. package/dist/memory/index.js.map +1 -1
  80. package/dist/memory/memory-manager.d.ts +88 -4
  81. package/dist/memory/memory-manager.d.ts.map +1 -1
  82. package/dist/memory/memory-manager.js +299 -7
  83. package/dist/memory/memory-manager.js.map +1 -1
  84. package/dist/memory/observation-store.d.ts +75 -0
  85. package/dist/memory/observation-store.d.ts.map +1 -0
  86. package/dist/memory/observation-store.js +162 -0
  87. package/dist/memory/observation-store.js.map +1 -0
  88. package/dist/memory/observer-worker.d.ts +34 -0
  89. package/dist/memory/observer-worker.d.ts.map +1 -0
  90. package/dist/memory/observer-worker.js +161 -0
  91. package/dist/memory/observer-worker.js.map +1 -0
  92. package/dist/memory/reflector-worker.d.ts +40 -0
  93. package/dist/memory/reflector-worker.d.ts.map +1 -0
  94. package/dist/memory/reflector-worker.js +185 -0
  95. package/dist/memory/reflector-worker.js.map +1 -0
  96. package/dist/memory/salience-scorer.d.ts +16 -6
  97. package/dist/memory/salience-scorer.d.ts.map +1 -1
  98. package/dist/memory/salience-scorer.js +42 -22
  99. package/dist/memory/salience-scorer.js.map +1 -1
  100. package/dist/memory/structured-memory.d.ts +36 -1
  101. package/dist/memory/structured-memory.d.ts.map +1 -1
  102. package/dist/memory/structured-memory.js +207 -8
  103. package/dist/memory/structured-memory.js.map +1 -1
  104. package/dist/memory/token-estimator.d.ts +31 -0
  105. package/dist/memory/token-estimator.d.ts.map +1 -0
  106. package/dist/memory/token-estimator.js +77 -0
  107. package/dist/memory/token-estimator.js.map +1 -0
  108. package/dist/memory/validation-pipeline.d.ts +37 -0
  109. package/dist/memory/validation-pipeline.d.ts.map +1 -0
  110. package/dist/memory/validation-pipeline.js +106 -0
  111. package/dist/memory/validation-pipeline.js.map +1 -0
  112. package/dist/orchestrator/auth-monitor.d.ts.map +1 -1
  113. package/dist/orchestrator/auth-monitor.js +3 -1
  114. package/dist/orchestrator/auth-monitor.js.map +1 -1
  115. package/dist/orchestrator/execution-loop.d.ts +23 -0
  116. package/dist/orchestrator/execution-loop.d.ts.map +1 -1
  117. package/dist/orchestrator/execution-loop.js +60 -19
  118. package/dist/orchestrator/execution-loop.js.map +1 -1
  119. package/dist/orchestrator/failover-controller.d.ts +26 -2
  120. package/dist/orchestrator/failover-controller.d.ts.map +1 -1
  121. package/dist/orchestrator/failover-controller.js +143 -23
  122. package/dist/orchestrator/failover-controller.js.map +1 -1
  123. package/dist/orchestrator/orchestrator.d.ts +70 -7
  124. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  125. package/dist/orchestrator/orchestrator.js +417 -92
  126. package/dist/orchestrator/orchestrator.js.map +1 -1
  127. package/dist/orchestrator/retry-queue.d.ts.map +1 -1
  128. package/dist/orchestrator/retry-queue.js +24 -9
  129. package/dist/orchestrator/retry-queue.js.map +1 -1
  130. package/dist/orchestrator/router.d.ts +16 -1
  131. package/dist/orchestrator/router.d.ts.map +1 -1
  132. package/dist/orchestrator/router.js +79 -20
  133. package/dist/orchestrator/router.js.map +1 -1
  134. package/dist/orchestrator/session-manager.d.ts +26 -1
  135. package/dist/orchestrator/session-manager.d.ts.map +1 -1
  136. package/dist/orchestrator/session-manager.js +88 -4
  137. package/dist/orchestrator/session-manager.js.map +1 -1
  138. package/dist/providers/circuit-breaker.d.ts +78 -0
  139. package/dist/providers/circuit-breaker.d.ts.map +1 -0
  140. package/dist/providers/circuit-breaker.js +129 -0
  141. package/dist/providers/circuit-breaker.js.map +1 -0
  142. package/dist/providers/claude-provider.d.ts +27 -11
  143. package/dist/providers/claude-provider.d.ts.map +1 -1
  144. package/dist/providers/claude-provider.js +164 -45
  145. package/dist/providers/claude-provider.js.map +1 -1
  146. package/dist/providers/gemini-provider.d.ts +9 -1
  147. package/dist/providers/gemini-provider.d.ts.map +1 -1
  148. package/dist/providers/gemini-provider.js +97 -48
  149. package/dist/providers/gemini-provider.js.map +1 -1
  150. package/dist/providers/index.d.ts +1 -0
  151. package/dist/providers/index.d.ts.map +1 -1
  152. package/dist/providers/index.js +1 -0
  153. package/dist/providers/index.js.map +1 -1
  154. package/dist/providers/ollama-provider.d.ts +7 -0
  155. package/dist/providers/ollama-provider.d.ts.map +1 -1
  156. package/dist/providers/ollama-provider.js +89 -18
  157. package/dist/providers/ollama-provider.js.map +1 -1
  158. package/dist/routines/heartbeat.d.ts +10 -2
  159. package/dist/routines/heartbeat.d.ts.map +1 -1
  160. package/dist/routines/heartbeat.js +42 -5
  161. package/dist/routines/heartbeat.js.map +1 -1
  162. package/dist/routines/routine-manager.d.ts.map +1 -1
  163. package/dist/routines/routine-manager.js +22 -15
  164. package/dist/routines/routine-manager.js.map +1 -1
  165. package/dist/security/audit-logger.d.ts.map +1 -1
  166. package/dist/security/audit-logger.js +5 -7
  167. package/dist/security/audit-logger.js.map +1 -1
  168. package/dist/security/policy-engine.d.ts +33 -17
  169. package/dist/security/policy-engine.d.ts.map +1 -1
  170. package/dist/security/policy-engine.js +68 -181
  171. package/dist/security/policy-engine.js.map +1 -1
  172. package/dist/security/policy-serializer.d.ts +19 -0
  173. package/dist/security/policy-serializer.d.ts.map +1 -0
  174. package/dist/security/policy-serializer.js +100 -0
  175. package/dist/security/policy-serializer.js.map +1 -0
  176. package/dist/security/shell-validator.d.ts +42 -0
  177. package/dist/security/shell-validator.d.ts.map +1 -0
  178. package/dist/security/shell-validator.js +231 -0
  179. package/dist/security/shell-validator.js.map +1 -0
  180. package/dist/skills/index.d.ts +1 -0
  181. package/dist/skills/index.d.ts.map +1 -1
  182. package/dist/skills/index.js +1 -0
  183. package/dist/skills/index.js.map +1 -1
  184. package/dist/skills/skill-loader.d.ts +38 -2
  185. package/dist/skills/skill-loader.d.ts.map +1 -1
  186. package/dist/skills/skill-loader.js +83 -2
  187. package/dist/skills/skill-loader.js.map +1 -1
  188. package/dist/skills/subagent-loader.d.ts +66 -0
  189. package/dist/skills/subagent-loader.d.ts.map +1 -0
  190. package/dist/skills/subagent-loader.js +143 -0
  191. package/dist/skills/subagent-loader.js.map +1 -0
  192. package/dist/steering/flag-manager.d.ts +20 -0
  193. package/dist/steering/flag-manager.d.ts.map +1 -1
  194. package/dist/steering/flag-manager.js +94 -11
  195. package/dist/steering/flag-manager.js.map +1 -1
  196. package/dist/steering/steering-manager.d.ts +11 -0
  197. package/dist/steering/steering-manager.d.ts.map +1 -1
  198. package/dist/steering/steering-manager.js +23 -0
  199. package/dist/steering/steering-manager.js.map +1 -1
  200. package/dist/steering/telegram-gateway.d.ts +4 -1
  201. package/dist/steering/telegram-gateway.d.ts.map +1 -1
  202. package/dist/steering/telegram-gateway.js +49 -10
  203. package/dist/steering/telegram-gateway.js.map +1 -1
  204. package/dist/teams/bridge-watchdog.d.ts.map +1 -1
  205. package/dist/teams/bridge-watchdog.js +5 -3
  206. package/dist/teams/bridge-watchdog.js.map +1 -1
  207. package/dist/teams/gemini-bridge.d.ts.map +1 -1
  208. package/dist/teams/gemini-bridge.js +9 -4
  209. package/dist/teams/gemini-bridge.js.map +1 -1
  210. package/dist/tools/index.d.ts +2 -0
  211. package/dist/tools/index.d.ts.map +1 -1
  212. package/dist/tools/index.js +2 -0
  213. package/dist/tools/index.js.map +1 -1
  214. package/dist/tools/memory-tools.d.ts +16 -0
  215. package/dist/tools/memory-tools.d.ts.map +1 -0
  216. package/dist/tools/memory-tools.js +207 -0
  217. package/dist/tools/memory-tools.js.map +1 -0
  218. package/dist/tools/notifications.d.ts.map +1 -1
  219. package/dist/tools/notifications.js +3 -1
  220. package/dist/tools/notifications.js.map +1 -1
  221. package/dist/tools/tool-factory.d.ts +36 -0
  222. package/dist/tools/tool-factory.d.ts.map +1 -0
  223. package/dist/tools/tool-factory.js +55 -0
  224. package/dist/tools/tool-factory.js.map +1 -0
  225. package/dist/types.d.ts +213 -1
  226. package/dist/types.d.ts.map +1 -1
  227. package/dist/types.js +47 -1
  228. package/dist/types.js.map +1 -1
  229. package/dist/utils/errors.d.ts +21 -0
  230. package/dist/utils/errors.d.ts.map +1 -0
  231. package/dist/utils/errors.js +29 -0
  232. package/dist/utils/errors.js.map +1 -0
  233. package/dist/utils/event-filter.d.ts +25 -0
  234. package/dist/utils/event-filter.d.ts.map +1 -0
  235. package/dist/utils/event-filter.js +61 -0
  236. package/dist/utils/event-filter.js.map +1 -0
  237. package/dist/utils/logger.d.ts +33 -36
  238. package/dist/utils/logger.d.ts.map +1 -1
  239. package/dist/utils/logger.js +60 -130
  240. package/dist/utils/logger.js.map +1 -1
  241. package/dist/utils/validate-job-id.d.ts +6 -0
  242. package/dist/utils/validate-job-id.d.ts.map +1 -0
  243. package/dist/utils/validate-job-id.js +10 -0
  244. package/dist/utils/validate-job-id.js.map +1 -0
  245. package/package.json +12 -3
@@ -13,6 +13,8 @@
13
13
  * - AbortController wired through for clean cancellation
14
14
  * - Auth/quota checks use accountInfo() probe on the Query object
15
15
  */
16
+ import { isTextEvent, isToolCallEvent, isToolResultEvent, isSteeringEvent, } from '../types.js';
17
+ import { CircuitBreaker } from './circuit-breaker.js';
16
18
  // ─── Claude Provider ────────────────────────────────────────────────
17
19
  export class ClaudeProvider {
18
20
  name;
@@ -27,10 +29,10 @@ export class ClaudeProvider {
27
29
  _permissionMode;
28
30
  /** Active queries indexed by jobId for abort support */
29
31
  _activeQueries = new Map();
32
+ /** Circuit breaker for failure tracking (PROV-02) */
33
+ _circuitBreaker;
30
34
  /** Cached auth status from last check */
31
35
  _lastAuthStatus = null;
32
- /** Cached quota status from last check */
33
- _lastQuotaStatus = null;
34
36
  /** Track cumulative cost */
35
37
  _totalCostUsd = 0;
36
38
  /** Track cumulative token usage */
@@ -49,6 +51,7 @@ export class ClaudeProvider {
49
51
  this._systemPrompt = options.systemPrompt ?? '';
50
52
  this._allowedTools = options.allowedTools ?? [];
51
53
  this._permissionMode = options.permissionMode ?? 'bypassPermissions';
54
+ this._circuitBreaker = new CircuitBreaker();
52
55
  // Dependency injection: use provided queryFn or lazy-load the real SDK
53
56
  if (options.queryFn) {
54
57
  this._queryFn = options.queryFn;
@@ -77,11 +80,12 @@ export class ClaudeProvider {
77
80
  // Claude is available if:
78
81
  // 1. Provider is enabled in config
79
82
  // 2. Auth is valid (or we haven't checked yet — optimistic)
83
+ // 3. Circuit breaker is not OPEN (PROV-02)
80
84
  if (!this._config.enabled)
81
85
  return false;
82
86
  if (this._lastAuthStatus && !this._lastAuthStatus.valid)
83
87
  return false;
84
- if (this._lastQuotaStatus?.isExhausted)
88
+ if (this._circuitBreaker.isOpen())
85
89
  return false;
86
90
  return true;
87
91
  }
@@ -104,20 +108,29 @@ export class ClaudeProvider {
104
108
  return status;
105
109
  }
106
110
  async getQuotaStatus() {
107
- if (this._lastQuotaStatus) {
108
- return this._lastQuotaStatus;
109
- }
110
- // Default to healthy
111
- const status = {
112
- isExhausted: false,
111
+ // PROV-01: Derive health score from circuit breaker state
112
+ const cbState = this._circuitBreaker.getState();
113
+ return {
114
+ isExhausted: cbState === 'OPEN',
113
115
  remainingRequests: null,
114
116
  cooldownUntil: null,
115
- healthScore: 1.0,
117
+ healthScore: this._circuitBreaker.healthScore,
116
118
  };
117
- this._lastQuotaStatus = status;
118
- return status;
119
119
  }
120
120
  async *execute(task) {
121
+ // PROV-02: Reject immediately if circuit breaker is OPEN
122
+ if (this._circuitBreaker.isOpen()) {
123
+ yield {
124
+ type: 'error',
125
+ timestamp: new Date(),
126
+ source: this.name,
127
+ content: {
128
+ message: `Circuit breaker is OPEN for provider ${this.name} — too many recent failures`,
129
+ isCircuitOpen: true,
130
+ },
131
+ };
132
+ return;
133
+ }
121
134
  const queryFn = await this._resolveQueryFn();
122
135
  const abortController = new AbortController();
123
136
  // Build SDK options
@@ -133,8 +146,31 @@ export class ClaudeProvider {
133
146
  if (this._allowedTools.length > 0) {
134
147
  sdkOptions['allowedTools'] = this._allowedTools;
135
148
  }
149
+ // Wire policy enforcement into the SDK
150
+ if (task.canUseTool) {
151
+ sdkOptions['canUseTool'] = task.canUseTool;
152
+ }
153
+ // Forward custom tools from TaskContext (memory tools, permissions, etc.)
154
+ if (task.customTools && task.customTools.length > 0) {
155
+ sdkOptions['customTools'] = task.customTools.map(t => ({
156
+ name: t.name,
157
+ description: t.description,
158
+ input_schema: t.input_schema,
159
+ }));
160
+ }
136
161
  // Build the prompt from task context
137
162
  const prompt = this._buildPrompt(task);
163
+ // TYPE-11: Track turn count and tool timing for lifecycle events
164
+ let turnCount = 0;
165
+ const taskStartTime = Date.now();
166
+ const pendingTools = new Map(); // toolCallId → start timestamp
167
+ // TYPE-11: Emit task.start before any SDK interaction
168
+ yield {
169
+ type: 'task.start',
170
+ timestamp: new Date(),
171
+ source: this.name,
172
+ content: { jobId: task.jobId, task: task.task },
173
+ };
138
174
  try {
139
175
  // Create the SDK query
140
176
  const sdkQuery = queryFn({ prompt, options: sdkOptions });
@@ -142,29 +178,92 @@ export class ClaudeProvider {
142
178
  this._activeQueries.set(task.jobId, { abort: abortController, query: sdkQuery });
143
179
  let emittedResult = false;
144
180
  for await (const message of sdkQuery) {
181
+ // TYPE-11: Emit turn.start on each new assistant message
182
+ if (message.type === 'assistant') {
183
+ turnCount++;
184
+ yield {
185
+ type: 'turn.start',
186
+ timestamp: new Date(),
187
+ source: this.name,
188
+ content: { turn: turnCount },
189
+ };
190
+ }
145
191
  const events = this._mapSDKMessage(message);
146
192
  for (const event of events) {
193
+ // TYPE-11: Emit tool.start before tool_call, tool.end after tool_result
194
+ if (event.type === 'tool_call') {
195
+ const tc = event.content;
196
+ pendingTools.set(tc.toolCallId, Date.now());
197
+ yield {
198
+ type: 'tool.start',
199
+ timestamp: new Date(),
200
+ source: this.name,
201
+ content: { toolCallId: tc.toolCallId, tool: tc.tool },
202
+ };
203
+ }
147
204
  if (event.type === 'done' || (event.type === 'error' && message.type === 'result')) {
148
205
  emittedResult = true;
149
206
  }
150
207
  yield event;
208
+ // TYPE-11: Emit tool.end after tool_result
209
+ if (event.type === 'tool_result') {
210
+ const tr = event.content;
211
+ const startTime = pendingTools.get(tr.toolCallId);
212
+ pendingTools.delete(tr.toolCallId);
213
+ yield {
214
+ type: 'tool.end',
215
+ timestamp: new Date(),
216
+ source: this.name,
217
+ content: {
218
+ toolCallId: tr.toolCallId,
219
+ tool: '', // tool name not available on result
220
+ duration_ms: startTime ? Date.now() - startTime : undefined,
221
+ error: tr.error,
222
+ },
223
+ };
224
+ }
151
225
  // If we got a result message, update internal state
152
226
  if (message.type === 'result') {
153
227
  this._handleResultMessage(message);
154
228
  }
155
229
  }
230
+ // TYPE-11: Emit turn.end after processing an assistant message
231
+ if (message.type === 'assistant') {
232
+ yield {
233
+ type: 'turn.end',
234
+ timestamp: new Date(),
235
+ source: this.name,
236
+ content: { turn: turnCount },
237
+ };
238
+ }
156
239
  }
240
+ // PROV-02: Record success on the circuit breaker
241
+ this._circuitBreaker.recordSuccess();
242
+ // TYPE-11: Emit task.end
243
+ yield {
244
+ type: 'task.end',
245
+ timestamp: new Date(),
246
+ source: this.name,
247
+ content: {
248
+ jobId: task.jobId,
249
+ duration_ms: Date.now() - taskStartTime,
250
+ success: true,
251
+ },
252
+ };
157
253
  // Only yield fallback if the SDK never emitted a result message
158
254
  if (!emittedResult) {
159
255
  yield {
160
256
  type: 'done',
161
257
  timestamp: new Date(),
258
+ source: this.name,
162
259
  content: { text: '' },
163
260
  };
164
261
  }
165
262
  }
166
263
  catch (err) {
167
264
  const errorMessage = err instanceof Error ? err.message : String(err);
265
+ // PROV-02: Record failure on the circuit breaker
266
+ this._circuitBreaker.recordFailure();
168
267
  // Check for specific error types that indicate auth/quota issues
169
268
  if (this._isAuthError(errorMessage)) {
170
269
  this._lastAuthStatus = {
@@ -174,23 +273,27 @@ export class ClaudeProvider {
174
273
  requiresInteraction: true,
175
274
  };
176
275
  }
177
- else if (this._isQuotaError(errorMessage)) {
178
- this._lastQuotaStatus = {
179
- isExhausted: true,
180
- remainingRequests: 0,
181
- cooldownUntil: new Date(Date.now() + 60_000), // 1 min default cooldown
182
- healthScore: 0,
183
- };
184
- }
185
276
  yield {
186
277
  type: 'error',
187
278
  timestamp: new Date(),
279
+ source: this.name,
188
280
  content: {
189
281
  message: errorMessage,
190
282
  isAuthError: this._isAuthError(errorMessage),
191
283
  isQuotaError: this._isQuotaError(errorMessage),
192
284
  },
193
285
  };
286
+ // TYPE-11: Emit task.end on error
287
+ yield {
288
+ type: 'task.end',
289
+ timestamp: new Date(),
290
+ source: this.name,
291
+ content: {
292
+ jobId: task.jobId,
293
+ duration_ms: Date.now() - taskStartTime,
294
+ success: false,
295
+ },
296
+ };
194
297
  }
195
298
  finally {
196
299
  this._activeQueries.delete(task.jobId);
@@ -206,8 +309,16 @@ export class ClaudeProvider {
206
309
  // ─── SDK Message Mapping ──────────────────────────────────────────
207
310
  /**
208
311
  * Map an SDK message to zero or more AgentEvents.
209
- * One SDK message can produce multiple events (e.g., an assistant message
210
- * with both thinking and text content blocks).
312
+ *
313
+ * One SDK message can produce multiple events because an 'assistant' message
314
+ * contains an array of content blocks (thinking, text, tool_use, tool_result),
315
+ * each of which becomes a separate AgentEvent.
316
+ *
317
+ * Message type mapping:
318
+ * - 'assistant' -> one event per content block (thinking/text/tool_call/tool_result).
319
+ * - 'result' -> one 'done' event (success) or one 'error' event (failure).
320
+ * - 'system'/'user' -> no events (informational/replay only).
321
+ * - unknown types -> ignored gracefully (no crash on SDK additions).
211
322
  */
212
323
  _mapSDKMessage(message) {
213
324
  const events = [];
@@ -220,6 +331,7 @@ export class ClaudeProvider {
220
331
  events.push({
221
332
  type: 'thinking',
222
333
  timestamp: new Date(),
334
+ source: this.name,
223
335
  content: { text: block.thinking },
224
336
  });
225
337
  break;
@@ -227,6 +339,7 @@ export class ClaudeProvider {
227
339
  events.push({
228
340
  type: 'text',
229
341
  timestamp: new Date(),
342
+ source: this.name,
230
343
  content: { text: block.text },
231
344
  });
232
345
  break;
@@ -234,6 +347,7 @@ export class ClaudeProvider {
234
347
  events.push({
235
348
  type: 'tool_call',
236
349
  timestamp: new Date(),
350
+ source: this.name,
237
351
  content: {
238
352
  toolCallId: block.id,
239
353
  tool: block.name,
@@ -245,6 +359,7 @@ export class ClaudeProvider {
245
359
  events.push({
246
360
  type: 'tool_result',
247
361
  timestamp: new Date(),
362
+ source: this.name,
248
363
  content: {
249
364
  toolCallId: block.tool_use_id,
250
365
  result: block.content,
@@ -261,6 +376,7 @@ export class ClaudeProvider {
261
376
  events.push({
262
377
  type: 'error',
263
378
  timestamp: new Date(),
379
+ source: this.name,
264
380
  content: {
265
381
  message: msg.errors?.join('; ') ?? `SDK error: ${msg.subtype}`,
266
382
  subtype: msg.subtype,
@@ -274,6 +390,7 @@ export class ClaudeProvider {
274
390
  events.push({
275
391
  type: 'done',
276
392
  timestamp: new Date(),
393
+ source: this.name,
277
394
  content: {
278
395
  text: msg.result ?? '',
279
396
  duration_ms: msg.duration_ms,
@@ -303,7 +420,14 @@ export class ClaudeProvider {
303
420
  // ─── Internal helpers ─────────────────────────────────────────────
304
421
  /**
305
422
  * Build a prompt string from task context.
306
- * Includes memory context, history, and system prompt elements.
423
+ *
424
+ * The prompt is structured with XML-like delimiters:
425
+ * 1. <memory_context> -- Injected memory items for cross-session continuity.
426
+ * 2. <execution_history> -- Prior events, including tool calls/results and
427
+ * human steering messages. Enables restarts and handoffs to resume mid-task.
428
+ * 3. The raw task prompt.
429
+ *
430
+ * The system prompt (SOUL.md + policy hints) is passed separately via sdkOptions.
307
431
  */
308
432
  _buildPrompt(task) {
309
433
  const parts = [];
@@ -318,27 +442,24 @@ export class ClaudeProvider {
318
442
  if (task.history.length > 0) {
319
443
  parts.push('<execution_history>');
320
444
  for (const event of task.history) {
321
- if (event.type === 'text') {
445
+ if (isTextEvent(event)) {
322
446
  parts.push(' <assistant_response>');
323
447
  parts.push(event.content.text);
324
448
  parts.push(' </assistant_response>');
325
449
  }
326
- else if (event.type === 'tool_call') {
327
- const c = event.content;
328
- parts.push(` <tool_call name="${c.tool}" id="${c.toolCallId}">`);
329
- parts.push(JSON.stringify(c.arguments, null, 2));
450
+ else if (isToolCallEvent(event)) {
451
+ parts.push(` <tool_call name="${event.content.tool}" id="${event.content.toolCallId}">`);
452
+ parts.push(JSON.stringify(event.content.arguments, null, 2));
330
453
  parts.push(' </tool_call>');
331
454
  }
332
- else if (event.type === 'tool_result') {
333
- const c = event.content;
334
- parts.push(` <tool_result id="${c.toolCallId}">`);
335
- parts.push(JSON.stringify(c.result, null, 2));
455
+ else if (isToolResultEvent(event)) {
456
+ parts.push(` <tool_result id="${event.content.toolCallId}">`);
457
+ parts.push(JSON.stringify(event.content.result, null, 2));
336
458
  parts.push(' </tool_result>');
337
459
  }
338
- else if (event.type === 'steering') {
339
- const c = event.content;
340
- parts.push(` <human_steering source="${c.source}" author="${c.author}">`);
341
- parts.push(c.text);
460
+ else if (isSteeringEvent(event)) {
461
+ parts.push(` <human_steering source="${event.content.source}" author="${event.content.author}">`);
462
+ parts.push(event.content.text);
342
463
  parts.push(' </human_steering>');
343
464
  }
344
465
  }
@@ -371,6 +492,9 @@ export class ClaudeProvider {
371
492
  }
372
493
  /**
373
494
  * Heuristic to detect auth errors from error messages.
495
+ * Pattern-matches against known SDK and HTTP error strings.
496
+ * Used to update _lastAuthStatus so isAvailable() excludes this provider
497
+ * and the orchestrator can trigger re-authentication.
374
498
  */
375
499
  _isAuthError(message) {
376
500
  const authPatterns = [
@@ -413,8 +537,9 @@ export class ClaudeProvider {
413
537
  get lastAuthStatus() {
414
538
  return this._lastAuthStatus;
415
539
  }
416
- get lastQuotaStatus() {
417
- return this._lastQuotaStatus;
540
+ /** Expose circuit breaker for external inspection / testing */
541
+ get circuitBreaker() {
542
+ return this._circuitBreaker;
418
543
  }
419
544
  getUsage() {
420
545
  return {
@@ -431,18 +556,12 @@ export class ClaudeProvider {
431
556
  setAuthStatus(status) {
432
557
  this._lastAuthStatus = status;
433
558
  }
434
- /**
435
- * Force-set quota status (used by orchestrator on external quota events).
436
- */
437
- setQuotaStatus(status) {
438
- this._lastQuotaStatus = status;
439
- }
440
559
  /**
441
560
  * Reset cached status (used after auth recovery).
442
561
  */
443
562
  resetStatus() {
444
563
  this._lastAuthStatus = null;
445
- this._lastQuotaStatus = null;
564
+ this._circuitBreaker.reset();
446
565
  }
447
566
  }
448
567
  //# sourceMappingURL=claude-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-provider.js","sourceRoot":"","sources":["../../src/providers/claude-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmHH,uEAAuE;AAEvE,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,YAAY,CAAuB;IACnC,QAAQ,CAAW;IAEX,OAAO,CAAiB;IACxB,QAAQ,CAAU;IAClB,IAAI,CAAS;IACb,aAAa,CAAS;IACtB,aAAa,CAAW;IACxB,eAAe,CAAS;IAEzC,wDAAwD;IACvC,cAAc,GAA6D,IAAI,GAAG,EAAE,CAAC;IAEtG,yCAAyC;IACjC,eAAe,GAAsB,IAAI,CAAC;IAElD,0CAA0C;IAClC,gBAAgB,GAAuB,IAAI,CAAC;IAEpD,4BAA4B;IACpB,aAAa,GAAG,CAAC,CAAC;IAE1B,mCAAmC;IAC3B,iBAAiB,GAAG,CAAC,CAAC;IACtB,kBAAkB,GAAG,CAAC,CAAC;IACvB,aAAa,GAAG,CAAC,CAAC;IAClB,cAAc,GAAgB,IAAI,CAAC;IAE3C,YAAY,OAA8B;QACxC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;QAEjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,IAAI,mBAAmB,CAAC;QAErE,uEAAuE;QACvE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,gDAAgD;YAChD,IAAI,CAAC,QAAQ,GAAG,IAA0B,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAExC,iCAAiC;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,GAAG,CAAC,KAA2B,CAAC;QAClD,iCAAiC;QAChC,IAAY,CAAC,QAAQ,GAAG,SAAS,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IAEnE,KAAK,CAAC,WAAW;QACf,0BAA0B;QAC1B,mCAAmC;QACnC,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,IAAI,CAAC,gBAAgB,EAAE,WAAW;YAAE,OAAO,KAAK,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS;QACb,2DAA2D;QAC3D,sDAAsD;QACtD,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,oEAAoE;QACpE,MAAM,MAAM,GAAe;YACzB,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,IAAI;YACpB,mBAAmB,EAAE,KAAK;SAC3B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,iBAAiB,EAAE,IAAI;YACvB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,IAAiB;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,oBAAoB;QACpB,MAAM,UAAU,GAA4B;YAC1C,eAAe;YACf,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB;YAChD,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG;YACxD,2EAA2E;YAC3E,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa;SACtD,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAClD,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAE1D,6BAA6B;YAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEjF,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;wBACnF,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;oBACD,MAAM,KAAK,CAAC;oBAEZ,oDAAoD;oBACpD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC,oBAAoB,CAAC,OAA2B,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM;oBACJ,IAAI,EAAE,MAAwB;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;iBACtB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEtE,iEAAiE;YACjE,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG;oBACrB,KAAK,EAAE,KAAK;oBACZ,SAAS,EAAE,IAAI;oBACf,cAAc,EAAE,KAAK;oBACrB,mBAAmB,EAAE,IAAI;iBAC1B,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,GAAG;oBACtB,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,yBAAyB;oBACvE,WAAW,EAAE,CAAC;iBACf,CAAC;YACJ,CAAC;YAED,MAAM;gBACJ,IAAI,EAAE,OAAyB;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,OAAO,EAAE;oBACP,OAAO,EAAE,YAAY;oBACrB,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC5C,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;iBAC/C;aACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,qEAAqE;IAErE;;;;OAIG;IACK,cAAc,CAAC,OAAmB;QACxC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,OAA8B,CAAC;gBAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,UAAU;4BACb,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,UAAU;gCAChB,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;6BAClC,CAAC,CAAC;4BACH,MAAM;wBACR,KAAK,MAAM;4BACT,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,MAAM;gCACZ,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;6BAC9B,CAAC,CAAC;4BACH,MAAM;wBACR,KAAK,UAAU;4BACb,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,WAAW;gCACjB,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,OAAO,EAAE;oCACP,UAAU,EAAE,KAAK,CAAC,EAAE;oCACpB,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,SAAS,EAAE,KAAK,CAAC,KAAK;iCACvB;6BACF,CAAC,CAAC;4BACH,MAAM;wBACR,KAAK,aAAa;4BAChB,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,aAAa;gCACnB,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,OAAO,EAAE;oCACP,UAAU,EAAE,KAAK,CAAC,WAAW;oCAC7B,MAAM,EAAE,KAAK,CAAC,OAAO;iCACtB;6BACF,CAAC,CAAC;4BACH,MAAM;oBACV,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,OAA2B,CAAC;gBACxC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,OAAO,EAAE;4BACP,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,GAAG,CAAC,OAAO,EAAE;4BAC9D,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,WAAW,EAAE,GAAG,CAAC,WAAW;4BAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,cAAc,EAAE,GAAG,CAAC,cAAc;yBACnC;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,OAAO,EAAE;4BACP,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;4BACtB,WAAW,EAAE,GAAG,CAAC,WAAW;4BAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,cAAc,EAAE,GAAG,CAAC,cAAc;yBACnC;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,wEAAwE;gBACxE,sCAAsC;gBACtC,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,8BAA8B;gBAC9B,MAAM;YACR,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,2CAA2C;gBAC3C,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qEAAqE;IAErE;;;OAGG;IACK,YAAY,CAAC,IAAiB;QACpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,0BAA0B;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBACrC,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;oBACxC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAc,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;oBAClE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAc,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC9C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAc,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC3E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,kBAAkB;QAClB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,GAAqB;QAChD,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;QAEjC,8DAA8D;QAC9D,MAAM,GAAG,GAAG,GAAyC,CAAC;QACtD,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAoD,CAAC,EAAE,CAAC;gBAC5F,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACtD,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe;QAClC,MAAM,YAAY,GAAG;YACnB,gBAAgB;YAChB,YAAY;YACZ,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,eAAe;YACf,eAAe;YACf,mBAAmB;YACnB,gBAAgB;SACjB,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAe;QACnC,MAAM,aAAa,GAAG;YACpB,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,mBAAmB;YACnB,UAAU;YACV,YAAY;YACZ,KAAK;SACN,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,qEAAqE;IAErE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;YAC1C,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,aAAa,EAAE,IAAI,CAAC,cAAc;SACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAkB;QAC9B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAmB;QAChC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"claude-provider.js","sourceRoot":"","sources":["../../src/providers/claude-provider.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * - Output format: Handles text, markdown-fenced JSON, and XML blocks
8
8
  */
9
9
  import type { LLMProvider, AuthStatus, QuotaStatus, ProviderUsage, AgentEvent, TaskContext, ProviderCapability, CostTier, ProviderConfig } from '../types.js';
10
+ import { CircuitBreaker } from './circuit-breaker.js';
10
11
  export interface GeminiProviderOptions {
11
12
  config: ProviderConfig;
12
13
  cliPath?: string;
@@ -19,9 +20,10 @@ export declare class GeminiProvider implements LLMProvider {
19
20
  private readonly _config;
20
21
  private readonly _cliPath;
21
22
  private _lastAuthStatus;
22
- private _lastQuotaStatus;
23
23
  private _requestCount;
24
24
  private _lastRequestAt;
25
+ /** Circuit breaker for failure tracking (PROV-02) */
26
+ private readonly _circuitBreaker;
25
27
  /** Active child processes indexed by jobId for abort support */
26
28
  private readonly _activeProcesses;
27
29
  constructor(options: GeminiProviderOptions);
@@ -42,5 +44,11 @@ export declare class GeminiProvider implements LLMProvider {
42
44
  private static readonly MAX_BUFFER_SIZE;
43
45
  private _streamToLines;
44
46
  private _collectStderr;
47
+ /** Expose circuit breaker for external inspection / testing */
48
+ get circuitBreaker(): CircuitBreaker;
49
+ /**
50
+ * Reset cached status (used after recovery).
51
+ */
52
+ resetStatus(): void;
45
53
  }
46
54
  //# sourceMappingURL=gemini-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-provider.d.ts","sourceRoot":"","sources":["../../src/providers/gemini-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAE3C,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;gBAEpD,OAAO,EAAE,qBAAqB;IAWpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAqDhC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAO5C,QAAQ,IAAI,aAAa;IAUlB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IAyGvD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,OAAO,CAAC,YAAY;IAyCpB,OAAO,CAAC,eAAe;IAqDvB,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;YAE3C,cAAc;YAuBhB,cAAc;CAO7B"}
1
+ {"version":3,"file":"gemini-provider.d.ts","sourceRoot":"","sources":["../../src/providers/gemini-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAqB;IAE3C,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqE;gBAE1F,OAAO,EAAE,qBAAqB;IAYpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQrC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAqDhC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAW5C,QAAQ,IAAI,aAAa;IAUlB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IAuIvD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,eAAe;IAqDvB,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;YAE3C,cAAc;YAuBhB,cAAc;IAQ5B,+DAA+D;IAC/D,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED;;OAEG;IACH,WAAW,IAAI,IAAI;CAIpB"}