@smthrs/harness 0.0.0-stage → 1.0.0-rc.3
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/CHANGELOG.md +387 -0
- package/LICENSE +21 -0
- package/README.md +138 -2
- package/dist/cjs/AgentEvent.d.ts +3092 -0
- package/dist/cjs/AgentEvent.d.ts.map +1 -0
- package/dist/cjs/AgentEvent.js +1116 -0
- package/dist/cjs/AgentEvent.js.map +7 -0
- package/dist/cjs/CallLedger.d.ts +378 -0
- package/dist/cjs/CallLedger.d.ts.map +1 -0
- package/dist/cjs/CallLedger.js +240 -0
- package/dist/cjs/CallLedger.js.map +7 -0
- package/dist/cjs/Cell.d.ts +774 -0
- package/dist/cjs/Cell.d.ts.map +1 -0
- package/dist/cjs/Cell.js +431 -0
- package/dist/cjs/Cell.js.map +7 -0
- package/dist/cjs/CellCalls.d.ts +115 -0
- package/dist/cjs/CellCalls.d.ts.map +1 -0
- package/dist/cjs/CellCalls.js +98 -0
- package/dist/cjs/CellCalls.js.map +7 -0
- package/dist/cjs/CellHistory.d.ts +102 -0
- package/dist/cjs/CellHistory.d.ts.map +1 -0
- package/dist/cjs/CellHistory.js +54 -0
- package/dist/cjs/CellHistory.js.map +7 -0
- package/dist/cjs/CellTurn.d.ts +1071 -0
- package/dist/cjs/CellTurn.d.ts.map +1 -0
- package/dist/cjs/CellTurn.js +2618 -0
- package/dist/cjs/CellTurn.js.map +7 -0
- package/dist/cjs/CellValidation.d.ts +94 -0
- package/dist/cjs/CellValidation.d.ts.map +1 -0
- package/dist/cjs/CellValidation.js +218 -0
- package/dist/cjs/CellValidation.js.map +7 -0
- package/dist/cjs/Compaction.d.ts +158 -0
- package/dist/cjs/Compaction.d.ts.map +1 -0
- package/dist/cjs/Compaction.js +189 -0
- package/dist/cjs/Compaction.js.map +7 -0
- package/dist/cjs/CompletionClaim.d.ts +801 -0
- package/dist/cjs/CompletionClaim.d.ts.map +1 -0
- package/dist/cjs/CompletionClaim.js +303 -0
- package/dist/cjs/CompletionClaim.js.map +7 -0
- package/dist/cjs/ContextWindow.d.ts +435 -0
- package/dist/cjs/ContextWindow.d.ts.map +1 -0
- package/dist/cjs/ContextWindow.js +319 -0
- package/dist/cjs/ContextWindow.js.map +7 -0
- package/dist/cjs/EngineLike.d.ts +546 -0
- package/dist/cjs/EngineLike.d.ts.map +1 -0
- package/dist/cjs/EngineLike.js +114 -0
- package/dist/cjs/EngineLike.js.map +7 -0
- package/dist/cjs/ExternalTranscript.d.ts +349 -0
- package/dist/cjs/ExternalTranscript.d.ts.map +1 -0
- package/dist/cjs/ExternalTranscript.js +826 -0
- package/dist/cjs/ExternalTranscript.js.map +7 -0
- package/dist/cjs/FailedCall.d.ts +132 -0
- package/dist/cjs/FailedCall.d.ts.map +1 -0
- package/dist/cjs/FailedCall.js +53 -0
- package/dist/cjs/FailedCall.js.map +7 -0
- package/dist/cjs/FlowBinding.d.ts +289 -0
- package/dist/cjs/FlowBinding.d.ts.map +1 -0
- package/dist/cjs/FlowBinding.js +251 -0
- package/dist/cjs/FlowBinding.js.map +7 -0
- package/dist/cjs/HarnessError.d.ts +57 -0
- package/dist/cjs/HarnessError.d.ts.map +1 -0
- package/dist/cjs/HarnessError.js +75 -0
- package/dist/cjs/HarnessError.js.map +7 -0
- package/dist/cjs/Judgement.d.ts +289 -0
- package/dist/cjs/Judgement.d.ts.map +1 -0
- package/dist/cjs/Judgement.js +240 -0
- package/dist/cjs/Judgement.js.map +7 -0
- package/dist/cjs/Monitor.d.ts +374 -0
- package/dist/cjs/Monitor.d.ts.map +1 -0
- package/dist/cjs/Monitor.js +233 -0
- package/dist/cjs/Monitor.js.map +7 -0
- package/dist/cjs/NarrowedCheck.d.ts +523 -0
- package/dist/cjs/NarrowedCheck.d.ts.map +1 -0
- package/dist/cjs/NarrowedCheck.js +263 -0
- package/dist/cjs/NarrowedCheck.js.map +7 -0
- package/dist/cjs/Notifications.d.ts +42 -0
- package/dist/cjs/Notifications.d.ts.map +1 -0
- package/dist/cjs/Notifications.js +177 -0
- package/dist/cjs/Notifications.js.map +7 -0
- package/dist/cjs/Plan.d.ts +127 -0
- package/dist/cjs/Plan.d.ts.map +1 -0
- package/dist/cjs/Plan.js +77 -0
- package/dist/cjs/Plan.js.map +7 -0
- package/dist/cjs/QuickJSSandbox.d.ts +151 -0
- package/dist/cjs/QuickJSSandbox.d.ts.map +1 -0
- package/dist/cjs/QuickJSSandbox.js +987 -0
- package/dist/cjs/QuickJSSandbox.js.map +7 -0
- package/dist/cjs/Relevance.d.ts +213 -0
- package/dist/cjs/Relevance.d.ts.map +1 -0
- package/dist/cjs/Relevance.js +183 -0
- package/dist/cjs/Relevance.js.map +7 -0
- package/dist/cjs/Sandbox.d.ts +637 -0
- package/dist/cjs/Sandbox.d.ts.map +1 -0
- package/dist/cjs/Sandbox.js +260 -0
- package/dist/cjs/Sandbox.js.map +7 -0
- package/dist/cjs/Steering.d.ts +464 -0
- package/dist/cjs/Steering.d.ts.map +1 -0
- package/dist/cjs/Steering.js +153 -0
- package/dist/cjs/Steering.js.map +7 -0
- package/dist/cjs/StructuredOutput.d.ts +252 -0
- package/dist/cjs/StructuredOutput.d.ts.map +1 -0
- package/dist/cjs/StructuredOutput.js +266 -0
- package/dist/cjs/StructuredOutput.js.map +7 -0
- package/dist/cjs/Sufficiency.d.ts +195 -0
- package/dist/cjs/Sufficiency.d.ts.map +1 -0
- package/dist/cjs/Sufficiency.js +110 -0
- package/dist/cjs/Sufficiency.js.map +7 -0
- package/dist/cjs/Supervisor.d.ts +719 -0
- package/dist/cjs/Supervisor.d.ts.map +1 -0
- package/dist/cjs/Supervisor.js +313 -0
- package/dist/cjs/Supervisor.js.map +7 -0
- package/dist/cjs/Tokens.d.ts +86 -0
- package/dist/cjs/Tokens.d.ts.map +1 -0
- package/dist/cjs/Tokens.js +72 -0
- package/dist/cjs/Tokens.js.map +7 -0
- package/dist/cjs/Transcript.d.ts +171 -0
- package/dist/cjs/Transcript.d.ts.map +1 -0
- package/dist/cjs/Transcript.js +342 -0
- package/dist/cjs/Transcript.js.map +7 -0
- package/dist/cjs/TruncatedOutput.d.ts +186 -0
- package/dist/cjs/TruncatedOutput.d.ts.map +1 -0
- package/dist/cjs/TruncatedOutput.js +143 -0
- package/dist/cjs/TruncatedOutput.js.map +7 -0
- package/dist/cjs/UnmovedTree.d.ts +113 -0
- package/dist/cjs/UnmovedTree.d.ts.map +1 -0
- package/dist/cjs/UnmovedTree.js +38 -0
- package/dist/cjs/UnmovedTree.js.map +7 -0
- package/dist/cjs/UnresolvedFailure.d.ts +196 -0
- package/dist/cjs/UnresolvedFailure.d.ts.map +1 -0
- package/dist/cjs/UnresolvedFailure.js +77 -0
- package/dist/cjs/UnresolvedFailure.js.map +7 -0
- package/dist/cjs/VacuousVerification.d.ts +237 -0
- package/dist/cjs/VacuousVerification.d.ts.map +1 -0
- package/dist/cjs/VacuousVerification.js +91 -0
- package/dist/cjs/VacuousVerification.js.map +7 -0
- package/dist/cjs/VariablesPanel.d.ts +117 -0
- package/dist/cjs/VariablesPanel.d.ts.map +1 -0
- package/dist/cjs/VariablesPanel.js +108 -0
- package/dist/cjs/VariablesPanel.js.map +7 -0
- package/dist/cjs/index.d.ts +172 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +99 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/bytes.d.ts +36 -0
- package/dist/cjs/internal/bytes.d.ts.map +1 -0
- package/dist/cjs/internal/bytes.js +57 -0
- package/dist/cjs/internal/bytes.js.map +7 -0
- package/dist/cjs/internal/cellPrompt.d.ts +122 -0
- package/dist/cjs/internal/cellPrompt.d.ts.map +1 -0
- package/dist/cjs/internal/cellPrompt.js +146 -0
- package/dist/cjs/internal/cellPrompt.js.map +7 -0
- package/dist/cjs/internal/compactable.d.ts +44 -0
- package/dist/cjs/internal/compactable.d.ts.map +1 -0
- package/dist/cjs/internal/compactable.js +56 -0
- package/dist/cjs/internal/compactable.js.map +7 -0
- package/dist/cjs/internal/compactionMarks.d.ts +278 -0
- package/dist/cjs/internal/compactionMarks.d.ts.map +1 -0
- package/dist/cjs/internal/compactionMarks.js +212 -0
- package/dist/cjs/internal/compactionMarks.js.map +7 -0
- package/dist/cjs/internal/demandText.d.ts +95 -0
- package/dist/cjs/internal/demandText.d.ts.map +1 -0
- package/dist/cjs/internal/demandText.js +70 -0
- package/dist/cjs/internal/demandText.js.map +7 -0
- package/dist/cjs/internal/elide.d.ts +109 -0
- package/dist/cjs/internal/elide.d.ts.map +1 -0
- package/dist/cjs/internal/elide.js +59 -0
- package/dist/cjs/internal/elide.js.map +7 -0
- package/dist/cjs/internal/frame.d.ts +463 -0
- package/dist/cjs/internal/frame.d.ts.map +1 -0
- package/dist/cjs/internal/frame.js +514 -0
- package/dist/cjs/internal/frame.js.map +7 -0
- package/dist/cjs/internal/nonNegativeSafeInt.d.ts +20 -0
- package/dist/cjs/internal/nonNegativeSafeInt.d.ts.map +1 -0
- package/dist/cjs/internal/nonNegativeSafeInt.js +29 -0
- package/dist/cjs/internal/nonNegativeSafeInt.js.map +7 -0
- package/dist/cjs/internal/paidUsage.d.ts +52 -0
- package/dist/cjs/internal/paidUsage.d.ts.map +1 -0
- package/dist/cjs/internal/paidUsage.js +70 -0
- package/dist/cjs/internal/paidUsage.js.map +7 -0
- package/dist/cjs/internal/printChannel.d.ts +233 -0
- package/dist/cjs/internal/printChannel.d.ts.map +1 -0
- package/dist/cjs/internal/printChannel.js +165 -0
- package/dist/cjs/internal/printChannel.js.map +7 -0
- package/dist/cjs/internal/printsObservation.d.ts +26 -0
- package/dist/cjs/internal/printsObservation.d.ts.map +1 -0
- package/dist/cjs/internal/printsObservation.js +27 -0
- package/dist/cjs/internal/printsObservation.js.map +7 -0
- package/dist/cjs/internal/refusal.d.ts +40 -0
- package/dist/cjs/internal/refusal.d.ts.map +1 -0
- package/dist/cjs/internal/refusal.js +45 -0
- package/dist/cjs/internal/refusal.js.map +7 -0
- package/dist/cjs/internal/supervision.d.ts +174 -0
- package/dist/cjs/internal/supervision.d.ts.map +1 -0
- package/dist/cjs/internal/supervision.js +402 -0
- package/dist/cjs/internal/supervision.js.map +7 -0
- package/dist/cjs/internal/unfinishedWork.d.ts +99 -0
- package/dist/cjs/internal/unfinishedWork.d.ts.map +1 -0
- package/dist/cjs/internal/unfinishedWork.js +80 -0
- package/dist/cjs/internal/unfinishedWork.js.map +7 -0
- package/dist/cjs/internal/unobservedCall.d.ts +112 -0
- package/dist/cjs/internal/unobservedCall.d.ts.map +1 -0
- package/dist/cjs/internal/unobservedCall.js +345 -0
- package/dist/cjs/internal/unobservedCall.js.map +7 -0
- package/dist/cjs/internal/untrustedData.d.ts +14 -0
- package/dist/cjs/internal/untrustedData.d.ts.map +1 -0
- package/dist/cjs/internal/untrustedData.js +30 -0
- package/dist/cjs/internal/untrustedData.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/AgentEvent.d.ts +3092 -0
- package/dist/esm/AgentEvent.d.ts.map +1 -0
- package/dist/esm/AgentEvent.js +1610 -0
- package/dist/esm/AgentEvent.js.map +1 -0
- package/dist/esm/CallLedger.d.ts +378 -0
- package/dist/esm/CallLedger.d.ts.map +1 -0
- package/dist/esm/CallLedger.js +506 -0
- package/dist/esm/CallLedger.js.map +1 -0
- package/dist/esm/Cell.d.ts +774 -0
- package/dist/esm/Cell.d.ts.map +1 -0
- package/dist/esm/Cell.js +772 -0
- package/dist/esm/Cell.js.map +1 -0
- package/dist/esm/CellCalls.d.ts +115 -0
- package/dist/esm/CellCalls.d.ts.map +1 -0
- package/dist/esm/CellCalls.js +97 -0
- package/dist/esm/CellCalls.js.map +1 -0
- package/dist/esm/CellHistory.d.ts +102 -0
- package/dist/esm/CellHistory.d.ts.map +1 -0
- package/dist/esm/CellHistory.js +91 -0
- package/dist/esm/CellHistory.js.map +1 -0
- package/dist/esm/CellTurn.d.ts +1071 -0
- package/dist/esm/CellTurn.d.ts.map +1 -0
- package/dist/esm/CellTurn.js +3410 -0
- package/dist/esm/CellTurn.js.map +1 -0
- package/dist/esm/CellValidation.d.ts +94 -0
- package/dist/esm/CellValidation.d.ts.map +1 -0
- package/dist/esm/CellValidation.js +335 -0
- package/dist/esm/CellValidation.js.map +1 -0
- package/dist/esm/Compaction.d.ts +158 -0
- package/dist/esm/Compaction.d.ts.map +1 -0
- package/dist/esm/Compaction.js +216 -0
- package/dist/esm/Compaction.js.map +1 -0
- package/dist/esm/CompletionClaim.d.ts +801 -0
- package/dist/esm/CompletionClaim.d.ts.map +1 -0
- package/dist/esm/CompletionClaim.js +833 -0
- package/dist/esm/CompletionClaim.js.map +1 -0
- package/dist/esm/ContextWindow.d.ts +435 -0
- package/dist/esm/ContextWindow.d.ts.map +1 -0
- package/dist/esm/ContextWindow.js +427 -0
- package/dist/esm/ContextWindow.js.map +1 -0
- package/dist/esm/EngineLike.d.ts +546 -0
- package/dist/esm/EngineLike.d.ts.map +1 -0
- package/dist/esm/EngineLike.js +218 -0
- package/dist/esm/EngineLike.js.map +1 -0
- package/dist/esm/ExternalTranscript.d.ts +349 -0
- package/dist/esm/ExternalTranscript.d.ts.map +1 -0
- package/dist/esm/ExternalTranscript.js +987 -0
- package/dist/esm/ExternalTranscript.js.map +1 -0
- package/dist/esm/FailedCall.d.ts +132 -0
- package/dist/esm/FailedCall.d.ts.map +1 -0
- package/dist/esm/FailedCall.js +131 -0
- package/dist/esm/FailedCall.js.map +1 -0
- package/dist/esm/FlowBinding.d.ts +289 -0
- package/dist/esm/FlowBinding.d.ts.map +1 -0
- package/dist/esm/FlowBinding.js +376 -0
- package/dist/esm/FlowBinding.js.map +1 -0
- package/dist/esm/HarnessError.d.ts +57 -0
- package/dist/esm/HarnessError.d.ts.map +1 -0
- package/dist/esm/HarnessError.js +85 -0
- package/dist/esm/HarnessError.js.map +1 -0
- package/dist/esm/Judgement.d.ts +289 -0
- package/dist/esm/Judgement.d.ts.map +1 -0
- package/dist/esm/Judgement.js +305 -0
- package/dist/esm/Judgement.js.map +1 -0
- package/dist/esm/Monitor.d.ts +374 -0
- package/dist/esm/Monitor.d.ts.map +1 -0
- package/dist/esm/Monitor.js +370 -0
- package/dist/esm/Monitor.js.map +1 -0
- package/dist/esm/NarrowedCheck.d.ts +523 -0
- package/dist/esm/NarrowedCheck.d.ts.map +1 -0
- package/dist/esm/NarrowedCheck.js +612 -0
- package/dist/esm/NarrowedCheck.js.map +1 -0
- package/dist/esm/Notifications.d.ts +42 -0
- package/dist/esm/Notifications.d.ts.map +1 -0
- package/dist/esm/Notifications.js +215 -0
- package/dist/esm/Notifications.js.map +1 -0
- package/dist/esm/Plan.d.ts +127 -0
- package/dist/esm/Plan.d.ts.map +1 -0
- package/dist/esm/Plan.js +97 -0
- package/dist/esm/Plan.js.map +1 -0
- package/dist/esm/QuickJSSandbox.d.ts +151 -0
- package/dist/esm/QuickJSSandbox.d.ts.map +1 -0
- package/dist/esm/QuickJSSandbox.js +1364 -0
- package/dist/esm/QuickJSSandbox.js.map +1 -0
- package/dist/esm/Relevance.d.ts +213 -0
- package/dist/esm/Relevance.d.ts.map +1 -0
- package/dist/esm/Relevance.js +254 -0
- package/dist/esm/Relevance.js.map +1 -0
- package/dist/esm/Sandbox.d.ts +637 -0
- package/dist/esm/Sandbox.d.ts.map +1 -0
- package/dist/esm/Sandbox.js +464 -0
- package/dist/esm/Sandbox.js.map +1 -0
- package/dist/esm/Steering.d.ts +464 -0
- package/dist/esm/Steering.d.ts.map +1 -0
- package/dist/esm/Steering.js +193 -0
- package/dist/esm/Steering.js.map +1 -0
- package/dist/esm/StructuredOutput.d.ts +252 -0
- package/dist/esm/StructuredOutput.d.ts.map +1 -0
- package/dist/esm/StructuredOutput.js +430 -0
- package/dist/esm/StructuredOutput.js.map +1 -0
- package/dist/esm/Sufficiency.d.ts +195 -0
- package/dist/esm/Sufficiency.d.ts.map +1 -0
- package/dist/esm/Sufficiency.js +207 -0
- package/dist/esm/Sufficiency.js.map +1 -0
- package/dist/esm/Supervisor.d.ts +719 -0
- package/dist/esm/Supervisor.d.ts.map +1 -0
- package/dist/esm/Supervisor.js +575 -0
- package/dist/esm/Supervisor.js.map +1 -0
- package/dist/esm/Tokens.d.ts +86 -0
- package/dist/esm/Tokens.d.ts.map +1 -0
- package/dist/esm/Tokens.js +92 -0
- package/dist/esm/Tokens.js.map +1 -0
- package/dist/esm/Transcript.d.ts +171 -0
- package/dist/esm/Transcript.d.ts.map +1 -0
- package/dist/esm/Transcript.js +424 -0
- package/dist/esm/Transcript.js.map +1 -0
- package/dist/esm/TruncatedOutput.d.ts +186 -0
- package/dist/esm/TruncatedOutput.d.ts.map +1 -0
- package/dist/esm/TruncatedOutput.js +257 -0
- package/dist/esm/TruncatedOutput.js.map +1 -0
- package/dist/esm/UnmovedTree.d.ts +113 -0
- package/dist/esm/UnmovedTree.d.ts.map +1 -0
- package/dist/esm/UnmovedTree.js +90 -0
- package/dist/esm/UnmovedTree.js.map +1 -0
- package/dist/esm/UnresolvedFailure.d.ts +196 -0
- package/dist/esm/UnresolvedFailure.d.ts.map +1 -0
- package/dist/esm/UnresolvedFailure.js +218 -0
- package/dist/esm/UnresolvedFailure.js.map +1 -0
- package/dist/esm/VacuousVerification.d.ts +237 -0
- package/dist/esm/VacuousVerification.d.ts.map +1 -0
- package/dist/esm/VacuousVerification.js +245 -0
- package/dist/esm/VacuousVerification.js.map +1 -0
- package/dist/esm/VariablesPanel.d.ts +117 -0
- package/dist/esm/VariablesPanel.d.ts.map +1 -0
- package/dist/esm/VariablesPanel.js +142 -0
- package/dist/esm/VariablesPanel.js.map +1 -0
- package/dist/esm/index.d.ts +172 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +172 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/bytes.d.ts +36 -0
- package/dist/esm/internal/bytes.d.ts.map +1 -0
- package/dist/esm/internal/bytes.js +70 -0
- package/dist/esm/internal/bytes.js.map +1 -0
- package/dist/esm/internal/cellPrompt.d.ts +122 -0
- package/dist/esm/internal/cellPrompt.d.ts.map +1 -0
- package/dist/esm/internal/cellPrompt.js +276 -0
- package/dist/esm/internal/cellPrompt.js.map +1 -0
- package/dist/esm/internal/compactable.d.ts +44 -0
- package/dist/esm/internal/compactable.d.ts.map +1 -0
- package/dist/esm/internal/compactable.js +71 -0
- package/dist/esm/internal/compactable.js.map +1 -0
- package/dist/esm/internal/compactionMarks.d.ts +278 -0
- package/dist/esm/internal/compactionMarks.d.ts.map +1 -0
- package/dist/esm/internal/compactionMarks.js +317 -0
- package/dist/esm/internal/compactionMarks.js.map +1 -0
- package/dist/esm/internal/demandText.d.ts +95 -0
- package/dist/esm/internal/demandText.d.ts.map +1 -0
- package/dist/esm/internal/demandText.js +128 -0
- package/dist/esm/internal/demandText.js.map +1 -0
- package/dist/esm/internal/elide.d.ts +109 -0
- package/dist/esm/internal/elide.d.ts.map +1 -0
- package/dist/esm/internal/elide.js +123 -0
- package/dist/esm/internal/elide.js.map +1 -0
- package/dist/esm/internal/frame.d.ts +463 -0
- package/dist/esm/internal/frame.d.ts.map +1 -0
- package/dist/esm/internal/frame.js +861 -0
- package/dist/esm/internal/frame.js.map +1 -0
- package/dist/esm/internal/nonNegativeSafeInt.d.ts +20 -0
- package/dist/esm/internal/nonNegativeSafeInt.d.ts.map +1 -0
- package/dist/esm/internal/nonNegativeSafeInt.js +20 -0
- package/dist/esm/internal/nonNegativeSafeInt.js.map +1 -0
- package/dist/esm/internal/paidUsage.d.ts +52 -0
- package/dist/esm/internal/paidUsage.d.ts.map +1 -0
- package/dist/esm/internal/paidUsage.js +72 -0
- package/dist/esm/internal/paidUsage.js.map +1 -0
- package/dist/esm/internal/printChannel.d.ts +233 -0
- package/dist/esm/internal/printChannel.d.ts.map +1 -0
- package/dist/esm/internal/printChannel.js +376 -0
- package/dist/esm/internal/printChannel.js.map +1 -0
- package/dist/esm/internal/printsObservation.d.ts +26 -0
- package/dist/esm/internal/printsObservation.d.ts.map +1 -0
- package/dist/esm/internal/printsObservation.js +29 -0
- package/dist/esm/internal/printsObservation.js.map +1 -0
- package/dist/esm/internal/refusal.d.ts +40 -0
- package/dist/esm/internal/refusal.d.ts.map +1 -0
- package/dist/esm/internal/refusal.js +47 -0
- package/dist/esm/internal/refusal.js.map +1 -0
- package/dist/esm/internal/supervision.d.ts +174 -0
- package/dist/esm/internal/supervision.d.ts.map +1 -0
- package/dist/esm/internal/supervision.js +485 -0
- package/dist/esm/internal/supervision.js.map +1 -0
- package/dist/esm/internal/unfinishedWork.d.ts +99 -0
- package/dist/esm/internal/unfinishedWork.d.ts.map +1 -0
- package/dist/esm/internal/unfinishedWork.js +85 -0
- package/dist/esm/internal/unfinishedWork.js.map +1 -0
- package/dist/esm/internal/unobservedCall.d.ts +112 -0
- package/dist/esm/internal/unobservedCall.d.ts.map +1 -0
- package/dist/esm/internal/unobservedCall.js +501 -0
- package/dist/esm/internal/unobservedCall.js.map +1 -0
- package/dist/esm/internal/untrustedData.d.ts +14 -0
- package/dist/esm/internal/untrustedData.d.ts.map +1 -0
- package/dist/esm/internal/untrustedData.js +15 -0
- package/dist/esm/internal/untrustedData.js.map +1 -0
- package/docs/README.md +129 -0
- package/docs/api.md +1869 -0
- package/docs/concepts.md +238 -0
- package/docs/external-transcripts.md +245 -0
- package/docs/guides/bind-flows.md +167 -0
- package/docs/guides/drive-the-loop.md +265 -0
- package/docs/guides/run-cells.md +262 -0
- package/docs/guides/workerd.md +144 -0
- package/docs/installation.md +69 -0
- package/docs/quickstart.md +121 -0
- package/docs/reference.md +954 -0
- package/docs/troubleshooting.md +177 -0
- package/package.json +463 -3
- package/src/AgentEvent.ts +1772 -0
- package/src/CallLedger.ts +560 -0
- package/src/Cell.ts +926 -0
- package/src/CellCalls.ts +198 -0
- package/src/CellHistory.ts +128 -0
- package/src/CellTurn.ts +4450 -0
- package/src/CellValidation.ts +382 -0
- package/src/Compaction.ts +330 -0
- package/src/CompletionClaim.ts +1013 -0
- package/src/ContextWindow.ts +669 -0
- package/src/EngineLike.ts +614 -0
- package/src/ExternalTranscript.ts +1143 -0
- package/src/FailedCall.ts +163 -0
- package/src/FlowBinding.ts +603 -0
- package/src/HarnessError.ts +98 -0
- package/src/Judgement.ts +526 -0
- package/src/Monitor.ts +579 -0
- package/src/NarrowedCheck.ts +694 -0
- package/src/Notifications.ts +262 -0
- package/src/Plan.ts +113 -0
- package/src/QuickJSSandbox.ts +1557 -0
- package/src/Relevance.ts +352 -0
- package/src/Sandbox.ts +908 -0
- package/src/Steering.ts +405 -0
- package/src/StructuredOutput.ts +484 -0
- package/src/Sufficiency.ts +247 -0
- package/src/Supervisor.ts +798 -0
- package/src/Tokens.ts +108 -0
- package/src/Transcript.ts +513 -0
- package/src/TruncatedOutput.ts +297 -0
- package/src/UnmovedTree.ts +121 -0
- package/src/UnresolvedFailure.ts +240 -0
- package/src/VacuousVerification.ts +280 -0
- package/src/VariablesPanel.ts +165 -0
- package/src/index.ts +204 -0
- package/src/internal/bytes.ts +70 -0
- package/src/internal/cellPrompt.ts +337 -0
- package/src/internal/compactable.ts +76 -0
- package/src/internal/compactionMarks.ts +454 -0
- package/src/internal/demandText.ts +145 -0
- package/src/internal/elide.ts +130 -0
- package/src/internal/frame.ts +1178 -0
- package/src/internal/nonNegativeSafeInt.ts +24 -0
- package/src/internal/paidUsage.ts +90 -0
- package/src/internal/printChannel.ts +434 -0
- package/src/internal/printsObservation.ts +31 -0
- package/src/internal/refusal.ts +53 -0
- package/src/internal/supervision.ts +652 -0
- package/src/internal/unfinishedWork.ts +123 -0
- package/src/internal/unobservedCall.ts +536 -0
- package/src/internal/untrustedData.ts +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Steering.js","sourceRoot":"","sources":["../../src/Steering.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Turn-boundary steering values and their source contract.\n *\n * Governing design: `../docs/concepts.md#notification-queue`.\n *\n * @since 0.1.0\n */\n\nimport * as ModelRequest from \"@smthrs/model/ModelRequest\"\nimport { Context, Effect, Layer, Schema } from \"effect\"\nimport * as AgentEvent from \"./AgentEvent.ts\"\nimport type { HarnessError } from \"./HarnessError.ts\"\nimport * as compactionMarks from \"./internal/compactionMarks.ts\"\nimport * as Monitor from \"./Monitor.ts\"\n\n/**\n * The boundary at which a transcript insertion may be promoted.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type Delivery = \"steer\" | \"queue\"\n\n/**\n * A transcript insertion promoted at the next turn boundary.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface SteerInsert {\n readonly _tag: \"Insert\"\n readonly delivery: \"steer\"\n readonly admittedAt: number\n readonly message: ModelRequest.Message\n}\n\n/**\n * A transcript insertion promoted only when the run would otherwise go idle.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface QueueInsert {\n readonly _tag: \"Insert\"\n readonly delivery: \"queue\"\n readonly admittedAt: number\n readonly message: ModelRequest.Message\n}\n\n/**\n * A transcript insertion admitted for a future turn.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type Insert = SteerInsert | QueueInsert\n\n/**\n * A model-seat change that applies only after the current turn closes.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface SeatChange {\n readonly _tag: \"SeatChange\"\n readonly delivery: \"steer\"\n readonly admittedAt: number\n readonly seat: string\n}\n\n/**\n * A thinking-level change that applies only after the current turn closes.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface ThinkingChange {\n readonly _tag: \"ThinkingChange\"\n readonly delivery: \"steer\"\n readonly admittedAt: number\n readonly thinking: ModelRequest.ReasoningEffort\n}\n\n/**\n * A serializable steering event.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type Item = Insert | SeatChange | ThinkingChange\n\n/**\n * An immutable, FIFO queue of steering events.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface Queue {\n readonly items: ReadonlyArray<Item>\n}\n\n/**\n * The values promoted when a turn reaches its close boundary.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface Drain {\n readonly inserts: ReadonlyArray<ModelRequest.Message>\n readonly seatChanges: ReadonlyArray<SeatChange | ThinkingChange>\n readonly remaining: Queue\n readonly queued: boolean\n /**\n * Whether this boundary had already drained, so the answer is the one it gave\n * the first time.\n *\n * This is what makes a parked run answerable. A park resumes by re-executing\n * its own frames, so it reaches the same boundary again and must be told the\n * same thing — and it must also be able to find out that a NEWER boundary is\n * the one an operator's answer is waiting at. A run walks its park's\n * boundaries until one reports `false`, which is the first one this run has\n * not consulted before.\n *\n * Host queue bookkeeping, like {@link Drain.remaining}, and deliberately not\n * part of {@link DrainRecord}: it says which attempt asked, not what the\n * boundary holds, and freezing it in a journaled value would tell every later\n * attempt it was the first.\n */\n readonly duplicate: boolean\n}\n\n/**\n * The boundary a drain is being attempted at, and whether the run would go\n * idle if nothing were delivered. Followups are held back until it would.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface BoundaryInput {\n readonly boundary: string\n readonly wouldIdle: boolean\n /**\n * Set only at an honored park's boundary: why the run parked and what it\n * asked. A source that can reach a person may show them the question and\n * answer the drain with their reply; one that cannot ignores it.\n */\n readonly park?: {\n readonly reason: \"waiting-input\" | \"waiting-event\" | \"waiting-quota\"\n readonly message: string\n } | undefined\n}\n\nconst SeatChangeRecord = Schema.Struct({\n _tag: Schema.Literal(\"SeatChange\"),\n delivery: Schema.Literal(\"steer\"),\n admittedAt: Schema.Number,\n seat: Schema.String\n})\n\nconst ThinkingChangeRecord = Schema.Struct({\n _tag: Schema.Literal(\"ThinkingChange\"),\n delivery: Schema.Literal(\"steer\"),\n admittedAt: Schema.Number,\n thinking: ModelRequest.ReasoningEffort\n})\n\n/**\n * The journaled record of one turn-boundary drain.\n *\n * A drain consumes host queue state, so it is a nondeterministic read: the\n * controller journals exactly this projection through `EngineLike.record`,\n * keyed on the frame and boundary, and a re-executed frame replays the record\n * instead of draining an already-drained queue. Everything the controller\n * folds into durable state is here; `remaining` is host queue bookkeeping and\n * deliberately is not.\n *\n * @category schemas\n * @since 0.1.0\n * @slop\n */\nexport const DrainRecord = Schema.Struct({\n inserts: Schema.Array(ModelRequest.Message),\n seatChanges: Schema.Array(Schema.Union([SeatChangeRecord, ThinkingChangeRecord])),\n queued: Schema.Boolean,\n /**\n * Messages the run's supervisor delivers at this boundary, kept apart from\n * `inserts` because they are not the person's words: the model reads them,\n * and the completion brake's task never does. Absent from records written\n * before the supervisor had a field of its own, and from boundaries it\n * delivered nothing at.\n */\n supervisor: Schema.optional(Schema.Array(ModelRequest.Message)),\n /**\n * Keys of the memory rows among `supervisor`, which the run has now been\n * shown. Absent from boundaries that delivered none.\n */\n memory: Schema.optional(Schema.Array(Schema.String)),\n /** The monitor whose message leads `supervisor`, when one was delivered. */\n monitor: Schema.optional(Schema.String),\n /** Crossed monitors this boundary withheld, and why. Absent when none was. */\n suppressed: Schema.optional(Schema.Array(Schema.Struct({ id: Schema.String, reason: AgentEvent.Suppression }))),\n /**\n * The monitor ledger after this boundary gated a reading, which the run\n * carries into its next frame. Absent from boundaries that gated none.\n */\n monitorLedger: Schema.optional(Monitor.Ledger),\n /**\n * Jev's answers about transcript segments, by digest, which the run stores\n * for its next compaction. The model is not sent them. Absent from\n * boundaries that took none.\n */\n marks: Schema.optional(Schema.Array(compactionMarks.Marking)),\n /**\n * The context triggers the delivered supervisor reading fired, which\n * compact the run at its next frame. Absent from boundaries that took none.\n */\n compact: Schema.optional(Schema.Array(AgentEvent.CompactionCause))\n})\n\n/**\n * The journaled record of one turn-boundary drain.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type DrainRecord = typeof DrainRecord.Type\n\n/**\n * Projects a {@link Drain} into its journaled record.\n *\n * @category conversions\n * @since 0.1.0\n * @slop\n */\nexport const drainRecord = (drain: Drain): DrainRecord => ({\n inserts: drain.inserts,\n seatChanges: drain.seatChanges,\n queued: drain.queued\n})\n\nconst immutable = (items: ReadonlyArray<Item>): Queue => Object.freeze({ items: Object.freeze([...items]) })\n\nconst immutableItem = (item: Item): Item => Object.freeze({ ...item })\n\n/**\n * Creates an empty immutable steering queue.\n *\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const empty = (): Queue => immutable([])\n\n/**\n * Appends an item without mutating the prior queue.\n *\n * @category operations\n * @since 0.1.0\n * @slop\n */\nexport const enqueue = (queue: Queue, item: Item): Queue => immutable([...queue.items, immutableItem(item)])\n\n/**\n * Drains only items admitted at or before the turn's fixed cutoff.\n *\n * @category operations\n * @since 0.1.0\n * @slop\n */\nexport const drainAtClose = (queue: Queue, cutoff: number): Drain => {\n const inserts: Array<ModelRequest.Message> = []\n const seatChanges: Array<SeatChange | ThinkingChange> = []\n const remaining: Array<Item> = []\n for (const item of queue.items) {\n if (item.delivery === \"queue\" || item.admittedAt > cutoff) {\n remaining.push(item)\n continue\n }\n switch (item._tag) {\n case \"Insert\":\n inserts.push(item.message)\n break\n case \"SeatChange\":\n case \"ThinkingChange\":\n seatChanges.push(item)\n break\n }\n }\n return {\n inserts: Object.freeze(inserts),\n seatChanges: Object.freeze(seatChanges),\n remaining: immutable(remaining),\n queued: false,\n // An in-memory cutoff drain keeps no boundary ledger, so it can never say\n // it has answered this boundary before.\n duplicate: false\n }\n}\n\n/**\n * Source of a serializable steering-queue snapshot. Storage and persistence\n * promotion are deliberately supplied by the host.\n *\n * @category services\n * @since 0.1.0\n * @slop\n */\nexport interface Source {\n readonly read: () => Effect.Effect<Queue, HarnessError>\n /**\n * Promotes what one boundary may deliver.\n *\n * A drain is IDEMPOTENT in its boundary string: a second drain at one\n * boundary promotes nothing and hands back exactly what the first one\n * promoted, with {@link Drain.duplicate} set. That is not an optimization, it\n * is the contract a resumed run depends on — a re-executed frame drains the\n * boundaries it already drained and must be told the same thing, or it\n * rebuilds a different context and re-keys every later sealed step. A source\n * that promotes afresh each time cannot answer a parked run and will deliver\n * one message many times.\n */\n readonly drain: (input: BoundaryInput) => Effect.Effect<Drain, HarnessError>\n}\n\n/**\n * The methods {@link make} needs to build a {@link Source}.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface SourceInput {\n readonly read: () => Effect.Effect<Queue, HarnessError>\n readonly drain: (input: BoundaryInput) => Effect.Effect<Drain, HarnessError>\n}\n\n/**\n * Service tag for the external steering queue source.\n *\n * @category services\n * @since 0.1.0\n * @slop\n */\nexport const Source: Context.Service<Source, Source> = Context.Service(\"@smthrs/harness/Steering/Source\")\n\n/**\n * Constructs a steering source service.\n *\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const make = (implementation: SourceInput): Source => Source.of(implementation)\n\n/**\n * Creates a source that always returns an empty queue.\n *\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const makeNoop = (overrides: Partial<Source> = {}): Source =>\n make({\n read: Effect.fn(\"Steering.Source.read\")(() => Effect.succeed(empty())),\n drain: Effect.fn(\"Steering.Source.drain\")(() =>\n Effect.succeed({\n inserts: [],\n seatChanges: [],\n remaining: empty(),\n queued: false,\n duplicate: false\n })\n ),\n ...overrides\n })\n\n/**\n * Provides a steering source as a layer.\n *\n * @category layers\n * @since 0.1.0\n * @slop\n */\nexport const layer = (implementation: SourceInput): Layer.Layer<Source> => Layer.succeed(Source)(make(implementation))\n\n/**\n * Provides an empty steering source as a layer.\n *\n * @category layers\n * @since 0.1.0\n * @slop\n */\nexport const layerNoop = (overrides: Partial<Source> = {}): Layer.Layer<Source> =>\n Layer.succeed(Source)(makeNoop(overrides))\n"]}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning one agent's final text into a value the declared output schema
|
|
3
|
+
* accepts, or into a typed failure.
|
|
4
|
+
*
|
|
5
|
+
* A model may answer with a bare JSON document, prose wrapped around a JSON
|
|
6
|
+
* document, a fenced block, or JSON of the wrong shape. Downstream nodes must
|
|
7
|
+
* never receive that ambiguity, so this module implements the recovery
|
|
8
|
+
* contract in `../docs/concepts.md#structured-output`:
|
|
9
|
+
*
|
|
10
|
+
* 1. parse the complete, BOM-stripped response and decode it;
|
|
11
|
+
* 2. otherwise scan once for balanced JSON containers, take the container
|
|
12
|
+
* whose matching close ends last, and decode that;
|
|
13
|
+
* 3. otherwise report a typed {@link StructuredOutputFailure} carrying bounded
|
|
14
|
+
* diagnostics, which is what a caller re-prompts with when it still holds a
|
|
15
|
+
* correction slot.
|
|
16
|
+
*
|
|
17
|
+
* Every candidate is decoded by the declared schema. Extraction never relaxes
|
|
18
|
+
* validation: it only decides which bytes are offered to it, and the schema may
|
|
19
|
+
* accept any JSON root rather than silently requiring an object.
|
|
20
|
+
*
|
|
21
|
+
* The prompt half is {@link instructions}. It renders the declared schema as a
|
|
22
|
+
* JSON Schema document placed in the run's system teaching, which is BAML's
|
|
23
|
+
* `ctx.output_format` injection reached through the seam the vault note
|
|
24
|
+
* specifies — the model is told the shape before it answers, and the answer is
|
|
25
|
+
* still validated locally. Provider acceptance is not a cast.
|
|
26
|
+
*
|
|
27
|
+
* Reference consulted: the `generateObject` function from Effect's
|
|
28
|
+
* `effect/unstable/ai/LanguageModel` module, which
|
|
29
|
+
* sends `responseFormat: { type: "json", schema }` and then decodes the result
|
|
30
|
+
* with the same schema, failing `AiError.InvalidOutputError` on mismatch. The
|
|
31
|
+
* decode-and-fail-typed half is copied. The provider `responseFormat` half is
|
|
32
|
+
* not reachable here: `@smthrs/model`'s `ModelRequest.GenerationParams` has no
|
|
33
|
+
* response-format field, and the cell loop's final answer is a `Cell.Complete`
|
|
34
|
+
* `output` string rather than a provider-decoded value, so the schema is
|
|
35
|
+
* carried in the prompt and enforced at this boundary.
|
|
36
|
+
*
|
|
37
|
+
* @since 0.1.0
|
|
38
|
+
*/
|
|
39
|
+
import * as Effect from "effect/Effect";
|
|
40
|
+
import * as Schema from "effect/Schema";
|
|
41
|
+
/**
|
|
42
|
+
* Stable reasons a structured-output boundary failed.
|
|
43
|
+
*
|
|
44
|
+
* `invalid_json` means candidate text was not JSON. `schema_mismatch` means
|
|
45
|
+
* JSON parsed but the declared schema refused it. `no_candidate` means the
|
|
46
|
+
* answer contained no candidate text. `correction_exhausted` means the
|
|
47
|
+
* boundary had already spent its correction budget.
|
|
48
|
+
*
|
|
49
|
+
* @category models
|
|
50
|
+
* @since 1.0.0-rc.0
|
|
51
|
+
* @slop
|
|
52
|
+
*/
|
|
53
|
+
export declare const StructuredOutputFailureCode: Schema.Literals<readonly ["invalid_json", "schema_mismatch", "no_candidate", "correction_exhausted"]>;
|
|
54
|
+
/**
|
|
55
|
+
* Stable reasons a structured-output boundary failed.
|
|
56
|
+
*
|
|
57
|
+
* @category models
|
|
58
|
+
* @since 1.0.0-rc.0
|
|
59
|
+
* @slop
|
|
60
|
+
*/
|
|
61
|
+
export type StructuredOutputFailureCode = typeof StructuredOutputFailureCode.Type;
|
|
62
|
+
/**
|
|
63
|
+
* Stable reasons an individual structured-output issue was reported.
|
|
64
|
+
*
|
|
65
|
+
* `invalid_json` means candidate text was not JSON. `no_candidate` means the
|
|
66
|
+
* answer contained no candidate text. `invalid_type` means a decoded value had
|
|
67
|
+
* the wrong type. `invalid_value` means a value of the expected type was still
|
|
68
|
+
* invalid. `missing_key` means a required property was absent.
|
|
69
|
+
* `unexpected_key` means a prohibited extra property was present. `forbidden`
|
|
70
|
+
* means decoding attempted an operation the schema forbids. `one_of` means
|
|
71
|
+
* more than one exclusive union member matched. `constraint` means a schema
|
|
72
|
+
* check or empty-union fallback failed.
|
|
73
|
+
*
|
|
74
|
+
* @category models
|
|
75
|
+
* @since 1.0.0-rc.0
|
|
76
|
+
* @slop
|
|
77
|
+
*/
|
|
78
|
+
export declare const OutputIssueCode: Schema.Literals<readonly ["invalid_json", "no_candidate", "invalid_type", "invalid_value", "missing_key", "unexpected_key", "forbidden", "one_of", "constraint"]>;
|
|
79
|
+
/**
|
|
80
|
+
* Stable reasons an individual structured-output issue was reported.
|
|
81
|
+
*
|
|
82
|
+
* @category models
|
|
83
|
+
* @since 1.0.0-rc.0
|
|
84
|
+
* @slop
|
|
85
|
+
*/
|
|
86
|
+
export type OutputIssueCode = typeof OutputIssueCode.Type;
|
|
87
|
+
declare const OutputIssue_base: Schema.Class<OutputIssue, Schema.Struct<{
|
|
88
|
+
/** The stable reason this issue was reported. */
|
|
89
|
+
readonly code: Schema.Literals<readonly ["invalid_json", "no_candidate", "invalid_type", "invalid_value", "missing_key", "unexpected_key", "forbidden", "one_of", "constraint"]>;
|
|
90
|
+
/** The JSON path of the offending value, dot/bracket joined; empty for the root. */
|
|
91
|
+
readonly path: Schema.String;
|
|
92
|
+
/** What the decoder wanted there. */
|
|
93
|
+
readonly message: Schema.String;
|
|
94
|
+
}>, {}>;
|
|
95
|
+
/**
|
|
96
|
+
* One bounded issue raised while decoding structured output.
|
|
97
|
+
*
|
|
98
|
+
* @category models
|
|
99
|
+
* @since 1.0.0-rc.0
|
|
100
|
+
* @slop
|
|
101
|
+
*/
|
|
102
|
+
export declare class OutputIssue extends OutputIssue_base {
|
|
103
|
+
/** Renders the issue for existing prose-oriented consumers. */
|
|
104
|
+
toString(): string;
|
|
105
|
+
}
|
|
106
|
+
declare const StructuredOutputFailure_base: Schema.Class<StructuredOutputFailure, Schema.TaggedStruct<"/harness/StructuredOutputFailure", {
|
|
107
|
+
/** The stable reason this boundary failed. */
|
|
108
|
+
readonly code: Schema.Literals<readonly ["invalid_json", "schema_mismatch", "no_candidate", "correction_exhausted"]>;
|
|
109
|
+
/** The declared output schema's canonical digest. */
|
|
110
|
+
readonly schema: Schema.String;
|
|
111
|
+
/** SHA-256 of the text the decoder was last offered. */
|
|
112
|
+
readonly candidate: Schema.String;
|
|
113
|
+
/** Correction attempts already spent on this boundary. */
|
|
114
|
+
readonly corrections: Schema.Number;
|
|
115
|
+
/** The correction budget the boundary was declared with. */
|
|
116
|
+
readonly limit: Schema.Number;
|
|
117
|
+
/** At most {@link maxIssues} structured validation issues. */
|
|
118
|
+
readonly issues: Schema.$Array<typeof OutputIssue>;
|
|
119
|
+
readonly message: Schema.String;
|
|
120
|
+
}>, import("effect/Cause").YieldableError>;
|
|
121
|
+
/**
|
|
122
|
+
* The terminal failure of one structured-output boundary.
|
|
123
|
+
*
|
|
124
|
+
* It carries what an operator needs to tell two identical-looking refusals
|
|
125
|
+
* apart: which schema was demanded, how many correction slots the attempt
|
|
126
|
+
* consumed out of its budget, the digest of the last candidate that was
|
|
127
|
+
* offered to the decoder, and the bounded issue list.
|
|
128
|
+
*
|
|
129
|
+
* @category errors
|
|
130
|
+
* @since 0.1.0
|
|
131
|
+
* @slop
|
|
132
|
+
*/
|
|
133
|
+
export declare class StructuredOutputFailure extends StructuredOutputFailure_base {
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The most validation issues a failure or a correction prompt carries.
|
|
137
|
+
*
|
|
138
|
+
* Bounded for the same reason smithers bounds its own validation summary: a
|
|
139
|
+
* wide struct that mismatched everywhere would otherwise spend the correction
|
|
140
|
+
* prompt's whole budget restating the schema back to the model.
|
|
141
|
+
*
|
|
142
|
+
* @category constants
|
|
143
|
+
* @since 0.1.0
|
|
144
|
+
* @slop
|
|
145
|
+
*/
|
|
146
|
+
export declare const maxIssues = 5;
|
|
147
|
+
/**
|
|
148
|
+
* The JSON Schema document for a declared output schema.
|
|
149
|
+
*
|
|
150
|
+
* @category conversions
|
|
151
|
+
* @since 0.1.0
|
|
152
|
+
* @slop
|
|
153
|
+
*/
|
|
154
|
+
export declare const jsonSchema: (schema: Schema.Top) => unknown;
|
|
155
|
+
/**
|
|
156
|
+
* The canonical digest of a declared output schema.
|
|
157
|
+
*
|
|
158
|
+
* Two declarations that render the same JSON Schema name the same boundary, so
|
|
159
|
+
* this is what a step key folds in rather than the schema value itself.
|
|
160
|
+
*
|
|
161
|
+
* @category identity
|
|
162
|
+
* @since 0.1.0
|
|
163
|
+
* @slop
|
|
164
|
+
*/
|
|
165
|
+
export declare const digest: (schema: Schema.Top) => string;
|
|
166
|
+
/**
|
|
167
|
+
* The system teaching that tells a run what its final `output` must be.
|
|
168
|
+
*
|
|
169
|
+
* Written against the cell contract: a cell finishes by calling
|
|
170
|
+
* `ctx.done(output)`, and the sandbox rejects a returned transition, so the
|
|
171
|
+
* instruction is about the argument of that call and not about the assistant
|
|
172
|
+
* message around it. The run passes the value itself: a structured value
|
|
173
|
+
* reaches {@link decode} as canonical JSON, and a string as its own text.
|
|
174
|
+
*
|
|
175
|
+
* @category prompts
|
|
176
|
+
* @since 0.1.0
|
|
177
|
+
* @slop
|
|
178
|
+
*/
|
|
179
|
+
export declare const instructions: (schema: Schema.Top) => string;
|
|
180
|
+
/**
|
|
181
|
+
* The digest of one failure's rendered validation issues.
|
|
182
|
+
*
|
|
183
|
+
* Two rejections that raised the same issues share this digest, which is what a
|
|
184
|
+
* record carries instead of the issues themselves: a journal that repeated the
|
|
185
|
+
* validator's prose for every correction would grow with the model's verbosity,
|
|
186
|
+
* and what an operator actually asks is whether the second answer was wrong the
|
|
187
|
+
* same way as the first.
|
|
188
|
+
*
|
|
189
|
+
* @category identity
|
|
190
|
+
* @since 0.1.0
|
|
191
|
+
*/
|
|
192
|
+
export declare const issuesDigest: (failure: StructuredOutputFailure) => string;
|
|
193
|
+
/**
|
|
194
|
+
* The correction teaching appended when a candidate failed to decode.
|
|
195
|
+
*
|
|
196
|
+
* It restates the schema and the bounded diagnostics and nothing else: a
|
|
197
|
+
* correction does not reinterpret the task, so the original prompt is repeated
|
|
198
|
+
* verbatim by the caller and only this section is new.
|
|
199
|
+
*
|
|
200
|
+
* @category prompts
|
|
201
|
+
* @since 0.1.0
|
|
202
|
+
* @slop
|
|
203
|
+
*/
|
|
204
|
+
export declare const correction: (failure: StructuredOutputFailure) => string;
|
|
205
|
+
/**
|
|
206
|
+
* The balanced JSON container whose matching close ends last.
|
|
207
|
+
*
|
|
208
|
+
* Scans once, left to right, tracking object and array delimiters, quoted
|
|
209
|
+
* strings, and escapes. A mismatched close abandons the open container rather
|
|
210
|
+
* than pairing it with the wrong opener, so a truncated prefix cannot be
|
|
211
|
+
* reported as a complete document. `undefined` means the text holds no
|
|
212
|
+
* balanced container at all.
|
|
213
|
+
*
|
|
214
|
+
* This is the array-capable form of smithers' `extractLastBalancedJson`, which
|
|
215
|
+
* is object-only.
|
|
216
|
+
*
|
|
217
|
+
* @category extraction
|
|
218
|
+
* @since 0.1.0
|
|
219
|
+
* @slop
|
|
220
|
+
*/
|
|
221
|
+
export declare const lastBalanced: (text: string) => string | undefined;
|
|
222
|
+
/**
|
|
223
|
+
* The candidates offered to the decoder, in the declared recovery order.
|
|
224
|
+
*
|
|
225
|
+
* @category extraction
|
|
226
|
+
* @since 0.1.0
|
|
227
|
+
* @slop
|
|
228
|
+
*/
|
|
229
|
+
export declare const candidates: (text: string) => ReadonlyArray<string>;
|
|
230
|
+
/**
|
|
231
|
+
* Decodes one agent answer with the declared output schema.
|
|
232
|
+
*
|
|
233
|
+
* Decodes an original completion value first when supplied. Only a string
|
|
234
|
+
* refused for its type proceeds to legacy text extraction; refinements and
|
|
235
|
+
* nonstring failures retain the original value's diagnostics.
|
|
236
|
+
* Tries every {@link candidates} entry in order and returns the first the
|
|
237
|
+
* schema accepts, then the answer itself, untrimmed, as a string unless it is
|
|
238
|
+
* a JSON string literal, which is how a `ctx.done("text")` answer reaches a
|
|
239
|
+
* string schema. When none does, the failure reports the issues raised by the
|
|
240
|
+
* LAST candidate, which is the narrowest text the extractor could isolate and
|
|
241
|
+
* therefore the one a correction prompt should be about.
|
|
242
|
+
*
|
|
243
|
+
* @category decoding
|
|
244
|
+
* @since 0.1.0
|
|
245
|
+
* @slop
|
|
246
|
+
*/
|
|
247
|
+
export declare const decode: <S extends Schema.Top>(schema: S, text: string, attempt: {
|
|
248
|
+
readonly corrections: number;
|
|
249
|
+
readonly limit: number;
|
|
250
|
+
}, value?: Schema.Json | undefined) => Effect.Effect<S["Type"], StructuredOutputFailure, S["DecodingServices"]>;
|
|
251
|
+
export {};
|
|
252
|
+
//# sourceMappingURL=StructuredOutput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StructuredOutput.d.ts","sourceRoot":"","sources":["../../src/StructuredOutput.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,uGAKtC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,mKAU1B,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;;IAUvD,iDAAiD;;IAEjD,oFAAoF;;IAEpF,qCAAqC;;;AAZvC;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,gBAO/B;IACA,+DAA+D;IACtD,QAAQ,IAAI,MAAM;CAG5B;;IAiBG,8CAA8C;;IAE9C,qDAAqD;;IAErD,wDAAwD;;IAExD,0DAA0D;;IAE1D,4DAA4D;;IAE5D,8DAA8D;;;;AAzBlE;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,4BAiB5C;CAAG;AAIJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,IAAI,CAAA;AAE1B;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,OAK/C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,MAA6D,CAAA;AAEzG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,CAAC,GAAG,KAAG,MAS3C,CAAA;AAEP;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,uBAAuB,KAAG,MAG7D,CAAA;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,uBAAuB,KAAG,MAQJ,CAAA;AAI1D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAqCpD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,aAAa,CAAC,MAAM,CAI7D,CAAA;AAqDD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EACzC,QAAQ,CAAC,EACT,MAAM,MAAM,EACZ,SAAS;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjE,QAAQ,MAAM,CAAC,IAAI,GAAG,SAAS,KAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CA0EtE,CAAA"}
|