@polpo-ai/server 0.17.3 → 0.18.1

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/routes/completions/agent-step-runner.d.ts +2 -0
  2. package/dist/routes/completions/agent-step-runner.d.ts.map +1 -1
  3. package/dist/routes/completions/agent-step-runner.js +196 -96
  4. package/dist/routes/completions/agent-step-runner.js.map +1 -1
  5. package/dist/routes/completions/agent-step-runner.test.js +34 -14
  6. package/dist/routes/completions/agent-step-runner.test.js.map +1 -1
  7. package/dist/routes/completions/chat-handler.d.ts +3 -1
  8. package/dist/routes/completions/chat-handler.d.ts.map +1 -1
  9. package/dist/routes/completions/chat-handler.js +203 -49
  10. package/dist/routes/completions/chat-handler.js.map +1 -1
  11. package/dist/routes/completions/chat-via-run-handler.test.js +64 -0
  12. package/dist/routes/completions/chat-via-run-handler.test.js.map +1 -1
  13. package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
  14. package/dist/routes/completions/conversation-turn.js +28 -0
  15. package/dist/routes/completions/conversation-turn.js.map +1 -1
  16. package/dist/routes/completions/production-tool-replay.test.d.ts +2 -0
  17. package/dist/routes/completions/production-tool-replay.test.d.ts.map +1 -0
  18. package/dist/routes/completions/production-tool-replay.test.js +232 -0
  19. package/dist/routes/completions/production-tool-replay.test.js.map +1 -0
  20. package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
  21. package/dist/routes/completions/project-loop-runner.js +5 -1
  22. package/dist/routes/completions/project-loop-runner.js.map +1 -1
  23. package/dist/routes/completions/sse.d.ts.map +1 -1
  24. package/dist/routes/completions/sse.js +3 -1
  25. package/dist/routes/completions/sse.js.map +1 -1
  26. package/dist/routes/completions/structured-output-phases.test.d.ts +2 -0
  27. package/dist/routes/completions/structured-output-phases.test.d.ts.map +1 -0
  28. package/dist/routes/completions/structured-output-phases.test.js +255 -0
  29. package/dist/routes/completions/structured-output-phases.test.js.map +1 -0
  30. package/dist/routes/completions/tool-guardrails.d.ts +21 -3
  31. package/dist/routes/completions/tool-guardrails.d.ts.map +1 -1
  32. package/dist/routes/completions/tool-guardrails.js +95 -14
  33. package/dist/routes/completions/tool-guardrails.js.map +1 -1
  34. package/dist/routes/completions/tool-guardrails.test.js +215 -5
  35. package/dist/routes/completions/tool-guardrails.test.js.map +1 -1
  36. package/dist/routes/completions/tool-mapping.d.ts +1 -0
  37. package/dist/routes/completions/tool-mapping.d.ts.map +1 -1
  38. package/dist/routes/completions/tool-mapping.js +8 -4
  39. package/dist/routes/completions/tool-mapping.js.map +1 -1
  40. package/dist/routes/completions/tool-mapping.test.js +59 -38
  41. package/dist/routes/completions/tool-mapping.test.js.map +1 -1
  42. package/dist/routes/completions-loop-runtime.test.js +45 -3
  43. package/dist/routes/completions-loop-runtime.test.js.map +1 -1
  44. package/dist/routes/completions-provider-tools.test.js +21 -2
  45. package/dist/routes/completions-provider-tools.test.js.map +1 -1
  46. package/dist/routes/completions.d.ts +2 -0
  47. package/dist/routes/completions.d.ts.map +1 -1
  48. package/dist/routes/completions.js.map +1 -1
  49. package/package.json +7 -7
@@ -30,6 +30,8 @@ export interface ResolvedModelInfo {
30
30
  runtimeMode?: "provider" | "gateway";
31
31
  contextWindow: number;
32
32
  maxTokens: number;
33
+ /** Capability proof for the concrete provider/model/adapter/endpoint. */
34
+ capabilities?: import("@polpo-ai/llm").ModelRuntimeCapabilities;
33
35
  }
