zora-agent 0.9.4 → 0.9.6

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 +87 -35
  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 +108 -9
  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 +416 -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 +161 -46
  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 +28 -17
  169. package/dist/security/policy-engine.d.ts.map +1 -1
  170. package/dist/security/policy-engine.js +42 -185
  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 +205 -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,26 +108,35 @@ 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
124
137
  const sdkOptions = {
125
138
  abortController,
126
- model: this._config.model ?? 'claude-sonnet-4-5',
139
+ model: this._config.model ?? 'claude-sonnet-4-6',
127
140
  cwd: this._cwd,
128
141
  permissionMode: this._permissionMode,
129
142
  maxTurns: task.maxTurns ?? this._config.max_turns ?? 200,
@@ -137,8 +150,27 @@ export class ClaudeProvider {
137
150
  if (task.canUseTool) {
138
151
  sdkOptions['canUseTool'] = task.canUseTool;
139
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
+ }
140
161
  // Build the prompt from task context
141
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
+ };
142
174
  try {
143
175
  // Create the SDK query
144
176
  const sdkQuery = queryFn({ prompt, options: sdkOptions });
@@ -146,29 +178,92 @@ export class ClaudeProvider {
146
178
  this._activeQueries.set(task.jobId, { abort: abortController, query: sdkQuery });
147
179
  let emittedResult = false;
148
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
+ }
149
191
  const events = this._mapSDKMessage(message);
150
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
+ }
151
204
  if (event.type === 'done' || (event.type === 'error' && message.type === 'result')) {
152
205
  emittedResult = true;
153
206
  }
154
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
+ }
155
225
  // If we got a result message, update internal state
156
226
  if (message.type === 'result') {
157
227
  this._handleResultMessage(message);
158
228
  }
159
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
+ }
160
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
+ };
161
253
  // Only yield fallback if the SDK never emitted a result message
162
254
  if (!emittedResult) {
163
255
  yield {
164
256
  type: 'done',
165
257
  timestamp: new Date(),
258
+ source: this.name,
166
259
  content: { text: '' },
167
260
  };
168
261
  }
169
262
  }
