@usine/agents 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +92 -30
  2. package/dist/child-host/child-host.d.ts +60 -0
  3. package/dist/child-host/child-host.d.ts.map +1 -0
  4. package/dist/child-host/child-host.js +84 -0
  5. package/dist/child-host/child-host.js.map +1 -0
  6. package/dist/child-host/command.d.ts +11 -0
  7. package/dist/child-host/command.d.ts.map +1 -0
  8. package/dist/child-host/command.js +26 -0
  9. package/dist/child-host/command.js.map +1 -0
  10. package/dist/pi/authentication.d.ts +11 -2
  11. package/dist/pi/authentication.d.ts.map +1 -1
  12. package/dist/pi/authentication.js +15 -2
  13. package/dist/pi/authentication.js.map +1 -1
  14. package/dist/pi/children.d.ts +1 -4
  15. package/dist/pi/children.d.ts.map +1 -1
  16. package/dist/pi/children.js +1 -4
  17. package/dist/pi/children.js.map +1 -1
  18. package/dist/pi/claude.d.ts +8 -9
  19. package/dist/pi/claude.d.ts.map +1 -1
  20. package/dist/pi/claude.js +366 -50
  21. package/dist/pi/claude.js.map +1 -1
  22. package/dist/pi/codex/account.d.ts +3 -3
  23. package/dist/pi/codex/account.d.ts.map +1 -1
  24. package/dist/pi/codex/account.js +5 -5
  25. package/dist/pi/codex/account.js.map +1 -1
  26. package/dist/pi/codex/app-server.d.ts +19 -7
  27. package/dist/pi/codex/app-server.d.ts.map +1 -1
  28. package/dist/pi/codex/app-server.js +41 -36
  29. package/dist/pi/codex/app-server.js.map +1 -1
  30. package/dist/pi/codex/codec.d.ts +35 -13
  31. package/dist/pi/codex/codec.d.ts.map +1 -1
  32. package/dist/pi/codex/codec.js +42 -15
  33. package/dist/pi/codex/codec.js.map +1 -1
  34. package/dist/pi/codex/codex.d.ts +0 -1
  35. package/dist/pi/codex/codex.d.ts.map +1 -1
  36. package/dist/pi/codex/codex.js +75 -14
  37. package/dist/pi/codex/codex.js.map +1 -1
  38. package/dist/pi/conversation.d.ts +29 -12
  39. package/dist/pi/conversation.d.ts.map +1 -1
  40. package/dist/pi/conversation.js +54 -18
  41. package/dist/pi/conversation.js.map +1 -1
  42. package/dist/pi/pi.d.ts +1 -4
  43. package/dist/pi/pi.d.ts.map +1 -1
  44. package/dist/pi/pi.js +24 -175
  45. package/dist/pi/pi.js.map +1 -1
  46. package/dist/pi/sdk.d.ts +11 -15
  47. package/dist/pi/sdk.d.ts.map +1 -1
  48. package/dist/pi/sdk.js +35 -53
  49. package/dist/pi/sdk.js.map +1 -1
  50. package/dist/pi/session.d.ts +13 -14
  51. package/dist/pi/session.d.ts.map +1 -1
  52. package/dist/pi/session.js +63 -24
  53. package/dist/pi/session.js.map +1 -1
  54. package/dist/pi/turns.d.ts +7 -7
  55. package/dist/pi/turns.d.ts.map +1 -1
  56. package/dist/pi/turns.js +22 -9
  57. package/dist/pi/turns.js.map +1 -1
  58. package/dist/pi/usage.d.ts +29 -15
  59. package/dist/pi/usage.d.ts.map +1 -1
  60. package/dist/pi/usage.js +48 -24
  61. package/dist/pi/usage.js.map +1 -1
  62. package/dist/preflight/command.d.ts +16 -3
  63. package/dist/preflight/command.d.ts.map +1 -1
  64. package/dist/preflight/command.js +30 -17
  65. package/dist/preflight/command.js.map +1 -1
  66. package/dist/preflight/preflight.d.ts +10 -5
  67. package/dist/preflight/preflight.d.ts.map +1 -1
  68. package/dist/preflight/preflight.js +52 -25
  69. package/dist/preflight/preflight.js.map +1 -1
  70. package/dist/prompt.d.ts +12 -9
  71. package/dist/prompt.d.ts.map +1 -1
  72. package/dist/prompt.js +33 -4
  73. package/dist/prompt.js.map +1 -1
  74. package/dist/protocol/codex.d.ts +4 -7
  75. package/dist/protocol/codex.d.ts.map +1 -1
  76. package/dist/protocol/codex.js +1 -1
  77. package/dist/protocol/codex.js.map +1 -1
  78. package/dist/runtime.d.ts +100 -55
  79. package/dist/runtime.d.ts.map +1 -1
  80. package/dist/runtime.js +108 -27
  81. package/dist/runtime.js.map +1 -1
  82. package/package.json +22 -10
  83. package/dist/pi/live.d.ts +0 -4
  84. package/dist/pi/live.d.ts.map +0 -1
  85. package/dist/pi/live.js +0 -11
  86. package/dist/pi/live.js.map +0 -1
  87. package/dist/pi/subagents.d.ts +0 -29
  88. package/dist/pi/subagents.d.ts.map +0 -1
  89. package/dist/pi/subagents.js +0 -120
  90. package/dist/pi/subagents.js.map +0 -1
  91. package/dist/pi/thinking.d.ts +0 -8
  92. package/dist/pi/thinking.d.ts.map +0 -1
  93. package/dist/pi/thinking.js +0 -15
  94. package/dist/pi/thinking.js.map +0 -1
