@namzu/sdk 52.2.0 → 52.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/CHANGELOG.md +20 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +3 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +18 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
- package/dist/connector/web/guarded-fetch.js +44 -0
- package/dist/connector/web/guarded-fetch.js.map +1 -1
- package/dist/contracts/session/api.d.ts +1 -1
- package/dist/contracts/session/api.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pals/channels/routing.d.ts +1 -1
- package/dist/pals/channels/schema.d.ts +7 -7
- package/dist/pals/communication/ingress-schema.d.ts +32 -32
- package/dist/process/kill-tree.d.ts +3 -2
- package/dist/process/kill-tree.d.ts.map +1 -1
- package/dist/process/kill-tree.js.map +1 -1
- package/dist/public-runtime.d.ts +2 -2
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +1 -1
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-tools.d.ts +3 -1
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +6 -1
- package/dist/public-tools.js.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.d.ts +59 -2
- package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
- package/dist/runtime/jobs/awaited-jobs.js +108 -5
- package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
- package/dist/runtime/jobs/monitor-stream.d.ts +96 -0
- package/dist/runtime/jobs/monitor-stream.d.ts.map +1 -0
- package/dist/runtime/jobs/monitor-stream.js +221 -0
- package/dist/runtime/jobs/monitor-stream.js.map +1 -0
- package/dist/runtime/jobs/registry.d.ts +175 -1
- package/dist/runtime/jobs/registry.d.ts.map +1 -1
- package/dist/runtime/jobs/registry.js +267 -19
- package/dist/runtime/jobs/registry.js.map +1 -1
- package/dist/runtime/jobs/websocket-source.d.ts +120 -0
- package/dist/runtime/jobs/websocket-source.d.ts.map +1 -0
- package/dist/runtime/jobs/websocket-source.js +379 -0
- package/dist/runtime/jobs/websocket-source.js.map +1 -0
- package/dist/runtime/query/executor.d.ts +9 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +6 -0
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts +16 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +93 -3
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.d.ts +14 -0
- package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
- package/dist/runtime/query/iteration/outstanding-work.js +64 -3
- package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +11 -2
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/release-turn.d.ts.map +1 -1
- package/dist/runtime/query/release-turn.js +35 -0
- package/dist/runtime/query/release-turn.js.map +1 -1
- package/dist/runtime/query/steering.d.ts +35 -0
- package/dist/runtime/query/steering.d.ts.map +1 -1
- package/dist/runtime/query/steering.js +134 -0
- package/dist/runtime/query/steering.js.map +1 -1
- package/dist/runtime/query/tooling.d.ts +4 -0
- package/dist/runtime/query/tooling.d.ts.map +1 -1
- package/dist/runtime/query/tooling.js +4 -0
- package/dist/runtime/query/tooling.js.map +1 -1
- package/dist/runtime/system-events.d.ts +9 -0
- package/dist/runtime/system-events.d.ts.map +1 -1
- package/dist/runtime/system-events.js +12 -0
- package/dist/runtime/system-events.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts +3 -0
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +3 -2
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/index.d.ts +1 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +1 -0
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/job.d.ts.map +1 -1
- package/dist/tools/builtins/job.js +6 -2
- package/dist/tools/builtins/job.js.map +1 -1
- package/dist/tools/builtins/monitor.d.ts +58 -0
- package/dist/tools/builtins/monitor.d.ts.map +1 -0
- package/dist/tools/builtins/monitor.js +306 -0
- package/dist/tools/builtins/monitor.js.map +1 -0
- package/dist/tools/builtins/wait-for-job.d.ts +1 -1
- package/dist/turn/reporter.d.ts.map +1 -1
- package/dist/turn/reporter.js +8 -0
- package/dist/turn/reporter.js.map +1 -1
- package/dist/types/sandbox/index.d.ts +10 -0
- package/dist/types/sandbox/index.d.ts.map +1 -1
- package/dist/types/sandbox/index.js.map +1 -1
- package/dist/types/session/events.d.ts +30 -4
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js +6 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/session/records.d.ts +2 -2
- package/dist/types/session/records.d.ts.map +1 -1
- package/dist/types/session/records.js +3 -2
- package/dist/types/session/records.js.map +1 -1
- package/dist/types/tool/index.d.ts +60 -0
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/package.json +4 -2
- package/src/bridge/a2a/mapper.ts +3 -0
- package/src/bridge/sse/mapper.ts +18 -0
- package/src/connector/web/guarded-fetch.ts +41 -0
- package/src/contracts/session/api.ts +1 -0
- package/src/index.ts +23 -0
- package/src/process/kill-tree.ts +4 -2
- package/src/public-runtime.ts +4 -1
- package/src/public-tools.ts +14 -0
- package/src/runtime/jobs/awaited-jobs.ts +127 -5
- package/src/runtime/jobs/monitor-stream.ts +269 -0
- package/src/runtime/jobs/registry.ts +437 -23
- package/src/runtime/jobs/websocket-source.ts +438 -0
- package/src/runtime/query/executor.ts +15 -0
- package/src/runtime/query/index.ts +116 -3
- package/src/runtime/query/iteration/outstanding-work.ts +64 -3
- package/src/runtime/query/iteration/phases/context.ts +9 -0
- package/src/runtime/query/iteration/phases/tool-review.ts +21 -9
- package/src/runtime/query/release-turn.ts +33 -0
- package/src/runtime/query/steering.ts +170 -0
- package/src/runtime/query/tooling.ts +8 -0
- package/src/runtime/system-events.ts +17 -0
- package/src/tools/builtins/bash.ts +3 -2
- package/src/tools/builtins/index.ts +6 -0
- package/src/tools/builtins/job.ts +11 -2
- package/src/tools/builtins/monitor.ts +376 -0
- package/src/turn/reporter.ts +8 -0
- package/src/types/sandbox/index.ts +10 -0
- package/src/types/session/events.ts +31 -4
- package/src/types/session/records.ts +3 -2
- package/src/types/tool/index.ts +51 -1
|
@@ -4,7 +4,10 @@ import { describeSpawnFailure, spawnHostShell } from '../../tools/command-shell.
|
|
|
4
4
|
import { scrubInheritedEnv } from '../../tools/env-scrub.js';
|
|
5
5
|
import { createHostOutputDecoder } from '../../tools/host-output.js';
|
|
6
6
|
import { subscribeToAbort } from '../../utils/abort.js';
|
|
7
|
+
import { oneMetadataLine } from '../system-events.js';
|
|
7
8
|
import { createBackgroundJobId } from './job-id.js';
|
|
9
|
+
import { MONITOR_TIMEOUT_CAP_MS, createMonitorStream, expiryNotice, tooMuchOutputNotice, } from './monitor-stream.js';
|
|
10
|
+
import { connectWebSocketSource, webSocketJobCommand } from './websocket-source.js';
|
|
8
11
|
const DEFAULT_MAX_JOBS_PER_OWNER = 8;
|
|
9
12
|
const DEFAULT_MAX_OUTPUT_BYTES = 1024 * 1024;
|
|
10
13
|
const MAX_CHANNEL_CHUNKS = 4096;
|
|
@@ -68,6 +71,7 @@ export class BackgroundJobRegistry {
|
|
|
68
71
|
config;
|
|
69
72
|
jobs = new Map();
|
|
70
73
|
exitListeners = new Set();
|
|
74
|
+
monitorListeners = new Set();
|
|
71
75
|
outputWaiters = 0;
|
|
72
76
|
outputWaitersByOwner = new Map();
|
|
73
77
|
/**
|
|
@@ -92,6 +96,53 @@ export class BackgroundJobRegistry {
|
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Be told what a monitor has to say, whoever owns it: a batch of its
|
|
101
|
+
* stdout lines, or a notice from the monitor itself. Returns the
|
|
102
|
+
* unsubscribe.
|
|
103
|
+
*
|
|
104
|
+
* Every listener hears every monitor's events, whatever their `owner`: a
|
|
105
|
+
* consumer serving one turn or session MUST filter on `event.owner`, as the
|
|
106
|
+
* turn does. A listener that throws is its owner's problem, as in
|
|
107
|
+
* {@link onExit}.
|
|
108
|
+
*/
|
|
109
|
+
onMonitorEvent(listener) {
|
|
110
|
+
this.monitorListeners.add(listener);
|
|
111
|
+
return () => {
|
|
112
|
+
this.monitorListeners.delete(listener);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
announceMonitorEvent(entry, kind, text) {
|
|
116
|
+
const monitor = entry.monitor;
|
|
117
|
+
if (!monitor)
|
|
118
|
+
return;
|
|
119
|
+
monitor.seq += 1;
|
|
120
|
+
const event = {
|
|
121
|
+
id: `${entry.record.id}:${monitor.seq}`,
|
|
122
|
+
jobId: entry.record.id,
|
|
123
|
+
owner: entry.record.owner,
|
|
124
|
+
description: monitor.description,
|
|
125
|
+
kind,
|
|
126
|
+
text,
|
|
127
|
+
at: Date.now(),
|
|
128
|
+
...(entry.record.transport ? { transport: entry.record.transport } : {}),
|
|
129
|
+
};
|
|
130
|
+
for (const listener of this.monitorListeners) {
|
|
131
|
+
try {
|
|
132
|
+
listener(event);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// A listener that throws is its owner's problem, not the job's.
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/** What a monitor's stream has done so far, for the summary of how it ended. */
|
|
140
|
+
monitorStats(id) {
|
|
141
|
+
const entry = this.jobs.get(id);
|
|
142
|
+
if (!entry)
|
|
143
|
+
throw new UnknownBackgroundJobError({ id });
|
|
144
|
+
return entry.monitor?.stream.stats() ?? { eventsDelivered: 0, suppressed: 0, stdoutChars: 0 };
|
|
145
|
+
}
|
|
95
146
|
/** A failed remote stop never releases ownership or announces a terminal job. */
|
|
96
147
|
confirmTermination(entry) {
|
|
97
148
|
if (entry.terminationAttempt)
|
|
@@ -161,8 +212,14 @@ export class BackgroundJobRegistry {
|
|
|
161
212
|
// The same spawn as a foreground `bash` call, so the permission
|
|
162
213
|
// rules' reading of the line holds for the job too, and so the two
|
|
163
214
|
// cannot disagree about how a shell is started on a given platform.
|
|
215
|
+
const host = {
|
|
216
|
+
notice: (text, options) => this.noticeFromSource(entry, text, options?.final === true),
|
|
217
|
+
connectionClosed: (code, reason) => {
|
|
218
|
+
entry.record = { ...entry.record, closeCode: code, closeReason: reason };
|
|
219
|
+
},
|
|
220
|
+
};
|
|
164
221
|
const started = params.spawn
|
|
165
|
-
? params.spawn()
|
|
222
|
+
? params.spawn(host)
|
|
166
223
|
: {
|
|
167
224
|
child: spawnHostShell(params.command, {
|
|
168
225
|
cwd: params.workingDirectory,
|
|
@@ -193,6 +250,33 @@ export class BackgroundJobRegistry {
|
|
|
193
250
|
// it may be remote, and need not emit `spawn` at all.
|
|
194
251
|
if (params.spawn || child.pid !== undefined)
|
|
195
252
|
settleStarted();
|
|
253
|
+
// A monitor's stdout goes through a stream that batches and rations it;
|
|
254
|
+
// everything it says reaches listeners as `MonitorEvent`s. The callbacks
|
|
255
|
+
// close over `entry`, which exists by the time any of them can run.
|
|
256
|
+
const monitor = params.monitor
|
|
257
|
+
? {
|
|
258
|
+
description: params.monitor.description,
|
|
259
|
+
timeoutMs: params.monitor.timeoutMs,
|
|
260
|
+
seq: 0,
|
|
261
|
+
stream: createMonitorStream({
|
|
262
|
+
onBatch: (text) => this.announceMonitorEvent(entry, 'output', text),
|
|
263
|
+
onNotice: (text) => this.announceMonitorEvent(entry, 'notice', text),
|
|
264
|
+
onOverflow: ({ suppressed, overMs }) => {
|
|
265
|
+
// The reason is recorded before the kill, so the exit that
|
|
266
|
+
// follows is described as what it was and not as a stop
|
|
267
|
+
// somebody asked for.
|
|
268
|
+
entry.record = { ...entry.record, stopReason: 'too_much_output' };
|
|
269
|
+
if (entry.monitor)
|
|
270
|
+
entry.monitor.sealed = true;
|
|
271
|
+
this.announceMonitorEvent(entry, 'notice', tooMuchOutputNotice(suppressed, overMs));
|
|
272
|
+
void this.kill(id).catch(() => {
|
|
273
|
+
// The retained record carries the failure (recoveryRequired).
|
|
274
|
+
});
|
|
275
|
+
},
|
|
276
|
+
}),
|
|
277
|
+
}
|
|
278
|
+
: undefined;
|
|
279
|
+
const startedAt = Date.now();
|
|
196
280
|
let finalizeEntry;
|
|
197
281
|
const entry = {
|
|
198
282
|
record: {
|
|
@@ -200,8 +284,17 @@ export class BackgroundJobRegistry {
|
|
|
200
284
|
owner: params.owner,
|
|
201
285
|
command: params.command,
|
|
202
286
|
status: 'running',
|
|
203
|
-
startedAt
|
|
287
|
+
startedAt,
|
|
288
|
+
...(monitor
|
|
289
|
+
? {
|
|
290
|
+
kind: 'monitor',
|
|
291
|
+
description: monitor.description,
|
|
292
|
+
expiresAt: startedAt + monitor.timeoutMs,
|
|
293
|
+
...(params.monitor?.transport ? { transport: params.monitor.transport } : {}),
|
|
294
|
+
}
|
|
295
|
+
: {}),
|
|
204
296
|
},
|
|
297
|
+
...(monitor ? { monitor } : {}),
|
|
205
298
|
child,
|
|
206
299
|
...(started.kill ? { killProcess: started.kill.bind(started) } : {}),
|
|
207
300
|
...(started.terminate ? { terminateProcess: started.terminate.bind(started) } : {}),
|
|
@@ -231,6 +324,15 @@ export class BackgroundJobRegistry {
|
|
|
231
324
|
resolve();
|
|
232
325
|
for (const observer of entry.outputObservers)
|
|
233
326
|
observer();
|
|
327
|
+
if (entry.monitor) {
|
|
328
|
+
// The last batch is a monitor's last words and must precede
|
|
329
|
+
// the exit: a listener that learns the job ended and THEN
|
|
330
|
+
// gets output would be telling the model about a finished
|
|
331
|
+
// watch after it had been told the watch was over.
|
|
332
|
+
clearTimeout(entry.monitor.expiryTimer);
|
|
333
|
+
entry.monitor.stream.drain();
|
|
334
|
+
entry.monitor.stream.close();
|
|
335
|
+
}
|
|
234
336
|
this.announceExit(entry.record);
|
|
235
337
|
};
|
|
236
338
|
finalizeEntry = finalize;
|
|
@@ -301,6 +403,11 @@ export class BackgroundJobRegistry {
|
|
|
301
403
|
entry.buffer += text;
|
|
302
404
|
entry.buffer = outputTail(entry.buffer, this.maxBytes).text;
|
|
303
405
|
entry.outputChunks.push(chunk);
|
|
406
|
+
// Only stdout is an event. stderr stays readable with `read`, which is
|
|
407
|
+
// where a watcher's diagnostics belong: a model told about every
|
|
408
|
+
// warning line would stop reading the events that matter.
|
|
409
|
+
if (stream === 'stdout')
|
|
410
|
+
entry.monitor?.stream.push(text);
|
|
304
411
|
const retainedStart = entry.produced - Buffer.byteLength(entry.buffer);
|
|
305
412
|
while (entry.outputChunks.length > MAX_CHANNEL_CHUNKS ||
|
|
306
413
|
(entry.outputChunks[0] &&
|
|
@@ -331,8 +438,53 @@ export class BackgroundJobRegistry {
|
|
|
331
438
|
child.stdout?.on('data', onData('stdout'));
|
|
332
439
|
child.stderr?.on('data', onData('stderr'));
|
|
333
440
|
this.jobs.set(id, entry);
|
|
441
|
+
if (monitor) {
|
|
442
|
+
// A monitor has a life. Without a deadline a watch the model forgot
|
|
443
|
+
// would run, and bill its events, until the session ended.
|
|
444
|
+
monitor.expiryTimer = setTimeout(() => this.expireMonitor(entry), monitor.timeoutMs);
|
|
445
|
+
monitor.expiryTimer.unref?.();
|
|
446
|
+
}
|
|
334
447
|
return entry.record;
|
|
335
448
|
}
|
|
449
|
+
/** The deadline: the last batch, then the notice, then the same kill every stop uses. */
|
|
450
|
+
expireMonitor(entry) {
|
|
451
|
+
const monitor = entry.monitor;
|
|
452
|
+
if (!monitor || entry.record.status !== 'running')
|
|
453
|
+
return;
|
|
454
|
+
monitor.stream.flush();
|
|
455
|
+
// The flush can itself have stopped the monitor for too much output.
|
|
456
|
+
if (entry.record.stopReason !== undefined || entry.record.status !== 'running')
|
|
457
|
+
return;
|
|
458
|
+
entry.record = { ...entry.record, stopReason: 'expired' };
|
|
459
|
+
this.announceMonitorEvent(entry, 'notice', expiryNotice(monitor.timeoutMs, monitor.stream.stats().eventsDelivered));
|
|
460
|
+
// Nothing follows a terminal notice. A command that ignores SIGTERM keeps
|
|
461
|
+
// printing until the SIGKILL, and those lines would reach the model after
|
|
462
|
+
// it was told the watch was over.
|
|
463
|
+
monitor.sealed = true;
|
|
464
|
+
monitor.stream.close();
|
|
465
|
+
void this.kill(entry.record.id).catch(() => {
|
|
466
|
+
// The retained record carries the failure (recoveryRequired).
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* A notice from the source of a monitor (a WebSocket's upgrade was refused,
|
|
471
|
+
* its connection closed). Delivered after whatever was already complete, so
|
|
472
|
+
* the last lines are not overtaken by the news that the stream ended.
|
|
473
|
+
*/
|
|
474
|
+
noticeFromSource(entry, text, final) {
|
|
475
|
+
const monitor = entry.monitor;
|
|
476
|
+
if (!monitor || monitor.sealed)
|
|
477
|
+
return;
|
|
478
|
+
monitor.stream.flush();
|
|
479
|
+
// The flush can itself have stopped the monitor for too much output.
|
|
480
|
+
if (monitor.sealed)
|
|
481
|
+
return;
|
|
482
|
+
this.announceMonitorEvent(entry, 'notice', text);
|
|
483
|
+
if (final) {
|
|
484
|
+
monitor.sealed = true;
|
|
485
|
+
monitor.stream.close();
|
|
486
|
+
}
|
|
487
|
+
}
|
|
336
488
|
/**
|
|
337
489
|
* Resolves once the job's process exists, or once it could not be
|
|
338
490
|
* created (`error` then says why). Lets a caller report a start that
|
|
@@ -588,9 +740,37 @@ export class BackgroundJobRegistry {
|
|
|
588
740
|
throw new UnknownBackgroundJobError({ id });
|
|
589
741
|
if (entry.record.status !== 'running')
|
|
590
742
|
return entry.record;
|
|
743
|
+
// A stop nobody else explained is the model's (or the operator's). The
|
|
744
|
+
// expiry and output rules record their own reason first.
|
|
745
|
+
const stoppedBy = entry.monitor !== undefined && entry.record.stopReason === undefined;
|
|
746
|
+
if (stoppedBy)
|
|
747
|
+
entry.record = { ...entry.record, stopReason: 'stopped' };
|
|
748
|
+
// An accepted stop ends the event stream: what was already complete goes
|
|
749
|
+
// out, and nothing the dying process prints afterwards does. (The expiry
|
|
750
|
+
// and output rules close it themselves, after their own notice.)
|
|
751
|
+
const closeStream = () => {
|
|
752
|
+
if (!stoppedBy || !entry.monitor)
|
|
753
|
+
return;
|
|
754
|
+
entry.monitor.stream.flush();
|
|
755
|
+
entry.monitor.sealed = true;
|
|
756
|
+
entry.monitor.stream.close();
|
|
757
|
+
};
|
|
591
758
|
if (entry.terminateProcess) {
|
|
592
759
|
entry.killRequested = true;
|
|
593
|
-
|
|
760
|
+
try {
|
|
761
|
+
await this.confirmTermination(entry);
|
|
762
|
+
}
|
|
763
|
+
catch (error) {
|
|
764
|
+
// Still running: do not leave it saying a stop happened.
|
|
765
|
+
if (stoppedBy) {
|
|
766
|
+
const { stopReason: _reason, ...rest } = entry.record;
|
|
767
|
+
entry.record = rest;
|
|
768
|
+
}
|
|
769
|
+
throw error;
|
|
770
|
+
}
|
|
771
|
+
// Only once the stop is confirmed: a remote stop that failed leaves a
|
|
772
|
+
// running monitor, and a closed stream could not be reopened.
|
|
773
|
+
closeStream();
|
|
594
774
|
await entry.exit;
|
|
595
775
|
return entry.record;
|
|
596
776
|
}
|
|
@@ -598,6 +778,7 @@ export class BackgroundJobRegistry {
|
|
|
598
778
|
// tell a kill from an ordinary exit. Set it after and the race decides
|
|
599
779
|
// which of two different answers a reader gets.
|
|
600
780
|
entry.record = { ...entry.record, status: 'killed' };
|
|
781
|
+
closeStream();
|
|
601
782
|
for (const observer of entry.outputObservers)
|
|
602
783
|
observer();
|
|
603
784
|
const signal = (sig) => entry.killProcess ? entry.killProcess(sig) : killTree(entry.child, sig);
|
|
@@ -655,25 +836,56 @@ export function bindOwner(registry, owner, defaults = {}) {
|
|
|
655
836
|
throw new UnknownBackgroundJobError({ id });
|
|
656
837
|
return job;
|
|
657
838
|
};
|
|
839
|
+
const launch = (params, monitor) => {
|
|
840
|
+
const workingDirectory = params.workingDirectory ?? defaults.workingDirectory ?? process.cwd();
|
|
841
|
+
const spawnHost = defaults.spawn;
|
|
842
|
+
return registry.start({
|
|
843
|
+
owner,
|
|
844
|
+
command: params.command,
|
|
845
|
+
workingDirectory,
|
|
846
|
+
...(defaults.env ? { env: defaults.env } : {}),
|
|
847
|
+
...(spawnHost
|
|
848
|
+
? {
|
|
849
|
+
spawn: () => spawnHost({
|
|
850
|
+
command: params.command,
|
|
851
|
+
workingDirectory,
|
|
852
|
+
...(defaults.env ? { env: defaults.env } : {}),
|
|
853
|
+
}),
|
|
854
|
+
}
|
|
855
|
+
: {}),
|
|
856
|
+
...(monitor ? { monitor } : {}),
|
|
857
|
+
});
|
|
858
|
+
};
|
|
859
|
+
const clampMonitorTimeout = (requested) => Math.min(requested, defaults.monitorTimeoutCapMs ?? MONITOR_TIMEOUT_CAP_MS);
|
|
658
860
|
return {
|
|
659
|
-
start: (params) =>
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
861
|
+
start: (params) => launch(params),
|
|
862
|
+
// The same spawn, owner and cap as `start`, plus a deadline. The timeout
|
|
863
|
+
// is clamped to the host's ceiling and the clamped value is returned, so
|
|
864
|
+
// the number the model is told is the number that will fire.
|
|
865
|
+
startMonitor: (params) => {
|
|
866
|
+
const timeoutMs = clampMonitorTimeout(params.timeoutMs);
|
|
867
|
+
const job = launch(params, { description: params.description, timeoutMs });
|
|
868
|
+
defaults.onMonitorStarted?.(job.id);
|
|
869
|
+
return { job, timeoutMs };
|
|
870
|
+
},
|
|
871
|
+
// A monitor whose source is a WebSocket connection the HOST process
|
|
872
|
+
// opens, whatever the sandbox spawn would have done with a command: the
|
|
873
|
+
// tool has already checked the address and the sandbox's network rule,
|
|
874
|
+
// and the socket is pinned to the addresses it checked. A separate
|
|
875
|
+
// method so a host that implements `startMonitor` for commands is not
|
|
876
|
+
// handed an input it never wrote code for.
|
|
877
|
+
startWebSocketMonitor: (params) => {
|
|
878
|
+
const timeoutMs = clampMonitorTimeout(params.timeoutMs);
|
|
879
|
+
const { webSocket } = params;
|
|
880
|
+
const job = registry.start({
|
|
663
881
|
owner,
|
|
664
|
-
command:
|
|
665
|
-
workingDirectory,
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
? {
|
|
669
|
-
spawn: () => spawnHost({
|
|
670
|
-
command: params.command,
|
|
671
|
-
workingDirectory,
|
|
672
|
-
...(defaults.env ? { env: defaults.env } : {}),
|
|
673
|
-
}),
|
|
674
|
-
}
|
|
675
|
-
: {}),
|
|
882
|
+
command: webSocketJobCommand(webSocket.url),
|
|
883
|
+
workingDirectory: params.workingDirectory ?? defaults.workingDirectory ?? process.cwd(),
|
|
884
|
+
spawn: (host) => connectWebSocketSource({ target: webSocket, host }),
|
|
885
|
+
monitor: { description: params.description, timeoutMs, transport: 'websocket' },
|
|
676
886
|
});
|
|
887
|
+
defaults.onMonitorStarted?.(job.id);
|
|
888
|
+
return { job, timeoutMs };
|
|
677
889
|
},
|
|
678
890
|
// A foreground command that ran out of time, kept instead of killed.
|
|
679
891
|
// The same owner and cap as `start`; the process is the one already
|
|
@@ -718,4 +930,40 @@ export function bindOwner(registry, owner, defaults = {}) {
|
|
|
718
930
|
list: () => registry.list(owner),
|
|
719
931
|
};
|
|
720
932
|
}
|
|
933
|
+
/**
|
|
934
|
+
* How a monitor ended, in the words the model, the transcript and a
|
|
935
|
+
* single-shot run all use, so the three cannot disagree about it.
|
|
936
|
+
*
|
|
937
|
+
* `completed` is the command ending by itself: with output it is the stream
|
|
938
|
+
* ending, and without any it is a watch that never saw anything, which a
|
|
939
|
+
* reader must not mistake for a quiet success. A non-zero exit is `failed`.
|
|
940
|
+
* `killed` covers every stop the registry or the model asked for; the expiry
|
|
941
|
+
* and the too-much-output stop already told the model why in a notice of their
|
|
942
|
+
* own, so the summary does not repeat it.
|
|
943
|
+
*/
|
|
944
|
+
export function describeMonitorEnd(job, stats) {
|
|
945
|
+
const label = `Monitor "${oneMetadataLine(job.description ?? 'unnamed')}"`;
|
|
946
|
+
if (job.status === 'killed')
|
|
947
|
+
return { status: 'killed', summary: `${label} stopped` };
|
|
948
|
+
if (job.transport === 'websocket') {
|
|
949
|
+
// A connection has no script to fail and no exit status to quote: it was
|
|
950
|
+
// closed, by the server and with a code, or it never opened.
|
|
951
|
+
if (job.closeCode === undefined)
|
|
952
|
+
return { status: 'failed', summary: `${label} connection failed` };
|
|
953
|
+
// The code only. The server's reason is text it chose, and the summary
|
|
954
|
+
// is a metadata line outside the untrusted frame; the reason reaches the
|
|
955
|
+
// model inside the frame, in the `[WebSocket closed: ...]` notice.
|
|
956
|
+
return {
|
|
957
|
+
status: job.exitCode === 0 ? 'completed' : 'failed',
|
|
958
|
+
summary: `${label} connection closed (${job.closeCode})`,
|
|
959
|
+
};
|
|
960
|
+
}
|
|
961
|
+
if (job.exitCode === 0 && job.error === undefined) {
|
|
962
|
+
return stats.stdoutChars > 0
|
|
963
|
+
? { status: 'completed', summary: `${label} stream ended` }
|
|
964
|
+
: { status: 'completed', summary: `${label} ended without producing output (exit 0)` };
|
|
965
|
+
}
|
|
966
|
+
const how = job.exitCode !== undefined ? `exit ${job.exitCode}` : (job.signal ?? 'exit unknown');
|
|
967
|
+
return { status: 'failed', summary: `${label} script failed (${how})` };
|
|
968
|
+
}
|
|
721
969
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/jobs/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/jobs/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { Sandbox } from '../../types/sandbox/index.js';
|
|
2
|
+
import type { MonitorWebSocketTarget } from '../../types/tool/index.js';
|
|
3
|
+
import type { JobHost, JobSource } from './registry.js';
|
|
4
|
+
/**
|
|
5
|
+
* A WebSocket as a monitor's source.
|
|
6
|
+
*
|
|
7
|
+
* A command's stdout is not the only thing worth watching: some services push
|
|
8
|
+
* their events (a CI run's log stream, a server's change feed) and offer no
|
|
9
|
+
* command that prints them. This module turns such a connection into the same
|
|
10
|
+
* thing a command is to the registry: a process-shaped object that writes
|
|
11
|
+
* lines on stdout, can be asked to stop, and ends. Everything after that (the
|
|
12
|
+
* 200 ms batches, the rationing, the expiry, the stop, the untrusted frame the
|
|
13
|
+
* model reads it in) is the registry's and is shared with commands unchanged.
|
|
14
|
+
*
|
|
15
|
+
* What is different is where it runs and what it can reach. A command runs
|
|
16
|
+
* where the registry's spawn puts it, inside a sandbox if there is one; this
|
|
17
|
+
* connection is opened by the HOST process, outside any sandbox. So the
|
|
18
|
+
* address is checked before anything is sent, a sandbox that isolates the
|
|
19
|
+
* network refuses it unless it has said the host is allowed, and the tool
|
|
20
|
+
* asks a person first (see `tools/builtins/monitor.ts`).
|
|
21
|
+
*/
|
|
22
|
+
/** The largest frame accepted; a bigger one ends the watch. Same as the reference. */
|
|
23
|
+
export declare const WEBSOCKET_MAX_PAYLOAD_BYTES = 1048576;
|
|
24
|
+
export declare const WEBSOCKET_HANDSHAKE_TIMEOUT_MS = 15000;
|
|
25
|
+
/** After a polite close, how long a peer gets to answer before the socket is destroyed. */
|
|
26
|
+
export declare const WEBSOCKET_CLOSE_GRACE_MS = 1000;
|
|
27
|
+
export declare const WEBSOCKET_URL_MAX_CHARS = 2048;
|
|
28
|
+
export declare const WEBSOCKET_PROTOCOLS_MAX = 16;
|
|
29
|
+
/** Why a URL cannot be a monitor's source, or undefined when it can. */
|
|
30
|
+
export declare function webSocketUrlProblem(raw: string): string | undefined;
|
|
31
|
+
/** Why a subprotocol list is not valid, or undefined when it is. */
|
|
32
|
+
export declare function webSocketProtocolsProblem(protocols: readonly string[]): string | undefined;
|
|
33
|
+
/** What a record and an approval call this source: the URL as given, which can carry no credentials. */
|
|
34
|
+
export declare function webSocketJobCommand(url: string): string;
|
|
35
|
+
/** The address check refused, in words for the model. */
|
|
36
|
+
export declare class WebSocketRefusedError extends Error {
|
|
37
|
+
constructor(message: string);
|
|
38
|
+
}
|
|
39
|
+
export interface WebSocketVetOptions {
|
|
40
|
+
/**
|
|
41
|
+
* How a name becomes addresses. Defaults to `node:dns`. For tests only, and
|
|
42
|
+
* never reachable from a tool argument: the hook belongs to whoever builds
|
|
43
|
+
* the tool (`createMonitorTool`).
|
|
44
|
+
*/
|
|
45
|
+
readonly resolve?: (hostname: string) => Promise<readonly string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Allow addresses inside the host's own network. For tests only: a local
|
|
48
|
+
* server on 127.0.0.1 is the one honest reason to, and it is a decision the
|
|
49
|
+
* code that builds the tool makes, never the model.
|
|
50
|
+
*/
|
|
51
|
+
readonly allowPrivateAddresses?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** The host name of a WebSocket URL as a resolver or an address check wants it. */
|
|
54
|
+
export declare function webSocketHostname(raw: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Resolve the host and refuse unless EVERY address is outside the host's own
|
|
57
|
+
* network; return the addresses that were checked.
|
|
58
|
+
*
|
|
59
|
+
* Refusal covers a name that does not resolve, one that resolves to nothing,
|
|
60
|
+
* and one with any private address among its answers: a name that answers both
|
|
61
|
+
* a public and a private address is a name an attacker controls, and a
|
|
62
|
+
* connection may pick either. Failing to resolve is a refusal and never a
|
|
63
|
+
* pass: an empty list satisfies "no private address found" and the connection
|
|
64
|
+
* that followed would resolve the name again against whatever answered.
|
|
65
|
+
*/
|
|
66
|
+
export declare function vetWebSocketTarget(raw: string, options?: WebSocketVetOptions): Promise<readonly {
|
|
67
|
+
readonly address: string;
|
|
68
|
+
readonly family: 4 | 6;
|
|
69
|
+
}[]>;
|
|
70
|
+
/**
|
|
71
|
+
* A `lookup` for the socket that answers with the addresses that were checked
|
|
72
|
+
* and nothing else.
|
|
73
|
+
*
|
|
74
|
+
* This is what closes the gap `web_fetch` documents: there the address is
|
|
75
|
+
* checked, then the platform `fetch` resolves the name AGAIN, so a name that
|
|
76
|
+
* answers publicly the first time and privately the second (DNS rebinding)
|
|
77
|
+
* gets through. Here the connection never asks DNS: it is handed the checked
|
|
78
|
+
* addresses, so there is no second answer to differ. The URL still names the
|
|
79
|
+
* host, so TLS keeps its SNI and its certificate check on the hostname and not
|
|
80
|
+
* on an address.
|
|
81
|
+
*/
|
|
82
|
+
export declare function pinnedLookup(addresses: readonly {
|
|
83
|
+
readonly address: string;
|
|
84
|
+
readonly family: 4 | 6;
|
|
85
|
+
}[]): (_hostname: string, options: {
|
|
86
|
+
all?: boolean;
|
|
87
|
+
family?: number | string;
|
|
88
|
+
} | undefined, callback: (error: NodeJS.ErrnoException | null, address: string | {
|
|
89
|
+
address: string;
|
|
90
|
+
family: number;
|
|
91
|
+
}[], family?: number) => void) => void;
|
|
92
|
+
/** `api.example.com` is that host; `.example.com` is the domain and its subdomains. */
|
|
93
|
+
export declare function hostMatchesPolicy(hostname: string, allowedHosts: readonly string[]): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Why a sandbox forbids this connection, or undefined when it does not.
|
|
96
|
+
*
|
|
97
|
+
* The connection is opened by the host process, outside the boundary, so a
|
|
98
|
+
* sandbox's network rules do not bind it. If a turn runs under a sandbox that
|
|
99
|
+
* isolates the network, letting the host connect would be a way out of that
|
|
100
|
+
* isolation, so it is refused unless the sandbox's live policy names the host.
|
|
101
|
+
* A sandbox that does not isolate the network says nothing about it, and the
|
|
102
|
+
* connection is allowed, subject to the address check and to review.
|
|
103
|
+
*/
|
|
104
|
+
export declare function webSocketSandboxRefusal(sandbox: Sandbox | undefined, hostname: string): string | undefined;
|
|
105
|
+
export declare const webSocketRejectedNotice: (status: number) => string;
|
|
106
|
+
export declare const webSocketErrorNotice: (message: string) => string;
|
|
107
|
+
export declare const webSocketClosedNotice: (code: number, reason: string) => string;
|
|
108
|
+
export declare const webSocketDroppedNotice: () => string;
|
|
109
|
+
export interface WebSocketSourceOptions {
|
|
110
|
+
readonly target: MonitorWebSocketTarget;
|
|
111
|
+
readonly host: JobHost;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Open the connection and return it as a job's process.
|
|
115
|
+
*
|
|
116
|
+
* The socket library is loaded when the first monitor of this kind starts, so
|
|
117
|
+
* a session that never watches a WebSocket never pays for it.
|
|
118
|
+
*/
|
|
119
|
+
export declare function connectWebSocketSource(options: WebSocketSourceOptions): JobSource;
|
|
120
|
+
//# sourceMappingURL=websocket-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-source.d.ts","sourceRoot":"","sources":["../../../src/runtime/jobs/websocket-source.ts"],"names":[],"mappings":"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"}
|