34
36
  export interface CompletionResolvedModelInfo {
35
37
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-step-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-step-runner.d.ts","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * step's overlay-merged agent config — used by the project loop runtime
6
6
  * to execute `loop:` steps inside a deterministic pipeline.
7
7
  */
8
- import { agentMemoryScope, compactIfNeeded, createRuntimePromptContextSegment, loopContextPrompt, loopAgentInputPrompt, loopUserVisibleContext, maybeParseJson, normalizeRuntimeContextTrustMode, protectRuntimeToolResultMessages, renderRuntimePromptContextSegment, renderRuntimeToolResult, renderRuntimeContextPrompt, replacesLegacyAgentMemory, replacesLegacySharedMemory, resolveConfiguredModelSelection, isClientInteractionToolName, LoopInteractiveToolUnsupportedError, LoopAgentOutputError, prepareLoopAgentOutput, assertToolNameAllowedByPolicy, } from "@polpo-ai/core";
8
+ import { agentMemoryScope, compactIfNeeded, createRuntimePromptContextSegment, loopContextPrompt, loopAgentInputPrompt, loopUserVisibleContext, maybeParseJson, normalizeRuntimeContextTrustMode, protectRuntimeToolResultMessages, renderRuntimePromptContextSegment, renderRuntimeToolResult, renderRuntimeContextPrompt, replacesLegacyAgentMemory, replacesLegacySharedMemory, resolveConfiguredModelSelection, isClientInteractionToolName, LoopInteractiveToolUnsupportedError, LoopAgentOutputError, ToolProgressTracker, prepareLoopAgentOutput, assertToolNameAllowedByPolicy, } from "@polpo-ai/core";
9
9
  import { generateText } from "ai";
10
10
  import { classifyRuntimeError, prepareModelMessagesForProvider, prepareModelMessagesForTransport, isStructuredModelOutputError, modelOutputForJsonSchema, runModelPolicyTurn, } from "@polpo-ai/llm";
11
11
  import { appendModelResponseMessages } from "./message-mapping.js";
@@ -231,7 +231,62 @@ export async function runAgentStepCompletion(options) {
231
231
  runId: options.runId,
232
232
  sessionId: options.sessionId,
233
233
  },
234
+ receiptStore: options.toolRunScope?.receiptStore,
234
235
  });
236
+ const progressTracker = new ToolProgressTracker();
237
+ const toolAnnotations = new Map(loopTools
238
+ .filter((tool) => tool && typeof tool.name === "string")
239
+ .map((tool) => [tool.name, tool.annotations]));
240
+ let stalledToolLoop;
241
+ const guardedExecuteTool = executeTool;
242
+ executeTool = async (name, args, execution) => {
243
+ const call = {
244
+ name,
245
+ args,
246
+ annotations: toolAnnotations.get(name),
247
+ };
248
+ const progress = progressTracker.inspect(call);
249
+ if (progress.action === "reuse") {
250
+ deps.emit("runtime:tool-progress", {
251
+ action: "reuse",
252
+ tool: name,
253
+ fingerprint: progress.fingerprint,
254
+ observation: progress.observation,
255
+ step: stepName,
256
+ agent: agentConfig.name,
257
+ runId: options.runId,
258
+ sessionId: options.sessionId,
259
+ });
260
+ return progress.result;
261
+ }
262
+ if (progress.action === "stall") {
263
+ stalledToolLoop = {
264
+ toolName: name,
265
+ fingerprint: progress.fingerprint,
266
+ observation: progress.observation,
267
+ message: progress.message,
268
+ };
269
+ deps.emit("runtime:tool-progress", {
270
+ action: "stall",
271
+ code: progress.code,
272
+ tool: name,
273
+ fingerprint: progress.fingerprint,
274
+ observation: progress.observation,
275
+ step: stepName,
276
+ agent: agentConfig.name,
277
+ runId: options.runId,
278
+ sessionId: options.sessionId,
279
+ });
280
+ return `Error: ${progress.message}`;
281
+ }
282
+ const result = await guardedExecuteTool(name, args, execution);
283
+ progressTracker.record({
284
+ ...call,
285
+ result,
286
+ isError: result.startsWith("Error:"),
287
+ });
288
+ return result;
289
+ };
235
290
  const modelToolChoice = toAIToolChoice(agentConfig.toolChoice);
236
291
  let modelTools = loopTools;
237
292
  let activeToolNames;
