@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.
Files changed (49) hide show
  1. package/dist/context.js +29 -1
  2. package/dist/context.js.map +1 -1
  3. package/dist/diff.js +38 -2
  4. package/dist/diff.js.map +1 -1
  5. package/dist/host.d.ts.map +1 -1
  6. package/dist/host.js +217 -24
  7. package/dist/host.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/isolated.js +37 -2
  13. package/dist/isolated.js.map +1 -1
  14. package/dist/native.d.ts +17 -0
  15. package/dist/native.d.ts.map +1 -1
  16. package/dist/native.js +265 -41
  17. package/dist/native.js.map +1 -1
  18. package/dist/replay.d.ts +4 -0
  19. package/dist/replay.d.ts.map +1 -1
  20. package/dist/replay.js +189 -24
  21. package/dist/replay.js.map +1 -1
  22. package/dist/rpc.d.ts +10 -0
  23. package/dist/rpc.d.ts.map +1 -1
  24. package/dist/rpc.js +208 -29
  25. package/dist/rpc.js.map +1 -1
  26. package/dist/sessions.d.ts +14 -2
  27. package/dist/sessions.d.ts.map +1 -1
  28. package/dist/sessions.js +253 -59
  29. package/dist/sessions.js.map +1 -1
  30. package/dist/verification.d.ts +23 -0
  31. package/dist/verification.d.ts.map +1 -1
  32. package/dist/verification.js +113 -1
  33. package/dist/verification.js.map +1 -1
  34. package/dist/workflows.d.ts +1 -0
  35. package/dist/workflows.d.ts.map +1 -1
  36. package/dist/workflows.js +43 -21
  37. package/dist/workflows.js.map +1 -1
  38. package/package.json +6 -5
  39. package/src/context.ts +32 -1
  40. package/src/diff.ts +40 -2
  41. package/src/host.ts +219 -24
  42. package/src/index.ts +5 -0
  43. package/src/isolated.ts +39 -2
  44. package/src/native.ts +408 -42
  45. package/src/replay.ts +206 -25
  46. package/src/rpc.ts +261 -33
  47. package/src/sessions.ts +271 -56
  48. package/src/verification.ts +140 -1
  49. package/src/workflows.ts +37 -25
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
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
- session.controller.abort(externalSignal.reason);
107
- else
108
- externalSignal.addEventListener("abort", () => session.controller.abort(externalSignal.reason), { once: true });
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
- const stream = session.active;
118
- session.controller.abort(reason);
119
- this.update(session, "stopped");
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
- const turnId = crypto.randomUUID();
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
- if (signal.aborted)
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
- session.messages.push({ role: "assistant", text: response.text });
179
- this.emit(session, { type: "assistant.message", turnId, text: response.text });
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
- if (this.options.approval === undefined ||
209
- !(await this.options.approval.request({
210
- sessionId: session.id,
211
- tool,
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("APPROVAL_DENIED", `approval denied for ${tool.name}`),
271
+ error: agentError(code, boundedApprovalMessage(code, tool.name, resolution.reason)),
222
272
  });
223
- session.messages.push({ role: "tool", name: tool.name, text: "approval denied" });
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 tool.execute(response.input, { cwd: session.cwd, signal });
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
- const message = error instanceof Error ? error.message : String(error);
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.closed)
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
- this.update(session, signal.aborted ? "stopped" : "failed");
316
+ }
317
+ this.update(session, "failed");
259
318
  this.emit(session, {
260
319
  type: "session.failed",
261
- error: agentError(signal.aborted ? "TURN_CANCELLED" : "NATIVE_TURN_FAILED", error instanceof Error ? error.message : String(error)),
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.active = undefined;
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
- if (signal.aborted)
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
- return await raw;
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.active = undefined;
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 ? { ...next, activeTurnId: turnId } : next);
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
- return text.length > 64 * 1024 ? `${text.slice(0, 64 * 1024)}…[truncated]` : text;
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