@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.
- package/README.md +92 -30
- package/dist/child-host/child-host.d.ts +60 -0
- package/dist/child-host/child-host.d.ts.map +1 -0
- package/dist/child-host/child-host.js +84 -0
- package/dist/child-host/child-host.js.map +1 -0
- package/dist/child-host/command.d.ts +11 -0
- package/dist/child-host/command.d.ts.map +1 -0
- package/dist/child-host/command.js +26 -0
- package/dist/child-host/command.js.map +1 -0
- package/dist/pi/authentication.d.ts +11 -2
- package/dist/pi/authentication.d.ts.map +1 -1
- package/dist/pi/authentication.js +15 -2
- package/dist/pi/authentication.js.map +1 -1
- package/dist/pi/children.d.ts +1 -4
- package/dist/pi/children.d.ts.map +1 -1
- package/dist/pi/children.js +1 -4
- package/dist/pi/children.js.map +1 -1
- package/dist/pi/claude.d.ts +8 -9
- package/dist/pi/claude.d.ts.map +1 -1
- package/dist/pi/claude.js +366 -50
- package/dist/pi/claude.js.map +1 -1
- package/dist/pi/codex/account.d.ts +3 -3
- package/dist/pi/codex/account.d.ts.map +1 -1
- package/dist/pi/codex/account.js +5 -5
- package/dist/pi/codex/account.js.map +1 -1
- package/dist/pi/codex/app-server.d.ts +19 -7
- package/dist/pi/codex/app-server.d.ts.map +1 -1
- package/dist/pi/codex/app-server.js +41 -36
- package/dist/pi/codex/app-server.js.map +1 -1
- package/dist/pi/codex/codec.d.ts +35 -13
- package/dist/pi/codex/codec.d.ts.map +1 -1
- package/dist/pi/codex/codec.js +42 -15
- package/dist/pi/codex/codec.js.map +1 -1
- package/dist/pi/codex/codex.d.ts +0 -1
- package/dist/pi/codex/codex.d.ts.map +1 -1
- package/dist/pi/codex/codex.js +75 -14
- package/dist/pi/codex/codex.js.map +1 -1
- package/dist/pi/conversation.d.ts +29 -12
- package/dist/pi/conversation.d.ts.map +1 -1
- package/dist/pi/conversation.js +54 -18
- package/dist/pi/conversation.js.map +1 -1
- package/dist/pi/pi.d.ts +1 -4
- package/dist/pi/pi.d.ts.map +1 -1
- package/dist/pi/pi.js +24 -175
- package/dist/pi/pi.js.map +1 -1
- package/dist/pi/sdk.d.ts +11 -15
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +35 -53
- package/dist/pi/sdk.js.map +1 -1
- package/dist/pi/session.d.ts +13 -14
- package/dist/pi/session.d.ts.map +1 -1
- package/dist/pi/session.js +63 -24
- package/dist/pi/session.js.map +1 -1
- package/dist/pi/turns.d.ts +7 -7
- package/dist/pi/turns.d.ts.map +1 -1
- package/dist/pi/turns.js +22 -9
- package/dist/pi/turns.js.map +1 -1
- package/dist/pi/usage.d.ts +29 -15
- package/dist/pi/usage.d.ts.map +1 -1
- package/dist/pi/usage.js +48 -24
- package/dist/pi/usage.js.map +1 -1
- package/dist/preflight/command.d.ts +16 -3
- package/dist/preflight/command.d.ts.map +1 -1
- package/dist/preflight/command.js +30 -17
- package/dist/preflight/command.js.map +1 -1
- package/dist/preflight/preflight.d.ts +10 -5
- package/dist/preflight/preflight.d.ts.map +1 -1
- package/dist/preflight/preflight.js +52 -25
- package/dist/preflight/preflight.js.map +1 -1
- package/dist/prompt.d.ts +12 -9
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +33 -4
- package/dist/prompt.js.map +1 -1
- package/dist/protocol/codex.d.ts +4 -7
- package/dist/protocol/codex.d.ts.map +1 -1
- package/dist/protocol/codex.js +1 -1
- package/dist/protocol/codex.js.map +1 -1
- package/dist/runtime.d.ts +100 -55
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +108 -27
- package/dist/runtime.js.map +1 -1
- package/package.json +22 -10
- package/dist/pi/live.d.ts +0 -4
- package/dist/pi/live.d.ts.map +0 -1
- package/dist/pi/live.js +0 -11
- package/dist/pi/live.js.map +0 -1
- package/dist/pi/subagents.d.ts +0 -29
- package/dist/pi/subagents.d.ts.map +0 -1
- package/dist/pi/subagents.js +0 -120
- package/dist/pi/subagents.js.map +0 -1
- package/dist/pi/thinking.d.ts +0 -8
- package/dist/pi/thinking.d.ts.map +0 -1
- package/dist/pi/thinking.js +0 -15
- 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
|
-
/**
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
|
87
|
-
//
|
|
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
|
-
//
|
|
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 =
|
|
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
|
-
|
|
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, "
|
|
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
|
-
|
|
227
|
-
|
|
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
|
-
|
|
230
|
-
|
|
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
|
|
249
|
-
if (Option.isSome(
|
|
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
|
-
|
|
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, "
|
|
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, "
|
|
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
|
-
/**
|
|
614
|
+
/** Provides `ChildBackend` with Claude Code for every delegated task. */
|
|
299
615
|
export const claudeChildLayer = Layer.effect(ChildBackend, makeClaudeChild);
|
|
300
|
-
/** Provides
|
|
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
|
package/dist/pi/claude.js.map
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|