@smthrs/harness 0.0.0-stage → 1.0.0-rc.4
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 +985 -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 +1142 -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,546 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Narrow engine port consumed by the built-in harness.
|
|
3
|
+
*
|
|
4
|
+
* Governing contracts: `../docs/concepts.md#durable-cell-loop`,
|
|
5
|
+
* `../docs/concepts.md#child-plans-and-the-splice-boundary`, and
|
|
6
|
+
* `../docs/concepts.md#step-keys-and-the-model-layer`.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
*/
|
|
10
|
+
import type * as KeyMaterial from "@smthrs/core/KeyMaterial";
|
|
11
|
+
import type * as Model from "@smthrs/model/Model";
|
|
12
|
+
import type * as ModelEvent from "@smthrs/model/ModelEvent";
|
|
13
|
+
import type * as ModelRequest from "@smthrs/model/ModelRequest";
|
|
14
|
+
import { Context, Effect, Layer, Option, Schema, Stream } from "effect";
|
|
15
|
+
import type * as AgentEvent from "./AgentEvent.ts";
|
|
16
|
+
import type * as Cell from "./Cell.ts";
|
|
17
|
+
import { HarnessError } from "./HarnessError.ts";
|
|
18
|
+
import type * as Plan from "./Plan.ts";
|
|
19
|
+
/**
|
|
20
|
+
* Stable reasons for parking a harness turn at a safe boundary.
|
|
21
|
+
*
|
|
22
|
+
* @category models
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
* @slop
|
|
25
|
+
*/
|
|
26
|
+
export declare const SuspendReasonCode: Schema.Literals<readonly ["permission-required", "waiting-quota", "waiting-input", "waiting-event", "engine"]>;
|
|
27
|
+
/**
|
|
28
|
+
* Stable reasons for parking a harness turn at a safe boundary.
|
|
29
|
+
*
|
|
30
|
+
* @category models
|
|
31
|
+
* @since 0.1.0
|
|
32
|
+
* @slop
|
|
33
|
+
*/
|
|
34
|
+
export type SuspendReasonCode = typeof SuspendReasonCode.Type;
|
|
35
|
+
declare const SuspendReason_base: Schema.Class<SuspendReason, Schema.Struct<{
|
|
36
|
+
readonly code: Schema.Literals<readonly ["permission-required", "waiting-quota", "waiting-input", "waiting-event", "engine"]>;
|
|
37
|
+
readonly message: Schema.String;
|
|
38
|
+
readonly details: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
39
|
+
}>, {}>;
|
|
40
|
+
/**
|
|
41
|
+
* A serializable request to park the current engine frame.
|
|
42
|
+
*
|
|
43
|
+
* `details` is a closed JSON value rather than `Schema.Unknown`, for the reason
|
|
44
|
+
* `HarnessError`'s `cause` is a `Schema.Defect`: this value is journaled inside
|
|
45
|
+
* `AgentEvent.Suspended` and served back to whatever resumes the run, so it has
|
|
46
|
+
* to be something the durable exit schema can encode. `Schema.Unknown` accepts
|
|
47
|
+
* a live `Error`, a function, a `BigInt`, a cycle and an accessor, and the
|
|
48
|
+
* controller was in fact attaching a `Permission.PermissionRequired` — a class
|
|
49
|
+
* that extends `Error` — to every permission park. What a park carries is now
|
|
50
|
+
* encoded before it is attached, so the journal holds the same value a resumed
|
|
51
|
+
* run decodes.
|
|
52
|
+
*
|
|
53
|
+
* @category models
|
|
54
|
+
* @since 0.1.0
|
|
55
|
+
* @slop
|
|
56
|
+
*/
|
|
57
|
+
export declare class SuspendReason extends SuspendReason_base {
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A sealed model request and the complete digest-free material declared by the
|
|
61
|
+
* harness.
|
|
62
|
+
*
|
|
63
|
+
* @category models
|
|
64
|
+
* @since 0.1.0
|
|
65
|
+
* @slop
|
|
66
|
+
*/
|
|
67
|
+
export interface SealedModelStep {
|
|
68
|
+
readonly request: ModelRequest.ModelRequest;
|
|
69
|
+
readonly keyMaterial: KeyMaterial.KeyMaterial;
|
|
70
|
+
/**
|
|
71
|
+
* Wall-clock milliseconds one attempt at this step may spend; zero disarms.
|
|
72
|
+
*
|
|
73
|
+
* The budget travels on the step rather than on the engine's construction so
|
|
74
|
+
* the number the controller journals as armed is the number the engine
|
|
75
|
+
* enforces — one value, read from the controller's own state, and no way for
|
|
76
|
+
* a run's record of its discipline to disagree with the discipline it ran
|
|
77
|
+
* under.
|
|
78
|
+
*
|
|
79
|
+
* It is not key material and must never become key material: it says how
|
|
80
|
+
* long the caller will wait, not what the model was asked, and a step keyed
|
|
81
|
+
* on it would miss its cache the moment a host retuned the budget.
|
|
82
|
+
*/
|
|
83
|
+
readonly modelCallMs?: number | undefined;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The durable identity of one journaled controller boundary.
|
|
87
|
+
*
|
|
88
|
+
* `boundary` is a deterministic label for the boundary within its frame — a
|
|
89
|
+
* cell digest or a context digest — so re-executing the frame derives the same
|
|
90
|
+
* identity and replays the recorded value instead of performing the read
|
|
91
|
+
* again.
|
|
92
|
+
*
|
|
93
|
+
* @category models
|
|
94
|
+
* @since 0.1.0
|
|
95
|
+
* @slop
|
|
96
|
+
*/
|
|
97
|
+
export interface BoundaryIdentity {
|
|
98
|
+
/** The durable session or lineage the boundary belongs to, when the loop has one. */
|
|
99
|
+
readonly session?: string | undefined;
|
|
100
|
+
readonly frame: number;
|
|
101
|
+
readonly boundary: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* A schema that decodes without services — the only kind a durable store can
|
|
105
|
+
* reconstruct a journaled value with.
|
|
106
|
+
*
|
|
107
|
+
* @category models
|
|
108
|
+
* @since 0.1.0
|
|
109
|
+
* @slop
|
|
110
|
+
*/
|
|
111
|
+
export type DurableSchema<A> = Schema.Schema<A> & {
|
|
112
|
+
readonly "DecodingServices": never;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* One nondeterministic read the controller must perform exactly once per run.
|
|
116
|
+
*
|
|
117
|
+
* The canonical example is the turn-boundary steering drain: the host queue is
|
|
118
|
+
* the world, and draining it is an effect. Left unjournaled, a resumed run
|
|
119
|
+
* drains an already-drained queue, rebuilds a different context than the
|
|
120
|
+
* original attempt, re-keys every later sealed step, and re-executes
|
|
121
|
+
* irreversible effects. Recorded through {@link EngineLike.record}, the drain
|
|
122
|
+
* replays its recorded value and the resumed run converges on the original
|
|
123
|
+
* attempt.
|
|
124
|
+
*
|
|
125
|
+
* @category models
|
|
126
|
+
* @since 0.1.0
|
|
127
|
+
* @slop
|
|
128
|
+
*/
|
|
129
|
+
export interface RecordBoundary<A> {
|
|
130
|
+
readonly name: string;
|
|
131
|
+
readonly identity: BoundaryIdentity;
|
|
132
|
+
readonly success: DurableSchema<A>;
|
|
133
|
+
readonly execute: Effect.Effect<A, HarnessError>;
|
|
134
|
+
/** Exact call whose delivered result this existing cell-call boundary records. */
|
|
135
|
+
readonly call?: Cell.Call | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* The model usage the recorded value says this boundary paid for, such as
|
|
138
|
+
* an evaluator reading taken inside `execute`, one share per model.
|
|
139
|
+
*
|
|
140
|
+
* Read off the recorded value, never off the live call, so a replayed frame
|
|
141
|
+
* reports the same spend the original attempt paid. An implementation that
|
|
142
|
+
* keeps a run budget accounts it once under this boundary's key, on the
|
|
143
|
+
* live pass and on replay alike, pricing each share under its model id, so
|
|
144
|
+
* the next paid call is admitted against it. Declaring it declares the
|
|
145
|
+
* boundary paid: unless it is {@link advisory}, such an implementation
|
|
146
|
+
* admits it before `execute` under the budget's evaluator-reading policy,
|
|
147
|
+
* and a refusal fails or parks the run as a primary call's would.
|
|
148
|
+
* `undefined` or an empty list from it is a boundary that paid for nothing
|
|
149
|
+
* this time.
|
|
150
|
+
*/
|
|
151
|
+
usage?(value: A): ReadonlyArray<Paid> | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* A paid boundary whose caller drops its failure, such as the supervisor's
|
|
154
|
+
* reading in its own fiber: it is charged but never admitted, because a
|
|
155
|
+
* refusal there would register a park that no frame honours. The frame's
|
|
156
|
+
* next primary call applies the budget instead.
|
|
157
|
+
*/
|
|
158
|
+
readonly advisory?: boolean | undefined;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* One model's share of what a recorded boundary paid.
|
|
162
|
+
*
|
|
163
|
+
* @category models
|
|
164
|
+
* @since 1.0.0-rc.1
|
|
165
|
+
*/
|
|
166
|
+
export interface Paid {
|
|
167
|
+
readonly usage: ModelEvent.Usage;
|
|
168
|
+
/** The model that was paid, when the reading named it: what prices the share. */
|
|
169
|
+
readonly modelId?: string | undefined;
|
|
170
|
+
}
|
|
171
|
+
declare const Observation_base: Schema.Class<Observation, Schema.Struct<{
|
|
172
|
+
/** A content address of everything the measurement covered, taken together. */
|
|
173
|
+
readonly digest: Schema.String;
|
|
174
|
+
/** How many paths the measurement covered. */
|
|
175
|
+
readonly paths: Schema.Int;
|
|
176
|
+
/** Whether the measurement covered the whole tree it was asked to measure. */
|
|
177
|
+
readonly complete: Schema.withDecodingDefaultKey<Schema.withConstructorDefault<Schema.Boolean>, never>;
|
|
178
|
+
/**
|
|
179
|
+
* How long the measurement took, in milliseconds, so a slow frame can be
|
|
180
|
+
* attributed. Absent from a measurement recorded before it was kept.
|
|
181
|
+
*/
|
|
182
|
+
readonly elapsedMs: Schema.optionalKey<Schema.Int>;
|
|
183
|
+
}>, {}>;
|
|
184
|
+
/**
|
|
185
|
+
* One measurement of the workspace the run is changing.
|
|
186
|
+
*
|
|
187
|
+
* The controller never interprets `digest`; it only asks whether two
|
|
188
|
+
* measurements are equal. That is deliberate — the host owns what "the
|
|
189
|
+
* workspace" means (which paths it covers, and what it reads off each one),
|
|
190
|
+
* and the only thing the loop is entitled to conclude is "this is the tree I
|
|
191
|
+
* left" or "this is not". `paths` is carried for the journal, so a reader can
|
|
192
|
+
* tell an observation over 7,000 files from one over an empty root.
|
|
193
|
+
*
|
|
194
|
+
* `complete` is the answer to the one question that makes "this is the tree I
|
|
195
|
+
* left" meaningful. A measurement that stopped at a bound covers a prefix of
|
|
196
|
+
* the workspace, and a prefix cannot say that the rest of it held still — a
|
|
197
|
+
* checkout larger than the host's bound would otherwise report every frame as
|
|
198
|
+
* idle, and the read-only cap would fail a run that had been editing the whole
|
|
199
|
+
* time. A host that does not narrow its own measurement leaves it `true`.
|
|
200
|
+
*
|
|
201
|
+
* @category models
|
|
202
|
+
* @since 0.1.0
|
|
203
|
+
*/
|
|
204
|
+
export declare class Observation extends Observation_base {
|
|
205
|
+
}
|
|
206
|
+
declare const Snapshot_base: Schema.Class<Snapshot, Schema.Struct<{
|
|
207
|
+
/** The id the cell holds, and the id a later call names in `at`. */
|
|
208
|
+
readonly id: Schema.String;
|
|
209
|
+
/** What the host recorded, in the host's own vocabulary. */
|
|
210
|
+
readonly ref: Schema.String;
|
|
211
|
+
}>, {}>;
|
|
212
|
+
/**
|
|
213
|
+
* One pinned tree the run can come back to.
|
|
214
|
+
*
|
|
215
|
+
* A checkpoint is a **value**, not a place the run goes: minting one changes
|
|
216
|
+
* nothing about the workspace, and running a call against one leaves the live
|
|
217
|
+
* tree exactly as it stands. That is the whole point. Before this existed, the
|
|
218
|
+
* only way to answer "did this command fail before my change" was to undo the
|
|
219
|
+
* change, and `sympy__sympy-13878` shows what that costs — one byte-identical
|
|
220
|
+
* 4,789-character patch applied five times, four of those applications preceded
|
|
221
|
+
* by `git checkout -- sympy/stats/crv_types.py`, because a clean proof required
|
|
222
|
+
* reverting the very work it was meant to prove.
|
|
223
|
+
*
|
|
224
|
+
* `ref` is the host's own name for what it pinned — a commit id, a snapshot
|
|
225
|
+
* key, whatever the store speaks. The controller never interprets it, exactly
|
|
226
|
+
* as it never interprets {@link Observation.digest}; it is carried so the
|
|
227
|
+
* journal says which tree a checkpointed call ran against and a grader can
|
|
228
|
+
* reconcile the reading against the store by hand.
|
|
229
|
+
*
|
|
230
|
+
* @category models
|
|
231
|
+
* @since 0.1.0
|
|
232
|
+
*/
|
|
233
|
+
export declare class Snapshot extends Snapshot_base {
|
|
234
|
+
}
|
|
235
|
+
declare const Binding_base: Schema.Class<Binding, Schema.Struct<{
|
|
236
|
+
/** The configured route's id, as `Route.PreparedRequest.routeId` names it. */
|
|
237
|
+
readonly routeId: Schema.String;
|
|
238
|
+
/** The wire protocol that route speaks, as `Route.PreparedRequest.protocolId` names it. */
|
|
239
|
+
readonly protocolId: Schema.String;
|
|
240
|
+
}>, {}>;
|
|
241
|
+
/**
|
|
242
|
+
* The names of the route one model request resolves to.
|
|
243
|
+
*
|
|
244
|
+
* Names and nothing else. A route is an endpoint, a protocol and the
|
|
245
|
+
* credentials it authorizes with, and only the first two have a name a journal
|
|
246
|
+
* may carry: this is read off the credential-free `Route.PreparedRequest` the
|
|
247
|
+
* sealed step is keyed on, which is built before any secret is signed onto the
|
|
248
|
+
* request. So there is no field here a credential could travel in.
|
|
249
|
+
*
|
|
250
|
+
* @category models
|
|
251
|
+
* @since 1.0.0-rc.0
|
|
252
|
+
*/
|
|
253
|
+
export declare class Binding extends Binding_base {
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* What one model request resolves to on its way out of the host.
|
|
257
|
+
*
|
|
258
|
+
* @category models
|
|
259
|
+
* @since 1.0.0-rc.0
|
|
260
|
+
*/
|
|
261
|
+
export interface Resolved {
|
|
262
|
+
/** The request the provider is sent, after any rewrite the host applies. */
|
|
263
|
+
readonly request: ModelRequest.ModelRequest;
|
|
264
|
+
/** The route it goes to, or none where the host names none. */
|
|
265
|
+
readonly binding: Option.Option<Binding>;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* A request to pin the workspace as it stands right now.
|
|
269
|
+
*
|
|
270
|
+
* `identity` travels with it so a store *can* namespace what it writes by the
|
|
271
|
+
* run that wrote it: two runs over one workspace mint `id` values from the same
|
|
272
|
+
* frame-and-ordinal counter, so a store that keys on the id alone hands the
|
|
273
|
+
* second run the first run's tree. `@smthrs/std/Checkpoints`'s git store keys
|
|
274
|
+
* on the id alone and is right to: it also materializes at one path per id, as
|
|
275
|
+
* `TestRun`'s baseline worktree does, so two concurrent runs over one workspace
|
|
276
|
+
* collide on the checkout before they collide on the name. One workspace holds
|
|
277
|
+
* one run — that is the assumption the whole workspace layer already makes, and
|
|
278
|
+
* this field is what a store that stops making it would namespace by.
|
|
279
|
+
*
|
|
280
|
+
* @category models
|
|
281
|
+
* @since 0.1.0
|
|
282
|
+
*/
|
|
283
|
+
export interface CaptureRequest {
|
|
284
|
+
readonly id: string;
|
|
285
|
+
readonly identity: BoundaryIdentity;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* The engine operations required by harness translation.
|
|
289
|
+
*
|
|
290
|
+
* @category services
|
|
291
|
+
* @since 0.1.0
|
|
292
|
+
* @slop
|
|
293
|
+
*/
|
|
294
|
+
export interface EngineLike {
|
|
295
|
+
/**
|
|
296
|
+
* Runs one sealed model step.
|
|
297
|
+
*
|
|
298
|
+
* The harness contributes the assembled-context input, resolved layer set,
|
|
299
|
+
* capability envelope, effect tier, placement, and provider-neutral
|
|
300
|
+
* `ModelRequest` as core key material. The step-key contract
|
|
301
|
+
* (`../docs/concepts.md#step-keys-and-the-model-layer`) requires the exact
|
|
302
|
+
* wire request in the key, so route resolution happens before the key is
|
|
303
|
+
* sealed. An implementation MUST therefore resolve the route, run
|
|
304
|
+
* `Route.prepare` (`/model/Route`), and digest the credential-free
|
|
305
|
+
* `PreparedRequest` — canonical body bytes included — together with
|
|
306
|
+
* declared material into the sealed-step key before executing. A provider
|
|
307
|
+
* wire change must produce a new key; credentials are signed on after the
|
|
308
|
+
* digest and never enter it.
|
|
309
|
+
*/
|
|
310
|
+
readonly sealStep: (step: SealedModelStep) => Stream.Stream<ModelEvent.ModelEvent, Model.ModelFailure | HarnessError>;
|
|
311
|
+
/** Optionally emits capacity transitions while sealing the same frame. */
|
|
312
|
+
readonly sealStepWithEvents?: (step: SealedModelStep, emit: (event: AgentEvent.AgentEvent) => Effect.Effect<void>) => Stream.Stream<ModelEvent.ModelEvent, Model.ModelFailure | HarnessError>;
|
|
313
|
+
readonly splice: (batch: Plan.Batch) => Stream.Stream<Plan.SpliceEvent, HarnessError>;
|
|
314
|
+
/**
|
|
315
|
+
* Runs one flow call issued from inside a running cell.
|
|
316
|
+
*
|
|
317
|
+
* This is the cell path's whole effectful surface, and it is deliberately
|
|
318
|
+
* one call at a time: a cell derives the second call's input from the first
|
|
319
|
+
* call's result, so there is no batch to hand over. The implementation owns
|
|
320
|
+
* durability — the call is a keyed, journaled activity at the tier the flow
|
|
321
|
+
* declares, keyed by `call.identity` so a settled boundary replays instead of
|
|
322
|
+
* re-running when the cell is re-executed after a crash or a permission park.
|
|
323
|
+
*
|
|
324
|
+
* A flow that fails settles as a `failure` {@link Cell.CallResult}, which the
|
|
325
|
+
* cell observes as a resolved `{ ok: false, error }` envelope, not a throw.
|
|
326
|
+
* It branches on `.ok === false` and `.error.code` to recover; success
|
|
327
|
+
* resolves with the flow's own value, unwrapped. A permission requirement, an
|
|
328
|
+
* abort, or an engine failure travels in the error channel instead, so the
|
|
329
|
+
* cell never sees — and can never swallow — a park.
|
|
330
|
+
*/
|
|
331
|
+
readonly call: (call: Cell.Call) => Effect.Effect<Cell.CallResult, HarnessError>;
|
|
332
|
+
/**
|
|
333
|
+
* Decides a call's authority before the per-call clock starts.
|
|
334
|
+
*
|
|
335
|
+
* A person answering an approval is not the flow running slowly, so the
|
|
336
|
+
* controller asks here first and times only {@link call}. `undefined`
|
|
337
|
+
* admits the call; a result is the refusal the cell reads instead, and the
|
|
338
|
+
* call is never issued. A park or an engine failure travels in the error
|
|
339
|
+
* channel, exactly as it does from `call`. An implementation that admits a
|
|
340
|
+
* call does not ask again when that call is issued.
|
|
341
|
+
*/
|
|
342
|
+
readonly admit?: (call: Cell.Call) => Effect.Effect<Cell.CallResult | undefined, HarnessError>;
|
|
343
|
+
/**
|
|
344
|
+
* The host's runaway guard for timeouts, when it has one.
|
|
345
|
+
*
|
|
346
|
+
* A tool call or a cell that ran past its time limit is otherwise the cell's
|
|
347
|
+
* to read. A host that guards timeouts parks the run on it instead, for an
|
|
348
|
+
* operator's Continue or Stop, and the controller records nothing for the
|
|
349
|
+
* timed-out operation, so Continue runs it again.
|
|
350
|
+
*/
|
|
351
|
+
readonly guard?: Guard;
|
|
352
|
+
/**
|
|
353
|
+
* Journals one nondeterministic controller read as a durable boundary.
|
|
354
|
+
*
|
|
355
|
+
* The controller's state is rebuilt by re-execution, so every read of the
|
|
356
|
+
* world it makes between sealed steps must be recorded: the implementation
|
|
357
|
+
* runs `execute` once, journals the outcome under a run-scoped key derived
|
|
358
|
+
* from `name` and `identity` TOGETHER, and serves the recorded value to any
|
|
359
|
+
* later re-execution of the same frame. A read that bypasses this boundary is
|
|
360
|
+
* a replay divergence — and, downstream of one, duplicate irreversible
|
|
361
|
+
* effects.
|
|
362
|
+
*
|
|
363
|
+
* `(name, identity)` is the key, and both halves are load-bearing: one frame
|
|
364
|
+
* issues several records that share a session, a frame number and a boundary
|
|
365
|
+
* and differ only in what they are for. An implementation that keys on
|
|
366
|
+
* `identity` alone serves one frame's opening workspace measurement as its
|
|
367
|
+
* closing one. The controller also folds each boundary's purpose into
|
|
368
|
+
* `identity.boundary`, so it stays correct under an implementation that reads
|
|
369
|
+
* the contract the other way, but an implementation must key on both.
|
|
370
|
+
*/
|
|
371
|
+
readonly record: <A>(boundary: RecordBoundary<A>) => Effect.Effect<A, HarnessError>;
|
|
372
|
+
/**
|
|
373
|
+
* Measures the workspace as it stands right now.
|
|
374
|
+
*
|
|
375
|
+
* This is what makes the loop's mutation accounting honest. Every other
|
|
376
|
+
* signal the controller has about "did this frame change anything" is a
|
|
377
|
+
* *declaration*: a flow's registry envelope, or the write set an invocation
|
|
378
|
+
* claimed. A shell command declares neither — spawning a process is the one
|
|
379
|
+
* call whose effects do not travel through any boundary the harness can
|
|
380
|
+
* read — so a run whose only edits went through `bash` looked, to every
|
|
381
|
+
* control, exactly like a run that did nothing. Comparing two measurements
|
|
382
|
+
* around a frame answers the question from the world instead of from the
|
|
383
|
+
* paperwork.
|
|
384
|
+
*
|
|
385
|
+
* `Option.none()` is the honest answer for a host with no workspace to
|
|
386
|
+
* measure, or none it can measure cheaply. It is not an error and it is not
|
|
387
|
+
* "nothing changed": the controller reads it as "unobserved" and falls back
|
|
388
|
+
* to declared writes, and says in the journal which basis it used.
|
|
389
|
+
*
|
|
390
|
+
* The result is nondeterministic, so the controller journals it through
|
|
391
|
+
* {@link EngineLike.record} rather than calling this on a replayed frame.
|
|
392
|
+
*/
|
|
393
|
+
readonly observe: Effect.Effect<Option.Option<Observation>, HarnessError>;
|
|
394
|
+
/**
|
|
395
|
+
* Pins the workspace as it stands right now, under the id the caller gives.
|
|
396
|
+
*
|
|
397
|
+
* This is the sibling of {@link EngineLike.observe} and it is deliberately a
|
|
398
|
+
* different operation: `observe` answers "is this the tree I left", which
|
|
399
|
+
* needs only a digest, while this has to be able to hand the tree back later.
|
|
400
|
+
* The pin happens where the call happens — a cell that mints between two
|
|
401
|
+
* edits gets the tree between those two edits — which is what makes
|
|
402
|
+
* `ctx.checkpoint()` mean anything at the line it is written on.
|
|
403
|
+
*
|
|
404
|
+
* `Option.none()` is the honest answer for a host with no store to pin into,
|
|
405
|
+
* exactly as it is for `observe`. It is not an error: the controller answers
|
|
406
|
+
* the cell with a resolved `checkpoint_unavailable` failure, and the run
|
|
407
|
+
* carries on taking its readings from the live tree.
|
|
408
|
+
*
|
|
409
|
+
* The result is nondeterministic, so the controller journals it through
|
|
410
|
+
* {@link EngineLike.record} rather than calling this on a replayed frame.
|
|
411
|
+
*/
|
|
412
|
+
readonly capture: (request: CaptureRequest) => Effect.Effect<Option.Option<Snapshot>, HarnessError>;
|
|
413
|
+
/**
|
|
414
|
+
* Says what one request will actually be asked as, for the record of it.
|
|
415
|
+
*
|
|
416
|
+
* Two things stand between the request the controller builds and the call a
|
|
417
|
+
* provider receives, and both belong to the host: a composition may rewrite
|
|
418
|
+
* the request on its way out, and a route decides where it goes. The record
|
|
419
|
+
* of a model call has to be of the call that was made, so the controller
|
|
420
|
+
* asks here before it seals and journals the answer.
|
|
421
|
+
*
|
|
422
|
+
* Optional, and total where it exists. A host that rewrites nothing and
|
|
423
|
+
* names no route omits it, and the controller records the request it built.
|
|
424
|
+
*
|
|
425
|
+
* `Option.none()` is the honest answer for a request the host cannot say
|
|
426
|
+
* anything true about: its own rewrite failed, or no route accepts what the
|
|
427
|
+
* rewrite produced. The controller then journals no request for that call,
|
|
428
|
+
* because the only request it holds is one no provider would be sent, and a
|
|
429
|
+
* record that presented it as sent would prefill a call that never
|
|
430
|
+
* happened. It is not an error. The resolution that matters is the one
|
|
431
|
+
* {@link EngineLike.sealStep} performs, and that is where the same request
|
|
432
|
+
* fails with its typed error. A host that answers none here MUST fail that
|
|
433
|
+
* sealed step, and with the failure it already met rather than a second run
|
|
434
|
+
* of whatever produced it: a rewrite asked twice may answer twice.
|
|
435
|
+
*
|
|
436
|
+
* Pure in the request and the composition, so it is asked again on a
|
|
437
|
+
* replayed frame rather than journaled: the same request under the same
|
|
438
|
+
* composition resolves the same way, and a composition that has since
|
|
439
|
+
* changed has changed the sealed key too, so the call it describes is a new
|
|
440
|
+
* one.
|
|
441
|
+
*/
|
|
442
|
+
readonly resolve?: (request: ModelRequest.ModelRequest) => Effect.Effect<Option.Option<Resolved>>;
|
|
443
|
+
readonly suspend: (reason: SuspendReason) => Effect.Effect<never, HarnessError>;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Context service for the harness engine boundary.
|
|
447
|
+
*
|
|
448
|
+
* @category services
|
|
449
|
+
* @since 0.1.0
|
|
450
|
+
* @slop
|
|
451
|
+
*/
|
|
452
|
+
export declare const EngineLike: Context.Service<EngineLike, EngineLike>;
|
|
453
|
+
/**
|
|
454
|
+
* Constructs an engine port from an implementation.
|
|
455
|
+
*
|
|
456
|
+
* @category constructors
|
|
457
|
+
* @since 0.1.0
|
|
458
|
+
* @slop
|
|
459
|
+
*/
|
|
460
|
+
export declare const make: (implementation: EngineLike) => EngineLike;
|
|
461
|
+
/**
|
|
462
|
+
* The {@link Guard} subject of one cell call: its session, frame and settled
|
|
463
|
+
* boundary. A host keys what the guard decided for a call (how many times the
|
|
464
|
+
* operator chose Continue) by the subject the controller admits it under.
|
|
465
|
+
*
|
|
466
|
+
* @category constructors
|
|
467
|
+
* @since 1.0.0-rc.1
|
|
468
|
+
*/
|
|
469
|
+
export declare const callSubject: (identity: Pick<Cell.CallIdentity, "session" | "frame" | "cell" | "ordinal">) => string;
|
|
470
|
+
/**
|
|
471
|
+
* One operation that ran past its time limit, as the controller reports it to
|
|
472
|
+
* {@link Guard.trip}.
|
|
473
|
+
*
|
|
474
|
+
* `subject` is the operation's replay-stable identity. `limitMillis` is
|
|
475
|
+
* absent when the operation reported its own timeout without its limit.
|
|
476
|
+
*
|
|
477
|
+
* @category models
|
|
478
|
+
* @since 1.0.0-rc.1
|
|
479
|
+
*/
|
|
480
|
+
export interface TimedOut {
|
|
481
|
+
readonly source: "tool-call" | "cell";
|
|
482
|
+
readonly subject: string;
|
|
483
|
+
readonly limitMillis?: number | undefined;
|
|
484
|
+
readonly message: string;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* A host's runaway guard for tool-call and cell timeouts; see
|
|
488
|
+
* {@link EngineLike.guard}.
|
|
489
|
+
*
|
|
490
|
+
* @category models
|
|
491
|
+
* @since 1.0.0-rc.1
|
|
492
|
+
*/
|
|
493
|
+
export interface Guard {
|
|
494
|
+
/**
|
|
495
|
+
* Admits an operation before it runs. A park whose question is still open,
|
|
496
|
+
* or the failure a Stop settles the run with, travels in the error channel.
|
|
497
|
+
* A host re-issues a cell call the operator continued under a key of its
|
|
498
|
+
* own, since the timed-out attempt may have settled durably under the old
|
|
499
|
+
* one (a command's own timeout does).
|
|
500
|
+
*/
|
|
501
|
+
readonly admit: (subject: string) => Effect.Effect<void, HarnessError>;
|
|
502
|
+
/**
|
|
503
|
+
* Reports a timeout. Succeeds when this run's timeouts are not guarded, so
|
|
504
|
+
* the caller keeps its timeout; otherwise fails with the park.
|
|
505
|
+
*/
|
|
506
|
+
readonly trip: (timeout: TimedOut) => Effect.Effect<void, HarnessError>;
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Provides an engine port implementation.
|
|
510
|
+
*
|
|
511
|
+
* @category layers
|
|
512
|
+
* @since 0.1.0
|
|
513
|
+
* @slop
|
|
514
|
+
*/
|
|
515
|
+
export declare const layer: (implementation: EngineLike) => Layer.Layer<EngineLike>;
|
|
516
|
+
/**
|
|
517
|
+
* What one request resolves to on this engine.
|
|
518
|
+
*
|
|
519
|
+
* The answer of {@link EngineLike.resolve} where the host gives one, and
|
|
520
|
+
* otherwise the honest default: the request as it was built, going to no route
|
|
521
|
+
* anybody named. Written once, here, because a port that wraps another port
|
|
522
|
+
* needs the same default the controller does. None is the host's own answer
|
|
523
|
+
* and never the default: a port with no `resolve` sends what it was handed.
|
|
524
|
+
*
|
|
525
|
+
* @category conversions
|
|
526
|
+
* @since 1.0.0-rc.0
|
|
527
|
+
*/
|
|
528
|
+
export declare const resolve: (engine: EngineLike, request: ModelRequest.ModelRequest) => Effect.Effect<Option.Option<Resolved>>;
|
|
529
|
+
/**
|
|
530
|
+
* Constructs an unavailable engine stub, optionally overriding operations.
|
|
531
|
+
*
|
|
532
|
+
* @category constructors
|
|
533
|
+
* @since 0.1.0
|
|
534
|
+
* @slop
|
|
535
|
+
*/
|
|
536
|
+
export declare const makeNoop: (overrides?: Partial<EngineLike>) => EngineLike;
|
|
537
|
+
/**
|
|
538
|
+
* Provides an unavailable engine stub.
|
|
539
|
+
*
|
|
540
|
+
* @category layers
|
|
541
|
+
* @since 0.1.0
|
|
542
|
+
* @slop
|
|
543
|
+
*/
|
|
544
|
+
export declare const layerNoop: (overrides?: Partial<EngineLike>) => Layer.Layer<EngineLike>;
|
|
545
|
+
export {};
|
|
546
|
+
//# sourceMappingURL=EngineLike.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EngineLike.d.ts","sourceRoot":"","sources":["../../src/EngineLike.ts"],"names":[],"mappings":"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"}
|