@@ -285,96 +340,137 @@ export async function runAgentStepCompletion(options) {
285
340
  let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
286
341
  let lastProviderMetadata;
287
342
  const toolCallsAccum = [];
288
- let structuredOutputRecoveryUsed = false;
289
- try {
290
- for (let turn = 0; turn < (agentConfig.maxTurns ?? MAX_TURNS); turn++) {
291
- const compactionResult = await compactIfNeeded({
292
- systemPrompt: fullSystemPrompt,
293
- messages,
294
- tools: activeCompactionTools?.() ?? modelTools,
295
- config: {
296
- contextWindow: m.contextWindow ?? 200_000,
297
- maxOutputTokens: m.maxTokens ?? 8192,
298
- },
299
- summarize: buildSummarizeFn(m, providerOpts),
300
- mode: "chat",
301
- });
302
- if (compactionResult.compacted) {
303
- const compacted = contextTrust === "enforce"
304
- ? protectRuntimeToolResultMessages(compactionResult.messages)
305
- : compactionResult.messages;
306
- messages.splice(0, messages.length, ...compacted);
307
- }
308
- const toolCallNames = new Map();
309
- const resolvedAttempts = new Map();
310
- const recoverTerminalStructuredOutput = async (originalError) => {
311
- const originalClassification = classifyRuntimeError(originalError);
312
- const hasCompletedOperationalTool = toolCallsAccum.some((toolCall) => toolCall?.state === "completed");
313
- if (structuredOutputRecoveryUsed
314
- || modelOutput === undefined
315
- || !hasCompletedOperationalTool
316
- || originalClassification.providerCode === "provider_stream_event_invalid") {
317
- return undefined;
318
- }
319
- structuredOutputRecoveryUsed = true;
320
- const { raw: _originalRaw, ...originalDiagnostic } = originalClassification;
343
+ const completeTerminalStructuredOutput = async () => {
344
+ if (modelOutput === undefined)
345
+ return;
346
+ let originalDiagnostic;
347
+ for (let attemptIndex = 0; attemptIndex < 2; attemptIndex += 1) {
348
+ const isRecovery = attemptIndex === 1;
349
+ if (isRecovery) {
350
+ const { raw: _raw, ...original } = originalDiagnostic;
321
351
  deps.emit("runtime:structured-output-recovery", {
322
352
  phase: "started",
323
353
  step: stepName,
324
354
  agent: agentConfig.name,
325
355
  runId: options.runId,
326
356
  sessionId: options.sessionId,
327
- original: originalDiagnostic,
357
+ original,
328
358
  });
329
- try {
330
- const recoveryResult = await runModelPolicyTurn({
331
- selection: modelSelection,
332
- resolveAttempt: async (attempt) => {
333
- const resolvedAttempt = attempt.index === 0
334
- ? initialResolved
335
- : await deps.resolveAgentModel(agentConfigForModelAttempt(agentConfig, attempt.model), reasoning);
336
- resolvedAttempts.set(attempt.index, resolvedAttempt);
337
- return {
338
- model: resolvedAttempt.model.aiModel,
339
- maxOutputTokens: resolvedAttempt.model.maxTokens,
340
- providerOptions: resolvedAttempt.providerOptions,
341
- };
342
- },
343
- preserveSingleAttemptError: true,
344
- maxRecoverableStreamRetries: 0,
345
- system: `${fullSystemPrompt}\n\n## Terminal structured output recovery\n\nAll operational work is already complete. Produce only the terminal JSON matching the requested schema from the canonical tool results. Do not call tools, modify files, reinterpret the requested scope, or claim work not evidenced by those results.`,
346
- messages,
347
- output: modelOutput,
348
- ...(options.signal ? { abortSignal: options.signal } : {}),
349
- });
350
- deps.emit("runtime:structured-output-recovery", {
351
- phase: "succeeded",
359
+ }
360
+ const resolvedAttempts = new Map();
361
+ try {
362
+ const terminalResult = await runModelPolicyTurn({
363
+ selection: modelSelection,
364
+ resolveAttempt: async (attempt) => {
365
+ const resolvedAttempt = attempt.index === 0
366
+ ? initialResolved
367
+ : await deps.resolveAgentModel(agentConfigForModelAttempt(agentConfig, attempt.model), reasoning);
368
+ resolvedAttempts.set(attempt.index, resolvedAttempt);
369
+ return {
370
+ model: resolvedAttempt.model.aiModel,
371
+ maxOutputTokens: resolvedAttempt.model.maxTokens,
372
+ providerOptions: resolvedAttempt.providerOptions,
373
+ capabilities: resolvedAttempt.model.capabilities,
374
+ };
375
+ },
376
+ preserveSingleAttemptError: true,
377
+ allowCommittedFallback: true,
378
+ maxRecoverableStreamRetries: 0,
379
+ system: isRecovery
380
+ ? `${fullSystemPrompt}\n\n## Terminal structured output recovery\n\nAll operational work is already complete. Produce only the terminal JSON matching the requested schema from the canonical tool results. Do not call tools, modify files, reinterpret the requested scope, or claim work not evidenced by those results.`
381
+ : `${fullSystemPrompt}\n\n## Terminal structured output\n\nOperational work is complete. Produce only the terminal result matching the requested schema from the canonical conversation and tool results.`,
382
+ messages,
383
+ output: modelOutput,
384
+ ...(options.signal ? { abortSignal: options.signal } : {}),
385
+ });
386
+ if (terminalResult.toolCalls.length > 0 || terminalResult.output === undefined) {
387
+ throw new Error(terminalResult.toolCalls.length > 0
388
+ ? "Terminal structured-output phase returned a tool call"
389
+ : "Terminal structured-output phase completed without structured output");
390
+ }
391
+ for (const warning of terminalResult.warnings ?? []) {
392
+ deps.emit("runtime:model-warning", {
393
+ source: "loop-step-terminal-output",
352
394
  step: stepName,
353
395
  agent: agentConfig.name,
354
396
  runId: options.runId,
355
397
  sessionId: options.sessionId,
398
+ warning,
356
399
  });
357
- return recoveryResult;
358
400
  }
359
- catch (recoveryError) {
360
- const recoveryClassification = classifyRuntimeError(recoveryError);
361
- const { raw: _recoveryRaw, ...recoveryDiagnostic } = recoveryClassification;
401
+ const prepared = prepareLoopAgentOutput(stepName, terminalResult.output, outputSchema);
402
+ const selectedResolved = resolvedAttempts.get(terminalResult.selectedAttempt.index);
403
+ if (selectedResolved) {
404
+ m = selectedResolved.model;
405
+ providerOpts = selectedResolved.providerOptions;
406
+ }
407
+ totalUsage = addUsage(totalUsage, terminalResult.usage);
408
+ finalReasoning = appendReasoningSummary(finalReasoning, terminalResult.reasoning);
409
+ lastProviderMetadata = terminalResult.providerMetadata;
410
+ finalOutput = prepared.value;
411
+ finalText = prepared.serialized;
412
+ completedStructuredOutput = true;
413
+ if (isRecovery) {
362
414
  deps.emit("runtime:structured-output-recovery", {
363
- phase: "failed",
415
+ phase: "succeeded",
364
416
  step: stepName,
365
417
  agent: agentConfig.name,
366
418
  runId: options.runId,
367
419
  sessionId: options.sessionId,
368
- original: originalDiagnostic,
369
- recovery: recoveryDiagnostic,
370
420
  });
371
- throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} did not produce valid structured output after one terminal recovery attempt`, {
372
- phase: "terminal_output_recovery",
373
- original: originalDiagnostic,
374
- recovery: recoveryDiagnostic,
375
- }, { cause: recoveryError });
376
421
  }
377
- };
422
+ return;
423
+ }
424
+ catch (error) {
425
+ const diagnostic = classifyRuntimeError(error);
426
+ if (!isRecovery) {
427
+ originalDiagnostic = diagnostic;
428
+ continue;
429
+ }
430
+ const { raw: _originalRaw, ...original } = originalDiagnostic;
431
+ const { raw: _recoveryRaw, ...recovery } = diagnostic;
432
+ deps.emit("runtime:structured-output-recovery", {
433
+ phase: "failed",
434
+ step: stepName,
435
+ agent: agentConfig.name,
436
+ runId: options.runId,
437
+ sessionId: options.sessionId,
438
+ original,
439
+ recovery,
440
+ });
441
+ throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} did not produce valid structured output after one terminal recovery attempt`, {
442
+ phase: "terminal_output_recovery",
443
+ original,
444
+ recovery,
445
+ }, { cause: error });
446
+ }
447
+ }
448
+ };
449
+ try {
450
+ const hasOperationalTools = Object.keys(aiTools).length > 0;
451
+ if (outputSchema !== undefined && !hasOperationalTools) {
452
+ await completeTerminalStructuredOutput();
453
+ }
454
+ for (let turn = 0; !completedStructuredOutput && turn < (agentConfig.maxTurns ?? MAX_TURNS); turn++) {
455
+ const compactionResult = await compactIfNeeded({
456
+ systemPrompt: fullSystemPrompt,
457
+ messages,
458
+ tools: activeCompactionTools?.() ?? modelTools,
459
+ config: {
460
+ contextWindow: m.contextWindow ?? 200_000,
461
+ maxOutputTokens: m.maxTokens ?? 8192,
462
+ },
463
+ summarize: buildSummarizeFn(m, providerOpts),
464
+ mode: "chat",
465
+ });
466
+ if (compactionResult.compacted) {
467
+ const compacted = contextTrust === "enforce"
468
+ ? protectRuntimeToolResultMessages(compactionResult.messages)
469
+ : compactionResult.messages;
470
+ messages.splice(0, messages.length, ...compacted);
471
+ }
472
+ const toolCallNames = new Map();
473
+ const resolvedAttempts = new Map();
378
474
  let turnResult;
379
475
  try {
380
476
  turnResult = await runModelPolicyTurn({
@@ -388,6 +484,7 @@ export async function runAgentStepCompletion(options) {
388
484
  model: resolvedAttempt.model.aiModel,
389
485
  maxOutputTokens: resolvedAttempt.model.maxTokens,
390
486
  providerOptions: resolvedAttempt.providerOptions,
487
+ capabilities: resolvedAttempt.model.capabilities,
391
488
  };
392
489
  },
393
490
  preserveSingleAttemptError: true,
@@ -399,10 +496,19 @@ export async function runAgentStepCompletion(options) {
399
496
  ...(options.parallelToolCalls !== undefined
400
497
  ? { parallelToolCalls: options.parallelToolCalls }
401
498
  : {}),
402
- ...(modelOutput ? { output: modelOutput } : {}),
403
499
  ...(options.signal ? { abortSignal: options.signal } : {}),
404
500
  }, async (event) => {
405
- if (event.type === "tool-input-start") {
501
+ if (event.type === "warning") {
502
+ deps.emit("runtime:model-warning", {
503
+ source: "loop-step",
504
+ step: stepName,
505
+ agent: agentConfig.name,
506
+ runId: options.runId,
507
+ sessionId: options.sessionId,
508
+ warning: event.warning,
509
+ });
510
+ }
511
+ else if (event.type === "tool-input-start") {
406
512
  toolCallNames.set(event.id, event.name);
407
513
  await onToolCall?.({
408
514
  id: event.id,
@@ -434,27 +540,12 @@ export async function runAgentStepCompletion(options) {
434
540
  }
435
541
  catch (error) {
436
542
  if (outputSchema !== undefined && isStructuredModelOutputError(error)) {
437
- const recoveryResult = await recoverTerminalStructuredOutput(error);
438
- if (recoveryResult) {
439
- turnResult = recoveryResult;
440
- }
441
- else {
442
- throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} did not produce valid structured output`, { phase: "model_output" }, { cause: error });
443
- }
543
+ throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} failed during the operational phase`, { phase: "operational" }, { cause: error });
444
544
  }
445
545
  else {
446
546
  throw error;
447
547
  }
448
548
  }
449
- if (outputSchema !== undefined
450
- && turnResult.toolCalls.length === 0
451
- && turnResult.output === undefined) {
452
- const recoveryResult = await recoverTerminalStructuredOutput(new Error("Model completed without structured output"));
453
- if (recoveryResult) {
454
- totalUsage = addUsage(totalUsage, turnResult.usage);
455
- turnResult = recoveryResult;
456
- }
457
- }
458
549
  const turnText = turnResult.text;
459
550
  finalReasoning = appendReasoningSummary(finalReasoning, turnResult.reasoning);
460
551
  const selectedResolved = resolvedAttempts.get(turnResult.selectedAttempt.index);
@@ -469,13 +560,7 @@ export async function runAgentStepCompletion(options) {
469
560
  finalText += turnText;
470
561
  if (turnResult.toolCalls.length === 0) {
471
562
  if (outputSchema !== undefined) {
472
- if (turnResult.output === undefined) {
473
- throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} completed without structured output`, { phase: "model_output" });
474
- }
475
- const prepared = prepareLoopAgentOutput(stepName, turnResult.output, outputSchema);
476
- finalOutput = prepared.value;
477
- finalText = prepared.serialized;
478
- completedStructuredOutput = true;
563
+ await completeTerminalStructuredOutput();
479
564
  }
480
565
  break;
481
566
  }
@@ -569,6 +654,21 @@ export async function runAgentStepCompletion(options) {
569
654
  await appendLocalResult(call, callArgs, result, result.startsWith("Error:"));
570
655
  }
571
656
  }
657
+ if (stalledToolLoop)
658
+ break;
659
+ }
660
+ if (stalledToolLoop) {
661
+ throw new LoopAgentOutputError("tool_loop_stalled", stepName, stalledToolLoop.message, {
662
+ phase: "tool_progress",
663
+ tool: stalledToolLoop.toolName,
664
+ fingerprint: stalledToolLoop.fingerprint,
665
+ observation: stalledToolLoop.observation,
666
+ });
667
+ }
668
+ if (outputSchema !== undefined
669
+ && !completedStructuredOutput
670
+ && toolCallsAccum.some((toolCall) => toolCall?.state === "completed")) {
671
+ await completeTerminalStructuredOutput();
572
672
  }
573
673
  if (outputSchema !== undefined && !completedStructuredOutput) {
574
674
  throw new LoopAgentOutputError("loop_agent_output_invalid", stepName, `Agent step ${JSON.stringify(stepName)} exhausted maxTurns before producing structured output`, { phase: "max_turns" });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-step-runner.js","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-step-runner.js","sourceRoot":"","sources":["../../../src/routes/completions/agent-step-runner.ts"],"names":[],"mappings":"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"}
@@ -717,7 +717,8 @@ describe("runAgentStepCompletion structured loop output", () => {
717
717
  },
718
718
  };
719
719
  function structuredStepDeps(finalText, maxTurns = 2, recoveryText = finalText) {
720
- let turn = 0;
720
+ let operationalTurn = 0;
721
+ let terminalAttempt = 0;
721
722
  const responseFormats = [];
722
723
  const toolCounts = [];
723
724
  const executeTool = vi.fn(async () => "inspection complete");
@@ -725,8 +726,10 @@ describe("runAgentStepCompletion structured loop output", () => {
725
726
  doStream: async (options) => {
726
727
  responseFormats.push(options.responseFormat);
727
728
  toolCounts.push(options.tools?.length ?? 0);
728
- turn += 1;
729
- if (turn === 1) {
729
+ if (!options.responseFormat) {
730
+ operationalTurn += 1;
731
+ }
732
+ if (!options.responseFormat && operationalTurn === 1) {
730
733
  return { stream: convertArrayToReadableStream([
731
734
  { type: "stream-start", warnings: [] },
732
735
  { type: "text-start", id: "preface" },
@@ -736,7 +739,17 @@ describe("runAgentStepCompletion structured loop output", () => {
736
739
  { type: "finish", finishReason: { unified: "tool-calls", raw: undefined }, usage },
737
740
  ]) };
738
741
  }
739
- const terminalText = turn === 2 ? finalText : recoveryText;
742
+ if (!options.responseFormat) {
743
+ return { stream: convertArrayToReadableStream([
744
+ { type: "stream-start", warnings: [] },
745
+ { type: "text-start", id: "operational-complete" },
746
+ { type: "text-delta", id: "operational-complete", delta: "Operational work complete." },
747
+ { type: "text-end", id: "operational-complete" },
748
+ { type: "finish", finishReason: { unified: "stop", raw: undefined }, usage },
749
+ ]) };
750
+ }
751
+ terminalAttempt += 1;
752
+ const terminalText = terminalAttempt === 1 ? finalText : recoveryText;
740
753
  return { stream: convertArrayToReadableStream([
741
754
  { type: "stream-start", warnings: [] },
742
755
  { type: "text-start", id: "final" },
@@ -783,9 +796,11 @@ describe("runAgentStepCompletion structured loop output", () => {
783
796
  outputSchema,
784
797
  });
785
798
  expect(fixture.responseFormats).toEqual([
786
- expect.objectContaining({ type: "json" }),
799
+ undefined,
800
+ undefined,
787
801
  expect.objectContaining({ type: "json" }),
788
802
  ]);
803
+ expect(fixture.toolCounts).toEqual([1, 1, 0]);
789
804
  expect(result.output).toEqual({ summary: "implemented", response: "ready" });
790
805
  expect(result.text).toBe('{"summary":"implemented","response":"ready"}');
791
806
  });
@@ -817,8 +832,9 @@ describe("runAgentStepCompletion structured loop output", () => {
817
832
  });
818
833
  expect(result.output).toEqual({ summary: "implemented", response: "ready" });
819
834
  expect(result.text).toBe('{"summary":"implemented","response":"ready"}');
820
- expect(fixture.responseFormats).toHaveLength(3);
821
- expect(fixture.toolCounts).toEqual([1, 1, 0]);
835
+ expect(fixture.responseFormats).toHaveLength(4);
836
+ expect(fixture.responseFormats.slice(0, 2)).toEqual([undefined, undefined]);
837
+ expect(fixture.toolCounts).toEqual([1, 1, 0, 0]);
822
838
  expect(fixture.deps.resolveAgentTools).toHaveBeenCalledTimes(1);
823
839
  expect(fixture.executeTool).toHaveBeenCalledTimes(1);
824
840
  expect(fixture.deps.emit).toHaveBeenCalledWith("runtime:structured-output-recovery", expect.objectContaining({ phase: "succeeded", step: "implement" }));
@@ -839,13 +855,14 @@ describe("runAgentStepCompletion structured loop output", () => {
839
855
  details: expect.objectContaining({ phase: "terminal_output_recovery" }),
840
856
  });
841
857
  expect(fixture.executeTool).toHaveBeenCalledTimes(1);
842
- expect(fixture.responseFormats).toHaveLength(3);
843
- expect(fixture.toolCounts).toEqual([1, 1, 0]);
858
+ expect(fixture.responseFormats).toHaveLength(4);
859
+ expect(fixture.responseFormats.slice(0, 2)).toEqual([undefined, undefined]);
860
+ expect(fixture.toolCounts).toEqual([1, 1, 0, 0]);
844
861
  expect(fixture.deps.emit).toHaveBeenCalledWith("runtime:structured-output-recovery", expect.objectContaining({ phase: "failed", step: "implement" }));
845
862
  });
846
- it("rejects max-turn exhaustion before a structured terminal output exists", async () => {
863
+ it("uses a no-tool terminal turn after maxTurns when completed tool evidence exists", async () => {
847
864
  const fixture = structuredStepDeps('{"summary":"unused","response":"unused"}', 1);
848
- await expect(runAgentStepCompletion({
865
+ const result = await runAgentStepCompletion({
849
866
  deps: fixture.deps,
850
867
  agentConfig: { name: "nested-agent", model: "mock/model", maxTurns: fixture.maxTurns },
851
868
  aiMessages: [{ role: "user", content: "Implement it" }],
@@ -853,10 +870,13 @@ describe("runAgentStepCompletion structured loop output", () => {
853
870
  context: {},
854
871
  stepName: "implement",
855
872
  outputSchema,
856
- })).rejects.toMatchObject({
857
- code: "loop_agent_output_invalid",
858
- stepName: "implement",
859
873
  });
874
+ expect(result.output).toEqual({ summary: "unused", response: "unused" });
875
+ expect(fixture.responseFormats).toEqual([
876
+ undefined,
877
+ expect.objectContaining({ type: "json" }),
878
+ ]);
879
+ expect(fixture.toolCounts).toEqual([1, 0]);
860
880
  });
861
881
  });
862
882
  //# sourceMappingURL=agent-step-runner.test.js.map