package/dist/pi/claude.js CHANGED
@@ -1,17 +1,18 @@
1
1
  import { query as openClaudeQuery, } from "@anthropic-ai/claude-agent-sdk";
2
+ import { spawn } from "node:child_process";
2
3
  import { ModelId } from "@usine/core/agent/brain";
3
- import { AgentSessionEvent, ChildSession, HarnessSession, HarnessSessionId, SessionStarted, SessionTokensUpdated, TextOutput, ToolFinished, ToolStarted, } from "@usine/core/agent/session";
4
- import { Context, Deferred, Effect, Fiber, Layer, Option, Ref, Schema, Stream } from "effect";
5
- import { AgentResultError, ClaudeChildBackend, ChildBackend, SessionOperationError, UnknownModelError, } from "../runtime.js";
4
+ import { AgentSessionEvent, ChildSession, HarnessSession, HarnessSessionId, ProviderRecovered, ProviderRetries, ProviderRetrying, SessionStarted, SessionTokensUpdated, TextOutput, ToolFinished, ToolStarted, } from "@usine/core/agent/session";
5
+ import { Context, Deferred, Duration, Effect, Exit, Fiber, Layer, Option, Queue, Ref, Result, Schema, Scope, Stream, } from "effect";
6
+ import { AgentResultError, ClaudeChildBackend, ClaudeLoginLock, ChildBackend, SessionOperationError, UnknownModelError, } from "../runtime.js";
7
+ import { childPidFile, sshArguments } from "../child-host/child-host.js";
6
8
  import { sessionChannel } from "./session.js";
7
9
  import { sessionConversation } from "./conversation.js";
8
10
  import { claudeTokenMeter } from "./usage.js";
9
- /** Opens Claude Code sessions with the supplied task input and session settings. */
11
+ /** The service that opens Claude Code sessions. */
10
12
  export class ClaudeSdk extends Context.Service()("@usine/agents/pi/ClaudeSdk") {
11
13
  }
12
14
  const decodeVendorMessage = Schema.decodeUnknownSync(Schema.fromJsonString(Schema.Json));
13
15
  const vendorMessageJson = (message) => decodeVendorMessage(JSON.stringify(message));
