@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.
Files changed (143) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  3. package/dist/bridge/a2a/mapper.js +3 -0
  4. package/dist/bridge/a2a/mapper.js.map +1 -1
  5. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  6. package/dist/bridge/sse/mapper.js +18 -0
  7. package/dist/bridge/sse/mapper.js.map +1 -1
  8. package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
  9. package/dist/connector/web/guarded-fetch.js +44 -0
  10. package/dist/connector/web/guarded-fetch.js.map +1 -1
  11. package/dist/contracts/session/api.d.ts +1 -1
  12. package/dist/contracts/session/api.d.ts.map +1 -1
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/pals/channels/routing.d.ts +1 -1
  18. package/dist/pals/channels/schema.d.ts +7 -7
  19. package/dist/pals/communication/ingress-schema.d.ts +32 -32
  20. package/dist/process/kill-tree.d.ts +3 -2
  21. package/dist/process/kill-tree.d.ts.map +1 -1
  22. package/dist/process/kill-tree.js.map +1 -1
  23. package/dist/public-runtime.d.ts +2 -2
  24. package/dist/public-runtime.d.ts.map +1 -1
  25. package/dist/public-runtime.js +1 -1
  26. package/dist/public-runtime.js.map +1 -1
  27. package/dist/public-tools.d.ts +3 -1
  28. package/dist/public-tools.d.ts.map +1 -1
  29. package/dist/public-tools.js +6 -1
  30. package/dist/public-tools.js.map +1 -1
  31. package/dist/runtime/jobs/awaited-jobs.d.ts +59 -2
  32. package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
  33. package/dist/runtime/jobs/awaited-jobs.js +108 -5
  34. package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
  35. package/dist/runtime/jobs/monitor-stream.d.ts +96 -0
  36. package/dist/runtime/jobs/monitor-stream.d.ts.map +1 -0
  37. package/dist/runtime/jobs/monitor-stream.js +221 -0
  38. package/dist/runtime/jobs/monitor-stream.js.map +1 -0
  39. package/dist/runtime/jobs/registry.d.ts +175 -1
  40. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  41. package/dist/runtime/jobs/registry.js +267 -19
  42. package/dist/runtime/jobs/registry.js.map +1 -1
  43. package/dist/runtime/jobs/websocket-source.d.ts +120 -0
  44. package/dist/runtime/jobs/websocket-source.d.ts.map +1 -0
  45. package/dist/runtime/jobs/websocket-source.js +379 -0
  46. package/dist/runtime/jobs/websocket-source.js.map +1 -0
  47. package/dist/runtime/query/executor.d.ts +9 -0
  48. package/dist/runtime/query/executor.d.ts.map +1 -1
  49. package/dist/runtime/query/executor.js +6 -0
  50. package/dist/runtime/query/executor.js.map +1 -1
  51. package/dist/runtime/query/index.d.ts +16 -0
  52. package/dist/runtime/query/index.d.ts.map +1 -1
  53. package/dist/runtime/query/index.js +93 -3
  54. package/dist/runtime/query/index.js.map +1 -1
  55. package/dist/runtime/query/iteration/outstanding-work.d.ts +14 -0
  56. package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
  57. package/dist/runtime/query/iteration/outstanding-work.js +64 -3
  58. package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
  59. package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
  60. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  61. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  62. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  63. package/dist/runtime/query/iteration/phases/tool-review.js +11 -2
  64. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  65. package/dist/runtime/query/release-turn.d.ts.map +1 -1
  66. package/dist/runtime/query/release-turn.js +35 -0
  67. package/dist/runtime/query/release-turn.js.map +1 -1
  68. package/dist/runtime/query/steering.d.ts +35 -0
  69. package/dist/runtime/query/steering.d.ts.map +1 -1
  70. package/dist/runtime/query/steering.js +134 -0
  71. package/dist/runtime/query/steering.js.map +1 -1
  72. package/dist/runtime/query/tooling.d.ts +4 -0
  73. package/dist/runtime/query/tooling.d.ts.map +1 -1
  74. package/dist/runtime/query/tooling.js +4 -0
  75. package/dist/runtime/query/tooling.js.map +1 -1
  76. package/dist/runtime/system-events.d.ts +9 -0
  77. package/dist/runtime/system-events.d.ts.map +1 -1
  78. package/dist/runtime/system-events.js +12 -0
  79. package/dist/runtime/system-events.js.map +1 -1
  80. package/dist/tools/builtins/bash.d.ts +3 -0
  81. package/dist/tools/builtins/bash.d.ts.map +1 -1
  82. package/dist/tools/builtins/bash.js +3 -2
  83. package/dist/tools/builtins/bash.js.map +1 -1
  84. package/dist/tools/builtins/index.d.ts +1 -0
  85. package/dist/tools/builtins/index.d.ts.map +1 -1
  86. package/dist/tools/builtins/index.js +1 -0
  87. package/dist/tools/builtins/index.js.map +1 -1
  88. package/dist/tools/builtins/job.d.ts.map +1 -1
  89. package/dist/tools/builtins/job.js +6 -2
  90. package/dist/tools/builtins/job.js.map +1 -1
  91. package/dist/tools/builtins/monitor.d.ts +58 -0
  92. package/dist/tools/builtins/monitor.d.ts.map +1 -0
  93. package/dist/tools/builtins/monitor.js +306 -0
  94. package/dist/tools/builtins/monitor.js.map +1 -0
  95. package/dist/tools/builtins/wait-for-job.d.ts +1 -1
  96. package/dist/turn/reporter.d.ts.map +1 -1
  97. package/dist/turn/reporter.js +8 -0
  98. package/dist/turn/reporter.js.map +1 -1
  99. package/dist/types/sandbox/index.d.ts +10 -0
  100. package/dist/types/sandbox/index.d.ts.map +1 -1
  101. package/dist/types/sandbox/index.js.map +1 -1
  102. package/dist/types/session/events.d.ts +30 -4
  103. package/dist/types/session/events.d.ts.map +1 -1
  104. package/dist/types/session/events.js +6 -1
  105. package/dist/types/session/events.js.map +1 -1
  106. package/dist/types/session/records.d.ts +2 -2
  107. package/dist/types/session/records.d.ts.map +1 -1
  108. package/dist/types/session/records.js +3 -2
  109. package/dist/types/session/records.js.map +1 -1
  110. package/dist/types/tool/index.d.ts +60 -0
  111. package/dist/types/tool/index.d.ts.map +1 -1
  112. package/dist/types/tool/index.js.map +1 -1
  113. package/package.json +4 -2
  114. package/src/bridge/a2a/mapper.ts +3 -0
  115. package/src/bridge/sse/mapper.ts +18 -0
  116. package/src/connector/web/guarded-fetch.ts +41 -0
  117. package/src/contracts/session/api.ts +1 -0
  118. package/src/index.ts +23 -0
  119. package/src/process/kill-tree.ts +4 -2
  120. package/src/public-runtime.ts +4 -1
  121. package/src/public-tools.ts +14 -0
  122. package/src/runtime/jobs/awaited-jobs.ts +127 -5
  123. package/src/runtime/jobs/monitor-stream.ts +269 -0
  124. package/src/runtime/jobs/registry.ts +437 -23
  125. package/src/runtime/jobs/websocket-source.ts +438 -0
  126. package/src/runtime/query/executor.ts +15 -0
  127. package/src/runtime/query/index.ts +116 -3
  128. package/src/runtime/query/iteration/outstanding-work.ts +64 -3
  129. package/src/runtime/query/iteration/phases/context.ts +9 -0
  130. package/src/runtime/query/iteration/phases/tool-review.ts +21 -9
  131. package/src/runtime/query/release-turn.ts +33 -0
  132. package/src/runtime/query/steering.ts +170 -0
  133. package/src/runtime/query/tooling.ts +8 -0
  134. package/src/runtime/system-events.ts +17 -0
  135. package/src/tools/builtins/bash.ts +3 -2
  136. package/src/tools/builtins/index.ts +6 -0
  137. package/src/tools/builtins/job.ts +11 -2
  138. package/src/tools/builtins/monitor.ts +376 -0
  139. package/src/turn/reporter.ts +8 -0
  140. package/src/types/sandbox/index.ts +10 -0
  141. package/src/types/session/events.ts +31 -4
  142. package/src/types/session/records.ts +3 -2
  143. package/src/types/tool/index.ts +51 -1
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Turns a command's stdout into a few model-sized events.
3
+ *
4
+ * A watcher (`tail -f`, a poll loop, `gh run watch`) can print a line every
5
+ * millisecond, and every line the model is told about costs a context resend.
6
+ * So a monitor does not forward lines, it forwards BATCHES: lines are split,
7
+ * trimmed and truncated here, held for a short fixed window, and delivered
8
+ * together, and the batches themselves are rationed by a token bucket. A
9
+ * source that outruns the ration is first told so, then stopped, because a
10
+ * model that is flooded stops reading and one that is silenced does not know
11
+ * to look.
12
+ *
13
+ * Pure: no process, no registry, no model. The clock and the timer are
14
+ * injectable (and default to the globals read at call time, so fake timers
15
+ * work without any injection), which is what lets the tests advance a window
16
+ * by calling a function rather than by waiting for one.
17
+ *
18
+ * The constants and the wording come from the reference implementation of this
19
+ * tool; deviations are named where they are made.
20
+ */
21
+ /** A longer line keeps its first this-many characters. */
22
+ export const MONITOR_LINE_MAX_CHARS = 500;
23
+ /** A joined batch longer than this keeps its first this-many characters. */
24
+ export const MONITOR_BATCH_MAX_CHARS = 3000;
25
+ /**
26
+ * The first buffered line arms ONE timer for this long; everything that
27
+ * arrives before it fires rides in the same batch. A fixed window, not a
28
+ * debounce: a source that never pauses still gets a batch every window
29
+ * instead of never.
30
+ */
31
+ export const MONITOR_BATCH_WINDOW_MS = 200;
32
+ /** A partial line (no newline yet) keeps its tail past this many bytes. */
33
+ export const MONITOR_PARTIAL_LINE_MAX_BYTES = 1024 * 1024;
34
+ /** One token per BATCH, not per line. */
35
+ export const MONITOR_BUCKET_CAPACITY = 10;
36
+ export const MONITOR_BUCKET_REFILL_MS = 2000;
37
+ /** Suppression older than this, with another batch dropped, stops the monitor. */
38
+ export const MONITOR_SUPPRESSION_LIMIT_MS = 30_000;
39
+ /** The effective ceiling on a monitor's life; a host may lower it, never raise it past the schema. */
40
+ export const MONITOR_TIMEOUT_CAP_MS = 1_800_000;
41
+ export const MONITOR_TIMEOUT_DEFAULT_MS = 300_000;
42
+ export const MONITOR_TIMEOUT_MIN_MS = 1000;
43
+ /** The schema ceiling; anything between the cap and this is clamped, not refused. */
44
+ export const MONITOR_TIMEOUT_MAX_MS = 3_600_000;
45
+ /** One notification handed to the model is cut to this many characters, in the middle. */
46
+ export const MONITOR_NOTIFICATION_MAX_CHARS = 100_000;
47
+ /**
48
+ * One event's content is shrunk to this many characters BEFORE it is framed,
49
+ * so the notification cap never has to cut inside an envelope. A batch is at
50
+ * most 3000, so this only matters to a notice or a caller that outgrew that.
51
+ */
52
+ export const MONITOR_EVENT_CONTENT_MAX_CHARS = 20_000;
53
+ const LINE_TRUNCATED = '...(truncated)';
54
+ const BATCH_TRUNCATED = '\n...(truncated)';
55
+ /** `30m`, `5m`, `90s`: whole minutes as minutes, anything else in seconds. */
56
+ export function formatMonitorDuration(ms) {
57
+ const seconds = Math.max(1, Math.round(ms / 1000));
58
+ return seconds % 60 === 0 ? `${seconds / 60}m` : `${seconds}s`;
59
+ }
60
+ export function suppressionNotice(count) {
61
+ return `[${count} events suppressed — output rate too high. Consider stopping this monitor and starting it with a more selective command.]`;
62
+ }
63
+ export function tooMuchOutputNotice(count, overMs) {
64
+ return `[Monitor stopped — too much output (${count} events suppressed over ${formatMonitorDuration(overMs)}). Restart it with a more selective command.]`;
65
+ }
66
+ export function expiryNotice(ms, delivered) {
67
+ return delivered > 0
68
+ ? `[Monitor expired after ${formatMonitorDuration(ms)} with ${delivered} events delivered. Start it again if you still need the watch.]`
69
+ : `[Monitor expired after ${formatMonitorDuration(ms)} with no events delivered. Start it again if you still need the watch — and widen the filter if silence was unexpected.]`;
70
+ }
71
+ /** The tail of `text` that fits `maxBytes`, starting on a whole code point. */
72
+ function keepTail(text, maxBytes) {
73
+ const bytes = Buffer.from(text);
74
+ if (bytes.length <= maxBytes)
75
+ return text;
76
+ let start = bytes.length - maxBytes;
77
+ while (start < bytes.length && ((bytes[start] ?? 0) & 0xc0) === 0x80)
78
+ start++;
79
+ return bytes.subarray(start).toString('utf8');
80
+ }
81
+ export function createMonitorStream(options) {
82
+ const now = options.now ?? (() => Date.now());
83
+ const setTimer = options.setTimer ??
84
+ ((callback, ms) => {
85
+ const handle = setTimeout(callback, ms);
86
+ // A pending batch must not keep a process alive; the job's own exit
87
+ // drains it.
88
+ handle.unref?.();
89
+ return handle;
90
+ });
91
+ const clearTimer = options.clearTimer ?? ((handle) => clearTimeout(handle));
92
+ let closed = false;
93
+ let partial = '';
94
+ let lines = [];
95
+ let timer;
96
+ let timerArmed = false;
97
+ let tokens = MONITOR_BUCKET_CAPACITY;
98
+ let refilledAt = now();
99
+ let eventsDelivered = 0;
100
+ let suppressedTotal = 0;
101
+ let stdoutChars = 0;
102
+ // The suppression tracker. `count` is what the auto-stop reports; `unannounced`
103
+ // is what the next notice reports. They differ after a notice, because the
104
+ // tracker outlives it on purpose: a source that is told and keeps going must
105
+ // still reach the 30 s rule.
106
+ let suppressionStartedAt;
107
+ let lastDropAt = 0;
108
+ let count = 0;
109
+ let unannounced = 0;
110
+ let noticeEmitted = false;
111
+ const refill = (at) => {
112
+ const elapsed = at - refilledAt;
113
+ if (elapsed <= 0)
114
+ return;
115
+ tokens = Math.min(MONITOR_BUCKET_CAPACITY, tokens + elapsed / MONITOR_BUCKET_REFILL_MS);
116
+ refilledAt = at;
117
+ };
118
+ const deliver = (batch) => {
119
+ const at = now();
120
+ // Reset only after a notice went out AND the source has been quiet for
121
+ // three refills. Resetting on quiet alone would let a source that is
122
+ // dropped every other window never reach the stop rule.
123
+ if (noticeEmitted && at - lastDropAt > 3 * MONITOR_BUCKET_REFILL_MS) {
124
+ suppressionStartedAt = undefined;
125
+ count = 0;
126
+ unannounced = 0;
127
+ noticeEmitted = false;
128
+ }
129
+ refill(at);
130
+ if (tokens >= 1) {
131
+ tokens -= 1;
132
+ if (unannounced > 0) {
133
+ options.onNotice(suppressionNotice(unannounced));
134
+ unannounced = 0;
135
+ noticeEmitted = true;
136
+ }
137
+ eventsDelivered++;
138
+ options.onBatch(batch);
139
+ return;
140
+ }
141
+ // Whether the rule fires is decided by when suppression BEGAN, before
142
+ // this drop is counted, and the count reported includes it.
143
+ const began = suppressionStartedAt;
144
+ suppressionStartedAt ??= at;
145
+ lastDropAt = at;
146
+ suppressedTotal++;
147
+ count++;
148
+ unannounced++;
149
+ if (began !== undefined && at - began > MONITOR_SUPPRESSION_LIMIT_MS) {
150
+ stop();
151
+ options.onOverflow({ suppressed: count, overMs: at - began });
152
+ }
153
+ };
154
+ const emitPending = () => {
155
+ if (timerArmed) {
156
+ clearTimer(timer);
157
+ timerArmed = false;
158
+ }
159
+ if (lines.length === 0)
160
+ return;
161
+ let batch = lines.join('\n');
162
+ lines = [];
163
+ if (batch.length > MONITOR_BATCH_MAX_CHARS) {
164
+ batch = batch.slice(0, MONITOR_BATCH_MAX_CHARS) + BATCH_TRUNCATED;
165
+ }
166
+ deliver(batch);
167
+ };
168
+ const addLine = (raw) => {
169
+ const line = raw.trim();
170
+ if (line.length === 0)
171
+ return;
172
+ lines.push(line.length > MONITOR_LINE_MAX_CHARS
173
+ ? line.slice(0, MONITOR_LINE_MAX_CHARS) + LINE_TRUNCATED
174
+ : line);
175
+ if (!timerArmed) {
176
+ timerArmed = true;
177
+ timer = setTimer(() => {
178
+ timerArmed = false;
179
+ if (!closed)
180
+ emitPending();
181
+ }, MONITOR_BATCH_WINDOW_MS);
182
+ }
183
+ };
184
+ const stop = () => {
185
+ closed = true;
186
+ if (timerArmed) {
187
+ clearTimer(timer);
188
+ timerArmed = false;
189
+ }
190
+ lines = [];
191
+ partial = '';
192
+ };
193
+ return {
194
+ push(text) {
195
+ if (closed || text.length === 0)
196
+ return;
197
+ stdoutChars += text.length;
198
+ const buffered = partial + text;
199
+ const parts = buffered.split('\n');
200
+ partial = keepTail(parts.pop() ?? '', MONITOR_PARTIAL_LINE_MAX_BYTES);
201
+ for (const part of parts)
202
+ addLine(part);
203
+ },
204
+ flush() {
205
+ if (closed)
206
+ return;
207
+ emitPending();
208
+ },
209
+ drain() {
210
+ if (closed)
211
+ return;
212
+ const rest = partial;
213
+ partial = '';
214
+ addLine(rest);
215
+ emitPending();
216
+ },
217
+ close: stop,
218
+ stats: () => ({ eventsDelivered, suppressed: suppressedTotal, stdoutChars }),
219
+ };
220
+ }
221
+ //# sourceMappingURL=monitor-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-stream.js","sourceRoot":"","sources":["../../../src/runtime/jobs/monitor-stream.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { spawn } from 'node:child_process';
2
2
  import type { BackgroundJobOutputWaitOptions, BackgroundJobOutputWaitResult } from '../../types/job/index.js';
