@nifrajs/coding-agent 3.2.0 → 3.5.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/dist/context.js +29 -1
- package/dist/context.js.map +1 -1
- package/dist/diff.js +38 -2
- package/dist/diff.js.map +1 -1
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +217 -24
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/isolated.js +37 -2
- package/dist/isolated.js.map +1 -1
- package/dist/native.d.ts +17 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js +265 -41
- package/dist/native.js.map +1 -1
- package/dist/replay.d.ts +4 -0
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +189 -24
- package/dist/replay.js.map +1 -1
- package/dist/rpc.d.ts +10 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +208 -29
- package/dist/rpc.js.map +1 -1
- package/dist/sessions.d.ts +14 -2
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +253 -59
- package/dist/sessions.js.map +1 -1
- package/dist/verification.d.ts +23 -0
- package/dist/verification.d.ts.map +1 -1
- package/dist/verification.js +113 -1
- package/dist/verification.js.map +1 -1
- package/dist/workflows.d.ts +1 -0
- package/dist/workflows.d.ts.map +1 -1
- package/dist/workflows.js +43 -21
- package/dist/workflows.js.map +1 -1
- package/package.json +6 -5
- package/src/context.ts +32 -1
- package/src/diff.ts +40 -2
- package/src/host.ts +219 -24
- package/src/index.ts +5 -0
- package/src/isolated.ts +39 -2
- package/src/native.ts +408 -42
- package/src/replay.ts +206 -25
- package/src/rpc.ts +261 -33
- package/src/sessions.ts +271 -56
- package/src/verification.ts +140 -1
- package/src/workflows.ts +37 -25
package/dist/isolated.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolated.js","sourceRoot":"","sources":["../src/isolated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"isolated.js","sourceRoot":"","sources":["../src/isolated.ts"],"names":[],"mappings":"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"}
|
package/dist/native.d.ts
CHANGED
|
@@ -50,6 +50,12 @@ export declare function createNativeGatewayModelPort(options: NativeGatewayModel
|
|
|
50
50
|
export interface NativeApprovalPort {
|
|
51
51
|
request(input: {
|
|
52
52
|
readonly sessionId: string;
|
|
53
|
+
/** Stable, bounded identifier for this approval boundary. */
|
|
54
|
+
readonly approvalId: string;
|
|
55
|
+
readonly turnId: string;
|
|
56
|
+
readonly callId: string;
|
|
57
|
+
readonly action: string;
|
|
58
|
+
readonly capability: string;
|
|
53
59
|
readonly tool: NativeTool;
|
|
54
60
|
readonly input: unknown;
|
|
55
61
|
readonly signal: AbortSignal;
|
|
@@ -59,6 +65,8 @@ export interface NifraBackendOptions {
|
|
|
59
65
|
readonly model: NativeModelPort;
|
|
60
66
|
readonly tools?: readonly NativeTool[];
|
|
61
67
|
readonly approval?: NativeApprovalPort;
|
|
68
|
+
/** Maximum time a protocol-visible native approval may remain unresolved. */
|
|
69
|
+
readonly approvalTimeoutMs?: number;
|
|
62
70
|
readonly maxSteps?: number;
|
|
63
71
|
readonly maxMessageChars?: number;
|
|
64
72
|
readonly now?: () => number;
|
|
@@ -74,16 +82,25 @@ export declare class NifraBackend implements AgentBackend {
|
|
|
74
82
|
readonly info: AgentBackendInfo;
|
|
75
83
|
private readonly options;
|
|
76
84
|
private readonly sessions;
|
|
85
|
+
private readonly pendingApprovals;
|
|
77
86
|
constructor(options: NifraBackendOptions);
|
|
78
87
|
createSession(input: CreateSessionInput): Promise<AgentSessionSnapshot>;
|
|
79
88
|
send(input: SendMessageInput): AsyncIterable<AgentEvent>;
|
|
80
89
|
cancel(sessionId: string, reason?: string): Promise<void>;
|
|
81
90
|
snapshot(sessionId: string): Promise<AgentSessionSnapshot>;
|
|
82
91
|
reload(sessionId: string): Promise<ReloadResult>;
|
|
92
|
+
resolveApproval(sessionId: string, approvalId: string, approved: boolean, reason?: string): Promise<boolean | undefined>;
|
|
83
93
|
close(sessionId: string): Promise<void>;
|
|
84
94
|
private run;
|
|
85
95
|
private consumeModel;
|
|
86
96
|
private finish;
|
|
97
|
+
private requestApproval;
|
|
98
|
+
private settleApproval;
|
|
99
|
+
private cancelTurn;
|
|
100
|
+
private clearTurnSignal;
|
|
101
|
+
private clearTurn;
|
|
102
|
+
private isCurrentTurn;
|
|
103
|
+
private assertCurrentTurn;
|
|
87
104
|
private emit;
|
|
88
105
|
private update;
|
|
89
106
|
private requireSession;
|
package/dist/native.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/native.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { runModelGateway, structuredOutputParser, } from "@nifrajs/agent";
|
|
2
|
-
import { agentError, createAgentEventStream, } from "@nifrajs/agent-protocol";
|
|
2
|
+
import { agentError, createAgentEventStream, isAgentEvent, } from "@nifrajs/agent-protocol";
|
|
3
3
|
/** Adapt the provider-neutral gateway to the native backend without making it the default path. */
|
|
4
4
|
export function createNativeGatewayModelPort(options) {
|
|
5
5
|
const parser = structuredOutputParser((value) => parseNativeModelResponse(value));
|
|
@@ -42,6 +42,7 @@ export class NifraBackend {
|
|
|
42
42
|
});
|
|
43
43
|
options;
|
|
44
44
|
sessions = new Map();
|
|
45
|
+
pendingApprovals = new Map();
|
|
45
46
|
constructor(options) {
|
|
46
47
|
this.options = Object.freeze({
|
|
47
48
|
...options,
|
|
@@ -55,8 +56,23 @@ export class NifraBackend {
|
|
|
55
56
|
throw new RangeError("nifra backend: maxSteps must be between 1 and 512");
|
|
56
57
|
if (!Number.isSafeInteger(this.options.maxMessageChars) || this.options.maxMessageChars < 256)
|
|
57
58
|
throw new RangeError("nifra backend: maxMessageChars must be at least 256");
|
|
59
|
+
if (this.options.approvalTimeoutMs !== undefined &&
|
|
60
|
+
(!Number.isSafeInteger(this.options.approvalTimeoutMs) ||
|
|
61
|
+
this.options.approvalTimeoutMs < 1 ||
|
|
62
|
+
this.options.approvalTimeoutMs > 24 * 60 * 60_000))
|
|
63
|
+
throw new RangeError("nifra backend: approvalTimeoutMs must be between 1ms and 24h");
|
|
58
64
|
}
|
|
59
65
|
async createSession(input) {
|
|
66
|
+
if (typeof input.cwd !== "string" ||
|
|
67
|
+
input.cwd.length === 0 ||
|
|
68
|
+
input.cwd.length > 4_096 ||
|
|
69
|
+
input.cwd.includes("\0"))
|
|
70
|
+
throw new TypeError("nifra backend: cwd must be a bounded non-empty path");
|
|
71
|
+
if (input.capabilities !== undefined &&
|
|
72
|
+
(!Array.isArray(input.capabilities) ||
|
|
73
|
+
input.capabilities.length > 256 ||
|
|
74
|
+
!input.capabilities.every((value) => boundedApprovalToken(value))))
|
|
75
|
+
throw new TypeError("nifra backend: capabilities must be bounded tokens");
|
|
60
76
|
const id = input.sessionId ?? crypto.randomUUID();
|
|
61
77
|
if (!/^[a-zA-Z0-9._:-]{1,128}$/.test(id))
|
|
62
78
|
throw new TypeError("nifra backend: sessionId must be a bounded token");
|
|
@@ -81,9 +97,12 @@ export class NifraBackend {
|
|
|
81
97
|
controller: new AbortController(),
|
|
82
98
|
snapshot,
|
|
83
99
|
active: undefined,
|
|
100
|
+
turnId: undefined,
|
|
101
|
+
turnAbortCleanup: undefined,
|
|
84
102
|
seq: 0,
|
|
85
103
|
extensionRevision: 0,
|
|
86
104
|
closed: false,
|
|
105
|
+
cancelled: false,
|
|
87
106
|
};
|
|
88
107
|
this.sessions.set(id, session);
|
|
89
108
|
return snapshot;
|
|
@@ -98,28 +117,42 @@ export class NifraBackend {
|
|
|
98
117
|
return failedStream(agentError("MESSAGE_BOUNDED", "message is empty or exceeds the configured limit"));
|
|
99
118
|
const stream = createAgentEventStream();
|
|
100
119
|
session.active = stream;
|
|
120
|
+
session.cancelled = false;
|
|
101
121
|
session.controller = new AbortController();
|
|
102
122
|
const signal = session.controller.signal;
|
|
123
|
+
const turnId = crypto.randomUUID();
|
|
124
|
+
session.turnId = turnId;
|
|
103
125
|
if (input.signal !== undefined) {
|
|
104
126
|
const externalSignal = input.signal;
|
|
127
|
+
const onAbort = () => {
|
|
128
|
+
// Capture the turn identity. A request signal must never abort a later turn that reused
|
|
129
|
+
// this session after the original stream settled.
|
|
130
|
+
if (session.active !== stream ||
|
|
131
|
+
session.turnId !== turnId ||
|
|
132
|
+
session.controller.signal !== signal)
|
|
133
|
+
return;
|
|
134
|
+
void this.cancelTurn(session, stream, turnId, "cancelled");
|
|
135
|
+
};
|
|
105
136
|
if (externalSignal.aborted)
|
|
106
|
-
|
|
107
|
-
else
|
|
108
|
-
externalSignal.addEventListener("abort",
|
|
137
|
+
onAbort();
|
|
138
|
+
else {
|
|
139
|
+
externalSignal.addEventListener("abort", onAbort, { once: true });
|
|
140
|
+
session.turnAbortCleanup = () => externalSignal.removeEventListener("abort", onAbort);
|
|
141
|
+
// Abort can race the registration between the check above and addEventListener.
|
|
142
|
+
if (externalSignal.aborted)
|
|
143
|
+
onAbort();
|
|
144
|
+
}
|
|
109
145
|
}
|
|
110
|
-
void this.run(session, input.message, stream, signal);
|
|
146
|
+
void this.run(session, input.message, stream, signal, turnId);
|
|
111
147
|
return stream;
|
|
112
148
|
}
|
|
113
149
|
async cancel(sessionId, reason = "cancelled") {
|
|
114
150
|
const session = this.requireSession(sessionId);
|
|
115
151
|
if (session.closed)
|
|
116
152
|
return;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
this.emit(session, { type: "session.stopped", reason });
|
|
121
|
-
stream?.complete();
|
|
122
|
-
session.active = undefined;
|
|
153
|
+
if (session.active === undefined)
|
|
154
|
+
return;
|
|
155
|
+
await this.cancelTurn(session, session.active, session.turnId, reason);
|
|
123
156
|
}
|
|
124
157
|
async snapshot(sessionId) {
|
|
125
158
|
return this.requireSession(sessionId).snapshot;
|
|
@@ -143,25 +176,41 @@ export class NifraBackend {
|
|
|
143
176
|
});
|
|
144
177
|
return { revision, loaded: [], disabled: [], rolledBack: false };
|
|
145
178
|
}
|
|
179
|
+
async resolveApproval(sessionId, approvalId, approved, reason) {
|
|
180
|
+
const session = this.requireSession(sessionId);
|
|
181
|
+
if (session.closed || session.cancelled)
|
|
182
|
+
return undefined;
|
|
183
|
+
const pending = this.pendingApprovals.get(approvalId);
|
|
184
|
+
if (pending === undefined || pending.sessionId !== sessionId)
|
|
185
|
+
return undefined;
|
|
186
|
+
const resolution = this.settleApproval(session, approvalId, approved === true, approved === true ? reason : (reason ?? "approval denied"), approved === true ? undefined : "APPROVAL_DENIED");
|
|
187
|
+
return resolution?.approved;
|
|
188
|
+
}
|
|
146
189
|
async close(sessionId) {
|
|
147
190
|
const session = this.requireSession(sessionId);
|
|
148
191
|
if (session.closed)
|
|
149
192
|
return;
|
|
150
193
|
session.closed = true;
|
|
194
|
+
session.cancelled = true;
|
|
195
|
+
session.turnAbortCleanup?.();
|
|
196
|
+
session.turnAbortCleanup = undefined;
|
|
151
197
|
session.controller.abort("closed");
|
|
152
198
|
session.active?.complete();
|
|
153
199
|
session.active = undefined;
|
|
200
|
+
session.turnId = undefined;
|
|
154
201
|
this.sessions.delete(sessionId);
|
|
155
202
|
}
|
|
156
|
-
async run(session, message, stream, signal) {
|
|
157
|
-
|
|
203
|
+
async run(session, message, stream, signal, turnId) {
|
|
204
|
+
if (!this.isCurrentTurn(session, stream, turnId, signal)) {
|
|
205
|
+
stream.complete();
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
158
208
|
this.update(session, "running", turnId);
|
|
159
209
|
this.emit(session, { type: "turn.started", turnId, prompt: message });
|
|
160
210
|
session.messages.push({ role: "user", text: message });
|
|
161
211
|
try {
|
|
162
212
|
for (let step = 0; step < this.options.maxSteps; step++) {
|
|
163
|
-
|
|
164
|
-
throw new Error("native turn cancelled");
|
|
213
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
165
214
|
const raw = this.options.model.complete({
|
|
166
215
|
sessionId: session.id,
|
|
167
216
|
cwd: session.cwd,
|
|
@@ -173,10 +222,12 @@ export class NifraBackend {
|
|
|
173
222
|
}))),
|
|
174
223
|
signal,
|
|
175
224
|
});
|
|
176
|
-
const response = await this.consumeModel(raw, session, turnId, signal);
|
|
225
|
+
const response = await this.consumeModel(raw, session, stream, turnId, signal);
|
|
226
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
177
227
|
if (response.type === "text") {
|
|
178
|
-
|
|
179
|
-
|
|
228
|
+
const text = boundedText(response.text, this.options.maxMessageChars);
|
|
229
|
+
session.messages.push({ role: "assistant", text });
|
|
230
|
+
this.emit(session, { type: "assistant.message", turnId, text });
|
|
180
231
|
this.finish(session, stream);
|
|
181
232
|
return;
|
|
182
233
|
}
|
|
@@ -194,6 +245,7 @@ export class NifraBackend {
|
|
|
194
245
|
continue;
|
|
195
246
|
}
|
|
196
247
|
const callId = crypto.randomUUID();
|
|
248
|
+
const execute = tool.execute;
|
|
197
249
|
this.emit(session, {
|
|
198
250
|
type: "tool.started",
|
|
199
251
|
turnId,
|
|
@@ -204,28 +256,27 @@ export class NifraBackend {
|
|
|
204
256
|
const needsApproval = typeof tool.requiresApproval === "function"
|
|
205
257
|
? await tool.requiresApproval(response.input)
|
|
206
258
|
: tool.requiresApproval === true;
|
|
259
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
207
260
|
if (needsApproval) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
input: response.input,
|
|
213
|
-
signal,
|
|
214
|
-
}))) {
|
|
261
|
+
const resolution = await this.requestApproval(session, turnId, callId, tool, response.input, signal);
|
|
262
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
263
|
+
if (!resolution.approved) {
|
|
264
|
+
const code = resolution.errorCode ?? "APPROVAL_DENIED";
|
|
215
265
|
this.emit(session, {
|
|
216
266
|
type: "tool.completed",
|
|
217
267
|
turnId,
|
|
218
268
|
callId,
|
|
219
269
|
name: tool.name,
|
|
220
270
|
ok: false,
|
|
221
|
-
error: agentError(
|
|
271
|
+
error: agentError(code, boundedApprovalMessage(code, tool.name, resolution.reason)),
|
|
222
272
|
});
|
|
223
|
-
session.messages.push({ role: "tool", name: tool.name, text:
|
|
273
|
+
session.messages.push({ role: "tool", name: tool.name, text: code });
|
|
224
274
|
continue;
|
|
225
275
|
}
|
|
226
276
|
}
|
|
227
277
|
try {
|
|
228
|
-
const output = await
|
|
278
|
+
const output = await execute(response.input, { cwd: session.cwd, signal });
|
|
279
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
229
280
|
const text = boundedText(output);
|
|
230
281
|
session.messages.push({ role: "tool", name: tool.name, text });
|
|
231
282
|
this.emit(session, {
|
|
@@ -238,7 +289,9 @@ export class NifraBackend {
|
|
|
238
289
|
});
|
|
239
290
|
}
|
|
240
291
|
catch (error) {
|
|
241
|
-
|
|
292
|
+
if (signal.aborted || !this.isCurrentTurn(session, stream, turnId, signal))
|
|
293
|
+
throw error;
|
|
294
|
+
const message = boundedText(error instanceof Error ? error.message : error, this.options.maxMessageChars);
|
|
242
295
|
session.messages.push({ role: "tool", name: tool.name, text: message });
|
|
243
296
|
this.emit(session, {
|
|
244
297
|
type: "tool.completed",
|
|
@@ -253,24 +306,29 @@ export class NifraBackend {
|
|
|
253
306
|
throw new Error("native turn exceeded maxSteps");
|
|
254
307
|
}
|
|
255
308
|
catch (error) {
|
|
256
|
-
if (session
|
|
309
|
+
if (!this.isCurrentTurn(session, stream, turnId, signal)) {
|
|
310
|
+
stream.complete();
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (signal.aborted || session.cancelled) {
|
|
314
|
+
await this.cancelTurn(session, stream, turnId, "cancelled");
|
|
257
315
|
return;
|
|
258
|
-
|
|
316
|
+
}
|
|
317
|
+
this.update(session, "failed");
|
|
259
318
|
this.emit(session, {
|
|
260
319
|
type: "session.failed",
|
|
261
|
-
error: agentError(
|
|
320
|
+
error: agentError("NATIVE_TURN_FAILED", boundedText(error instanceof Error ? error.message : error, 4_096)),
|
|
262
321
|
recoverable: true,
|
|
263
322
|
});
|
|
264
323
|
stream.complete();
|
|
265
|
-
session
|
|
324
|
+
this.clearTurn(session, stream, turnId);
|
|
266
325
|
}
|
|
267
326
|
}
|
|
268
|
-
async consumeModel(raw, session, turnId, signal) {
|
|
327
|
+
async consumeModel(raw, session, stream, turnId, signal) {
|
|
269
328
|
if (isAsyncIterable(raw)) {
|
|
270
329
|
let response;
|
|
271
330
|
for await (const chunk of raw) {
|
|
272
|
-
|
|
273
|
-
throw new Error("native turn cancelled");
|
|
331
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
274
332
|
if (chunk.type === "text_delta")
|
|
275
333
|
this.emit(session, { type: "assistant.delta", turnId, text: chunk.text });
|
|
276
334
|
else
|
|
@@ -278,15 +336,145 @@ export class NifraBackend {
|
|
|
278
336
|
}
|
|
279
337
|
if (response === undefined)
|
|
280
338
|
throw new Error("native model stream ended without a response");
|
|
339
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
281
340
|
return response;
|
|
282
341
|
}
|
|
283
|
-
|
|
342
|
+
const response = await raw;
|
|
343
|
+
this.assertCurrentTurn(session, stream, turnId, signal);
|
|
344
|
+
return response;
|
|
284
345
|
}
|
|
285
346
|
finish(session, stream) {
|
|
286
347
|
this.update(session, "idle");
|
|
287
348
|
this.emit(session, { type: "session.completed", snapshot: session.snapshot });
|
|
288
349
|
stream.complete();
|
|
289
|
-
session
|
|
350
|
+
this.clearTurn(session, stream, session.turnId);
|
|
351
|
+
}
|
|
352
|
+
requestApproval(session, turnId, callId, tool, input, signal) {
|
|
353
|
+
const approvalId = `nifra-approval-${crypto.randomUUID()}`;
|
|
354
|
+
const action = boundedApprovalText(tool.name, 512);
|
|
355
|
+
const capability = boundedApprovalText(tool.capabilities?.[0] ?? `tool:${tool.name}`, 128);
|
|
356
|
+
let pending;
|
|
357
|
+
const promise = new Promise((resolve) => {
|
|
358
|
+
const onAbort = () => {
|
|
359
|
+
this.settleApproval(session, approvalId, false, session.closed ? "approval closed" : "approval cancelled", session.closed ? "APPROVAL_CLOSED" : "APPROVAL_CANCELLED");
|
|
360
|
+
};
|
|
361
|
+
const timer = setTimeout(() => {
|
|
362
|
+
this.settleApproval(session, approvalId, false, "approval timed out", "APPROVAL_TIMEOUT");
|
|
363
|
+
}, this.options.approvalTimeoutMs ?? 5 * 60_000);
|
|
364
|
+
timer.unref?.();
|
|
365
|
+
pending = {
|
|
366
|
+
id: approvalId,
|
|
367
|
+
sessionId: session.id,
|
|
368
|
+
turnId,
|
|
369
|
+
callId,
|
|
370
|
+
action,
|
|
371
|
+
capability,
|
|
372
|
+
resolve,
|
|
373
|
+
timer,
|
|
374
|
+
onAbort,
|
|
375
|
+
signal,
|
|
376
|
+
};
|
|
377
|
+
this.pendingApprovals.set(approvalId, pending);
|
|
378
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
379
|
+
});
|
|
380
|
+
this.emit(session, {
|
|
381
|
+
type: "approval.required",
|
|
382
|
+
turnId,
|
|
383
|
+
approvalId,
|
|
384
|
+
action,
|
|
385
|
+
capability,
|
|
386
|
+
});
|
|
387
|
+
if (signal.aborted)
|
|
388
|
+
pending.onAbort();
|
|
389
|
+
else if (this.options.approval !== undefined) {
|
|
390
|
+
try {
|
|
391
|
+
void Promise.resolve(this.options.approval.request({
|
|
392
|
+
sessionId: session.id,
|
|
393
|
+
approvalId,
|
|
394
|
+
turnId,
|
|
395
|
+
callId,
|
|
396
|
+
action,
|
|
397
|
+
capability,
|
|
398
|
+
tool,
|
|
399
|
+
input,
|
|
400
|
+
signal,
|
|
401
|
+
})).then((approved) => this.settleApproval(session, approvalId, approved === true, approved === true ? undefined : "approval denied", approved === true ? undefined : "APPROVAL_DENIED"), () => this.settleApproval(session, approvalId, false, "approval callback failed", "APPROVAL_FAILED"));
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
this.settleApproval(session, approvalId, false, "approval callback failed", "APPROVAL_FAILED");
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return promise;
|
|
408
|
+
}
|
|
409
|
+
settleApproval(session, approvalId, approved, reason, errorCode) {
|
|
410
|
+
const pending = this.pendingApprovals.get(approvalId);
|
|
411
|
+
if (pending === undefined || pending.sessionId !== session.id)
|
|
412
|
+
return undefined;
|
|
413
|
+
clearTimeout(pending.timer);
|
|
414
|
+
pending.signal.removeEventListener("abort", pending.onAbort);
|
|
415
|
+
this.pendingApprovals.delete(approvalId);
|
|
416
|
+
const boundedReason = reason === undefined ? undefined : boundedApprovalText(reason, 512);
|
|
417
|
+
const resolution = Object.freeze({
|
|
418
|
+
approved,
|
|
419
|
+
...(boundedReason === undefined ? {} : { reason: boundedReason }),
|
|
420
|
+
...(errorCode === undefined ? {} : { errorCode }),
|
|
421
|
+
});
|
|
422
|
+
this.emit(session, {
|
|
423
|
+
type: "approval.resolved",
|
|
424
|
+
turnId: pending.turnId,
|
|
425
|
+
approvalId,
|
|
426
|
+
approved,
|
|
427
|
+
...(boundedReason === undefined ? {} : { reason: boundedReason }),
|
|
428
|
+
});
|
|
429
|
+
pending.resolve(resolution);
|
|
430
|
+
return resolution;
|
|
431
|
+
}
|
|
432
|
+
async cancelTurn(session, expectedStream, expectedTurnId, reason) {
|
|
433
|
+
if (expectedStream !== undefined &&
|
|
434
|
+
(session.active !== expectedStream || session.turnId !== expectedTurnId))
|
|
435
|
+
return;
|
|
436
|
+
const stream = session.active;
|
|
437
|
+
const turnId = session.turnId;
|
|
438
|
+
const stopReason = boundedText(reason, 512) || "cancelled";
|
|
439
|
+
session.cancelled = true;
|
|
440
|
+
this.clearTurnSignal(session);
|
|
441
|
+
try {
|
|
442
|
+
session.controller.abort(stopReason);
|
|
443
|
+
}
|
|
444
|
+
catch {
|
|
445
|
+
// AbortController.abort is normally infallible; lifecycle cleanup must still complete if a
|
|
446
|
+
// host supplies an unusual controller implementation.
|
|
447
|
+
}
|
|
448
|
+
this.update(session, "stopped");
|
|
449
|
+
this.emit(session, { type: "session.stopped", reason: stopReason });
|
|
450
|
+
stream?.complete();
|
|
451
|
+
this.clearTurn(session, stream, turnId);
|
|
452
|
+
}
|
|
453
|
+
clearTurnSignal(session) {
|
|
454
|
+
session.turnAbortCleanup?.();
|
|
455
|
+
session.turnAbortCleanup = undefined;
|
|
456
|
+
}
|
|
457
|
+
clearTurn(session, stream, turnId) {
|
|
458
|
+
if (stream !== undefined && session.active !== stream)
|
|
459
|
+
return;
|
|
460
|
+
if (turnId !== undefined && session.turnId !== turnId)
|
|
461
|
+
return;
|
|
462
|
+
this.clearTurnSignal(session);
|
|
463
|
+
if (stream === undefined || session.active === stream)
|
|
464
|
+
session.active = undefined;
|
|
465
|
+
if (turnId === undefined || session.turnId === turnId)
|
|
466
|
+
session.turnId = undefined;
|
|
467
|
+
}
|
|
468
|
+
isCurrentTurn(session, stream, turnId, signal) {
|
|
469
|
+
return (!session.closed &&
|
|
470
|
+
!session.cancelled &&
|
|
471
|
+
session.active === stream &&
|
|
472
|
+
session.turnId === turnId &&
|
|
473
|
+
session.controller.signal === signal);
|
|
474
|
+
}
|
|
475
|
+
assertCurrentTurn(session, stream, turnId, signal) {
|
|
476
|
+
if (signal.aborted || !this.isCurrentTurn(session, stream, turnId, signal))
|
|
477
|
+
throw new Error("native turn cancelled");
|
|
290
478
|
}
|
|
291
479
|
emit(session, payload) {
|
|
292
480
|
const event = Object.freeze({
|
|
@@ -296,6 +484,8 @@ export class NifraBackend {
|
|
|
296
484
|
at: this.now(),
|
|
297
485
|
...payload,
|
|
298
486
|
});
|
|
487
|
+
if (!isAgentEvent(event))
|
|
488
|
+
throw new Error("nifra backend emitted an event outside protocol bounds");
|
|
299
489
|
session.snapshot = Object.freeze({
|
|
300
490
|
...session.snapshot,
|
|
301
491
|
lastSeq: event.seq,
|
|
@@ -305,7 +495,9 @@ export class NifraBackend {
|
|
|
305
495
|
}
|
|
306
496
|
update(session, status, turnId) {
|
|
307
497
|
const next = { ...session.snapshot, status, updatedAt: this.now(), lastSeq: session.seq };
|
|
308
|
-
session.snapshot = Object.freeze(status === "running" && turnId !== undefined
|
|
498
|
+
session.snapshot = Object.freeze(status === "running" && turnId !== undefined
|
|
499
|
+
? { ...next, activeTurnId: turnId }
|
|
500
|
+
: removeActiveTurn(next));
|
|
309
501
|
if (session.active !== undefined)
|
|
310
502
|
this.emit(session, { type: "session.updated", snapshot: session.snapshot });
|
|
311
503
|
}
|
|
@@ -322,18 +514,50 @@ export class NifraBackend {
|
|
|
322
514
|
function isAsyncIterable(value) {
|
|
323
515
|
return value !== null && typeof value === "object" && Symbol.asyncIterator in value;
|
|
324
516
|
}
|
|
325
|
-
function boundedText(value) {
|
|
517
|
+
function boundedText(value, maxChars = 64 * 1024) {
|
|
326
518
|
try {
|
|
327
519
|
const text = typeof value === "string" ? value : JSON.stringify(value);
|
|
328
|
-
|
|
520
|
+
if (typeof text !== "string")
|
|
521
|
+
return "[unserializable tool output]";
|
|
522
|
+
const suffix = "…[truncated]";
|
|
523
|
+
return text.length > maxChars
|
|
524
|
+
? `${text.slice(0, Math.max(0, maxChars - suffix.length))}${suffix}`
|
|
525
|
+
: text;
|
|
329
526
|
}
|
|
330
527
|
catch {
|
|
331
528
|
return "[unserializable tool output]";
|
|
332
529
|
}
|
|
333
530
|
}
|
|
531
|
+
function boundedApprovalToken(value) {
|
|
532
|
+
return typeof value === "string" && /^[A-Za-z0-9._:/-]{1,128}$/.test(value);
|
|
533
|
+
}
|
|
534
|
+
function boundedApprovalText(value, maxChars) {
|
|
535
|
+
const text = value.trim();
|
|
536
|
+
if (text.length === 0)
|
|
537
|
+
return "native tool";
|
|
538
|
+
return text.length > maxChars ? `${text.slice(0, maxChars - 1)}…` : text;
|
|
539
|
+
}
|
|
540
|
+
function boundedApprovalMessage(code, toolName, reason) {
|
|
541
|
+
const base = code === "APPROVAL_DENIED"
|
|
542
|
+
? "approval denied"
|
|
543
|
+
: code === "APPROVAL_TIMEOUT"
|
|
544
|
+
? "approval timed out"
|
|
545
|
+
: code === "APPROVAL_CANCELLED"
|
|
546
|
+
? "approval cancelled"
|
|
547
|
+
: code === "APPROVAL_CLOSED"
|
|
548
|
+
? "approval closed"
|
|
549
|
+
: "approval failed";
|
|
550
|
+
const name = boundedApprovalText(toolName, 128);
|
|
551
|
+
const suffix = reason === undefined || reason === "approval denied" ? "" : `: ${reason}`;
|
|
552
|
+
return boundedApprovalText(`${base} for ${name}${suffix}`, 512);
|
|
553
|
+
}
|
|
334
554
|
function failedStream(error) {
|
|
335
555
|
const stream = createAgentEventStream();
|
|
336
556
|
stream.fail(error);
|
|
337
557
|
return stream;
|
|
338
558
|
}
|
|
559
|
+
function removeActiveTurn(snapshot) {
|
|
560
|
+
const { activeTurnId: _activeTurnId, ...withoutActiveTurn } = snapshot;
|
|
561
|
+
return withoutActiveTurn;
|
|
562
|
+
}
|
|
339
563
|
//# sourceMappingURL=native.js.map
|