@exla/rudder 4.0.0-alpha.2 → 4.0.0-alpha.7
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/dist/brain.d.ts +7 -5
- package/dist/brain.js +32 -22
- package/dist/brain.js.map +1 -1
- package/dist/claude-sdk-protocol.d.ts +125 -0
- package/dist/claude-sdk-protocol.js +491 -0
- package/dist/claude-sdk-protocol.js.map +1 -0
- package/dist/claude-sdk.d.ts +28 -0
- package/dist/claude-sdk.js +425 -0
- package/dist/claude-sdk.js.map +1 -0
- package/dist/context-audit.js +1 -1
- package/dist/context-audit.js.map +1 -1
- package/dist/daemon.js +3 -0
- package/dist/daemon.js.map +1 -1
- package/dist/engine-authority.d.ts +5 -0
- package/dist/engine-authority.js +34 -0
- package/dist/engine-authority.js.map +1 -0
- package/dist/engine.d.ts +33 -0
- package/dist/engine.js +154 -0
- package/dist/engine.js.map +1 -0
- package/dist/fabric-local.d.ts +50 -0
- package/dist/fabric-local.js +339 -0
- package/dist/fabric-local.js.map +1 -0
- package/dist/fabric-remote.d.ts +92 -0
- package/dist/fabric-remote.js +402 -0
- package/dist/fabric-remote.js.map +1 -0
- package/dist/main.js +27 -1
- package/dist/main.js.map +1 -1
- package/dist/native/darwin-arm64/rudder-native +0 -0
- package/dist/native/darwin-x64/rudder-native +0 -0
- package/dist/native/linux-x64/rudder-native +0 -0
- package/dist/planner.js +1 -1
- package/dist/planner.js.map +1 -1
- package/dist/run-manager.js +11 -1
- package/dist/run-manager.js.map +1 -1
- package/dist/scheduler.js +3 -0
- package/dist/scheduler.js.map +1 -1
- package/dist/surfaces.d.ts +1 -1
- package/dist/surfaces.js +6 -7
- package/dist/surfaces.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/package.json +2 -1
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
/** Explicit managed Claude renderer + local control transport. Agent JSON stays
|
|
2
|
+
* on the child pipes; only rendered text reaches the engine-owned terminal. */
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import fs from "node:fs/promises";
|
|
5
|
+
import { constants } from "node:fs";
|
|
6
|
+
import http from "node:http";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import readline from "node:readline";
|
|
9
|
+
import { Transform } from "node:stream";
|
|
10
|
+
import { WebSocket, WebSocketServer } from "ws";
|
|
11
|
+
import { ClaudeSdkProtocol, SDK_FRAME_LIMIT, SDK_PROFILE, SDK_TEXT_LIMIT, SdkControlError, id, object, text } from "./claude-sdk-protocol.js";
|
|
12
|
+
export async function readClaudeSdkLaunch(file) {
|
|
13
|
+
const handle = await fs.open(file, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
14
|
+
try {
|
|
15
|
+
const stat = await handle.stat();
|
|
16
|
+
if (!stat.isFile() || stat.size > 256 * 1024 || stat.mode & 0o077 || process.getuid && stat.uid !== process.getuid())
|
|
17
|
+
throw new Error("Managed Claude launch must be a private regular file");
|
|
18
|
+
const raw = JSON.parse(await handle.readFile("utf8"));
|
|
19
|
+
const allowed = ["format_version", "run_id", "attempt_id", "socket_path", "claude_program", "claude_args", "initial_prompt"];
|
|
20
|
+
if (!object(raw) || Object.keys(raw).some((key) => !allowed.includes(key)) || raw.format_version !== 1 || !id(raw.run_id) || !id(raw.attempt_id)
|
|
21
|
+
|| typeof raw.socket_path !== "string" || !path.isAbsolute(raw.socket_path) || path.basename(raw.socket_path) !== "cx.sock" || Buffer.byteLength(raw.socket_path) >= 104
|
|
22
|
+
|| typeof raw.claude_program !== "string" || !raw.claude_program || raw.claude_program.includes("\0") || raw.claude_program.length > 4096
|
|
23
|
+
|| !Array.isArray(raw.claude_args) || raw.claude_args.length > 1024 || raw.claude_args.some((arg) => typeof arg !== "string" || arg.includes("\0"))
|
|
24
|
+
|| !(raw.initial_prompt === null || text(raw.initial_prompt)))
|
|
25
|
+
throw new Error("Invalid managed Claude launch");
|
|
26
|
+
const parent = await fs.lstat(path.dirname(raw.socket_path));
|
|
27
|
+
if (!parent.isDirectory() || parent.mode & 0o077 || process.getuid && parent.uid !== process.getuid())
|
|
28
|
+
throw new Error("Managed Claude socket directory must be private");
|
|
29
|
+
if (process.env.RUDDER_FABRIC_ATTEMPT_ID && process.env.RUDDER_FABRIC_ATTEMPT_ID !== raw.attempt_id)
|
|
30
|
+
throw new Error("Managed Claude launch has a stale attempt identity");
|
|
31
|
+
return raw;
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
await handle.close();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function claudeSdkArgv(original) {
|
|
38
|
+
const args = [];
|
|
39
|
+
for (let at = 0; at < original.length; at++) {
|
|
40
|
+
const arg = original[at];
|
|
41
|
+
if (["--dangerously-load-development-channels", "--channels", "--remote-control"].includes(arg))
|
|
42
|
+
throw new Error("This Claude launch requires the interactive profile");
|
|
43
|
+
if (["--input-format", "--output-format"].includes(arg)) {
|
|
44
|
+
if (!original[++at])
|
|
45
|
+
throw new Error("Missing Claude format option");
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (["-p", "--print", "--verbose", "--replay-user-messages", "--include-partial-messages"].includes(arg))
|
|
49
|
+
continue;
|
|
50
|
+
if (arg.startsWith("--input-format=") || arg.startsWith("--output-format="))
|
|
51
|
+
continue;
|
|
52
|
+
args.push(arg);
|
|
53
|
+
}
|
|
54
|
+
args.push("--print", "--input-format", "stream-json", "--output-format", "stream-json", "--verbose", "--replay-user-messages", "--include-partial-messages");
|
|
55
|
+
return args;
|
|
56
|
+
}
|
|
57
|
+
/** Identity comes from the engine's explicit CLI selection, never peer text.
|
|
58
|
+
* A fork without an explicit new id waits for the backend's own init event. */
|
|
59
|
+
export function selectedClaudeSdkSession(args) {
|
|
60
|
+
const selected = [], resumed = [];
|
|
61
|
+
for (let at = 0; at < args.length; at++) {
|
|
62
|
+
if (args[at] === "--session-id" || args[at] === "--resume" || args[at] === "-r") {
|
|
63
|
+
const flag = args[at], value = args[++at];
|
|
64
|
+
if (!id(value) || value.startsWith("-"))
|
|
65
|
+
throw new Error("Managed Claude needs an explicit session id");
|
|
66
|
+
(flag === "--session-id" ? selected : resumed).push(value);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (new Set(selected).size > 1 || new Set(resumed).size > 1)
|
|
70
|
+
throw new Error("Ambiguous managed Claude session selection");
|
|
71
|
+
if (args.includes("--fork-session"))
|
|
72
|
+
return selected[0] ?? null;
|
|
73
|
+
if (selected.length && resumed.length && selected[0] !== resumed[0])
|
|
74
|
+
throw new Error("Conflicting managed Claude session selection");
|
|
75
|
+
return selected[0] ?? resumed[0] ?? null;
|
|
76
|
+
}
|
|
77
|
+
/** Complete JSON frames are bounded before parsing, even without newlines. */
|
|
78
|
+
export class SdkJsonLines {
|
|
79
|
+
frame;
|
|
80
|
+
failed;
|
|
81
|
+
pending = Buffer.alloc(0);
|
|
82
|
+
constructor(frame, failed) {
|
|
83
|
+
this.frame = frame;
|
|
84
|
+
this.failed = failed;
|
|
85
|
+
}
|
|
86
|
+
broken = false;
|
|
87
|
+
push(chunk) {
|
|
88
|
+
if (this.broken)
|
|
89
|
+
return;
|
|
90
|
+
let start = 0;
|
|
91
|
+
while (start < chunk.length) {
|
|
92
|
+
const end = chunk.indexOf(10, start);
|
|
93
|
+
const part = chunk.subarray(start, end < 0 ? chunk.length : end);
|
|
94
|
+
if (this.pending.length + part.length > SDK_FRAME_LIMIT) {
|
|
95
|
+
this.fail(new Error("Claude JSON frame exceeds 1 MiB"));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.pending = Buffer.concat([this.pending, part]);
|
|
99
|
+
if (end < 0)
|
|
100
|
+
return;
|
|
101
|
+
this.consume();
|
|
102
|
+
if (this.broken)
|
|
103
|
+
return;
|
|
104
|
+
start = end + 1;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
end() { if (this.pending.length && !this.broken)
|
|
108
|
+
this.consume(); }
|
|
109
|
+
consume() {
|
|
110
|
+
const raw = this.pending;
|
|
111
|
+
this.pending = Buffer.alloc(0);
|
|
112
|
+
if (!raw.toString("utf8").trim())
|
|
113
|
+
return;
|
|
114
|
+
try {
|
|
115
|
+
this.frame(JSON.parse(raw.toString("utf8")));
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
this.fail(error instanceof Error ? error : new Error("Invalid Claude JSON"));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
fail(error) { this.broken = true; this.failed(error); }
|
|
122
|
+
}
|
|
123
|
+
function safeDisplay(value, limit = 8192) {
|
|
124
|
+
return String(value ?? "").slice(0, limit).replace(/[\x00-\x08\x0b-\x1f\x7f]/g, "");
|
|
125
|
+
}
|
|
126
|
+
class SdkRenderer {
|
|
127
|
+
output;
|
|
128
|
+
streamed = false;
|
|
129
|
+
constructor(output) {
|
|
130
|
+
this.output = output;
|
|
131
|
+
}
|
|
132
|
+
write(value) {
|
|
133
|
+
// A detached/slow surface cannot cause an unbounded Node stdout queue.
|
|
134
|
+
if ((this.output.writableLength ?? 0) < SDK_FRAME_LIMIT)
|
|
135
|
+
this.output.write(value);
|
|
136
|
+
}
|
|
137
|
+
notice(value) { this.write(`\n[rudder] ${safeDisplay(value)}\n`); }
|
|
138
|
+
frame(value) {
|
|
139
|
+
if (!object(value))
|
|
140
|
+
return;
|
|
141
|
+
if (value.type === "stream_event" && object(value.event) && object(value.event.delta) && value.event.delta.type === "text_delta") {
|
|
142
|
+
this.streamed = true;
|
|
143
|
+
this.write(safeDisplay(value.event.delta.text));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (value.type === "assistant" && object(value.message) && Array.isArray(value.message.content)) {
|
|
147
|
+
for (const block of value.message.content)
|
|
148
|
+
if (object(block)) {
|
|
149
|
+
if (block.type === "text" && !this.streamed)
|
|
150
|
+
this.write(`${safeDisplay(block.text)}\n`);
|
|
151
|
+
else if (block.type === "tool_use")
|
|
152
|
+
this.write(`\n[tool] ${safeDisplay(block.name, 128)}\n`);
|
|
153
|
+
}
|
|
154
|
+
this.streamed = false;
|
|
155
|
+
}
|
|
156
|
+
else if (value.type === "tool_progress")
|
|
157
|
+
this.write(`\n[tool] ${safeDisplay(value.tool_name, 128)} running\n`);
|
|
158
|
+
else if (value.type === "result") {
|
|
159
|
+
this.streamed = false;
|
|
160
|
+
if (value.terminal_reason === "aborted_streaming" || value.terminal_reason === "aborted_tools")
|
|
161
|
+
this.notice("Turn interrupted.");
|
|
162
|
+
else if (value.is_error === true)
|
|
163
|
+
this.notice(`Claude reported a failed turn: ${safeDisplay(Array.isArray(value.errors) ? value.errors.join("; ") : value.result, 2048)}`);
|
|
164
|
+
else if (value.num_turns === 0 && value.terminal_reason == null && typeof value.result === "string")
|
|
165
|
+
this.write(`${safeDisplay(value.result)}\n`);
|
|
166
|
+
else
|
|
167
|
+
this.write("\n");
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function boundedHumanInput(input, oversize, boundary) {
|
|
172
|
+
let count = 0, dropping = false, previousCR = false;
|
|
173
|
+
const guarded = new Transform({ transform(chunk, _encoding, callback) {
|
|
174
|
+
let begin = 0;
|
|
175
|
+
for (let at = 0; at < chunk.length; at++) {
|
|
176
|
+
if (chunk[at] === 10 || chunk[at] === 13 || chunk[at] === 3) {
|
|
177
|
+
if (!dropping)
|
|
178
|
+
this.push(chunk.subarray(begin, at));
|
|
179
|
+
if (chunk[at] !== 3 && !(chunk[at] === 10 && previousCR))
|
|
180
|
+
boundary(dropping);
|
|
181
|
+
previousCR = chunk[at] === 13;
|
|
182
|
+
this.push(chunk.subarray(at, at + 1));
|
|
183
|
+
begin = at + 1;
|
|
184
|
+
count = 0;
|
|
185
|
+
dropping = false;
|
|
186
|
+
}
|
|
187
|
+
else if (!dropping && ++count > SDK_TEXT_LIMIT) {
|
|
188
|
+
previousCR = false;
|
|
189
|
+
this.push(chunk.subarray(begin, at));
|
|
190
|
+
begin = at + 1;
|
|
191
|
+
dropping = true;
|
|
192
|
+
oversize();
|
|
193
|
+
}
|
|
194
|
+
else
|
|
195
|
+
previousCR = false;
|
|
196
|
+
}
|
|
197
|
+
if (!dropping)
|
|
198
|
+
this.push(chunk.subarray(begin));
|
|
199
|
+
callback();
|
|
200
|
+
} });
|
|
201
|
+
// readline retains the normal terminal editing/key behavior while the guard
|
|
202
|
+
// caps a pasted line before readline can accumulate it without a bound.
|
|
203
|
+
Object.assign(guarded, { isTTY: input.isTTY, setRawMode: input.setRawMode?.bind(input) });
|
|
204
|
+
input.pipe(guarded);
|
|
205
|
+
return guarded;
|
|
206
|
+
}
|
|
207
|
+
function rpcError(kind, message) {
|
|
208
|
+
return { code: kind === "unsupported" ? -32011 : -32010, message };
|
|
209
|
+
}
|
|
210
|
+
/** Hidden CLI: rudder __claude-sdk --launch-file <private JSON>. */
|
|
211
|
+
export async function runClaudeSdkBridge(args) {
|
|
212
|
+
if (args.length !== 2 || args[0] !== "--launch-file")
|
|
213
|
+
throw new Error("usage: rudder __claude-sdk --launch-file <path>");
|
|
214
|
+
const launch = await readClaudeSdkLaunch(args[1]);
|
|
215
|
+
const cwd = await fs.realpath(process.cwd());
|
|
216
|
+
const renderer = new SdkRenderer(process.stdout);
|
|
217
|
+
const peers = new Set();
|
|
218
|
+
let controller = null, closing = false, stopTimer = null;
|
|
219
|
+
const server = http.createServer((_request, response) => { response.writeHead(404); response.end(); });
|
|
220
|
+
const sockets = new WebSocketServer({ noServer: true, maxPayload: SDK_FRAME_LIMIT, perMessageDeflate: false });
|
|
221
|
+
const child = spawn(launch.claude_program, claudeSdkArgv(launch.claude_args), { cwd, env: process.env, stdio: ["pipe", "pipe", "pipe"] });
|
|
222
|
+
let childError = null, childExit = null;
|
|
223
|
+
const exited = new Promise((resolve) => {
|
|
224
|
+
child.once("error", (error) => { childError = error; resolve(); });
|
|
225
|
+
child.once("exit", (code) => { childExit = code; resolve(); });
|
|
226
|
+
});
|
|
227
|
+
const protocol = new ClaudeSdkProtocol(launch.run_id, launch.attempt_id, cwd, (frame) => {
|
|
228
|
+
if (!child.stdin.writable)
|
|
229
|
+
throw new Error("Claude stdin is closed");
|
|
230
|
+
const bytes = `${JSON.stringify(frame)}\n`;
|
|
231
|
+
if (Buffer.byteLength(bytes) > SDK_FRAME_LIMIT || child.stdin.writableLength > 2 * SDK_FRAME_LIMIT)
|
|
232
|
+
throw new Error("Claude stdin queue is full");
|
|
233
|
+
child.stdin.write(bytes, (error) => { if (error)
|
|
234
|
+
protocol.failTransport("Claude stdin write failed; do not replay"); });
|
|
235
|
+
}, (frame) => {
|
|
236
|
+
for (const peer of peers)
|
|
237
|
+
if (peer.readyState === WebSocket.OPEN) {
|
|
238
|
+
if (peer.bufferedAmount >= SDK_FRAME_LIMIT)
|
|
239
|
+
peer.close(1013, "Adapter observer fell behind");
|
|
240
|
+
else
|
|
241
|
+
peer.send(JSON.stringify(frame));
|
|
242
|
+
}
|
|
243
|
+
}, (message) => renderer.notice(message), 30_000, selectedClaudeSdkSession(launch.claude_args));
|
|
244
|
+
child.stdin.on("error", () => protocol.failTransport("Claude stdin transport closed"));
|
|
245
|
+
const parser = new SdkJsonLines((frame) => { protocol.ingest(frame); renderer.frame(frame); }, (error) => {
|
|
246
|
+
protocol.failTransport(error.message);
|
|
247
|
+
child.kill("SIGTERM");
|
|
248
|
+
});
|
|
249
|
+
child.stdout.on("data", (chunk) => parser.push(chunk));
|
|
250
|
+
child.stdout.on("end", () => parser.end());
|
|
251
|
+
child.stderr.on("data", (chunk) => renderer.notice(safeDisplay(chunk.toString("utf8"), 4096)));
|
|
252
|
+
server.on("upgrade", (request, socket, head) => {
|
|
253
|
+
if (request.headers.origin || controller || closing) {
|
|
254
|
+
socket.end("HTTP/1.1 403 Forbidden\r\nConnection: close\r\n\r\n");
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
sockets.handleUpgrade(request, socket, head, (peer) => sockets.emit("connection", peer));
|
|
258
|
+
});
|
|
259
|
+
sockets.on("connection", (peer) => {
|
|
260
|
+
controller = peer;
|
|
261
|
+
peers.add(peer);
|
|
262
|
+
let initialized = false, inFlight = 0;
|
|
263
|
+
peer.on("error", () => { });
|
|
264
|
+
peer.on("close", () => { peers.delete(peer); if (controller === peer)
|
|
265
|
+
controller = null; });
|
|
266
|
+
const reply = (value) => {
|
|
267
|
+
if (peer.readyState === WebSocket.OPEN) {
|
|
268
|
+
if (peer.bufferedAmount >= SDK_FRAME_LIMIT)
|
|
269
|
+
peer.close(1013, "Adapter observer fell behind");
|
|
270
|
+
else
|
|
271
|
+
peer.send(JSON.stringify(value));
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
peer.on("message", (data) => {
|
|
275
|
+
void (async () => {
|
|
276
|
+
let raw;
|
|
277
|
+
try {
|
|
278
|
+
raw = JSON.parse(data.toString());
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
reply({ id: null, error: { code: -32700, message: "Invalid JSON" } });
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (!object(raw) || !id(raw.method) || !(Number.isSafeInteger(raw.id) || id(raw.id) || raw.id === undefined)) {
|
|
285
|
+
reply({ id: null, error: { code: -32600, message: "Invalid local adapter request" } });
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
if (raw.method === "initialized" && raw.id === undefined)
|
|
289
|
+
return;
|
|
290
|
+
if (inFlight >= 4) {
|
|
291
|
+
reply({ id: raw.id, error: rpcError("rejected", "Too many adapter requests") });
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
inFlight++;
|
|
295
|
+
try {
|
|
296
|
+
if (raw.method === "initialize") {
|
|
297
|
+
if (initialized)
|
|
298
|
+
throw new SdkControlError("rejected", "Adapter connection is already initialized");
|
|
299
|
+
initialized = true;
|
|
300
|
+
reply({ id: raw.id, result: { profile: SDK_PROFILE, format_version: 1, run_id: launch.run_id, attempt_id: launch.attempt_id, steer_mode: "interrupt_then_replace" } });
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (!initialized)
|
|
304
|
+
throw new SdkControlError("rejected", "Initialize the adapter connection first");
|
|
305
|
+
const params = object(raw.params) ? raw.params : {};
|
|
306
|
+
const thread = protocol.thread();
|
|
307
|
+
if (raw.method === "thread/loaded/list") {
|
|
308
|
+
reply({ id: raw.id, result: { data: thread ? [thread.id] : [], rudder_uncertain: protocol.snapshot().uncertain } });
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
if (!thread || params.threadId !== thread.id)
|
|
312
|
+
throw new SdkControlError("rejected", "Managed Claude session is not qualified or does not match");
|
|
313
|
+
if (raw.method === "thread/read" || raw.method === "thread/resume") {
|
|
314
|
+
reply({ id: raw.id, result: { thread } });
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (raw.method === "thread/turns/list") {
|
|
318
|
+
reply({ id: raw.id, result: { data: thread.turns, nextCursor: null } });
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (!["turn/start", "turn/steer", "turn/interrupt"].includes(raw.method))
|
|
322
|
+
throw new SdkControlError("unsupported", "Unsupported managed Claude adapter method");
|
|
323
|
+
if (!object(params._rudder) || !object(params._rudder.operation))
|
|
324
|
+
throw new SdkControlError("rejected", "Authenticated engine command metadata is required");
|
|
325
|
+
const op = params._rudder.operation.kind;
|
|
326
|
+
if (raw.method === "turn/interrupt" && op !== "interrupt" || raw.method === "turn/steer" && op !== "steer" || raw.method === "turn/start" && op !== "deliver" && op !== "resume")
|
|
327
|
+
throw new SdkControlError("rejected", "Adapter method and operation disagree");
|
|
328
|
+
if (raw.method === "turn/interrupt" && params.turnId !== params._rudder.expected_turn_id || raw.method === "turn/steer" && params.expectedTurnId !== params._rudder.expected_turn_id)
|
|
329
|
+
throw new SdkControlError("rejected", "Adapter turn identities disagree");
|
|
330
|
+
const result = await protocol.execute(params._rudder, String(params.threadId));
|
|
331
|
+
reply({ id: raw.id, result });
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
const failure = error instanceof SdkControlError ? error : new SdkControlError("uncertain", error instanceof Error ? error.message : "Managed Claude command failed");
|
|
335
|
+
reply(failure.kind === "uncertain" ? { id: raw.id, result: { rudderUncertain: failure.message } } : { id: raw.id, error: rpcError(failure.kind, failure.message) });
|
|
336
|
+
}
|
|
337
|
+
finally {
|
|
338
|
+
inFlight--;
|
|
339
|
+
}
|
|
340
|
+
})();
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
let rl = null, guarded = null;
|
|
344
|
+
const stop = () => {
|
|
345
|
+
if (!closing) {
|
|
346
|
+
closing = true;
|
|
347
|
+
child.kill("SIGTERM");
|
|
348
|
+
stopTimer = setTimeout(() => {
|
|
349
|
+
if (child.exitCode === null && child.signalCode === null)
|
|
350
|
+
child.kill("SIGKILL");
|
|
351
|
+
}, 2000);
|
|
352
|
+
stopTimer.unref();
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
const onTerm = () => stop();
|
|
356
|
+
process.on("SIGTERM", onTerm);
|
|
357
|
+
process.on("SIGHUP", onTerm);
|
|
358
|
+
try {
|
|
359
|
+
await new Promise((resolve, reject) => { server.once("error", reject); server.listen(launch.socket_path, () => { server.removeListener("error", reject); resolve(); }); });
|
|
360
|
+
await fs.chmod(launch.socket_path, 0o600);
|
|
361
|
+
renderer.notice("Claude managed session. Enter sends; /interrupt stops a turn; /approve or /deny answers a permission request.");
|
|
362
|
+
await Promise.race([protocol.initialize(), exited.then(() => { throw childError ?? new Error("Claude exited before initialization"); })]);
|
|
363
|
+
const discardedLines = [];
|
|
364
|
+
guarded = boundedHumanInput(process.stdin, () => renderer.notice("Input exceeds 64 KiB; that line was discarded."), (discard) => discardedLines.push(discard));
|
|
365
|
+
rl = readline.createInterface({ input: guarded, output: process.stdout, terminal: !!process.stdin.isTTY, prompt: "> ", crlfDelay: Infinity });
|
|
366
|
+
rl.on("line", (line) => {
|
|
367
|
+
if (discardedLines.shift())
|
|
368
|
+
return;
|
|
369
|
+
const body = line.trim();
|
|
370
|
+
if (!body)
|
|
371
|
+
return;
|
|
372
|
+
const answer = /^\/(approve|deny) ([a-zA-Z0-9-]+)$/.exec(body);
|
|
373
|
+
if (answer) {
|
|
374
|
+
try {
|
|
375
|
+
protocol.answerPermission(answer[2], answer[1] === "approve");
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
renderer.notice(error.message);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else if (body === "/interrupt")
|
|
382
|
+
void protocol.humanInterrupt().catch((error) => renderer.notice(error.message));
|
|
383
|
+
else if (body === "/quit")
|
|
384
|
+
stop();
|
|
385
|
+
else
|
|
386
|
+
void protocol.humanInput(body).catch((error) => renderer.notice(error.message));
|
|
387
|
+
if (process.stdin.isTTY)
|
|
388
|
+
rl?.prompt();
|
|
389
|
+
});
|
|
390
|
+
rl.on("SIGINT", () => { void protocol.humanInterrupt().catch((error) => renderer.notice(error.message)); });
|
|
391
|
+
rl.on("close", stop);
|
|
392
|
+
if (process.stdin.isTTY)
|
|
393
|
+
rl.prompt();
|
|
394
|
+
if (launch.initial_prompt)
|
|
395
|
+
void protocol.humanInput(launch.initial_prompt).catch((error) => renderer.notice(error.message));
|
|
396
|
+
await exited;
|
|
397
|
+
if (childError)
|
|
398
|
+
throw childError;
|
|
399
|
+
if (!closing && childExit !== 0)
|
|
400
|
+
throw new Error(`Claude managed process exited with code ${childExit ?? "unknown"}`);
|
|
401
|
+
}
|
|
402
|
+
finally {
|
|
403
|
+
closing = true;
|
|
404
|
+
protocol.close();
|
|
405
|
+
if (stopTimer)
|
|
406
|
+
clearTimeout(stopTimer);
|
|
407
|
+
rl?.close();
|
|
408
|
+
if (guarded) {
|
|
409
|
+
process.stdin.unpipe(guarded);
|
|
410
|
+
guarded.destroy();
|
|
411
|
+
}
|
|
412
|
+
for (const peer of peers)
|
|
413
|
+
peer.terminate();
|
|
414
|
+
sockets.close();
|
|
415
|
+
server.close();
|
|
416
|
+
process.off("SIGTERM", onTerm);
|
|
417
|
+
process.off("SIGHUP", onTerm);
|
|
418
|
+
if (child.exitCode === null && child.signalCode === null) {
|
|
419
|
+
child.kill("SIGTERM");
|
|
420
|
+
await Promise.race([exited, new Promise((resolve) => { const timer = setTimeout(() => { child.kill("SIGKILL"); resolve(); }, 2000); timer.unref(); })]);
|
|
421
|
+
}
|
|
422
|
+
await fs.unlink(launch.socket_path).catch(() => { });
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=claude-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-sdk.js","sourceRoot":"","sources":["../src/claude-sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/context-audit.js
CHANGED
|
@@ -101,7 +101,7 @@ async function collectContextFiles(repoRoot) {
|
|
|
101
101
|
return [...files].sort();
|
|
102
102
|
}
|
|
103
103
|
function secretPattern() {
|
|
104
|
-
return /(sk-[A-Za-z0-9_-]{16,}|ghp_[A-Za-z0-9_]{16,}|github_pat_[A-Za-z0-9_]{16,}|xox[baprs]-[A-Za-z0-9-]{16,}|api[_-]?key\s*=\s*[A-Za-z0-9_.-]{16,})/i;
|
|
104
|
+
return /(?<![A-Za-z0-9_])(sk-[A-Za-z0-9_-]{16,}|ghp_[A-Za-z0-9_]{16,}|github_pat_[A-Za-z0-9_]{16,}|xox[baprs]-[A-Za-z0-9-]{16,}|(?:AKIA|ASIA)[A-Z0-9]{16}|api[_-]?key\s*=\s*[A-Za-z0-9_.-]{16,})/i;
|
|
105
105
|
}
|
|
106
106
|
function promptInjectionPattern() {
|
|
107
107
|
return /(ignore (all )?(previous|prior) instructions|you are now|developer mode|<\/system>|<<SYS>>|\[INST\])/i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-audit.js","sourceRoot":"","sources":["../src/context-audit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context-audit.js","sourceRoot":"","sources":["../src/context-audit.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
+
import { assertLegacyWriterAllowed } from "./engine-authority.js";
|
|
2
3
|
import fsp from "node:fs/promises";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { processAlive } from "./git.js";
|
|
@@ -29,6 +30,8 @@ async function readPidFile(repoRoot) {
|
|
|
29
30
|
* starts the board daemon in-process and writes the pid file.
|
|
30
31
|
*/
|
|
31
32
|
export async function ensureBoardRunning(repoRoot, opts) {
|
|
33
|
+
if (opts?.scheduler !== false)
|
|
34
|
+
assertLegacyWriterAllowed(repoRoot);
|
|
32
35
|
// registerProject is idempotent and returns this repo's stable slug, which we use
|
|
33
36
|
// to deep-link the browser straight to this project's board.
|
|
34
37
|
const project = await registerProject(repoRoot).catch(() => null);
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** A projection selects the project's migration mode. It is not a lease or
|
|
2
|
+
* proof that the owner is alive; native verifies the lock, epoch and socket.
|
|
3
|
+
*/
|
|
4
|
+
export declare function projectEngineAuthority(repo: string): "fabric" | "legacy-native" | "legacy-ts" | undefined;
|
|
5
|
+
export declare function assertLegacyWriterAllowed(repo: string): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/** A projection selects the project's migration mode. It is not a lease or
|
|
4
|
+
* proof that the owner is alive; native verifies the lock, epoch and socket.
|
|
5
|
+
*/
|
|
6
|
+
export function projectEngineAuthority(repo) {
|
|
7
|
+
let raw;
|
|
8
|
+
try {
|
|
9
|
+
raw = fs.readFileSync(path.join(repo, ".rudder", "engine", "owner.json"), "utf8");
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
if (error.code === "ENOENT")
|
|
13
|
+
return undefined;
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
let value;
|
|
17
|
+
try {
|
|
18
|
+
value = JSON.parse(raw);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw new Error("Project engine ownership record is unreadable; recover the engine before starting a writer.");
|
|
22
|
+
}
|
|
23
|
+
const data = value;
|
|
24
|
+
if (!data || data.format_version !== 1 || !["fabric", "legacy-native", "legacy-ts"].includes(String(data.authority))) {
|
|
25
|
+
throw new Error("Unsupported project engine authority; use a compatible Rudder engine.");
|
|
26
|
+
}
|
|
27
|
+
return data.authority;
|
|
28
|
+
}
|
|
29
|
+
export function assertLegacyWriterAllowed(repo) {
|
|
30
|
+
if (projectEngineAuthority(repo) === "fabric") {
|
|
31
|
+
throw new Error("This project uses the persistent engine. Use its dashboard or machine API so commands retain the current owner epoch.");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=engine-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-authority.js","sourceRoot":"","sources":["../src/engine-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAC1F,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IAAC,CAAC;IAC1J,MAAM,IAAI,GAAG,KAAiE,CAAC;IAC/E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrH,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,CAAC,SAAqD,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC,CAAC;IAC3I,CAAC;AACH,CAAC"}
|
package/dist/engine.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type EngineStatus = {
|
|
2
|
+
format_version: 1;
|
|
3
|
+
running: boolean;
|
|
4
|
+
repo: string;
|
|
5
|
+
authority: "fabric" | "legacy-native" | "legacy-ts";
|
|
6
|
+
implementation?: string;
|
|
7
|
+
state: string;
|
|
8
|
+
pid?: number | null;
|
|
9
|
+
owner?: {
|
|
10
|
+
project_id: string;
|
|
11
|
+
owner_id: string;
|
|
12
|
+
epoch: number;
|
|
13
|
+
} | null;
|
|
14
|
+
instance_id?: string | null;
|
|
15
|
+
attach_socket?: string;
|
|
16
|
+
control_socket?: string;
|
|
17
|
+
started_at?: string;
|
|
18
|
+
};
|
|
19
|
+
type EngineOptions = {
|
|
20
|
+
nativeBinary?: string;
|
|
21
|
+
env?: NodeJS.ProcessEnv;
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function parseEngineStatus(raw: string): EngineStatus;
|
|
25
|
+
export declare function readEngineStatus(repo: string, options?: EngineOptions): Promise<EngineStatus>;
|
|
26
|
+
export declare function shutdownEngine(repo: string, options?: EngineOptions): Promise<EngineStatus>;
|
|
27
|
+
/** The child owns the lifecycle. Closing the caller's terminal only closes a view. */
|
|
28
|
+
export declare function ensureEngineRunning(repo: string, options?: EngineOptions): Promise<EngineStatus>;
|
|
29
|
+
/** Explicit migration opt-in until the remaining legacy ingress paths are fenced. */
|
|
30
|
+
export declare function persistentEngineRequested(env?: NodeJS.ProcessEnv): boolean;
|
|
31
|
+
export declare function persistentProjectEngineRequested(repo: string, env?: NodeJS.ProcessEnv): boolean;
|
|
32
|
+
export declare function runEngineCommand(action: string | undefined, repo: string, json?: boolean): Promise<void>;
|
|
33
|
+
export {};
|