@aeye/core 0.5.4 → 0.6.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 (117) hide show
  1. package/README.md +51 -4
  2. package/aeye-core-schema.md +11 -7
  3. package/dist/common.d.ts +30 -5
  4. package/dist/common.d.ts.map +1 -1
  5. package/dist/common.js +134 -129
  6. package/dist/common.js.map +1 -1
  7. package/dist/delivery.d.ts +39 -0
  8. package/dist/delivery.d.ts.map +1 -0
  9. package/dist/delivery.js +127 -0
  10. package/dist/delivery.js.map +1 -0
  11. package/dist/errors.d.ts +60 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +84 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/prompt.d.ts +101 -9
  20. package/dist/prompt.d.ts.map +1 -1
  21. package/dist/prompt.js +163 -141
  22. package/dist/prompt.js.map +1 -1
  23. package/dist/schema/analyze.d.ts +94 -0
  24. package/dist/schema/analyze.d.ts.map +1 -0
  25. package/dist/schema/analyze.js +221 -0
  26. package/dist/schema/analyze.js.map +1 -0
  27. package/dist/schema/any-value.d.ts +32 -0
  28. package/dist/schema/any-value.d.ts.map +1 -0
  29. package/dist/schema/any-value.js +77 -0
  30. package/dist/schema/any-value.js.map +1 -0
  31. package/dist/schema/budget.d.ts +114 -0
  32. package/dist/schema/budget.d.ts.map +1 -0
  33. package/dist/schema/budget.js +223 -0
  34. package/dist/schema/budget.js.map +1 -0
  35. package/dist/schema/consistency.d.ts +27 -0
  36. package/dist/schema/consistency.d.ts.map +1 -0
  37. package/dist/schema/consistency.js +110 -0
  38. package/dist/schema/consistency.js.map +1 -0
  39. package/dist/schema/cycle-breaker.d.ts +14 -0
  40. package/dist/schema/cycle-breaker.d.ts.map +1 -0
  41. package/dist/schema/cycle-breaker.js +157 -0
  42. package/dist/schema/cycle-breaker.js.map +1 -0
  43. package/dist/schema/decode.d.ts +31 -0
  44. package/dist/schema/decode.d.ts.map +1 -0
  45. package/dist/schema/decode.js +207 -0
  46. package/dist/schema/decode.js.map +1 -0
  47. package/dist/schema/descriptor.d.ts +300 -0
  48. package/dist/schema/descriptor.d.ts.map +1 -0
  49. package/dist/schema/descriptor.js +15 -0
  50. package/dist/schema/descriptor.js.map +1 -0
  51. package/dist/schema/dialects/anthropic.d.ts +34 -0
  52. package/dist/schema/dialects/anthropic.d.ts.map +1 -0
  53. package/dist/schema/dialects/anthropic.js +77 -0
  54. package/dist/schema/dialects/anthropic.js.map +1 -0
  55. package/dist/schema/dialects/google.d.ts +47 -0
  56. package/dist/schema/dialects/google.d.ts.map +1 -0
  57. package/dist/schema/dialects/google.js +91 -0
  58. package/dist/schema/dialects/google.js.map +1 -0
  59. package/dist/schema/dialects/lenient.d.ts +4 -0
  60. package/dist/schema/dialects/lenient.d.ts.map +1 -0
  61. package/dist/schema/dialects/lenient.js +26 -0
  62. package/dist/schema/dialects/lenient.js.map +1 -0
  63. package/dist/schema/dialects/openai.d.ts +40 -0
  64. package/dist/schema/dialects/openai.d.ts.map +1 -0
  65. package/dist/schema/dialects/openai.js +81 -0
  66. package/dist/schema/dialects/openai.js.map +1 -0
  67. package/dist/schema/dialects/xai.d.ts +23 -0
  68. package/dist/schema/dialects/xai.d.ts.map +1 -0
  69. package/dist/schema/dialects/xai.js +53 -0
  70. package/dist/schema/dialects/xai.js.map +1 -0
  71. package/dist/schema/enum-values.d.ts +44 -0
  72. package/dist/schema/enum-values.d.ts.map +1 -0
  73. package/dist/schema/enum-values.js +56 -0
  74. package/dist/schema/enum-values.js.map +1 -0
  75. package/dist/schema/expressible.d.ts +59 -0
  76. package/dist/schema/expressible.d.ts.map +1 -0
  77. package/dist/schema/expressible.js +161 -0
  78. package/dist/schema/expressible.js.map +1 -0
  79. package/dist/schema/index.d.ts +20 -0
  80. package/dist/schema/index.d.ts.map +1 -0
  81. package/dist/schema/index.js +20 -0
  82. package/dist/schema/index.js.map +1 -0
  83. package/dist/schema/json-schema.d.ts +64 -0
  84. package/dist/schema/json-schema.d.ts.map +1 -0
  85. package/dist/schema/json-schema.js +2 -0
  86. package/dist/schema/json-schema.js.map +1 -0
  87. package/dist/schema/registry.d.ts +73 -0
  88. package/dist/schema/registry.d.ts.map +1 -0
  89. package/dist/schema/registry.js +135 -0
  90. package/dist/schema/registry.js.map +1 -0
  91. package/dist/schema/strictify.d.ts +19 -0
  92. package/dist/schema/strictify.d.ts.map +1 -0
  93. package/dist/schema/strictify.js +237 -0
  94. package/dist/schema/strictify.js.map +1 -0
  95. package/dist/schema/to-json-schema.d.ts +29 -0
  96. package/dist/schema/to-json-schema.d.ts.map +1 -0
  97. package/dist/schema/to-json-schema.js +691 -0
  98. package/dist/schema/to-json-schema.js.map +1 -0
  99. package/dist/schema/walk-key.d.ts +24 -0
  100. package/dist/schema/walk-key.d.ts.map +1 -0
  101. package/dist/schema/walk-key.js +33 -0
  102. package/dist/schema/walk-key.js.map +1 -0
  103. package/dist/to.js +1 -1
  104. package/dist/to.js.map +1 -1
  105. package/dist/tool.d.ts +32 -3
  106. package/dist/tool.d.ts.map +1 -1
  107. package/dist/tool.js +41 -0
  108. package/dist/tool.js.map +1 -1
  109. package/dist/types.d.ts +265 -8
  110. package/dist/types.d.ts.map +1 -1
  111. package/dist/types.js +4 -1
  112. package/dist/types.js.map +1 -1
  113. package/package.json +72 -72
  114. package/dist/schema.d.ts +0 -840
  115. package/dist/schema.d.ts.map +0 -1
  116. package/dist/schema.js +0 -2478
  117. package/dist/schema.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