14
- /** Provides Claude Code's session creation and model discovery. */
15
16
  export const claudeSdkLive = Layer.succeed(ClaudeSdk)({
16
17
  open: (input, options) => {
17
18
  // SAFETY: ClaudeUserMessage is the streaming-input subset of SDKUserMessage.
@@ -73,20 +74,46 @@ const operationError = (operation, request, message, cause) => new SessionOperat
73
74
  message,
74
75
  cause,
75
76
  });
76
- const optionsFor = (request) => {
77
+ /**
78
+ * Returns a spawner that runs Claude Code on the remote host as one SSH command, with the SDK's
79
+ * command, arguments, working directory, and environment in the remote command line. The abort
80
+ * signal stops the SSH client.
81
+ */
82
+ const sshSpawner = (host, pidFile, onStderr) => (options) => {
83
+ const child = spawn(host.ssh.command, sshArguments(host, {
84
+ cwd: options.cwd,
85
+ environment: options.env,
86
+ pidFile,
87
+ command: options.command,
88
+ args: options.args,
89
+ }), {
90
+ env: { ...host.sshEnvironment },
91
+ signal: options.signal,
92
+ stdio: ["pipe", "pipe", "pipe"],
93
+ windowsHide: true,
94
+ });
95
+ child.stderr.setEncoding("utf8").on("data", onStderr);
96
+ return child;
97
+ };
98
+ const optionsFor = (request, onStderr) => {
77
99
  const effort = request.session.brain.effort;
78
100
  const shared = {
79
101
  allowDangerouslySkipPermissions: true,
80
102
  cwd: request.cwd,
103
+ // Replaces the subprocess environment instead of extending this process's.
104
+ env: { ...request.environment },
81
105
  model: request.session.brain.model,
82
- // Use the same worker-provisioned binary that readiness checks inspect.
106
+ // The Worker-provisioned binary that the readiness checks inspect.
83
107
  pathToClaudeCodeExecutable: "claude",
84
108
  permissionMode: "bypassPermissions",
85
109
  persistSession: true,
86
- // The worktree is repository-controlled input. Its project and local
87
- // settings (hooks, env) must not load into a child that runs with the App
88
- // credential, so only the worker user's settings apply.
110
+ // The worktree is untrusted, so its project and local settings (hooks, env) are not loaded into
111
+ // a child that has the App credential; only the Worker user's settings apply.
89
112
  settingSources: ["user"],
113
+ // On a local host, the SDK spawns the process itself.
114
+ ...(request.host._tag === "RemoteShell" && {
115
+ spawnClaudeCodeProcess: sshSpawner(request.host, childPidFile(request.cwd, request.session.id), onStderr),
116
+ }),
90
117
  };
91
118
  return effort === "off"
92
119
  ? { ...shared, thinking: { type: "disabled" } }
@@ -129,13 +156,100 @@ const ClaudeResultMessage = Schema.Struct({
129
156
  errors: Schema.optionalKey(Schema.Array(Schema.String)),
130
157
  queued_turn_count: Schema.optionalKey(Schema.Number),
131
158
  });
159
+ const ClaudeBackgroundTasks = Schema.Struct({
160
+ type: Schema.Literal("system"),
161
+ subtype: Schema.Literal("background_tasks_changed"),
162
+ tasks: Schema.Array(Schema.Struct({
163
+ task_id: Schema.NonEmptyString,
164
+ ambient: Schema.optionalKey(Schema.Boolean),
165
+ })),
166
+ });
167
+ const ClaudeSessionState = Schema.Struct({
168
+ type: Schema.Literal("system"),
169
+ subtype: Schema.Literal("session_state_changed"),
170
+ state: Schema.Literals(["idle", "running", "requires_action"]),
171
+ });
172
+ const ClaudeCompletionHeader = Schema.Struct({
173
+ type: Schema.Literal("system"),
174
+ subtype: Schema.Literals(["background_tasks_changed", "session_state_changed"]),
175
+ });
176
+ const decodeCompletionUpdate = Schema.decodeUnknownEffect(Schema.Union([ClaudeBackgroundTasks, ClaudeSessionState]));
177
+ /** Claude Code's report of a failed API request that it retries; a `null` status means no response was received. */
178
+ const ClaudeApiRetry = Schema.Struct({
179
+ type: Schema.Literal("system"),
180
+ subtype: Schema.Literal("api_retry"),
181
+ attempt: Schema.Number,
182
+ max_retries: Schema.Number,
183
+ retry_delay_ms: Schema.Number,
184
+ error_status: Schema.NullOr(Schema.Number),
185
+ error: Schema.String,
186
+ });
187
+ const decodeApiRetry = Schema.decodeUnknownOption(ClaudeApiRetry);
188
+ const isAssistantMessage = Schema.is(Schema.Struct({ type: Schema.Literal("assistant") }));
189
+ /** Returns an API retry's fields as one sentence, because Claude Code includes no message. */
190
+ const apiRetryMessage = (retry) => {
191
+ const failure = retry.error_status === null ? "without a response" : `with HTTP ${retry.error_status}`;
192
+ const delay = retry.retry_delay_ms < 1_000
193
+ ? `${retry.retry_delay_ms}ms`
194
+ : `${Math.round(retry.retry_delay_ms / 1_000)}s`;
195
+ return `API request failed ${failure} (${retry.error}); retry ${retry.attempt} of ${retry.max_retries} in ${delay}`;
196
+ };
197
+ /**
198
+ * The text Claude Code ends a turn with if another Claude process has the login refresh lock, or
199
+ * exited while it had the lock.
200
+ */
201
+ const LOGIN_CONTENDED = "Failed to refresh OAuth token: another Claude Code process";
202
+ /**
203
+ * The delays before each relaunch after a Claude process loses the login refresh lock; Claude's
204
+ * error says to retry in a minute. If the last launch fails the same way, the parent gets the error
205
+ * (#453).
206
+ */
207
+ const LOGIN_RETRY_DELAYS = [
208
+ Duration.seconds(15),
209
+ Duration.seconds(30),
210
+ Duration.seconds(60),
211
+ ];
212
+ /**
213
+ * The maximum time a launch keeps the Worker's Claude login lock while waiting for a message that
214
+ * decides the login state. If no such message arrives, the launch continues as a started session.
215
+ */
216
+ const LOGIN_WINDOW = Duration.seconds(60);
217
+ /** Messages that arrive only after an API request was sent with a working login. */
218
+ const ClaudeLoginEvidence = Schema.Union([
219
+ Schema.Struct({ type: Schema.Literals(["rate_limit_event", "stream_event"]) }),
220
+ Schema.Struct({
221
+ type: Schema.Literal("system"),
222
+ subtype: Schema.Literals(["api_retry", "thinking_tokens"]),
223
+ }),
224
+ ]);
225
+ const mentionsLoginContention = (text) => text.includes(LOGIN_CONTENDED);
226
+ /**
227
+ * Returns the login state shown by one of a launch's first messages. `init` and other session
228
+ * notices can arrive before the first API request, where Claude refreshes an expired login, so they
229
+ * return `waiting`. A model answer, rate-limit or thinking update, API retry, or result returns
230
+ * `loggedIn`, except a result with the refresh lock error and no tokens used, which returns
231
+ * `contended`. The synthetic answer with the same error returns `waiting` until that result.
232
+ */
233
+ const loginCheck = (message, spentTokens) => {
234
+ if (Schema.is(ClaudeResultMessage)(message)) {
235
+ const reported = [
236
+ ...(message.result === undefined ? [] : [message.result]),
237
+ ...(message.errors ?? []),
238
+ ];
239
+ return !spentTokens && reported.some(mentionsLoginContention) ? "contended" : "loggedIn";
240
+ }
241
+ if (Schema.is(ClaudeContentMessage)(message) && message.type === "assistant") {
242
+ const contended = message.message.content.some((block) => Schema.is(ClaudeTextBlock)(block) && mentionsLoginContention(block.text));
243
+ return contended && !spentTokens ? "waiting" : "loggedIn";
244
+ }
245
+ return Schema.is(ClaudeLoginEvidence)(message) ? "loggedIn" : "waiting";
246
+ };
132
247
  const sessionEventsFrom = (message, session, tools) => {
133
248
  if (!Schema.is(ClaudeContentMessage)(message))
134
249
  return [];
135
250
  const events = [];
136
251
  for (const block of message.message.content) {
137
- // Emit each text block from a completed assistant message; streaming deltas
138
- // do not enter the transcript.
252
+ // Emits only text blocks of completed assistant messages; streaming deltas are not recorded.
139
253
  if (message.type === "assistant" && Schema.is(ClaudeTextBlock)(block)) {
140
254
  events.push(new TextOutput({ session, text: block.text }));
141
255
  }
@@ -162,6 +276,126 @@ const sessionEventsFrom = (message, session, tools) => {
162
276
  };
163
277
  const makeClaudeChild = Effect.gen(function* () {
164
278
  const sdk = yield* ClaudeSdk;
279
+ const logins = yield* ClaudeLoginLock;
280
+ /**
281
+ * Acquires the request Worker's login lock in a fiber of the current scope and returns an effect
282
+ * that releases it. The lock is also released after `LOGIN_WINDOW`, so a hung launch does not
283
+ * block other Claude launches and preflights on the Worker.
284
+ */
285
+ const holdLogin = Effect.fn("ClaudeChildBackend.holdLogin")(function* (request) {
286
+ yield* Effect.annotateCurrentSpan({ sessionId: request.session.id, worker: request.worker });
287
+ const held = yield* Deferred.make();
288
+ const released = yield* Deferred.make();
289
+ yield* Effect.forkScoped(logins.withLock(request.worker)(Deferred.succeed(held, undefined).pipe(Effect.andThen(Deferred.await(released)), Effect.timeoutOption(LOGIN_WINDOW), Effect.flatMap(Option.match({
290
+ onSome: () => Effect.void,
291
+ onNone: () => Effect.logWarning("Claude child showed no sign of its login in time; releasing the Worker's Claude login lock", { sessionId: request.session.id, worker: request.worker }),
292
+ })))));
293
+ yield* Deferred.await(held);
294
+ yield* Effect.logDebug("Holding the Worker's Claude login lock to launch the child", {
295
+ sessionId: request.session.id,
296
+ worker: request.worker,
297
+ });
298
+ return Deferred.succeed(released, undefined).pipe(Effect.asVoid);
299
+ });
300
+ /** Reads messages from `output` into `read` until one decides the login state. */
301
+ const checkLogin = Effect.fn("ClaudeChildBackend.checkLogin")(function* (output, read) {
302
+ const tokens = claudeTokenMeter();
303
+ let spentTokens = false;
304
+ for (;;) {
305
+ const next = yield* Effect.result(Queue.take(output));
306
+ // The session reports a closed or failed output itself.
307
+ if (Result.isFailure(next))
308
+ return "undecided";
309
+ read.push(next.success);
310
+ spentTokens ||= Option.exists(tokens(next.success), ({ totalTokens }) => totalTokens > 0);
311
+ const check = loginCheck(next.success, spentTokens);
312
+ if (check !== "waiting")
313
+ return check;
314
+ }
315
+ });
316
+ /**
317
+ * Launches Claude Code once for `request` and sends the task, keeping the Worker's login lock until
318
+ * the first messages decide the login state. Resources are added to the current scope.
319
+ */
320
+ const launchOnce = Effect.fn("ClaudeChildBackend.launchOnce")(function* (request, options) {
321
+ yield* Effect.annotateCurrentSpan({ sessionId: request.session.id, worker: request.worker });
322
+ const release = yield* holdLogin(request);
323
+ return yield* Effect.gen(function* () {
324
+ const input = new AsyncInput();
325
+ const query = sdk.open(input, options);
326
+ const output = yield* Queue.make();
327
+ yield* Effect.forkScoped(Stream.fromAsyncIterable(query, (cause) => operationError("stream", request, "Claude output stream failed", cause)).pipe(Stream.runIntoQueue(output)));
328
+ // Finalizers run newest first, so this closes the query before the scope stops the output
329
+ // reader. Stopping the reader waits for its pending read, and when Claude keeps a session
330
+ // open after a failed turn, only closing the query ends that read.
331
+ yield* Effect.addFinalizer(() => Effect.sync(() => {
332
+ input.end();
333
+ query.close();
334
+ }));
335
+ const models = yield* Effect.tryPromise({
336
+ try: () => query.supportedModels(),
337
+ catch: (cause) => operationError("launch", request, "Claude model discovery failed", cause),
338
+ });
339
+ if (!modelExists(models, request.session.brain.model)) {
340
+ yield* Effect.logError("Claude child rejected an unknown model");
341
+ return yield* new UnknownModelError({
342
+ harness: "claude",
343
+ model: request.session.brain.model,
344
+ message: `Claude has no model "${request.session.brain.model}"`,
345
+ });
346
+ }
347
+ input.offer(userMessage(request.prompt));
348
+ const read = [];
349
+ const login = Option.getOrElse(yield* checkLogin(output, read).pipe(Effect.timeoutOption(LOGIN_WINDOW)), () => "undecided");
350
+ yield* Effect.logDebug("Claude child's first messages settled its login check", {
351
+ sessionId: request.session.id,
352
+ worker: request.worker,
353
+ login,
354
+ messages: read.length,
355
+ });
356
+ return { input, query, read, output, login };
357
+ }).pipe(Effect.ensuring(release));
358
+ });
359
+ /**
360
+ * Launches Claude Code for `request`, relaunching after each delay in `LOGIN_RETRY_DELAYS` while it
361
+ * fails on the login refresh lock. Each launch has its own scope inside `scope`, closed before the
362
+ * next, so a failed launch's process and messages do not reach the session.
363
+ */
364
+ const launchWithRetries = Effect.fn("ClaudeChildBackend.launchWithRetries")(function* (request, options, scope) {
365
+ yield* Effect.annotateCurrentSpan({ sessionId: request.session.id, worker: request.worker });
366
+ for (let retry = 0;; retry += 1) {
367
+ const launchScope = yield* Scope.fork(scope);
368
+ const opened = yield* launchOnce(request, options).pipe(Scope.provide(launchScope));
369
+ if (opened.login !== "contended") {
370
+ if (opened.login === "undecided")
371
+ yield* Effect.logInfo("Claude child started without showing whether its login worked", {
372
+ sessionId: request.session.id,
373
+ worker: request.worker,
374
+ });
375
+ return opened;
376
+ }
377
+ const delay = LOGIN_RETRY_DELAYS[retry];
378
+ if (delay === undefined) {
379
+ yield* Effect.logWarning("Claude child still could not refresh the Worker's Claude login; returning the error to the parent", {
380
+ sessionId: request.session.id,
381
+ parentSessionId: request.session.parentId,
382
+ worker: request.worker,
383
+ retries: retry,
384
+ });
385
+ return opened;
386
+ }
387
+ yield* Scope.close(launchScope, Exit.void);
388
+ yield* Effect.logInfo("Claude child could not refresh the Worker's Claude login; launching it again", {
389
+ sessionId: request.session.id,
390
+ parentSessionId: request.session.parentId,
391
+ worker: request.worker,
392
+ retry: retry + 1,
393
+ maxRetries: LOGIN_RETRY_DELAYS.length,
394
+ delay: Duration.format(delay),
395
+ });
396
+ yield* Effect.sleep(delay);
397
+ }
398
+ });
165
399
  const launch = Effect.fn("ClaudeChildBackend.launch")(function* (request) {
166
400
  yield* Effect.annotateCurrentSpan({
167
401
  agent: request.session.agent,
@@ -170,9 +404,9 @@ const makeClaudeChild = Effect.gen(function* () {
170
404
  model: request.session.brain.model,
171
405
  parentSessionId: request.session.parentId,
172
406
  sessionId: request.session.id,
407
+ worker: request.worker,
173
408
  });
174
409
  yield* Effect.logInfo("Launching Claude child session");
175
- const input = new AsyncInput();
176
410
  const context = yield* Effect.context();
177
411
  const scope = yield* Effect.scope;
178
412
  let boundary = Effect.void;
@@ -180,29 +414,18 @@ const makeClaudeChild = Effect.gen(function* () {
180
414
  await Effect.runPromiseWith(context)(Effect.acquireUseRelease(Effect.forkIn(Effect.suspend(() => boundary), scope), Fiber.join, Fiber.interrupt), { signal: options.signal });
181
415
  return {};
182
416
  };
183
- const query = sdk.open(input, {
184
- ...optionsFor(request),
417
+ const { input, query, read, output } = yield* launchWithRetries(request, {
418
+ ...optionsFor(request, (text) => {
419
+ Effect.runForkWith(context)(Effect.logDebug("Claude child stderr", {
420
+ sessionId: request.session.id,
421
+ text: text.trimEnd(),
422
+ }));
423
+ }),
185
424
  hooks: {
186
425
  PreToolUse: [{ hooks: [pauseAtBoundary], timeout: 86_400 }],
187
426
  PostToolUse: [{ hooks: [pauseAtBoundary], timeout: 86_400 }],
188
427
  },
189
- });
190
- yield* Effect.addFinalizer(() => Effect.sync(() => {
191
- input.end();
192
- query.close();
193
- }));
194
- const models = yield* Effect.tryPromise({
195
- try: () => query.supportedModels(),
196
- catch: (cause) => operationError("launch", request, "Claude model discovery failed", cause),
197
- });
198
- if (!modelExists(models, request.session.brain.model)) {
199
- yield* Effect.logError("Claude child rejected an unknown model");
200
- return yield* new UnknownModelError({
201
- harness: "claude",
202
- model: request.session.brain.model,
203
- message: `Claude does not expose model ${request.session.brain.model}`,
204
- });
205
- }
428
+ }, scope);
206
429
  const channel = yield* sessionChannel({
207
430
  label: "Claude child session",
208
431
  sessionId: request.session.id,
@@ -213,21 +436,93 @@ const makeClaudeChild = Effect.gen(function* () {
213
436
  const conversation = yield* sessionConversation({
214
437
  session: request.session,
215
438
  channel,
216
- send: (message) => Effect.try({
439
+ // A message sent during a turn is queued until a tool call returns or the turn ends.
440
+ send: (message, activity) => Effect.try({
217
441
  try: () => input.offer(userMessage(message)),
218
- catch: (cause) => operationError("steer", request, "Could not send a message to Claude", cause),
219
- }),
442
+ catch: (cause) => operationError("steer", request, "Can't send a message to Claude", cause),
443
+ }).pipe(Effect.as(activity === "idle" ? "read" : "queued")),
220
444
  pause: Effect.void,
221
445
  beforeFinish: Effect.void,
222
446
  });
223
447
  boundary = conversation.awaitUnpaused;
224
448
  const tools = new Map();
225
449
  const tokens = claudeTokenMeter();
226
- // Claude repeats its `init` message ahead of every turn; only the first
227
- // one is the launch record, and its session id stays constant.
450
+ let backgroundTasks = [];
451
+ let reportsSessionState = false;
452
+ let completedTurn = Option.none();
453
+ // Claude sends `init` with one session ID before each turn; the first is the launch record.
228
454
  const launched = yield* Ref.make(false);
229
- input.offer(userMessage(request.prompt));
230
- const consume = Stream.fromAsyncIterable(query, (cause) => operationError("stream", request, "Claude output stream failed", cause)).pipe(Stream.runForEach((message) => Effect.gen(function* () {
455
+ // API retries reported in the current turn, and whether the last retry is unresolved.
456
+ let retries = 0;
457
+ let retrying = false;
458
+ const reportRetry = Effect.fn("ClaudeChildBackend.reportRetry")(function* (retry) {
459
+ yield* Effect.annotateCurrentSpan({ sessionId: request.session.id });
460
+ retries += 1;
461
+ retrying = true;
462
+ const message = apiRetryMessage(retry);
463
+ yield* Effect.logWarning("Claude child cannot reach its provider and will retry", {
464
+ sessionId: request.session.id,
465
+ retries,
466
+ message,
467
+ status: retry.error_status,
468
+ error: retry.error,
469
+ });
470
+ yield* channel.emit(new ProviderRetrying({
471
+ session: request.session,
472
+ message,
473
+ retries: ProviderRetries.make(retries),
474
+ }));
475
+ });
476
+ const reportRecovery = Effect.fn("ClaudeChildBackend.reportRecovery")(function* () {
477
+ yield* Effect.annotateCurrentSpan({ sessionId: request.session.id });
478
+ retrying = false;
479
+ yield* Effect.logInfo("Claude child reached its provider again", {
480
+ sessionId: request.session.id,
481
+ retries,
482
+ });
483
+ yield* channel.emit(new ProviderRecovered({
484
+ session: request.session,
485
+ retries: ProviderRetries.make(retries),
486
+ }));
487
+ });
488
+ const consume = Stream.concat(Stream.fromIterable(read), Stream.fromQueue(output)).pipe(Stream.runForEach((message) => Effect.gen(function* () {
489
+ const retry = decodeApiRetry(message);
490
+ if (Option.isSome(retry))
491
+ return yield* reportRetry(retry.value);
492
+ if (retrying && isAssistantMessage(message))
493
+ yield* reportRecovery();
494
+ if (Schema.is(ClaudeCompletionHeader)(message)) {
495
+ const update = yield* decodeCompletionUpdate(message).pipe(Effect.mapError((cause) => operationError("stream", request, "Claude returned an invalid completion update", cause)));
496
+ if (update.subtype === "background_tasks_changed") {
497
+ // Each update replaces the whole task snapshot. Ambient watchers are excluded
498
+ // because they are not work for the parent.
499
+ backgroundTasks = update.tasks
500
+ .filter((task) => task.ambient !== true)
501
+ .map((task) => task.task_id);
502
+ yield* Effect.logInfo("Claude background work changed", {
503
+ sessionId: request.session.id,
504
+ backgroundTaskIds: backgroundTasks,
505
+ });
506
+ }
507
+ else {
508
+ reportsSessionState = true;
509
+ const candidate = completedTurn;
510
+ completedTurn = Option.none();
511
+ // The SDK reports idle after the result flush and the background-notification loop.
512
+ // An empty task snapshot alone does not finish the session, and a waiting turn's
513
+ // answer is not reused before the notification has run.
514
+ if (update.state === "idle" && Option.isSome(candidate)) {
515
+ if (backgroundTasks.length === 0)
516
+ yield* conversation.finish(candidate.value);
517
+ else
518
+ yield* Effect.logInfo("Claude child is waiting for background work", {
519
+ sessionId: request.session.id,
520
+ backgroundTaskIds: backgroundTasks,
521
+ });
522
+ }
523
+ }
524
+ return;
525
+ }
231
526
  const init = decodeClaudeInit(message);
232
527
  if (Option.isSome(init) && !(yield* Ref.getAndSet(launched, true))) {
233
528
  const harnessSession = new HarnessSession({
@@ -245,17 +540,17 @@ const makeClaudeChild = Effect.gen(function* () {
245
540
  cwd: harnessSession.cwd,
246
541
  });
247
542
  }
248
- const totalTokens = tokens(message);
249
- if (Option.isSome(totalTokens))
250
- yield* channel.emit(new SessionTokensUpdated({
251
- session: request.session,
252
- totalTokens: totalTokens.value,
253
- }));
543
+ const usage = tokens(message);
544
+ if (Option.isSome(usage))
545
+ yield* channel.emit(new SessionTokensUpdated({ session: request.session, ...usage.value }));
254
546
  for (const event of sessionEventsFrom(message, request.session, tools)) {
255
547
  yield* channel.emit(event);
256
548
  }
257
549
  if (!Schema.is(ClaudeResultMessage)(message))
258
550
  return;
551
+ completedTurn = Option.none();
552
+ retries = 0;
553
+ retrying = false;
259
554
  if (message.subtype !== "success" || message.result === undefined) {
260
555
  const detail = message.errors?.join("; ") ?? "Claude returned an unsuccessful result";
261
556
  yield* channel.fail(new AgentResultError({
@@ -264,10 +559,31 @@ const makeClaudeChild = Effect.gen(function* () {
264
559
  }));
265
560
  return;
266
561
  }
562
+ const stillQueued = message.queued_turn_count;
563
+ // Claude has read every queued message except those still queued as separate turns.
564
+ if (stillQueued !== undefined)
565
+ yield* conversation.read((queued) => queued.length - stillQueued);
267
566
  if (message.queued_turn_count !== undefined && message.queued_turn_count > 0) {
567
+ yield* Effect.logInfo("Claude child has queued user turns", {
568
+ sessionId: request.session.id,
569
+ queuedTurns: message.queued_turn_count,
570
+ });
268
571
  return;
269
572
  }
270
- yield* conversation.finish(message.result.trim() || "Claude child session completed");
573
+ const answer = message.result.trim() || "Claude child session completed";
574
+ if (reportsSessionState) {
575
+ completedTurn = Option.some(answer);
576
+ }
577
+ else if (backgroundTasks.length > 0) {
578
+ yield* Effect.logInfo("Claude child is waiting for background work", {
579
+ sessionId: request.session.id,
580
+ backgroundTaskIds: backgroundTasks,
581
+ });
582
+ }
583
+ else {
584
+ // Older Claude Code versions on Workers do not send session-state messages.
585
+ yield* conversation.finish(answer);
586
+ }
271
587
  })), Effect.flatMap(() => channel.isTerminal.pipe(Effect.flatMap((done) => done
272
588
  ? Effect.void
273
589
  : channel.fail(operationError("stream", request, "Claude output closed without a result", new Error("unexpected end of output")))))), Effect.catch((error) => channel.fail(error)));
@@ -276,13 +592,13 @@ const makeClaudeChild = Effect.gen(function* () {
276
592
  sessionId: request.session.id,
277
593
  }).pipe(Effect.andThen(Effect.try({
278
594
  try: () => input.offer(userMessage(message)),
279
- catch: (cause) => operationError("steer", request, "Could not steer Claude", cause),
595
+ catch: (cause) => operationError("steer", request, "Can't steer Claude", cause),
280
596
  }))));
281
597
  const interrupt = Effect.logInfo("Interrupting Claude child session", {
282
598
  sessionId: request.session.id,
283
599
  }).pipe(Effect.andThen(Effect.tryPromise({
284
600
  try: () => query.interrupt(),
285
- catch: (cause) => operationError("interrupt", request, "Could not interrupt Claude", cause),
601
+ catch: (cause) => operationError("interrupt", request, "Can't interrupt Claude", cause),
286
602
  })), Effect.tap(() => Effect.sync(() => input.end())), Effect.asVoid);
287
603
  return {
288
604
  session: request.session,
@@ -295,8 +611,8 @@ const makeClaudeChild = Effect.gen(function* () {
295
611
  });
296
612
  return ChildBackend.of({ launch });
297
613
  });
298
- /** Uses Claude Code for every task delegated through `ChildBackend`. */
614
+ /** Provides `ChildBackend` with Claude Code for every delegated task. */
299
615
  export const claudeChildLayer = Layer.effect(ChildBackend, makeClaudeChild);
300
- /** Provides the Claude Code backend for direct use or harness-based dispatch. */
616
+ /** Provides `ClaudeChildBackend` for direct use or harness-based dispatch. */
301
617
  export const claudeChildBackendLayer = Layer.effect(ClaudeChildBackend, makeClaudeChild);
302
618
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/pi/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/pi/claude.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import type { ModelId } from "@usine/core/agent/brain";
2
2
  import { Effect } from "effect";
3
3
  import { PoolUnavailableError } from "../../runtime.ts";
4
4
  import type { CodexConnection } from "./app-server.ts";
5
- /** Negotiates the app-server connection before account inspection or child creation. */
5
+ /** Sends `initialize` and `initialized` to the app server; must run before account checks or creating a child. */
6
6
  export declare const initializeCodex: (connection: CodexConnection) => Effect.Effect<void, import("../../runtime.ts").SessionOperationError, never>;
7
- /** Operator-facing refusal when Codex cannot prove it uses the ChatGPT pool. */
7
+ /** Returns the error for when Codex cannot confirm that it uses the ChatGPT pool. */
8
8
  export declare const codexPoolUnavailable: (model: ModelId) => PoolUnavailableError;
9
- /** Refuses unknown, absent, or API-key authentication before any model request (ADR 0013). */
9
+ /** Verifies the Codex account before any model request. Fails with `PoolUnavailableError` for unknown, missing, or API-key authentication (ADR 0013). */
10
10
  export declare const verifyCodexAccount: (connection: CodexConnection, model: string & import("effect/Brand").Brand<"ModelId">) => Effect.Effect<"chatgptPlan", PoolUnavailableError | import("../../runtime.ts").SessionOperationError, never>;
11
11
  //# sourceMappingURL=account.d.ts.map