170
263
  catch (err) {
171
264
  const errorMessage = err instanceof Error ? err.message : String(err);
265
+ // PROV-02: Record failure on the circuit breaker
266
+ this._circuitBreaker.recordFailure();
172
267
  // Check for specific error types that indicate auth/quota issues
173
268
  if (this._isAuthError(errorMessage)) {
174
269
  this._lastAuthStatus = {
@@ -178,23 +273,27 @@ export class ClaudeProvider {
178
273
  requiresInteraction: true,
179
274
  };
180
275
  }
181
- else if (this._isQuotaError(errorMessage)) {
182
- this._lastQuotaStatus = {
183
- isExhausted: true,
184
- remainingRequests: 0,
185
- cooldownUntil: new Date(Date.now() + 60_000), // 1 min default cooldown
186
- healthScore: 0,
187
- };
188
- }
189
276
  yield {
190
277
  type: 'error',
191
278
  timestamp: new Date(),
279
+ source: this.name,
192
280
  content: {
193
281
  message: errorMessage,
194
282
  isAuthError: this._isAuthError(errorMessage),
195
283
  isQuotaError: this._isQuotaError(errorMessage),
196
284
  },
197
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
+ };
198
297
  }
199
298
  finally {
200
299
  this._activeQueries.delete(task.jobId);
@@ -210,8 +309,16 @@ export class ClaudeProvider {
210
309
  // ─── SDK Message Mapping ──────────────────────────────────────────
211
310
  /**
212
311
  * Map an SDK message to zero or more AgentEvents.
213
- * One SDK message can produce multiple events (e.g., an assistant message
214
- * 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).
215
322
  */
216
323
  _mapSDKMessage(message) {
217
324
  const events = [];
@@ -224,6 +331,7 @@ export class ClaudeProvider {
224
331
  events.push({
225
332
  type: 'thinking',
226
333
  timestamp: new Date(),
334
+ source: this.name,
227
335
  content: { text: block.thinking },
228
336
  });
229
337
  break;
@@ -231,6 +339,7 @@ export class ClaudeProvider {
231
339
  events.push({
232
340
  type: 'text',
233
341
  timestamp: new Date(),
342
+ source: this.name,
234
343
  content: { text: block.text },
235
344
  });
236
345
  break;
@@ -238,6 +347,7 @@ export class ClaudeProvider {
238
347
  events.push({
239
348
  type: 'tool_call',
240
349
  timestamp: new Date(),
350
+ source: this.name,
241
351
  content: {
242
352
  toolCallId: block.id,
243
353
  tool: block.name,
@@ -249,6 +359,7 @@ export class ClaudeProvider {
249
359
  events.push({
250
360
  type: 'tool_result',
251
361
  timestamp: new Date(),
362
+ source: this.name,
252
363
  content: {
253
364
  toolCallId: block.tool_use_id,
254
365
  result: block.content,
@@ -265,6 +376,7 @@ export class ClaudeProvider {
265
376
  events.push({
266
377
  type: 'error',
267
378
  timestamp: new Date(),
379
+ source: this.name,
268
380
  content: {
269
381
  message: msg.errors?.join('; ') ?? `SDK error: ${msg.subtype}`,
270
382
  subtype: msg.subtype,
@@ -278,6 +390,7 @@ export class ClaudeProvider {
278
390
  events.push({
279
391
  type: 'done',
280
392
  timestamp: new Date(),
393
+ source: this.name,
281
394
  content: {
282
395
  text: msg.result ?? '',
283
396
  duration_ms: msg.duration_ms,
@@ -307,7 +420,14 @@ export class ClaudeProvider {
307
420
  // ─── Internal helpers ─────────────────────────────────────────────
308
421
  /**
309
422
  * Build a prompt string from task context.
310
- * 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.
311
431
  */
312
432
  _buildPrompt(task) {
313
433
  const parts = [];
@@ -322,27 +442,24 @@ export class ClaudeProvider {
322
442
  if (task.history.length > 0) {
323
443
  parts.push('<execution_history>');
324
444
  for (const event of task.history) {
325
- if (event.type === 'text') {
445
+ if (isTextEvent(event)) {
326
446
  parts.push(' <assistant_response>');
327
447
  parts.push(event.content.text);
328
448
  parts.push(' </assistant_response>');
329
449
  }
330
- else if (event.type === 'tool_call') {
331
- const c = event.content;
332
- parts.push(` <tool_call name="${c.tool}" id="${c.toolCallId}">`);
333
- 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));
334
453
  parts.push(' </tool_call>');
335
454
  }
336
- else if (event.type === 'tool_result') {
337
- const c = event.content;
338
- parts.push(` <tool_result id="${c.toolCallId}">`);
339
- 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));
340
458
  parts.push(' </tool_result>');
341
459
  }
342
- else if (event.type === 'steering') {
343
- const c = event.content;
344
- parts.push(` <human_steering source="${c.source}" author="${c.author}">`);
345
- 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);
346
463
  parts.push(' </human_steering>');
347
464
  }
348
465
  }
@@ -375,6 +492,9 @@ export class ClaudeProvider {
375
492
  }
376
493
  /**
377
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.
378
498
  */
379
499
  _isAuthError(message) {
380
500
  const authPatterns = [
@@ -417,8 +537,9 @@ export class ClaudeProvider {
417
537
  get lastAuthStatus() {
418
538
  return this._lastAuthStatus;
419
539
  }
420
- get lastQuotaStatus() {
421
- return this._lastQuotaStatus;
540
+ /** Expose circuit breaker for external inspection / testing */
541
+ get circuitBreaker() {
542
+ return this._circuitBreaker;
422
543
  }
423
544
  getUsage() {
424
545
  return {
@@ -435,18 +556,12 @@ export class ClaudeProvider {
435
556
  setAuthStatus(status) {
436
557
  this._lastAuthStatus = status;
437
558
  }
438
- /**
439
- * Force-set quota status (used by orchestrator on external quota events).
440
- */
441
- setQuotaStatus(status) {
442
- this._lastQuotaStatus = status;
443
- }
444
559
  /**
445
560
  * Reset cached status (used after auth recovery).
446
561
  */
447
562
  resetStatus() {
448
563
  this._lastAuthStatus = null;
449
- this._lastQuotaStatus = null;
564
+ this._circuitBreaker.reset();
450
565
  }
451
566
  }
452
567
  //# sourceMappingURL=claude-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-provider.js","sourceRoot":"","sources":["../../src/providers/claude-provider.ts"],"names":[],"mappings":"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"}
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"}