agentfootprint 10.1.1 → 10.3.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/CAPABILITIES.md +2 -0
- package/dist/adapters/llm/AnthropicProvider.js +28 -3
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +11 -2
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/MockProvider.js +11 -1
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- package/dist/adapters/llm/anthropicMessageProjection.js +26 -1
- package/dist/adapters/llm/anthropicMessageProjection.js.map +1 -1
- package/dist/adapters/llm/anthropicMessagesWire.js +61 -37
- package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/adapters/llm/anthropicModels.js +48 -14
- package/dist/adapters/llm/anthropicModels.js.map +1 -1
- package/dist/adapters/llm/anthropicReplayLayout.js +1 -0
- package/dist/adapters/llm/anthropicReplayLayout.js.map +1 -1
- package/dist/adapters/llm/anthropicToolArguments.js +122 -0
- package/dist/adapters/llm/anthropicToolArguments.js.map +1 -0
- package/dist/adapters/llm/wireManifest.js +8 -2
- package/dist/adapters/llm/wireManifest.js.map +1 -1
- package/dist/adapters/nativeOutputSchema.js +80 -0
- package/dist/adapters/nativeOutputSchema.js.map +1 -0
- package/dist/adapters/requestRefusal.js +2 -0
- package/dist/adapters/requestRefusal.js.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/answer-validation/validate.js +7 -107
- package/dist/answer-validation/validate.js.map +1 -1
- package/dist/core/Agent.js +79 -22
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +23 -0
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/arguments/resolve.js +4 -0
- package/dist/core/agent/arguments/resolve.js.map +1 -1
- package/dist/core/agent/arguments/subflow.js +1 -0
- package/dist/core/agent/arguments/subflow.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +5 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/findings/reserved.js +50 -1
- package/dist/core/agent/findings/reserved.js.map +1 -1
- package/dist/core/agent/findings/types.js.map +1 -1
- package/dist/core/agent/findings/verificationCheck.js +99 -0
- package/dist/core/agent/findings/verificationCheck.js.map +1 -0
- package/dist/core/agent/findings/verificationCheckpoint.js +110 -0
- package/dist/core/agent/findings/verificationCheckpoint.js.map +1 -0
- package/dist/core/agent/findings/verificationConfig.js +119 -0
- package/dist/core/agent/findings/verificationConfig.js.map +1 -0
- package/dist/core/agent/findings/verificationRow.js +181 -0
- package/dist/core/agent/findings/verificationRow.js.map +1 -0
- package/dist/core/agent/findings/verificationState.js +152 -0
- package/dist/core/agent/findings/verificationState.js.map +1 -0
- package/dist/core/agent/findings/verificationTypes.js +23 -0
- package/dist/core/agent/findings/verificationTypes.js.map +1 -0
- package/dist/core/agent/nativeOutputFormat.js +389 -0
- package/dist/core/agent/nativeOutputFormat.js.map +1 -0
- package/dist/core/agent/outputEnforcement.js +40 -1
- package/dist/core/agent/outputEnforcement.js.map +1 -1
- package/dist/core/agent/stages/answerValidation.js +14 -4
- package/dist/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +24 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/outputRetry.js +1 -0
- package/dist/core/agent/stages/outputRetry.js.map +1 -1
- package/dist/core/agent/stages/route.js +33 -10
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/agent/stages/toolCalls.js +20 -3
- package/dist/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/core/agent/toolArgsValidation.js +12 -1
- package/dist/core/agent/toolArgsValidation.js.map +1 -1
- package/dist/core/outputSchema.js.map +1 -1
- package/dist/core/runCheckpoint.js +45 -4
- package/dist/core/runCheckpoint.js.map +1 -1
- package/dist/esm/adapters/llm/AnthropicProvider.d.ts +3 -0
- package/dist/esm/adapters/llm/AnthropicProvider.js +29 -4
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +3 -0
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +12 -3
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/MockProvider.d.ts +7 -0
- package/dist/esm/adapters/llm/MockProvider.js +11 -1
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicMessageProjection.js +26 -1
- package/dist/esm/adapters/llm/anthropicMessageProjection.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +17 -3
- package/dist/esm/adapters/llm/anthropicMessagesWire.js +61 -37
- package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicModels.d.ts +36 -3
- package/dist/esm/adapters/llm/anthropicModels.js +46 -13
- package/dist/esm/adapters/llm/anthropicModels.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicReplayLayout.js +1 -0
- package/dist/esm/adapters/llm/anthropicReplayLayout.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicToolArguments.d.ts +31 -0
- package/dist/esm/adapters/llm/anthropicToolArguments.js +118 -0
- package/dist/esm/adapters/llm/anthropicToolArguments.js.map +1 -0
- package/dist/esm/adapters/llm/wireManifest.d.ts +9 -1
- package/dist/esm/adapters/llm/wireManifest.js +8 -2
- package/dist/esm/adapters/llm/wireManifest.js.map +1 -1
- package/dist/esm/adapters/nativeOutputSchema.d.ts +66 -0
- package/dist/esm/adapters/nativeOutputSchema.js +75 -0
- package/dist/esm/adapters/nativeOutputSchema.js.map +1 -0
- package/dist/esm/adapters/requestRefusal.js +2 -0
- package/dist/esm/adapters/requestRefusal.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +57 -0
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/answer-validation/validate.js +1 -101
- package/dist/esm/answer-validation/validate.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +16 -0
- package/dist/esm/core/Agent.js +79 -22
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.js +23 -0
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/arguments/resolve.d.ts +1 -0
- package/dist/esm/core/agent/arguments/resolve.js +4 -0
- package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
- package/dist/esm/core/agent/arguments/subflow.js +1 -0
- package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +5 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/findings/reserved.d.ts +16 -0
- package/dist/esm/core/agent/findings/reserved.js +48 -0
- package/dist/esm/core/agent/findings/reserved.js.map +1 -1
- package/dist/esm/core/agent/findings/types.d.ts +2 -1
- package/dist/esm/core/agent/findings/types.js.map +1 -1
- package/dist/esm/core/agent/findings/verificationCheck.d.ts +24 -0
- package/dist/esm/core/agent/findings/verificationCheck.js +95 -0
- package/dist/esm/core/agent/findings/verificationCheck.js.map +1 -0
- package/dist/esm/core/agent/findings/verificationCheckpoint.d.ts +10 -0
- package/dist/esm/core/agent/findings/verificationCheckpoint.js +104 -0
- package/dist/esm/core/agent/findings/verificationCheckpoint.js.map +1 -0
- package/dist/esm/core/agent/findings/verificationConfig.d.ts +30 -0
- package/dist/esm/core/agent/findings/verificationConfig.js +115 -0
- package/dist/esm/core/agent/findings/verificationConfig.js.map +1 -0
- package/dist/esm/core/agent/findings/verificationRow.d.ts +16 -0
- package/dist/esm/core/agent/findings/verificationRow.js +174 -0
- package/dist/esm/core/agent/findings/verificationRow.js.map +1 -0
- package/dist/esm/core/agent/findings/verificationState.d.ts +39 -0
- package/dist/esm/core/agent/findings/verificationState.js +143 -0
- package/dist/esm/core/agent/findings/verificationState.js.map +1 -0
- package/dist/esm/core/agent/findings/verificationTypes.d.ts +55 -0
- package/dist/esm/core/agent/findings/verificationTypes.js +20 -0
- package/dist/esm/core/agent/findings/verificationTypes.js.map +1 -0
- package/dist/esm/core/agent/nativeOutputFormat.d.ts +85 -0
- package/dist/esm/core/agent/nativeOutputFormat.js +384 -0
- package/dist/esm/core/agent/nativeOutputFormat.js.map +1 -0
- package/dist/esm/core/agent/outputEnforcement.d.ts +33 -1
- package/dist/esm/core/agent/outputEnforcement.js +38 -0
- package/dist/esm/core/agent/outputEnforcement.js.map +1 -1
- package/dist/esm/core/agent/stages/answerValidation.d.ts +1 -1
- package/dist/esm/core/agent/stages/answerValidation.js +14 -4
- package/dist/esm/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +9 -1
- package/dist/esm/core/agent/stages/callLLM.js +24 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/outputRetry.js +1 -0
- package/dist/esm/core/agent/stages/outputRetry.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +34 -11
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/stages/toolCalls.js +21 -4
- package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
- package/dist/esm/core/agent/toolArgsValidation.d.ts +2 -0
- package/dist/esm/core/agent/toolArgsValidation.js +10 -0
- package/dist/esm/core/agent/toolArgsValidation.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +20 -3
- package/dist/esm/core/outputSchema.d.ts +30 -3
- package/dist/esm/core/outputSchema.js.map +1 -1
- package/dist/esm/core/runCheckpoint.d.ts +11 -1
- package/dist/esm/core/runCheckpoint.js +45 -4
- package/dist/esm/core/runCheckpoint.js.map +1 -1
- package/dist/esm/integrity/claim-binding/admit.d.ts +12 -0
- package/dist/esm/integrity/claim-binding/admit.js +204 -0
- package/dist/esm/integrity/claim-binding/admit.js.map +1 -0
- package/dist/esm/integrity/claim-binding/bindEvidence.d.ts +8 -0
- package/dist/esm/integrity/claim-binding/bindEvidence.js +144 -0
- package/dist/esm/integrity/claim-binding/bindEvidence.js.map +1 -0
- package/dist/esm/integrity/claim-binding/capture.d.ts +25 -0
- package/dist/esm/integrity/claim-binding/capture.js +143 -0
- package/dist/esm/integrity/claim-binding/capture.js.map +1 -0
- package/dist/esm/integrity/claim-binding/scope.d.ts +23 -0
- package/dist/esm/integrity/claim-binding/scope.js +149 -0
- package/dist/esm/integrity/claim-binding/scope.js.map +1 -0
- package/dist/esm/integrity/claim-binding/types.d.ts +99 -0
- package/dist/esm/integrity/claim-binding/types.js +23 -0
- package/dist/esm/integrity/claim-binding/types.js.map +1 -0
- package/dist/esm/integrity/unsupported-claim/check.js +33 -55
- package/dist/esm/integrity/unsupported-claim/check.js.map +1 -1
- package/dist/esm/integrity/unsupported-claim/evaluate.d.ts +18 -0
- package/dist/esm/integrity/unsupported-claim/evaluate.js +34 -0
- package/dist/esm/integrity/unsupported-claim/evaluate.js.map +1 -0
- package/dist/esm/lib/boundedJson.d.ts +3 -0
- package/dist/esm/lib/boundedJson.js +104 -0
- package/dist/esm/lib/boundedJson.js.map +1 -0
- package/dist/esm/lib/time-travel/receipt.d.ts +11 -0
- package/dist/esm/lib/time-travel/receipt.js +12 -2
- package/dist/esm/lib/time-travel/receipt.js.map +1 -1
- package/dist/esm/memory/identity/encode.d.ts +7 -0
- package/dist/esm/memory/identity/encode.js +14 -0
- package/dist/esm/memory/identity/encode.js.map +1 -1
- package/dist/esm/providers.d.ts +1 -0
- package/dist/esm/providers.js +1 -0
- package/dist/esm/providers.js.map +1 -1
- package/dist/esm/redaction/conversation.js +3 -0
- package/dist/esm/redaction/conversation.js.map +1 -1
- package/dist/esm/redaction/knownStrings.js +5 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/resilience/withCircuitBreaker.js +7 -0
- package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/esm/resilience/withFallback.js +10 -0
- package/dist/esm/resilience/withFallback.js.map +1 -1
- package/dist/esm/resilience/withRetry.js +8 -0
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/integrity/claim-binding/admit.js +211 -0
- package/dist/integrity/claim-binding/admit.js.map +1 -0
- package/dist/integrity/claim-binding/bindEvidence.js +148 -0
- package/dist/integrity/claim-binding/bindEvidence.js.map +1 -0
- package/dist/integrity/claim-binding/capture.js +152 -0
- package/dist/integrity/claim-binding/capture.js.map +1 -0
- package/dist/integrity/claim-binding/scope.js +159 -0
- package/dist/integrity/claim-binding/scope.js.map +1 -0
- package/dist/integrity/claim-binding/types.js +26 -0
- package/dist/integrity/claim-binding/types.js.map +1 -0
- package/dist/integrity/unsupported-claim/check.js +32 -54
- package/dist/integrity/unsupported-claim/check.js.map +1 -1
- package/dist/integrity/unsupported-claim/evaluate.js +38 -0
- package/dist/integrity/unsupported-claim/evaluate.js.map +1 -0
- package/dist/lib/boundedJson.js +109 -0
- package/dist/lib/boundedJson.js.map +1 -0
- package/dist/lib/time-travel/receipt.js +12 -2
- package/dist/lib/time-travel/receipt.js.map +1 -1
- package/dist/memory/identity/encode.js +16 -1
- package/dist/memory/identity/encode.js.map +1 -1
- package/dist/providers.js +4 -1
- package/dist/providers.js.map +1 -1
- package/dist/redaction/conversation.js +3 -0
- package/dist/redaction/conversation.js.map +1 -1
- package/dist/redaction/knownStrings.js +5 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/resilience/withCircuitBreaker.js +7 -0
- package/dist/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/resilience/withFallback.js +10 -0
- package/dist/resilience/withFallback.js.map +1 -1
- package/dist/resilience/withRetry.js +8 -0
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts +3 -0
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +3 -0
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts +7 -0
- package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicMessageProjection.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +17 -3
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicModels.d.ts +36 -3
- package/dist/types/adapters/llm/anthropicModels.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicReplayLayout.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicToolArguments.d.ts +32 -0
- package/dist/types/adapters/llm/anthropicToolArguments.d.ts.map +1 -0
- package/dist/types/adapters/llm/wireManifest.d.ts +9 -1
- package/dist/types/adapters/llm/wireManifest.d.ts.map +1 -1
- package/dist/types/adapters/nativeOutputSchema.d.ts +67 -0
- package/dist/types/adapters/nativeOutputSchema.d.ts.map +1 -0
- package/dist/types/adapters/requestRefusal.d.ts.map +1 -1
- package/dist/types/adapters/types.d.ts +57 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/answer-validation/validate.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +16 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/resolve.d.ts +1 -0
- package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
- package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/findings/reserved.d.ts +16 -0
- package/dist/types/core/agent/findings/reserved.d.ts.map +1 -1
- package/dist/types/core/agent/findings/types.d.ts +2 -1
- package/dist/types/core/agent/findings/types.d.ts.map +1 -1
- package/dist/types/core/agent/findings/verificationCheck.d.ts +25 -0
- package/dist/types/core/agent/findings/verificationCheck.d.ts.map +1 -0
- package/dist/types/core/agent/findings/verificationCheckpoint.d.ts +11 -0
- package/dist/types/core/agent/findings/verificationCheckpoint.d.ts.map +1 -0
- package/dist/types/core/agent/findings/verificationConfig.d.ts +31 -0
- package/dist/types/core/agent/findings/verificationConfig.d.ts.map +1 -0
- package/dist/types/core/agent/findings/verificationRow.d.ts +17 -0
- package/dist/types/core/agent/findings/verificationRow.d.ts.map +1 -0
- package/dist/types/core/agent/findings/verificationState.d.ts +40 -0
- package/dist/types/core/agent/findings/verificationState.d.ts.map +1 -0
- package/dist/types/core/agent/findings/verificationTypes.d.ts +56 -0
- package/dist/types/core/agent/findings/verificationTypes.d.ts.map +1 -0
- package/dist/types/core/agent/nativeOutputFormat.d.ts +86 -0
- package/dist/types/core/agent/nativeOutputFormat.d.ts.map +1 -0
- package/dist/types/core/agent/outputEnforcement.d.ts +33 -1
- package/dist/types/core/agent/outputEnforcement.d.ts.map +1 -1
- package/dist/types/core/agent/stages/answerValidation.d.ts +1 -1
- package/dist/types/core/agent/stages/answerValidation.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +9 -1
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/outputRetry.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
- package/dist/types/core/agent/toolArgsValidation.d.ts +2 -0
- package/dist/types/core/agent/toolArgsValidation.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +20 -3
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/outputSchema.d.ts +30 -3
- package/dist/types/core/outputSchema.d.ts.map +1 -1
- package/dist/types/core/runCheckpoint.d.ts +11 -1
- package/dist/types/core/runCheckpoint.d.ts.map +1 -1
- package/dist/types/integrity/claim-binding/admit.d.ts +13 -0
- package/dist/types/integrity/claim-binding/admit.d.ts.map +1 -0
- package/dist/types/integrity/claim-binding/bindEvidence.d.ts +9 -0
- package/dist/types/integrity/claim-binding/bindEvidence.d.ts.map +1 -0
- package/dist/types/integrity/claim-binding/capture.d.ts +26 -0
- package/dist/types/integrity/claim-binding/capture.d.ts.map +1 -0
- package/dist/types/integrity/claim-binding/scope.d.ts +24 -0
- package/dist/types/integrity/claim-binding/scope.d.ts.map +1 -0
- package/dist/types/integrity/claim-binding/types.d.ts +100 -0
- package/dist/types/integrity/claim-binding/types.d.ts.map +1 -0
- package/dist/types/integrity/unsupported-claim/check.d.ts.map +1 -1
- package/dist/types/integrity/unsupported-claim/evaluate.d.ts +19 -0
- package/dist/types/integrity/unsupported-claim/evaluate.d.ts.map +1 -0
- package/dist/types/lib/boundedJson.d.ts +4 -0
- package/dist/types/lib/boundedJson.d.ts.map +1 -0
- package/dist/types/lib/time-travel/receipt.d.ts +11 -0
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/memory/identity/encode.d.ts +7 -0
- package/dist/types/memory/identity/encode.d.ts.map +1 -1
- package/dist/types/providers.d.ts +1 -0
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/redaction/conversation.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
- package/dist/types/resilience/withFallback.d.ts.map +1 -1
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* - `thinking` — which thinking request the model takes (`'adaptive'`,
|
|
9
9
|
* `'budget'` or `'none'`; translated by `anthropicThinkingWire.ts`);
|
|
10
10
|
* - `forcedToolChoice` — whether it takes `tool_choice: { type: 'tool' }`
|
|
11
|
-
* (the `'tool-forced'` output strategy and the constrained pick send one)
|
|
11
|
+
* (the `'tool-forced'` output strategy and the constrained pick send one);
|
|
12
|
+
* - `nativeOutputSchema` — whether it takes `output_config.format` (the
|
|
13
|
+
* `'native'` output strategy sends one).
|
|
12
14
|
*
|
|
13
15
|
* A model is added here, and nowhere else.
|
|
14
16
|
*
|
|
@@ -22,21 +24,30 @@
|
|
|
22
24
|
* - Prefix binding is documented for Fable 5.1, Opus 5.5, Sonnet 5.5 and
|
|
23
25
|
* Haiku 5.5, not inferred for other families:
|
|
24
26
|
* https://platform.claude.com/docs/en/build-with-claude/preserved-thinking.
|
|
27
|
+
* - Structured outputs (`output_config.format`) — fetched 2026-10-14 — list
|
|
28
|
+
* Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Mythos Preview, Opus 5.5, Opus 5,
|
|
29
|
+
* Opus 4.8, 4.7, 4.6, Sonnet 5.5, Sonnet 5, Sonnet 4.6, Sonnet 4.5, Opus 4.5,
|
|
30
|
+
* Haiku 5.5 and Haiku 4.5; the families before them are not listed:
|
|
31
|
+
* https://platform.claude.com/docs/en/build-with-claude/structured-outputs.
|
|
25
32
|
*
|
|
26
33
|
* @example
|
|
27
34
|
* anthropicModelFacts('claude-opus-5-5');
|
|
28
|
-
* // { thinking: 'adaptive', forcedToolChoice: false, thinkingPrefixBinding: true
|
|
35
|
+
* // { thinking: 'adaptive', forcedToolChoice: false, thinkingPrefixBinding: true,
|
|
36
|
+
* // nativeOutputSchema: true }
|
|
29
37
|
* anthropicModelFacts('us.anthropic.claude-haiku-4-5-20251001-v1:0');
|
|
30
|
-
* // { thinking: 'budget', forcedToolChoice: true }
|
|
38
|
+
* // { thinking: 'budget', forcedToolChoice: true, nativeOutputSchema: true }
|
|
31
39
|
* anthropicModelFacts('claude-opus-6'); // undefined — not in the table
|
|
32
40
|
*/
|
|
33
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.anthropicTakesForcedToolChoice = exports.anthropicThinkingMode = exports.anthropicModelFacts = exports.anthropicModelFamily = exports.ANTHROPIC_THINKING_MODES = exports.ANTHROPIC_MODELS = void 0;
|
|
35
|
-
const row = (thinking, forcedToolChoice = true, thinkingPrefixBinding = false) => Object.freeze({
|
|
42
|
+
exports.anthropicTakesNativeOutputSchema = exports.anthropicTakesForcedToolChoice = exports.anthropicThinkingMode = exports.anthropicModelFacts = exports.anthropicModelFamily = exports.ANTHROPIC_THINKING_MODES = exports.ANTHROPIC_MODELS = void 0;
|
|
43
|
+
const row = (thinking, forcedToolChoice = true, thinkingPrefixBinding = false, nativeOutputSchema = true) => Object.freeze({
|
|
36
44
|
thinking,
|
|
37
45
|
forcedToolChoice,
|
|
38
46
|
...(thinkingPrefixBinding && { thinkingPrefixBinding: true }),
|
|
47
|
+
nativeOutputSchema,
|
|
39
48
|
});
|
|
49
|
+
/** A family the structured-outputs page does not list: no native format. */
|
|
50
|
+
const legacy = (thinking) => row(thinking, true, false, false);
|
|
40
51
|
/**
|
|
41
52
|
* The facts per Claude model family, keyed by the family id (the model id
|
|
42
53
|
* without a date, version or platform prefix — matching is
|
|
@@ -69,18 +80,18 @@ exports.ANTHROPIC_MODELS = Object.freeze({
|
|
|
69
80
|
'claude-opus-4-5': row('budget'),
|
|
70
81
|
'claude-sonnet-4-5': row('budget'),
|
|
71
82
|
'claude-haiku-4-5': row('budget'),
|
|
72
|
-
'claude-opus-4-1':
|
|
73
|
-
'claude-opus-4':
|
|
74
|
-
'claude-sonnet-4':
|
|
75
|
-
'claude-3-7-sonnet':
|
|
83
|
+
'claude-opus-4-1': legacy('budget'),
|
|
84
|
+
'claude-opus-4': legacy('budget'),
|
|
85
|
+
'claude-sonnet-4': legacy('budget'),
|
|
86
|
+
'claude-3-7-sonnet': legacy('budget'),
|
|
76
87
|
// No thinking. Retired on the Claude API; still served by some platforms
|
|
77
88
|
// (Vertex lists claude-3-5-haiku@20241022). Claude 1, 2 and Instant are
|
|
78
89
|
// served nowhere and are not listed.
|
|
79
|
-
'claude-3-5-sonnet':
|
|
80
|
-
'claude-3-5-haiku':
|
|
81
|
-
'claude-3-opus':
|
|
82
|
-
'claude-3-sonnet':
|
|
83
|
-
'claude-3-haiku':
|
|
90
|
+
'claude-3-5-sonnet': legacy('none'),
|
|
91
|
+
'claude-3-5-haiku': legacy('none'),
|
|
92
|
+
'claude-3-opus': legacy('none'),
|
|
93
|
+
'claude-3-sonnet': legacy('none'),
|
|
94
|
+
'claude-3-haiku': legacy('none'),
|
|
84
95
|
});
|
|
85
96
|
/** The thinking column of {@link ANTHROPIC_MODELS}, family → mode. */
|
|
86
97
|
exports.ANTHROPIC_THINKING_MODES = Object.freeze(Object.fromEntries(Object.entries(exports.ANTHROPIC_MODELS).map(([family, f]) => [family, f.thinking])));
|
|
@@ -184,4 +195,27 @@ function anthropicTakesForcedToolChoice(model) {
|
|
|
184
195
|
return anthropicModelFacts(model)?.forcedToolChoice ?? true;
|
|
185
196
|
}
|
|
186
197
|
exports.anthropicTakesForcedToolChoice = anthropicTakesForcedToolChoice;
|
|
198
|
+
/**
|
|
199
|
+
* Whether a Claude model id takes a structured-output format
|
|
200
|
+
* (`output_config.format`, the `'native'` output strategy).
|
|
201
|
+
*
|
|
202
|
+
* THE UNKNOWN-ID POLICY, named: an id the table does not know answers `true`,
|
|
203
|
+
* by the thinking table's precedent (`anthropicThinkingMode` reads an unknown
|
|
204
|
+
* id as the newest generation's `'adaptive'`). Every Claude model since 4.5
|
|
205
|
+
* takes the format, so a model released after this table is a model that
|
|
206
|
+
* takes it, and refusing it would block the newest model by default. The
|
|
207
|
+
* cost: an id that hides an older model (a router alias) is not refused here,
|
|
208
|
+
* and the API's own 400 names `output_config` until the model has a row. A
|
|
209
|
+
* family the table DOES know and the page does not list is refused before
|
|
210
|
+
* anything is sent.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* anthropicTakesNativeOutputSchema('claude-haiku-4-5-20251001'); // true
|
|
214
|
+
* anthropicTakesNativeOutputSchema('claude-opus-4-1'); // false
|
|
215
|
+
* anthropicTakesNativeOutputSchema('claude-opus-6'); // true — unknown, newest
|
|
216
|
+
*/
|
|
217
|
+
function anthropicTakesNativeOutputSchema(model) {
|
|
218
|
+
return anthropicModelFacts(model)?.nativeOutputSchema ?? true;
|
|
219
|
+
}
|
|
220
|
+
exports.anthropicTakesNativeOutputSchema = anthropicTakesNativeOutputSchema;
|
|
187
221
|
//# sourceMappingURL=anthropicModels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropicModels.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicModels.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"anthropicModels.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicModels.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,7 @@ function reconstructCurrentLayout(message) {
|
|
|
95
95
|
if (replay?.version !== 1 ||
|
|
96
96
|
replay.protocol !== 'anthropic-messages' ||
|
|
97
97
|
replay.lossy === true ||
|
|
98
|
+
message.toolCalls?.some((call) => call.argumentsFailure !== undefined) ||
|
|
98
99
|
typeof replay.id !== 'string' ||
|
|
99
100
|
replay.id.length === 0 ||
|
|
100
101
|
!Array.isArray(replay.layout) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropicReplayLayout.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicReplayLayout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropicReplayLayout.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicReplayLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnthropicToolArguments = void 0;
|
|
4
|
+
function object(value) {
|
|
5
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
/** Parse once at the completed block boundary; schema validation remains upstream. */
|
|
8
|
+
function completedArguments(parts, initial) {
|
|
9
|
+
let input = initial;
|
|
10
|
+
if (parts.length > 0) {
|
|
11
|
+
try {
|
|
12
|
+
input = JSON.parse(parts.join(''));
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return { input: {}, failure: { reason: 'invalid-json' } };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (!object(input))
|
|
19
|
+
return { input: {}, failure: { reason: 'invalid-argument-shape' } };
|
|
20
|
+
return { input };
|
|
21
|
+
}
|
|
22
|
+
/** Per-response raw argument evidence, shared by SDK and fetch adapters. */
|
|
23
|
+
class AnthropicToolArguments {
|
|
24
|
+
blocks = new Map();
|
|
25
|
+
starts = new Set();
|
|
26
|
+
observedTool = false;
|
|
27
|
+
ended = false;
|
|
28
|
+
invalid = false;
|
|
29
|
+
/** Record only the protocol facts needed to judge a tool's completed JSON. */
|
|
30
|
+
observe(event) {
|
|
31
|
+
if (!object(event))
|
|
32
|
+
return;
|
|
33
|
+
if (event.type === 'message_stop') {
|
|
34
|
+
if (this.ended)
|
|
35
|
+
this.invalid = true;
|
|
36
|
+
this.ended = true;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!['content_block_start', 'content_block_delta', 'content_block_stop'].includes(String(event.type)))
|
|
40
|
+
return;
|
|
41
|
+
if (event.type === 'content_block_start' &&
|
|
42
|
+
object(event.content_block) &&
|
|
43
|
+
event.content_block.type === 'tool_use')
|
|
44
|
+
this.observedTool = true;
|
|
45
|
+
const index = event.index;
|
|
46
|
+
if (typeof index !== 'number' || !Number.isSafeInteger(index) || index < 0) {
|
|
47
|
+
this.invalid = true;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (this.ended)
|
|
51
|
+
this.invalid = true;
|
|
52
|
+
if (event.type === 'content_block_start') {
|
|
53
|
+
if (this.starts.has(index)) {
|
|
54
|
+
this.invalid = true;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.starts.add(index);
|
|
58
|
+
const block = event.content_block;
|
|
59
|
+
if (object(block) &&
|
|
60
|
+
block.type === 'tool_use' &&
|
|
61
|
+
typeof block.id === 'string' &&
|
|
62
|
+
typeof block.name === 'string') {
|
|
63
|
+
this.blocks.set(index, {
|
|
64
|
+
id: block.id,
|
|
65
|
+
name: block.name,
|
|
66
|
+
initial: block.input,
|
|
67
|
+
parts: [],
|
|
68
|
+
closed: false,
|
|
69
|
+
invalid: false,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const block = this.blocks.get(index);
|
|
75
|
+
if (event.type === 'content_block_stop') {
|
|
76
|
+
if (!this.starts.has(index))
|
|
77
|
+
this.invalid = true;
|
|
78
|
+
if (block) {
|
|
79
|
+
if (block.closed)
|
|
80
|
+
block.invalid = true;
|
|
81
|
+
block.closed = true;
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const delta = event.delta;
|
|
86
|
+
if (object(delta) && delta.type === 'input_json_delta') {
|
|
87
|
+
if (!block) {
|
|
88
|
+
this.invalid = true;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (block.closed || typeof delta.partial_json !== 'string')
|
|
92
|
+
block.invalid = true;
|
|
93
|
+
else
|
|
94
|
+
block.parts.push(delta.partial_json);
|
|
95
|
+
}
|
|
96
|
+
else if (block &&
|
|
97
|
+
object(delta) &&
|
|
98
|
+
['text_delta', 'thinking_delta', 'signature_delta', 'citations_delta'].includes(String(delta.type)))
|
|
99
|
+
block.invalid = true;
|
|
100
|
+
}
|
|
101
|
+
/** EOF/abort is not a completed response, even if an SDK exposes a partial object. */
|
|
102
|
+
assertTerminal(hasFinalTools = false) {
|
|
103
|
+
if (!this.ended && (hasFinalTools || this.observedTool))
|
|
104
|
+
throw new Error('Anthropic stream ended without message_stop; no completed response is available.');
|
|
105
|
+
}
|
|
106
|
+
/** A finite refusal, never an SDK's partial/repaired object, for unsafe input. */
|
|
107
|
+
finish(index, tool) {
|
|
108
|
+
const block = this.blocks.get(index);
|
|
109
|
+
const raw = block?.parts.join('') ?? '';
|
|
110
|
+
if (this.invalid ||
|
|
111
|
+
!block ||
|
|
112
|
+
!block.closed ||
|
|
113
|
+
block.invalid ||
|
|
114
|
+
block.id !== tool.id ||
|
|
115
|
+
block.name !== tool.name) {
|
|
116
|
+
return { input: {}, failure: { reason: 'incomplete-stream' }, raw };
|
|
117
|
+
}
|
|
118
|
+
return { ...completedArguments(block.parts, block.initial), raw };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.AnthropicToolArguments = AnthropicToolArguments;
|
|
122
|
+
//# sourceMappingURL=anthropicToolArguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropicToolArguments.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicToolArguments.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,12 +24,18 @@ exports.toolManifestOf = void 0;
|
|
|
24
24
|
* Read the manifest off the final request body's tools array. `undefined`
|
|
25
25
|
* tools (the field never written — Anthropic rejects an empty array, so
|
|
26
26
|
* adapters omit it) is a stated zero: no tools crossed.
|
|
27
|
+
*
|
|
28
|
+
* `outputConfig` is the body's `output_config` (Anthropic), passed by the
|
|
29
|
+
* adapters that can send one: its `format.type` is read back into
|
|
30
|
+
* `outputFormat`. A body without it gives the manifest it always gave.
|
|
27
31
|
*/
|
|
28
|
-
function toolManifestOf(tools) {
|
|
32
|
+
function toolManifestOf(tools, outputConfig) {
|
|
33
|
+
const format = outputConfig?.format?.type === 'json_schema' ? { outputFormat: 'json_schema' } : {};
|
|
29
34
|
if (tools === undefined)
|
|
30
|
-
return { toolNames: [] };
|
|
35
|
+
return { toolNames: [], ...format };
|
|
31
36
|
return {
|
|
32
37
|
toolNames: tools.map((t) => t.name).filter((name) => typeof name === 'string'),
|
|
38
|
+
...format,
|
|
33
39
|
};
|
|
34
40
|
}
|
|
35
41
|
exports.toolManifestOf = toolManifestOf;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireManifest.js","sourceRoot":"","sources":["../../../src/adapters/llm/wireManifest.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAMH
|
|
1
|
+
{"version":3,"file":"wireManifest.js","sourceRoot":"","sources":["../../../src/adapters/llm/wireManifest.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAMH;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAC5B,KAA6D,EAC7D,YAAgE;IAEhE,MAAM,MAAM,GACV,YAAY,EAAE,MAAM,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7D,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC9F,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAXD,wCAWC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* nativeOutputSchema — whether a provider puts a structured-output format
|
|
4
|
+
* (`LLMRequest.outputFormat`) on its wire FOR A MODEL, and the one error for
|
|
5
|
+
* a model or adapter that does not.
|
|
6
|
+
*
|
|
7
|
+
* Pattern: capability declaration + its one reader (the `forcedToolChoice.ts`
|
|
8
|
+
* twin). The adapter declares `LLMProvider.carriesNativeOutputSchema`
|
|
9
|
+
* plus `supportsNativeOutputSchema(model)`, and everything that sends
|
|
10
|
+
* `LLMRequest.outputFormat` asks HERE with the model it will call:
|
|
11
|
+
* the agent's `'native'` output strategy at run start and again at
|
|
12
|
+
* request assembly.
|
|
13
|
+
* Role: Port-level, beside `types.ts`.
|
|
14
|
+
*
|
|
15
|
+
* Why per model: Anthropic's structured outputs are available on the models
|
|
16
|
+
* its page lists — Claude Haiku 4.5, Sonnet 4.5, Opus 4.5 and every later
|
|
17
|
+
* model — and not on Opus 4.1 and earlier
|
|
18
|
+
* (https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
|
|
19
|
+
* The per-model facts are the `nativeOutputSchema` column of
|
|
20
|
+
* `llm/anthropicModels.ts · ANTHROPIC_MODELS`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { anthropic, nativeOutputSchemaFor } from 'agentfootprint/providers';
|
|
25
|
+
*
|
|
26
|
+
* nativeOutputSchemaFor(anthropic(), 'claude-haiku-4-5'); // true
|
|
27
|
+
* nativeOutputSchemaFor(anthropic(), 'claude-opus-4-1'); // false
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.UnsupportedNativeOutputError = exports.nativeOutputSchemaFor = void 0;
|
|
32
|
+
/**
|
|
33
|
+
* Whether `provider` puts a structured-output format on its wire for `model`.
|
|
34
|
+
* Absence — or anything but `true` — means NO: a format that quietly vanishes
|
|
35
|
+
* costs the guarantee it was asked for.
|
|
36
|
+
*/
|
|
37
|
+
function nativeOutputSchemaFor(provider, model) {
|
|
38
|
+
return (provider.carriesNativeOutputSchema === true &&
|
|
39
|
+
(provider.supportsNativeOutputSchema === undefined ||
|
|
40
|
+
provider.supportsNativeOutputSchema(model) === true));
|
|
41
|
+
}
|
|
42
|
+
exports.nativeOutputSchemaFor = nativeOutputSchemaFor;
|
|
43
|
+
/**
|
|
44
|
+
* UnsupportedNativeOutputError — a structured-output format for a model or
|
|
45
|
+
* adapter that does not take one, refused by name BEFORE anything is sent.
|
|
46
|
+
*
|
|
47
|
+
* Asking again sends the same request: `retryable: false`, which `withRetry`'s
|
|
48
|
+
* default policy honours; `withFallback` does not move the call to its other
|
|
49
|
+
* side and `withCircuitBreaker` does not count it (`requestRefusal.ts`).
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* import { UnsupportedNativeOutputError } from 'agentfootprint/providers';
|
|
54
|
+
*
|
|
55
|
+
* try {
|
|
56
|
+
* await agent.run('…');
|
|
57
|
+
* } catch (err) {
|
|
58
|
+
* if (err instanceof UnsupportedNativeOutputError) console.error(err.provider, err.model);
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
class UnsupportedNativeOutputError extends Error {
|
|
63
|
+
/** The provider that answered for the model — `'anthropic'`, `'bedrock'`, … */
|
|
64
|
+
provider;
|
|
65
|
+
/** The model the request named. */
|
|
66
|
+
model;
|
|
67
|
+
/** Asking again cannot mend it — read by `withRetry`'s default predicate. */
|
|
68
|
+
retryable = false;
|
|
69
|
+
constructor(args) {
|
|
70
|
+
super(`[${args.provider}] '${args.model}' does not take a native structured-output format on ` +
|
|
71
|
+
`this adapter. .outputSchema(…, { strategy: 'native' }) requires it; use ` +
|
|
72
|
+
`{ strategy: 'instruct' } here, or a provider and model that take one ` +
|
|
73
|
+
`(anthropic() or browserAnthropic() with Claude Haiku 4.5, Sonnet 4.5, Opus 4.5 or later).`);
|
|
74
|
+
this.name = 'UnsupportedNativeOutputError';
|
|
75
|
+
this.provider = args.provider;
|
|
76
|
+
this.model = args.model;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.UnsupportedNativeOutputError = UnsupportedNativeOutputError;
|
|
80
|
+
//# sourceMappingURL=nativeOutputSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeOutputSchema.js","sourceRoot":"","sources":["../../src/adapters/nativeOutputSchema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAIH;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,QAAuF,EACvF,KAAa;IAEb,OAAO,CACL,QAAQ,CAAC,yBAAyB,KAAK,IAAI;QAC3C,CAAC,QAAQ,CAAC,0BAA0B,KAAK,SAAS;YAChD,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CACvD,CAAC;AACJ,CAAC;AATD,sDASC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,4BAA6B,SAAQ,KAAK;IACrD,+EAA+E;IACtE,QAAQ,CAAS;IAC1B,mCAAmC;IAC1B,KAAK,CAAS;IACvB,6EAA6E;IACpE,SAAS,GAAG,KAAK,CAAC;IAE3B,YAAY,IAA2D;QACrE,KAAK,CACH,IAAI,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,KAAK,uDAAuD;YACtF,0EAA0E;YAC1E,uEAAuE;YACvE,2FAA2F,CAC9F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CACF;AAnBD,oEAmBC"}
|
|
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isRequestRefusal = void 0;
|
|
4
4
|
/** Request-contract refusals are terminal, not provider availability failures. */
|
|
5
5
|
const forcedToolChoice_js_1 = require("./forcedToolChoice.js");
|
|
6
|
+
const nativeOutputSchema_js_1 = require("./nativeOutputSchema.js");
|
|
6
7
|
const errors_js_1 = require("../thinking/errors.js");
|
|
7
8
|
const replay_js_1 = require("../thinking/replay.js");
|
|
8
9
|
/** Deliberately narrow: unrelated application errors keep their existing policy. */
|
|
9
10
|
function isRequestRefusal(error) {
|
|
10
11
|
return (error instanceof forcedToolChoice_js_1.UnsupportedToolChoiceError ||
|
|
12
|
+
error instanceof nativeOutputSchema_js_1.UnsupportedNativeOutputError ||
|
|
11
13
|
error instanceof errors_js_1.UnsupportedThinkingError ||
|
|
12
14
|
error instanceof replay_js_1.UnsafeThinkingReplayError);
|
|
13
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestRefusal.js","sourceRoot":"","sources":["../../src/adapters/requestRefusal.ts"],"names":[],"mappings":";;;AAAA,kFAAkF;AAClF,+DAAmE;AACnE,qDAAiE;AACjE,qDAAkE;AAElE,oFAAoF;AACpF,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,KAAK,YAAY,gDAA0B;QAC3C,KAAK,YAAY,oCAAwB;QACzC,KAAK,YAAY,qCAAyB,CAC3C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"requestRefusal.js","sourceRoot":"","sources":["../../src/adapters/requestRefusal.ts"],"names":[],"mappings":";;;AAAA,kFAAkF;AAClF,+DAAmE;AACnE,mEAAuE;AACvE,qDAAiE;AACjE,qDAAkE;AAElE,oFAAoF;AACpF,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,KAAK,YAAY,gDAA0B;QAC3C,KAAK,YAAY,oDAA4B;QAC7C,KAAK,YAAY,oCAAwB;QACzC,KAAK,YAAY,qCAAyB,CAC3C,CAAC;AACJ,CAAC;AAPD,4CAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAkOH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AA6rBH;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAPD,wCAOC;AAqID;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,SAAgB,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC;AAJD,gDAIC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.executeAnswerValidation = exports.resolveAnswerValidation = void 0;
|
|
4
4
|
/** One explicit JSON-answer validation; the runner owns when to invoke it. */
|
|
5
5
|
const outputSchema_js_1 = require("../core/outputSchema.js");
|
|
6
|
+
const boundedJson_js_1 = require("../lib/boundedJson.js");
|
|
6
7
|
const payload_js_1 = require("../artifacts/payload.js");
|
|
7
8
|
const evidence_js_1 = require("./evidence.js");
|
|
8
9
|
const DEFAULT_LIMITS = Object.freeze({
|
|
@@ -14,23 +15,6 @@ const DEFAULT_LIMITS = Object.freeze({
|
|
|
14
15
|
});
|
|
15
16
|
const encoder = new TextEncoder();
|
|
16
17
|
const dispositions = new Set(['checked-pass', 'checked-fail', 'not-applicable', 'unreachable']);
|
|
17
|
-
function ownData(value, allowed) {
|
|
18
|
-
if (value === null ||
|
|
19
|
-
typeof value !== 'object' ||
|
|
20
|
-
Array.isArray(value) ||
|
|
21
|
-
![Object.prototype, null].includes(Object.getPrototypeOf(value)))
|
|
22
|
-
throw new Error('Expected a plain data object.');
|
|
23
|
-
const result = Object.create(null);
|
|
24
|
-
for (const key of Reflect.ownKeys(value)) {
|
|
25
|
-
if (typeof key !== 'string' || (allowed && !allowed.includes(key)))
|
|
26
|
-
throw new Error('Unknown property.');
|
|
27
|
-
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
28
|
-
if (!descriptor?.enumerable || !('value' in descriptor))
|
|
29
|
-
throw new Error('Expected an enumerable data property.');
|
|
30
|
-
Object.defineProperty(result, key, { value: descriptor.value, enumerable: true });
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
18
|
function text(value, max) {
|
|
35
19
|
if (typeof value !== 'string' || value.trim() === '' || value.length > max)
|
|
36
20
|
throw new Error('Expected bounded non-empty text.');
|
|
@@ -38,7 +22,7 @@ function text(value, max) {
|
|
|
38
22
|
}
|
|
39
23
|
/** Validate and snapshot an authored contract once, before running an agent. */
|
|
40
24
|
function resolveAnswerValidation(options) {
|
|
41
|
-
const source = ownData(options, ['id', 'version', 'mode', 'limits', 'validate']);
|
|
25
|
+
const source = (0, boundedJson_js_1.ownData)(options, ['id', 'version', 'mode', 'limits', 'validate']);
|
|
42
26
|
const id = text(source.id, 128);
|
|
43
27
|
const version = text(source.version, 128);
|
|
44
28
|
const mode = source.mode === undefined ? 'enforce' : source.mode;
|
|
@@ -47,7 +31,7 @@ function resolveAnswerValidation(options) {
|
|
|
47
31
|
if (typeof source.validate !== 'function')
|
|
48
32
|
throw new Error('answerValidation.validate must be a function.');
|
|
49
33
|
const validate = source.validate;
|
|
50
|
-
const supplied = source.limits === undefined ? {} : ownData(source.limits, Object.keys(DEFAULT_LIMITS));
|
|
34
|
+
const supplied = source.limits === undefined ? {} : (0, boundedJson_js_1.ownData)(source.limits, Object.keys(DEFAULT_LIMITS));
|
|
51
35
|
const limits = { ...DEFAULT_LIMITS };
|
|
52
36
|
for (const key of Object.keys(DEFAULT_LIMITS)) {
|
|
53
37
|
if (Object.hasOwn(supplied, key)) {
|
|
@@ -69,101 +53,17 @@ function resolveAnswerValidation(options) {
|
|
|
69
53
|
});
|
|
70
54
|
}
|
|
71
55
|
exports.resolveAnswerValidation = resolveAnswerValidation;
|
|
72
|
-
/** JSON copy without invoking toJSON/getters or silently dropping data. */
|
|
73
|
-
function jsonCopy(value, maxBytes, freeze) {
|
|
74
|
-
let budget = maxBytes;
|
|
75
|
-
const ancestors = new Set();
|
|
76
|
-
const spend = (bytes) => {
|
|
77
|
-
budget -= bytes;
|
|
78
|
-
if (budget < 0)
|
|
79
|
-
throw new Error('JSON byte limit.');
|
|
80
|
-
};
|
|
81
|
-
const string = (item) => {
|
|
82
|
-
if (item.length > budget)
|
|
83
|
-
throw new Error('JSON byte limit.');
|
|
84
|
-
spend(encoder.encode(JSON.stringify(item)).byteLength);
|
|
85
|
-
};
|
|
86
|
-
const copy = (item, depth) => {
|
|
87
|
-
if (depth > 100)
|
|
88
|
-
throw new Error('JSON nesting limit.');
|
|
89
|
-
if (item === null) {
|
|
90
|
-
spend(4);
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
if (typeof item === 'string') {
|
|
94
|
-
string(item);
|
|
95
|
-
return item;
|
|
96
|
-
}
|
|
97
|
-
if (typeof item === 'boolean') {
|
|
98
|
-
spend(item ? 4 : 5);
|
|
99
|
-
return item;
|
|
100
|
-
}
|
|
101
|
-
if (typeof item === 'number') {
|
|
102
|
-
if (!Number.isFinite(item) || Object.is(item, -0))
|
|
103
|
-
throw new Error('Non-lossless JSON number.');
|
|
104
|
-
spend(JSON.stringify(item).length);
|
|
105
|
-
return item;
|
|
106
|
-
}
|
|
107
|
-
if (typeof item !== 'object')
|
|
108
|
-
throw new Error('Non-JSON value.');
|
|
109
|
-
if (ancestors.has(item))
|
|
110
|
-
throw new Error('Cyclic JSON value.');
|
|
111
|
-
ancestors.add(item);
|
|
112
|
-
spend(2);
|
|
113
|
-
let output;
|
|
114
|
-
if (Array.isArray(item)) {
|
|
115
|
-
if (Object.getPrototypeOf(item) !== Array.prototype)
|
|
116
|
-
throw new Error('Non-JSON array prototype.');
|
|
117
|
-
if (item.length > budget + 1)
|
|
118
|
-
throw new Error('JSON byte limit.');
|
|
119
|
-
const keys = Reflect.ownKeys(item);
|
|
120
|
-
if (keys.length !== item.length + 1)
|
|
121
|
-
throw new Error('Sparse or decorated array.');
|
|
122
|
-
const result = [];
|
|
123
|
-
for (let index = 0; index < item.length; index++) {
|
|
124
|
-
const descriptor = Object.getOwnPropertyDescriptor(item, String(index));
|
|
125
|
-
if (!descriptor?.enumerable || !('value' in descriptor))
|
|
126
|
-
throw new Error('Sparse or accessor array.');
|
|
127
|
-
if (index)
|
|
128
|
-
spend(1);
|
|
129
|
-
result.push(copy(descriptor.value, depth + 1));
|
|
130
|
-
}
|
|
131
|
-
output = result;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
const fields = ownData(item);
|
|
135
|
-
const result = {};
|
|
136
|
-
let index = 0;
|
|
137
|
-
for (const key of Object.keys(fields)) {
|
|
138
|
-
if (index++)
|
|
139
|
-
spend(1);
|
|
140
|
-
string(key);
|
|
141
|
-
spend(1);
|
|
142
|
-
Object.defineProperty(result, key, {
|
|
143
|
-
value: copy(fields[key], depth + 1),
|
|
144
|
-
enumerable: true,
|
|
145
|
-
writable: true,
|
|
146
|
-
configurable: true,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
output = result;
|
|
150
|
-
}
|
|
151
|
-
ancestors.delete(item);
|
|
152
|
-
return freeze ? Object.freeze(output) : output;
|
|
153
|
-
};
|
|
154
|
-
return copy(value, 0);
|
|
155
|
-
}
|
|
156
56
|
function readChecks(value, config, resolved) {
|
|
157
57
|
// Bound before copying. The copy rejects getters, class instances, cycles,
|
|
158
58
|
// decorated arrays and values JSON would otherwise silently discard.
|
|
159
|
-
const source = ownData(value, ['checks']);
|
|
59
|
+
const source = (0, boundedJson_js_1.ownData)(value, ['checks']);
|
|
160
60
|
if (!Array.isArray(source.checks) || source.checks.length > config.limits.maxChecks)
|
|
161
61
|
throw new Error('Invalid checks.');
|
|
162
|
-
const detached =
|
|
62
|
+
const detached = (0, boundedJson_js_1.copyJson)(source.checks, config.limits.maxChecks * 4096, false);
|
|
163
63
|
const ids = new Set();
|
|
164
64
|
const refs = new Set(resolved);
|
|
165
65
|
return detached.map((raw) => {
|
|
166
|
-
const check = ownData(raw, ['id', 'disposition', 'reason', 'path', 'evidenceRefs']);
|
|
66
|
+
const check = (0, boundedJson_js_1.ownData)(raw, ['id', 'disposition', 'reason', 'path', 'evidenceRefs']);
|
|
167
67
|
const id = text(check.id, 128);
|
|
168
68
|
if (ids.has(id) ||
|
|
169
69
|
typeof check.disposition !== 'string' ||
|
|
@@ -248,7 +148,7 @@ async function executeAnswerValidation(raw, parser, config, store, scope, signal
|
|
|
248
148
|
return;
|
|
249
149
|
}
|
|
250
150
|
try {
|
|
251
|
-
candidate =
|
|
151
|
+
candidate = (0, boundedJson_js_1.copyJson)(candidate, config.limits.maxCandidateBytes, true);
|
|
252
152
|
canonical = JSON.stringify(candidate);
|
|
253
153
|
schemaAccepted = true;
|
|
254
154
|
}
|