package/dist/prompt.js CHANGED
@@ -1,13 +1,20 @@
1
1
  import Handlebars from "handlebars";
2
2
  import { ZodString } from 'zod';
3
3
  import { accumulateReasoning, accumulateUsage, extractJSONObject, getChunksFromResponse, getInputTokens, getModel, getOutputTokens, getTotalTokens, resolve, resolveFn, yieldAll } from "./common";
4
- import { ToolInterrupt, PromptSuspend } from "./tool";
4
+ import { forcesTool, ToolInterrupt, PromptSuspend } from "./tool";
5
5
  import { getDescriptorById, strictify, decodeWire } from "./schema";
6
+ import { OutputValidationError, PromptError, ReviewRejectedError, SchemaRejectedError, ToolExecutionError, ToolInputError } from "./errors";
7
+ import { SCHEMA_FALLBACKS, structuredOutput } from "./delivery";
6
8
  /** Default cap (chars) for validation error messages surfaced back to the
7
9
  * LLM. Read by `Prompt.truncateValidationError`; subclasses may override
8
10
  * the method to ignore this. Anything past `max` is replaced with a
9
11
  * `… (N more characters)` marker. */
10
12
  const DEFAULT_VALIDATION_ERROR_MAX_LENGTH = 4096;
13
+ /**
14
+ * The user message a prompt adds when it runs without a conversation.
15
+ * Override it with `userTurn` on the prompt or the context.
16
+ */
17
+ export const DEFAULT_USER_TURN = 'Begin.';
11
18
  /**
12
19
  * A Prompt component that generates AI responses based on input, context, and available tools.
13
20
  * Prompts orchestrate interactions with AI models, handle tool calls, and manage streaming responses.
@@ -262,7 +269,7 @@ export class Prompt {
262
269
  tools,
263
270
  responseFormat,
264
271
  };
265
- const fixedToolChoice = request.toolChoice && (request.toolChoice === 'required' || typeof request.toolChoice === 'object');
272
+ const fixedToolChoice = forcesTool(request.toolChoice);
266
273
  if (fixedToolChoice && (!tools || tools.length === 0)) {
267
274
  throw new Error(`Prompt ${this.input.name} is configured to require tools, but no tools are available.`);
268
275
  }
@@ -271,13 +278,26 @@ export class Prompt {
271
278
  // Pre-emptively trim context messages if we have a context window limit
272
279
  request.messages = this.forget(request, ctx);
273
280
  }
281
+ // Without a conversation the request still needs a user turn: APIs such
282
+ // as Anthropic's and Bedrock's reject a request that has none
283
+ if (request.messages.length === 1) {
284
+ request.messages.push({ role: 'user', content: this.input.userTurn ?? ctx.userTurn ?? DEFAULT_USER_TURN });
285
+ }
274
286
  let outputRetries = this.input.outputRetries ?? ctx.outputRetries ?? 2;
275
287
  let forgetRetries = this.input.forgetRetries ?? ctx.forgetRetries ?? 1;
276
288
  let toolIterations = this.input.toolIterations ?? 3;
277
289
  let toolRetries = this.input.toolRetries ?? ctx.toolRetries ?? 2;
290
+ let reviewRetries = this.input.reviewRetries ?? 1;
291
+ let reviews = 0;
278
292
  const toolsComplete = this.input.toolsComplete ?? true;
293
+ const schemaFallbacks = this.input.schemaFallbacks ?? ctx.schemaFallbacks ?? SCHEMA_FALLBACKS;
294
+ // Schema fallbacks taken this run, re-applied when a dynamic prompt
295
+ // re-resolves its request.
296
+ const fallbacksTaken = [];
279
297
  let result = undefined;
280
298
  let lastError = undefined;
299
+ // The last tool failure, the cause when the iterations run out.
300
+ let toolFailure = undefined;
281
301
  let completeText = '';
282
302
  // Runtime schema-delivery fallback guard. A model whose descriptor ALLOWS
283
303
  // the schema (so the static `canExpress` check passes and structured output
@@ -290,7 +310,7 @@ export class Prompt {
290
310
  // idempotent within a single prompt run — we switch at most once and never
291
311
  // loop. Per-run only; nothing is persisted across requests.
292
312
  let promotedToPromptDelivery = false;
293
- let maxIterations = outputRetries + forgetRetries + toolIterations + toolRetries + 1;
313
+ let maxIterations = outputRetries + forgetRetries + toolIterations + toolRetries + reviewRetries + 1;
294
314
  let requestUsageSent = false;
295
315
  let usage = undefined;
296
316
  let iterations = 0;
@@ -314,6 +334,29 @@ export class Prompt {
314
334
  request.messages.push(message);
315
335
  return emit({ type: 'message', message, request });
316
336
  };
337
+ // The events a tool execution is ready to emit, each emitted once.
338
+ const toolEvents = function* (te) {
339
+ const { tool, args } = te;
340
+ if (te.emitRepairAttempt()) {
341
+ yield emit({ type: 'toolArgRepairAttempt', tool: tool, fields: te.repairAttempt.fields, success: te.repairAttempt.success, request });
342
+ }
343
+ if (te.emitStart()) {
344
+ yield emitTool({ type: 'toolStart', tool: tool, args, request });
345
+ }
346
+ if (te.emitOutput()) {
347
+ yield emitTool({ type: 'toolOutput', tool: tool, args, result: te.result, toModel: te.toModel, request });
348
+ }
349
+ if (te.emitInterrupt()) {
350
+ yield emitTool({ type: 'toolInterrupt', tool: tool, args, request });
351
+ }
352
+ if (te.emitSuspend()) {
353
+ yield emitTool({ type: 'toolSuspend', tool: tool, args, request });
354
+ }
355
+ if (te.emitError()) {
356
+ const failure = te.error;
357
+ yield emitTool({ type: 'toolError', tool: tool, args, error: failure.message, failure, rawArgs: failure instanceof ToolInputError ? failure.rawArgs : undefined, request });
358
+ }
359
+ };
317
360
  // Main execution loop!
318
361
  while (iterations < maxIterations) {
319
362
  // Honor the caller's abort signal at iteration boundaries — if a
@@ -377,6 +420,18 @@ export class Prompt {
377
420
  reasoning = accumulateReasoning(reasoning, chunk.reasoning);
378
421
  yield emit({ type: 'reasonPartial', reasoning, request });
379
422
  }
423
+ if (chunk.citations) {
424
+ yield emit({ type: 'citations', citations: chunk.citations, request });
425
+ }
426
+ if (chunk.images) {
427
+ yield emit({ type: 'images', images: chunk.images, request });
428
+ }
429
+ if (chunk.audio) {
430
+ yield emit({ type: 'audioPartial', audio: chunk.audio, request });
431
+ }
432
+ if (chunk.moderation) {
433
+ yield emit({ type: 'moderation', moderation: chunk.moderation, request });
434
+ }
380
435
  // Handle tool calls
381
436
  if (chunk.toolCallNamed) {
382
437
  const toolName = chunk.toolCallNamed.name;
@@ -446,21 +501,7 @@ export class Prompt {
446
501
  // In immediate mode we might be getting more chunks while executing, emit events as soon as possible.
447
502
  if (toolMode === 'immediate') {
448
503
  for (const toolCall of toolExecutors) {
449
- if (toolCall.emitStart()) {
450
- yield emitTool({ type: 'toolStart', tool: toolCall.tool, args: toolCall.args, request });
451
- }
452
- if (toolCall.emitOutput()) {
453
- yield emitTool({ type: 'toolOutput', tool: toolCall.tool, args: toolCall.args, result: toolCall.result, toModel: toolCall.toModel, request });
454
- }
455
- if (toolCall.emitInterrupt()) {
456
- yield emitTool({ type: 'toolInterrupt', tool: toolCall.tool, args: toolCall.args, request });
457
- }
458
- if (toolCall.emitSuspend()) {
459
- yield emitTool({ type: 'toolSuspend', tool: toolCall.tool, args: toolCall.args, request });
460
- }
461
- if (toolCall.emitError()) {
462
- yield emitTool({ type: 'toolError', tool: toolCall.tool, args: toolCall.args, error: toolCall.error, rawArgs: toolCall.rawArgs, request });
463
- }
504
+ yield* toolEvents(toolCall);
464
505
  }
465
506
  }
466
507
  }
@@ -472,13 +513,13 @@ export class Prompt {
472
513
  // If the model refused to answer and stop
473
514
  if (finishReason === 'refusal' || refusal) {
474
515
  yield emit({ type: 'refusal', content: refusal || 'unspecified', request });
475
- lastError = refusal || 'Model refused to answer.';
516
+ lastError = new PromptError(refusal || 'Model refused to answer.', 'model');
476
517
  break;
477
518
  }
478
519
  // If the model was stopped due to content filtering
479
520
  if (finishReason === 'content_filter') {
480
521
  yield emit({ type: 'refusal', content: 'Content filtered by AI model', request });
481
- lastError = 'Model response was filtered due to content policy.';
522
+ lastError = new PromptError('Model response was filtered due to content policy.', 'model');
482
523
  break;
483
524
  }
484
525
  // If we sent too much, forget the past homie
@@ -492,7 +533,7 @@ export class Prompt {
492
533
  }
493
534
  else {
494
535
  // Stop iteration - we can't trim without usage info
495
- lastError = 'Model indicated length finish reason but no token usage was provided so context cannot be trimmed.';
536
+ lastError = new PromptError('Model indicated length finish reason but no token usage was provided so context cannot be trimmed.', 'model');
496
537
  break;
497
538
  }
498
539
  }
@@ -520,15 +561,7 @@ export class Prompt {
520
561
  // Non-blocking call, we don't want to hold up execution here. But if we can emit start or error early below this we will try.
521
562
  toolExecutor.parse();
522
563
  }
523
- if (toolExecutor.emitRepairAttempt()) {
524
- yield emit({ type: 'toolArgRepairAttempt', tool: toolExecutor.tool, fields: toolExecutor.repairAttempt.fields, success: toolExecutor.repairAttempt.success, request });
525
- }
526
- if (toolExecutor.emitStart()) {
527
- yield emitTool({ type: 'toolStart', tool: toolExecutor.tool, args: toolExecutor.args, request });
528
- }
529
- if (toolExecutor.emitError()) {
530
- yield emitTool({ type: 'toolError', tool: toolExecutor.tool, args: toolExecutor.args, error: toolExecutor.error, rawArgs: toolExecutor.rawArgs, request });
531
- }
564
+ yield* toolEvents(toolExecutor);
532
565
  }
533
566
  // The execution mode for this iteration.
534
567
  const iterationMode = skip ? 'skip' : toolMode;
@@ -547,25 +580,9 @@ export class Prompt {
547
580
  if (ctx.signal?.aborted)
548
581
  break;
549
582
  await toolExecutor.parse();
550
- if (toolExecutor.emitRepairAttempt()) {
551
- yield emit({ type: 'toolArgRepairAttempt', tool: toolExecutor.tool, fields: toolExecutor.repairAttempt.fields, success: toolExecutor.repairAttempt.success, request });
552
- }
553
- if (toolExecutor.emitStart()) {
554
- yield emitTool({ type: 'toolStart', tool: toolExecutor.tool, args: toolExecutor.args, request });
555
- }
583
+ yield* toolEvents(toolExecutor);
556
584
  await toolExecutor.run();
557
- if (toolExecutor.emitOutput()) {
558
- yield emitTool({ type: 'toolOutput', tool: toolExecutor.tool, args: toolExecutor.args, result: toolExecutor.result, toModel: toolExecutor.toModel, request });
559
- }
560
- if (toolExecutor.emitInterrupt()) {
561
- yield emitTool({ type: 'toolInterrupt', tool: toolExecutor.tool, args: toolExecutor.args, request });
562
- }
563
- if (toolExecutor.emitSuspend()) {
564
- yield emitTool({ type: 'toolSuspend', tool: toolExecutor.tool, args: toolExecutor.args, request });
565
- }
566
- if (toolExecutor.emitError()) {
567
- yield emitTool({ type: 'toolError', tool: toolExecutor.tool, args: toolExecutor.args, error: toolExecutor.error, rawArgs: toolExecutor.rawArgs, request });
568
- }
585
+ yield* toolEvents(toolExecutor);
569
586
  }
570
587
  break;
571
588
  case 'parallel':
@@ -582,25 +599,7 @@ export class Prompt {
582
599
  // listener was already removed before tool dispatch.)
583
600
  if (ctx.signal?.aborted)
584
601
  break;
585
- const toolExecutor = await toolCallPromise;
586
- if (toolExecutor.emitRepairAttempt()) {
587
- yield emit({ type: 'toolArgRepairAttempt', tool: toolExecutor.tool, fields: toolExecutor.repairAttempt.fields, success: toolExecutor.repairAttempt.success, request });
588
- }
589
- if (toolExecutor.emitStart()) {
590
- yield emitTool({ type: 'toolStart', tool: toolExecutor.tool, args: toolExecutor.args, request });
591
- }
592
- if (toolExecutor.emitOutput()) {
593
- yield emitTool({ type: 'toolOutput', tool: toolExecutor.tool, args: toolExecutor.args, result: toolExecutor.result, toModel: toolExecutor.toModel, request });
594
- }
595
- if (toolExecutor.emitInterrupt()) {
596
- yield emitTool({ type: 'toolInterrupt', tool: toolExecutor.tool, args: toolExecutor.args, request });
597
- }
598
- if (toolExecutor.emitSuspend()) {
599
- yield emitTool({ type: 'toolSuspend', tool: toolExecutor.tool, args: toolExecutor.args, request });
600
- }
601
- if (toolExecutor.emitError()) {
602
- yield emitTool({ type: 'toolError', tool: toolExecutor.tool, args: toolExecutor.args, error: toolExecutor.error, rawArgs: toolExecutor.rawArgs, request });
603
- }
602
+ yield* toolEvents(await toolCallPromise);
604
603
  }
605
604
  break;
606
605
  }
@@ -644,7 +643,7 @@ export class Prompt {
644
643
  // exactly as before: strings verbatim, everything else JSON.
645
644
  const modelValue = toolExecutor.status === 'success' ? toolExecutor.toModel : toolExecutor.result;
646
645
  const content = hasError
647
- ? toolExecutor.error
646
+ ? toolExecutor.error.message
648
647
  : hasResult
649
648
  ? typeof modelValue === 'string'
650
649
  ? modelValue
@@ -654,7 +653,9 @@ export class Prompt {
654
653
  role: 'tool',
655
654
  content,
656
655
  toolCallId: toolExecutor.toolCall.id,
656
+ failure: toolExecutor.error?.kind,
657
657
  });
658
+ toolFailure = toolExecutor.error ?? toolFailure;
658
659
  if (toolExecutor.status === 'invalid') {
659
660
  toolParseErrors++;
660
661
  }
@@ -718,9 +719,9 @@ export class Prompt {
718
719
  toolExecutors.some(toolExecutor => toolExecutor.status === 'interrupted');
719
720
  // If we are finished, parse the output
720
721
  if (stop) {
722
+ let failure;
721
723
  if (!schema || (schema instanceof ZodString)) {
722
724
  result = content;
723
- break; // All good!
724
725
  }
725
726
  else {
726
727
  // Grab the JSON part from the content just in case. In the
@@ -728,9 +729,10 @@ export class Prompt {
728
729
  // freeform text (possibly fenced / prose-wrapped), so extract the
729
730
  // outermost balanced `{…}` (see `extractJSONObject`).
730
731
  const potentialJSON = extractJSONObject(content);
731
- let errorMessage = '';
732
- let resetReason = '';
733
- const errMax = this.input.validationErrorMaxLength;
732
+ const invalid = (message, reason) => new OutputValidationError(this.truncateValidationError(message, this.input.validationErrorMaxLength), reason, content);
733
+ // The descriptor the provider shaped the output with, when the
734
+ // schema went on the wire.
735
+ const descriptorId = structuredOutput(request.responseFormat)?.descriptor;
734
736
  try {
735
737
  const parsedJSON = JSON.parse(potentialJSON);
736
738
  if (this.input.parse) {
@@ -749,11 +751,8 @@ export class Prompt {
749
751
  // (no Zod vocabulary — Zod never ran). Absent ⇒ unchanged.
750
752
  // Decode only when a descriptor was pinned; otherwise the wire
751
753
  // shape IS the conceptual shape and `parsedJSON` passes through.
752
- const customDescriptorId = typeof request.responseFormat === 'object'
753
- ? request.responseFormat.descriptor
754
- : undefined;
755
- const decoded = customDescriptorId
756
- ? decodeWire(schema, parsedJSON, getDescriptorById(customDescriptorId))
754
+ const decoded = descriptorId
755
+ ? decodeWire(schema, parsedJSON, getDescriptorById(descriptorId))
757
756
  : parsedJSON;
758
757
  let customResult;
759
758
  try {
@@ -763,8 +762,7 @@ export class Prompt {
763
762
  customResult = customError instanceof Error ? customError : new Error(String(customError));
764
763
  }
765
764
  if (customResult instanceof Error) {
766
- errorMessage = this.truncateValidationError(customResult.message, errMax);
767
- resetReason = 'schema-parsing';
765
+ failure = invalid(customResult.message, 'schema-parsing');
768
766
  }
769
767
  else {
770
768
  result = customResult;
@@ -772,8 +770,7 @@ export class Prompt {
772
770
  await this.input.validate?.(result, ctx);
773
771
  }
774
772
  catch (validationError) {
775
- errorMessage = this.truncateValidationError(`The output failed validation:\n${validationError.message}`, errMax);
776
- resetReason = 'validation';
773
+ failure = invalid(`The output failed validation:\n${validationError.message}`, 'validation');
777
774
  }
778
775
  }
779
776
  }
@@ -783,19 +780,15 @@ export class Prompt {
783
780
  // normalize back into the natural Zod shape before validation.
784
781
  // The descriptor was pinned on the response format when the
785
782
  // provider built the request. Fast cache lookup on retries.
786
- const responseDescriptorId = typeof request.responseFormat === 'object'
787
- ? request.responseFormat.descriptor
788
- : undefined;
789
- const validationSchema = responseDescriptorId
790
- ? strictify(schema, getDescriptorById(responseDescriptorId))
783
+ const validationSchema = descriptorId
784
+ ? strictify(schema, getDescriptorById(descriptorId))
791
785
  : schema;
792
786
  const parsedSafe = await validationSchema.safeParseAsync(parsedJSON);
793
787
  if (!parsedSafe.success) {
794
788
  const issueSummary = parsedSafe.error.issues
795
789
  .map(i => `- ${i.path.join('.')}: ${i.message}${['string', 'boolean', 'number'].includes(typeof i.input) ? ` (input: ${i.input})` : ''}`)
796
790
  .join('\n');
797
- errorMessage = this.truncateValidationError(`The output was an invalid format:\n${issueSummary}`, errMax);
798
- resetReason = 'schema-parsing';
791
+ failure = invalid(`The output was an invalid format:\n${issueSummary}`, 'schema-parsing');
799
792
  }
800
793
  else {
801
794
  result = parsedSafe.data;
@@ -803,15 +796,13 @@ export class Prompt {
803
796
  await this.input.validate?.(result, ctx);
804
797
  }
805
798
  catch (validationError) {
806
- errorMessage = this.truncateValidationError(`The output failed validation:\n${validationError.message}`, errMax);
807
- resetReason = 'validation';
799
+ failure = invalid(`The output failed validation:\n${validationError.message}`, 'validation');
808
800
  }
809
801
  }
810
802
  }
811
803
  }
812
804
  catch (parseError) {
813
- errorMessage = this.truncateValidationError(`The output was not valid JSON:\n${parseError.message}`, errMax);
814
- resetReason = 'json-parsing';
805
+ failure = invalid(`The output was not valid JSON:\n${parseError.message}`, 'json-parsing');
815
806
  }
816
807
  // Runtime schema-delivery fallback. The structured response was EMPTY
817
808
  // or its JSON was UNPARSEABLE (`json-parsing` reset — either the
@@ -830,39 +821,73 @@ export class Prompt {
830
821
  // The switch is not remembered beyond this run. This reuses the
831
822
  // existing outputRetries re-prompt mechanism below to re-issue.
832
823
  if (this.input.runtimeSchemaFallback !== false &&
833
- resetReason === 'json-parsing' &&
824
+ failure?.reason === 'json-parsing' &&
834
825
  !promotedToPromptDelivery &&
835
826
  typeof request.responseFormat === 'object' &&
836
827
  (request.responseFormat.schemaDelivery ?? 'auto') === 'auto') {
837
828
  request.responseFormat.schemaDelivery = 'prompt';
838
829
  promotedToPromptDelivery = true;
839
830
  }
840
- if (errorMessage) {
841
- if (outputRetries > 0) {
842
- outputRetries--;
843
- yield emit({ type: 'textReset', reason: resetReason, request });
844
- yield emitMessage({
845
- role: 'user',
846
- content: errorMessage,
847
- });
848
- }
849
- else {
850
- lastError = errorMessage;
851
- break; // No more retries left
852
- }
831
+ }
832
+ if (failure) {
833
+ result = undefined;
834
+ if (outputRetries > 0) {
835
+ outputRetries--;
836
+ yield emit({ type: 'textReset', reason: failure.reason, error: failure, request });
837
+ yield emitMessage({
838
+ role: 'user',
839
+ content: failure.message,
840
+ });
853
841
  }
854
842
  else {
855
- // A result was successfully parsed and validated!
843
+ lastError = failure;
844
+ break; // No more retries left
845
+ }
846
+ }
847
+ else if (this.input.review) {
848
+ // A valid result goes to the review, whose feedback asks the model
849
+ // to answer again.
850
+ const output = result;
851
+ const attempt = ++reviews;
852
+ yield emit({ type: 'reviewStart', output, attempt, request });
853
+ const verdict = await this.input.review(output, { input, request, ctx, attempt });
854
+ if ('pass' in verdict) {
855
+ yield emit({ type: 'reviewPass', output, attempt, request });
856
856
  lastError = undefined;
857
857
  break;
858
858
  }
859
+ yield emit({ type: 'reviewFeedback', output, feedback: verdict.feedback, attempt, request });
860
+ result = undefined;
861
+ if (reviewRetries <= 0) {
862
+ lastError = new ReviewRejectedError(output, verdict.feedback);
863
+ break;
864
+ }
865
+ reviewRetries--;
866
+ yield emitMessage({ role: 'user', content: verdict.feedback });
867
+ }
868
+ else {
869
+ // A result was successfully parsed and validated!
870
+ lastError = undefined;
871
+ break;
859
872
  }
860
873
  }
861
874
  }
862
875
  catch (requestError) {
863
- if (!ctx.signal?.aborted &&
864
- !streamController.signal.aborted &&
865
- this.input.runtimeSchemaFallback !== false &&
876
+ const recoverable = !ctx.signal?.aborted && !streamController.signal.aborted && this.input.runtimeSchemaFallback !== false;
877
+ // A classified schema rejection takes the first schema fallback not
878
+ // yet taken for its schema that applies, and the request goes again.
879
+ // The step stays on the request, so later iterations start there.
880
+ const rejected = requestError instanceof SchemaRejectedError ? requestError : undefined;
881
+ const fallback = rejected && recoverable
882
+ ? schemaFallbacks.find(step => !fallbacksTaken.some(([taken, target]) => taken === step && sameTarget(target, rejected.target)) && step.apply(request, rejected.target))
883
+ : undefined;
884
+ if (rejected && fallback) {
885
+ fallbacksTaken.push([fallback, rejected.target]);
886
+ yield emit({ type: 'schemaFallback', fallback: fallback.name, error: rejected, request });
887
+ continue;
888
+ }
889
+ if (!rejected &&
890
+ recoverable &&
866
891
  !promotedToPromptDelivery &&
867
892
  typeof request.responseFormat === 'object' &&
868
893
  (request.responseFormat.schemaDelivery ?? 'auto') === 'auto' &&
@@ -943,6 +968,7 @@ export class Prompt {
943
968
  systemMessage.content = dynamicContent;
944
969
  request.tools = dynamicTools;
945
970
  request.responseFormat = dynamicResponseFormat;
971
+ fallbacksTaken.forEach(([step, target]) => step.apply(request, target));
946
972
  // Update toolMap with new tool objects
947
973
  toolMap.clear();
948
974
  if (dynamicToolObjects) {
@@ -987,13 +1013,11 @@ export class Prompt {
987
1013
  if (ctx.signal?.aborted) {
988
1014
  return undefined;
989
1015
  }
990
- if (!lastError && iterations === maxIterations) {
991
- lastError = `Maximum iterations (${maxIterations}) reached without a valid response.`;
992
- }
993
- if (!lastError) {
994
- lastError = `Prompt ${this.input.name} failed without a specified error.`;
995
- }
996
- throw new Error(`Prompt ${this.input.name} failed: ${lastError}`);
1016
+ const reason = lastError?.message ?? (iterations === maxIterations
1017
+ ? `Maximum iterations (${maxIterations}) reached without a valid response.`
1018
+ : `Prompt ${this.input.name} failed without a specified error.`);
1019
+ const cause = lastError ?? toolFailure;
1020
+ throw new PromptError(`Prompt ${this.input.name} failed: ${reason}`, cause?.kind ?? 'model', cause);
997
1021
  }
998
1022
  yield emit({ type: 'complete', output: result, request });
999
1023
  return result;
@@ -1057,19 +1081,15 @@ export class Prompt {
1057
1081
  .filter(r => r.applicable)
1058
1082
  .map(r => r.tool);
1059
1083
  }
1060
- const toolInstructions = selectedTools && selectedTools.length > 0
1061
- ? (await Promise.all(selectedTools.map(t => t.compile(ctx)))).filter(t => !!t)
1062
- : undefined;
1063
- const instructions = toolInstructions
1064
- ? toolInstructions.map(t => t[0]).join("\n\n")
1065
- : undefined;
1066
- const tools = toolInstructions
1067
- ? toolInstructions.map(t => t[1])
1084
+ // Each tool with its compiled instructions and definition; a tool that
1085
+ // doesn't compile (no schema or no instructions) is left out
1086
+ const compiled = selectedTools && selectedTools.length > 0
1087
+ ? (await Promise.all(selectedTools.map(async (tool) => ({ tool, compiled: await tool.compile(ctx) }))))
1088
+ .flatMap(({ tool, compiled }) => compiled ? [{ tool, instructions: compiled[0], definition: compiled[1] }] : [])
1068
1089
  : undefined;
1069
- // Create toolObjects as array of { tool, definition } pairs
1070
- const toolObjects = selectedTools && toolInstructions
1071
- ? selectedTools.map((tool, i) => ({ tool, definition: toolInstructions[i][1] }))
1072
- : [];
1090
+ const instructions = compiled?.map(c => c.instructions).filter(Boolean).join("\n\n");
1091
+ const tools = compiled?.map(c => c.definition);
1092
+ const toolObjects = compiled?.map(({ tool, definition }) => ({ tool, definition })) ?? [];
1073
1093
  // Compute the input that is fed to the prompt's prompt content
1074
1094
  let contentInput = input;
1075
1095
  const translated = await this.translate(input, ctx);
@@ -1143,12 +1163,12 @@ export class Prompt {
1143
1163
  switch (te.status) {
1144
1164
  case 'interrupted':
1145
1165
  return te.error
1146
- ? `[interrupted: ${te.error}]`
1166
+ ? `[interrupted: ${te.error.message}]`
1147
1167
  : '[interrupted]';
1148
1168
  case 'error':
1149
1169
  case 'invalid':
1150
1170
  return te.error
1151
- ? `[error: ${te.error}]`
1171
+ ? `[error: ${te.error.message}]`
1152
1172
  : '[error]';
1153
1173
  case 'ready':
1154
1174
  case 'parsed':
@@ -1273,6 +1293,12 @@ export class Prompt {
1273
1293
  return trimmedMessages;
1274
1294
  }
1275
1295
  }
1296
+ /**
1297
+ * Whether two schema targets name the same schema.
1298
+ */
1299
+ function sameTarget(a, b) {
1300
+ return a.kind === 'tool' && b.kind === 'tool' ? a.name === b.name : a.kind === b.kind;
1301
+ }
1276
1302
  function once(fn) {
1277
1303
  let promise;
1278
1304
  return () => {
@@ -1336,7 +1362,7 @@ intercept) {
1336
1362
  tool: toolInfo?.tool,
1337
1363
  definition: toolInfo?.definition,
1338
1364
  status: toolInfo ? 'ready' : 'error',
1339
- error: toolInfo ? undefined : `Tool not found: ${toolCall.name}`,
1365
+ error: toolInfo ? undefined : new ToolInputError(toolCall.name, `Tool not found: ${toolCall.name}`),
1340
1366
  emitStart: start.emit,
1341
1367
  emitOutput: output.emit,
1342
1368
  emitError: error.emit,
@@ -1367,10 +1393,6 @@ intercept) {
1367
1393
  }
1368
1394
  catch (e) {
1369
1395
  execution.status = 'invalid';
1370
- // Preserve the untruncated raw args alongside the truncated
1371
- // model-facing error so the diagnostic log gets the full
1372
- // payload (post-mortem reproduction is impossible without it).
1373
- execution.rawArgs = args;
1374
1396
  // Distinguish "model sent no arguments at all" from "model sent
1375
1397
  // bad arguments". The former is usually a streaming-relay issue
1376
1398
  // (OpenRouter/Anthropic) or a genuine model gaffe — calling it
@@ -1382,9 +1404,9 @@ intercept) {
1382
1404
  ? `the tool was called with NO arguments. The schema requires arguments — re-call this tool with the required fields populated. Validation: ${e.message}`
1383
1405
  : `${e.message}, args: ${args}`;
1384
1406
  const formatted = `Error parsing tool arguments: ${reason}`;
1385
- execution.error = truncate
1386
- ? truncate(formatted, validationErrorMaxLength)
1387
- : formatted;
1407
+ // The untruncated raw args go alongside the truncated model-facing
1408
+ // message so the diagnostic log gets the full payload.
1409
+ execution.error = new ToolInputError(toolCall.name, truncate ? truncate(formatted, validationErrorMaxLength) : formatted, args);
1388
1410
  error.ready = true;
1389
1411
  }
1390
1412
  return execution;
@@ -1420,7 +1442,7 @@ intercept) {
1420
1442
  }
1421
1443
  catch (e) {
1422
1444
  execution.status = 'error';
1423
- execution.error = `Error transforming tool result: ${e.message}`;
1445
+ execution.error = new ToolExecutionError(toolCall.name, `Error transforming tool result: ${e.message}`, e);
1424
1446
  error.ready = true;
1425
1447
  return execution;
1426
1448
  }
@@ -1438,7 +1460,7 @@ intercept) {
1438
1460
  }
1439
1461
  else {
1440
1462
  execution.status = 'error';
1441
- execution.error = `Error executing tool: ${e.message}, args: ${JSON.stringify(execution.args)}`;
1463
+ execution.error = new ToolExecutionError(toolCall.name, `Error executing tool: ${e.message}, args: ${JSON.stringify(execution.args)}`, e);
1442
1464
  error.ready = true;
1443
1465
  }
1444
1466
  }