3
+ import type { MonitorWebSocketTarget } from '../../types/tool/index.js';
4
+ import { type MonitorStreamStats } from './monitor-stream.js';
3
5
  /**
4
6
  * Work that outlives a tool call, owned by whoever started it.
5
7
  *
@@ -43,6 +45,48 @@ export interface BackgroundJob {
43
45
  readonly recoveryRequired?: boolean;
44
46
  /** Safe registry diagnostic for an unconfirmed stop; excludes transport secrets. */
45
47
  readonly stopError?: string;
48
+ /**
49
+ * `monitor` for a job started by the `monitor` tool: its stdout is
50
+ * delivered line by line as events, and it expires. Absent for every
51
+ * other job.
52
+ */
53
+ readonly kind?: 'monitor';
54
+ /** What the monitor watches, in the model's words; shown with every event. */
55
+ readonly description?: string;
56
+ /** When the monitor will be stopped if the command has not ended first (epoch ms). */
57
+ readonly expiresAt?: number;
58
+ /**
59
+ * Why a monitor was stopped, when the registry stopped it: `expired` at
60
+ * its deadline, `too_much_output` when the source outran the event
61
+ * ration, `stopped` for a `kill()` asked for from outside. Absent while it
62
+ * runs and when the command ended on its own.
63
+ */
64
+ readonly stopReason?: 'expired' | 'too_much_output' | 'stopped';
65
+ /**
66
+ * What the monitor's source is, when it is not a command: `websocket` for a
67
+ * monitor of a WebSocket connection, whose `command` is then
68
+ * `websocket <url>` and which has no exit code of a process.
69
+ */
70
+ readonly transport?: 'websocket';
71
+ /** The close code and reason the server ended a WebSocket connection with, if it did. */
72
+ readonly closeCode?: number;
73
+ readonly closeReason?: string;
74
+ }
75
+ /**
76
+ * One thing a monitor has to say: a batch of its stdout lines, or a notice
77
+ * from the monitor itself (events suppressed, stopped, expired).
78
+ */
79
+ export interface MonitorEvent {
80
+ /** `${jobId}:${seq}`, unique per registry and stable, so a host can acknowledge it. */
81
+ readonly id: string;
82
+ readonly jobId: string;
83
+ readonly owner: string;
84
+ readonly description: string;
85
+ readonly kind: 'output' | 'notice';
86
+ readonly text: string;
87
+ readonly at: number;
88
+ /** Set when the source is a WebSocket connection, whose text the server wrote. */
89
+ readonly transport?: 'websocket';
46
90
  }
47
91
  export interface BackgroundJobOutput {
48
92
  readonly chunk: string;
@@ -62,6 +106,55 @@ export interface BackgroundJobOutput {
62
106
  /** Set when the command could not be started; see {@link BackgroundJob.error}. */
63
107
  readonly error?: string;
64
108
  }
109
+ /**
110
+ * What a `spawn` that is not a child process hands the registry: the few
111
+ * members of {@link JobChild} and how to stop it. A {@link JobProcess} is one
112
+ * too, so a `spawn` may return either.
113
+ */
114
+ export interface JobSource {
115
+ readonly child: JobChild;
116
+ /** How to stop it, when the registry's process-group kill would not reach everything. */
117
+ kill?(signal: NodeJS.Signals): void;
118
+ /** Confirm the owned tree stopped; reject instead of claiming an unconfirmed exit. */
119
+ terminate?(signal?: NodeJS.Signals): Promise<void>;
120
+ }
121
+ /**
122
+ * What the registry reads of a job's process, and nothing more.
123
+ *
124
+ * A `ChildProcess` satisfies it, and so does anything else that writes bytes
125
+ * on two pipes and ends: a WebSocket connection held as a monitor's source is
126
+ * such a thing. Named so that the registry's contract is the few members it
127
+ * uses and not a type from `node:child_process` it would have to be cast to.
128
+ */
129
+ export interface JobChild {
130
+ readonly pid?: number | undefined;
131
+ readonly stdout?: JobPipe | null;
132
+ readonly stderr?: JobPipe | null;
133
+ once(event: 'spawn', listener: () => void): unknown;
134
+ on(event: 'error', listener: (error: Error) => void): unknown;
135
+ once(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): unknown;
136
+ }
137
+ /** A readable stream, as far as the registry reads one. */
138
+ export interface JobPipe {
139
+ on(event: 'data', listener: (data: Buffer | string) => void): unknown;
140
+ }
141
+ /**
142
+ * What a process can say to the registry besides its output, handed to the
143
+ * `spawn` that asked for it.
144
+ */
145
+ export interface JobHost {
146
+ /**
147
+ * Something the SOURCE has to say, delivered to a monitor's listeners as a
148
+ * `notice` event and never rationed as output is. `final` ends the stream:
149
+ * what is pending goes out first, and nothing the process writes after the
150
+ * notice is delivered. Ignored for a job that is not a monitor.
151
+ */
152
+ notice(text: string, options?: {
153
+ readonly final?: boolean;
154
+ }): void;
155
+ /** The server closed a WebSocket connection with this code and reason. */
156
+ connectionClosed(code: number, reason: string): void;
157
+ }
65
158
  /** A job's process, when something other than the registry starts it. */
66
159
  export interface JobProcess {
67
160
  readonly child: ReturnType<typeof spawn>;
@@ -81,7 +174,7 @@ export interface StartJobParams {
81
174
  * host in the `bash` tool's shell (`tools/command-shell.ts`). The process must be the leader of its own group and must not
82
175
  * expect stdin.
83
176
  */
84
- readonly spawn?: () => JobProcess;
177
+ readonly spawn?: (host: JobHost) => JobProcess | JobSource;
85
178
  /**
86
179
  * Output the process already wrote before the registry took it over, in
87
180
  * the order it was written. Used when a foreground command is moved to the
@@ -97,6 +190,18 @@ export interface StartJobParams {
97
190
  * decoded the way a foreground command's are, not as a Linux guest's.
98
191
  */
99
192
  readonly hostOutput?: boolean;
193
+ /**
194
+ * Run the command as a monitor: stdout is split into lines and delivered
195
+ * to `onMonitorEvent` listeners in batches, and the job is stopped at
196
+ * `timeoutMs`. Both streams stay in the retained buffer, so `read` still
197
+ * shows everything, stderr included.
198
+ */
199
+ readonly monitor?: {
200
+ readonly description: string;
201
+ readonly timeoutMs: number;
202
+ /** The source is a WebSocket connection and not a command; see {@link BackgroundJob.transport}. */
203
+ readonly transport?: 'websocket';
204
+ };
100
205
  }
101
206
  export interface BackgroundJobRegistryConfig {
102
207
  /**
@@ -150,6 +255,7 @@ export declare class BackgroundJobRegistry {
150
255
  private readonly config;
151
256
  private readonly jobs;
152
257
  private readonly exitListeners;
258
+ private readonly monitorListeners;
153
259
  private outputWaiters;
154
260
  private readonly outputWaitersByOwner;
155
261
  /**
@@ -160,6 +266,20 @@ export declare class BackgroundJobRegistry {
160
266
  */
161
267
  onExit(listener: (job: BackgroundJob) => void): () => void;
162
268
  private announceExit;
269
+ /**
270
+ * Be told what a monitor has to say, whoever owns it: a batch of its
271
+ * stdout lines, or a notice from the monitor itself. Returns the
272
+ * unsubscribe.
273
+ *
274
+ * Every listener hears every monitor's events, whatever their `owner`: a
275
+ * consumer serving one turn or session MUST filter on `event.owner`, as the
276
+ * turn does. A listener that throws is its owner's problem, as in
277
+ * {@link onExit}.
278
+ */
279
+ onMonitorEvent(listener: (event: MonitorEvent) => void): () => void;
280
+ private announceMonitorEvent;
281
+ /** What a monitor's stream has done so far, for the summary of how it ended. */
282
+ monitorStats(id: string): MonitorStreamStats;
163
283
  /** A failed remote stop never releases ownership or announces a terminal job. */
164
284
  private confirmTermination;
165
285
  constructor(config?: BackgroundJobRegistryConfig);
@@ -168,6 +288,14 @@ export declare class BackgroundJobRegistry {
168
288
  /** Live jobs for one owner, oldest first. */
169
289
  list(owner: string): readonly BackgroundJob[];
170
290
  start(params: StartJobParams): BackgroundJob;
291
+ /** The deadline: the last batch, then the notice, then the same kill every stop uses. */
292
+ private expireMonitor;
293
+ /**
294
+ * A notice from the source of a monitor (a WebSocket's upgrade was refused,
295
+ * its connection closed). Delivered after whatever was already complete, so
296
+ * the last lines are not overtaken by the news that the stream ended.
297
+ */
298
+ private noticeFromSource;
171
299
  /**
172
300
  * Resolves once the job's process exists, or once it could not be
173
301
  * created (`error` then says why). Lets a caller report a start that
@@ -253,6 +381,19 @@ export declare function bindOwner(registry: BackgroundJobRegistry, owner: string
253
381
  * than present and silently doing nothing.
254
382
  */
255
383
  readonly onAwaited?: (id: string) => void;
384
+ /**
385
+ * The longest a monitor started through this binding may live. A host
386
+ * may lower it (a single-shot run has no tomorrow to watch for); the
387
+ * default is {@link MONITOR_TIMEOUT_CAP_MS}.
388
+ */
389
+ readonly monitorTimeoutCapMs?: number;
390
+ /**
391
+ * Be told that this binding started a monitor. The turn passes its own
392
+ * recorder here when the monitor belongs to the turn itself, which is
393
+ * what makes the turn stay open for it; a session-owned monitor is not
394
+ * reported, because the host wakes on its events.
395
+ */
396
+ readonly onMonitorStarted?: (id: string) => void;
256
397
  }): {
257
398
  kill: (id: string) => Promise<BackgroundJob>;
258
399
  list: () => readonly BackgroundJob[];
@@ -261,6 +402,24 @@ export declare function bindOwner(registry: BackgroundJobRegistry, owner: string
261
402
  command: string;
262
403
  workingDirectory?: string;
263
404
  }) => BackgroundJob;
405
+ startMonitor: (params: {
406
+ command: string;
407
+ description: string;
408
+ timeoutMs: number;
409
+ workingDirectory?: string;
410
+ }) => {
411
+ job: BackgroundJob;
412
+ timeoutMs: number;
413
+ };
414
+ startWebSocketMonitor: (params: {
415
+ description: string;
416
+ timeoutMs: number;
417
+ workingDirectory?: string;
418
+ webSocket: MonitorWebSocketTarget;
419
+ }) => {
420
+ job: BackgroundJob;
421
+ timeoutMs: number;
422
+ };
264
423
  adopt: (params: {
265
424
  command: string;
266
425
  child: ReturnType<typeof spawn>;
@@ -279,4 +438,19 @@ export declare function bindOwner(registry: BackgroundJobRegistry, owner: string
279
438
  }) => Promise<BackgroundJob>;
280
439
  waitForOutput: (id: string, opts: BackgroundJobOutputWaitOptions) => Promise<BackgroundJobOutputWaitResult>;
281
440
  };
441
+ /**
442
+ * How a monitor ended, in the words the model, the transcript and a
443
+ * single-shot run all use, so the three cannot disagree about it.
444
+ *
445
+ * `completed` is the command ending by itself: with output it is the stream
446
+ * ending, and without any it is a watch that never saw anything, which a
447
+ * reader must not mistake for a quiet success. A non-zero exit is `failed`.
448
+ * `killed` covers every stop the registry or the model asked for; the expiry
449
+ * and the too-much-output stop already told the model why in a notice of their
450
+ * own, so the summary does not repeat it.
451
+ */
452
+ export declare function describeMonitorEnd(job: Pick<BackgroundJob, 'description' | 'status' | 'exitCode' | 'signal' | 'error' | 'transport' | 'closeCode' | 'closeReason'>, stats: Pick<MonitorStreamStats, 'stdoutChars'>): {
453
+ status: 'completed' | 'failed' | 'killed';
454
+ summary: string;
455
+ };
282
456
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/jobs/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/jobs/registry.ts"],"names":[],"mappings":"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"}