effect-agent 0.1.0-beta.85 → 0.1.0-beta.87
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/dist/Agent-CN0EWRsR.d.mts +226 -0
- package/dist/Agent-RklVROrm.mjs +83 -0
- package/dist/Agent-RklVROrm.mjs.map +1 -0
- package/dist/AgentError-CggcAQ7V.d.mts +101 -0
- package/dist/AgentPolicy-CetmQrf3.d.mts +96 -0
- package/dist/AgentRuntime-BLyETCPo.mjs +4562 -0
- package/dist/AgentRuntime-BLyETCPo.mjs.map +1 -0
- package/dist/AgentRuntime-uxR_a4VM.d.mts +346 -0
- package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
- package/dist/ContextCompactor-Dxu5zhOL.d.mts +161 -0
- package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
- package/dist/DurableAgentRuntime-uggeJpv3.mjs +6368 -0
- package/dist/DurableAgentRuntime-uggeJpv3.mjs.map +1 -0
- package/dist/DurableFailpoint-Oinuuedm.d.mts +41 -0
- package/dist/DurableStep-Cry_iol4.d.mts +103 -0
- package/dist/Ephemeral.d.mts +22 -0
- package/dist/Ephemeral.mjs +22 -0
- package/dist/Ephemeral.mjs.map +1 -0
- package/dist/EventSource-OqS_P9ug.d.mts +51 -0
- package/dist/Identifiers-CN2s30fF.d.mts +40 -0
- package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
- package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
- package/dist/Messaging-CkcIdt4I.d.mts +490 -0
- package/dist/MessagingHost-CRk0kXzT.d.mts +246 -0
- package/dist/MessagingHost-CWi_PP3g.mjs +137 -0
- package/dist/MessagingHost-CWi_PP3g.mjs.map +1 -0
- package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
- package/dist/Output-D6SkedVx.d.mts +25 -0
- package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
- package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
- package/dist/PreparedInputAdmission-C4HbjHgl.d.mts +38 -0
- package/dist/Receipt-BAHyigAF.d.mts +33 -0
- package/dist/Records-BAGkekt8.d.mts +3570 -0
- package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
- package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
- package/dist/RunJournal-Cgg1kNvc.mjs +825 -0
- package/dist/RunJournal-Cgg1kNvc.mjs.map +1 -0
- package/dist/RunOptions-g1aigcKI.d.mts +915 -0
- package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
- package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
- package/dist/Schedule-H3SEYX9g.d.mts +842 -0
- package/dist/Scheduling-C9aIP8zT.mjs +691 -0
- package/dist/Scheduling-C9aIP8zT.mjs.map +1 -0
- package/dist/Subagent-Cy_hU1tv.mjs +1469 -0
- package/dist/Subagent-Cy_hU1tv.mjs.map +1 -0
- package/dist/Subagent-DyfzHNdv.d.mts +826 -0
- package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
- package/dist/SubagentHost-CJUBQlcc.d.mts +140 -0
- package/dist/Subscription-BEP8oQO5.d.mts +921 -0
- package/dist/SubscriptionInput-vAAOBrK7.d.mts +41 -0
- package/dist/Thread-DOBQ0QUY.d.mts +96 -0
- package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
- package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
- package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
- package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
- package/dist/ToolExposure-C93U1sPu.mjs +30 -0
- package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
- package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
- package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
- package/dist/ToolExposure.d.mts +6 -5
- package/dist/ToolExposure.mjs +17 -9
- package/dist/ToolExposure.mjs.map +1 -1
- package/dist/ToolReconciler-DQVaJfpE.d.mts +76 -0
- package/dist/ToolResult-DmmgoChv.d.mts +61 -0
- package/dist/Usage-Dx0aknfk.d.mts +121 -0
- package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
- package/dist/Worker-CaPYykpe.d.mts +228 -0
- package/dist/agent-registration-CWDMOAZA.mjs +172 -0
- package/dist/agent-registration-CWDMOAZA.mjs.map +1 -0
- package/dist/capabilities/Approval.d.mts +114 -0
- package/dist/capabilities/Approval.mjs +226 -0
- package/dist/capabilities/Approval.mjs.map +1 -0
- package/dist/capabilities/Budget.d.mts +112 -0
- package/dist/capabilities/Budget.mjs +346 -0
- package/dist/capabilities/Budget.mjs.map +1 -0
- package/dist/capabilities/CodeMode.d.mts +157 -0
- package/dist/capabilities/CodeMode.mjs +522 -0
- package/dist/capabilities/CodeMode.mjs.map +1 -0
- package/dist/capabilities/Commands.d.mts +55 -0
- package/dist/capabilities/Commands.mjs +57 -0
- package/dist/capabilities/Commands.mjs.map +1 -0
- package/dist/capabilities/ContextTools.d.mts +321 -0
- package/dist/capabilities/ContextTools.mjs +126 -0
- package/dist/capabilities/ContextTools.mjs.map +1 -0
- package/dist/capabilities/Mcp.d.mts +108 -0
- package/dist/capabilities/Mcp.mjs +260 -0
- package/dist/capabilities/Mcp.mjs.map +1 -0
- package/dist/capabilities/McpClient.d.mts +115 -0
- package/dist/capabilities/McpClient.mjs +506 -0
- package/dist/capabilities/McpClient.mjs.map +1 -0
- package/dist/capabilities/MemoryNotes.d.mts +424 -0
- package/dist/capabilities/MemoryNotes.mjs +128 -0
- package/dist/capabilities/MemoryNotes.mjs.map +1 -0
- package/dist/capabilities/Messaging.d.mts +3 -0
- package/dist/capabilities/Messaging.mjs +151 -0
- package/dist/capabilities/Messaging.mjs.map +1 -0
- package/dist/capabilities/ModelContext.d.mts +89 -0
- package/dist/capabilities/ModelContext.mjs +168 -0
- package/dist/capabilities/ModelContext.mjs.map +1 -0
- package/dist/capabilities/Redaction.d.mts +37 -0
- package/dist/capabilities/Redaction.mjs +104 -0
- package/dist/capabilities/Redaction.mjs.map +1 -0
- package/dist/capabilities/Remembering.d.mts +434 -0
- package/dist/capabilities/Remembering.mjs +290 -0
- package/dist/capabilities/Remembering.mjs.map +1 -0
- package/dist/capabilities/RunHooks.d.mts +82 -0
- package/dist/capabilities/RunHooks.mjs +144 -0
- package/dist/capabilities/RunHooks.mjs.map +1 -0
- package/dist/capabilities/SemanticMemory.d.mts +431 -0
- package/dist/capabilities/SemanticMemory.mjs +315 -0
- package/dist/capabilities/SemanticMemory.mjs.map +1 -0
- package/dist/capabilities/Subagent.d.mts +4 -0
- package/dist/capabilities/Subagent.mjs +5 -0
- package/dist/capabilities/SubagentReservations.d.mts +186 -0
- package/dist/capabilities/SubagentReservations.mjs +479 -0
- package/dist/capabilities/SubagentReservations.mjs.map +1 -0
- package/dist/capabilities/ToolDiscovery.d.mts +109 -0
- package/dist/capabilities/ToolDiscovery.mjs +211 -0
- package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
- package/dist/capabilities/WebCapture.d.mts +163 -0
- package/dist/capabilities/WebCapture.mjs +335 -0
- package/dist/capabilities/WebCapture.mjs.map +1 -0
- package/dist/capabilities/WebSearch.d.mts +71 -0
- package/dist/capabilities/WebSearch.mjs +112 -0
- package/dist/capabilities/WebSearch.mjs.map +1 -0
- package/dist/compaction-C2OTceKw.mjs +505 -0
- package/dist/compaction-C2OTceKw.mjs.map +1 -0
- package/dist/core/Agent.d.mts +2 -0
- package/dist/core/Agent.mjs +2 -0
- package/dist/core/AgentError.d.mts +2 -0
- package/dist/core/AgentError.mjs +117 -0
- package/dist/core/AgentError.mjs.map +1 -0
- package/dist/core/AgentPolicy.d.mts +2 -0
- package/dist/core/AgentPolicy.mjs +94 -0
- package/dist/core/AgentPolicy.mjs.map +1 -0
- package/dist/core/AgentUpdates.d.mts +2 -0
- package/dist/core/AgentUpdates.mjs +63 -0
- package/dist/core/AgentUpdates.mjs.map +1 -0
- package/dist/core/IdGenerator.d.mts +26 -0
- package/dist/core/IdGenerator.mjs +27 -0
- package/dist/core/IdGenerator.mjs.map +1 -0
- package/dist/core/Identifiers.d.mts +2 -0
- package/dist/core/Identifiers.mjs +43 -0
- package/dist/core/Identifiers.mjs.map +1 -0
- package/dist/core/Memory.d.mts +57 -0
- package/dist/core/Memory.mjs +203 -0
- package/dist/core/Memory.mjs.map +1 -0
- package/dist/core/MemoryNamespace.d.mts +2 -0
- package/dist/core/MemoryNamespace.mjs +116 -0
- package/dist/core/MemoryNamespace.mjs.map +1 -0
- package/dist/core/MemoryReference.d.mts +2 -0
- package/dist/core/MemoryReference.mjs +109 -0
- package/dist/core/MemoryReference.mjs.map +1 -0
- package/dist/core/MemoryRevalidation.d.mts +65 -0
- package/dist/core/MemoryRevalidation.mjs +126 -0
- package/dist/core/MemoryRevalidation.mjs.map +1 -0
- package/dist/core/MemoryStore.d.mts +186 -0
- package/dist/core/MemoryStore.mjs +243 -0
- package/dist/core/MemoryStore.mjs.map +1 -0
- package/dist/core/Receipt.d.mts +2 -0
- package/dist/core/Receipt.mjs +36 -0
- package/dist/core/Receipt.mjs.map +1 -0
- package/dist/core/RememberingStore.d.mts +1562 -0
- package/dist/core/RememberingStore.mjs +190 -0
- package/dist/core/RememberingStore.mjs.map +1 -0
- package/dist/core/RunEvent.d.mts +2 -0
- package/dist/core/RunEvent.mjs +337 -0
- package/dist/core/RunEvent.mjs.map +1 -0
- package/dist/core/RunPolicyUsage.d.mts +2 -0
- package/dist/core/RunPolicyUsage.mjs +21 -0
- package/dist/core/RunPolicyUsage.mjs.map +1 -0
- package/dist/core/SemanticMemoryIndex.d.mts +826 -0
- package/dist/core/SemanticMemoryIndex.mjs +185 -0
- package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
- package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
- package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
- package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
- package/dist/core/SubagentContract.d.mts +2 -0
- package/dist/core/SubagentContract.mjs +148 -0
- package/dist/core/SubagentContract.mjs.map +1 -0
- package/dist/core/Thread.d.mts +2 -0
- package/dist/core/Thread.mjs +250 -0
- package/dist/core/Thread.mjs.map +1 -0
- package/dist/core/ToolResult.d.mts +2 -0
- package/dist/core/ToolResult.mjs +140 -0
- package/dist/core/ToolResult.mjs.map +1 -0
- package/dist/core/Usage.d.mts +2 -0
- package/dist/core/Usage.mjs +319 -0
- package/dist/core/Usage.mjs.map +1 -0
- package/dist/core/Worker.d.mts +3 -0
- package/dist/core/Worker.mjs +147 -0
- package/dist/core/Worker.mjs.map +1 -0
- package/dist/durable/ActivityStore.d.mts +116 -0
- package/dist/durable/ActivityStore.mjs +131 -0
- package/dist/durable/ActivityStore.mjs.map +1 -0
- package/dist/durable/Admin.d.mts +2 -0
- package/dist/durable/Admin.mjs +328 -0
- package/dist/durable/Admin.mjs.map +1 -0
- package/dist/durable/AgentRegistration.d.mts +2 -0
- package/dist/durable/AgentRegistration.mjs +14 -0
- package/dist/durable/AgentRegistration.mjs.map +1 -0
- package/dist/durable/Certification.d.mts +111 -0
- package/dist/durable/Certification.mjs +159 -0
- package/dist/durable/Certification.mjs.map +1 -0
- package/dist/durable/CommittedActivity.d.mts +62 -0
- package/dist/durable/CommittedActivity.mjs +159 -0
- package/dist/durable/CommittedActivity.mjs.map +1 -0
- package/dist/durable/Digest.d.mts +2 -0
- package/dist/durable/Digest.mjs +50 -0
- package/dist/durable/Digest.mjs.map +1 -0
- package/dist/durable/DurableAgentRuntime.d.mts +3 -0
- package/dist/durable/DurableAgentRuntime.mjs +3 -0
- package/dist/durable/DurableFailpoint.d.mts +2 -0
- package/dist/durable/DurableFailpoint.mjs +94 -0
- package/dist/durable/DurableFailpoint.mjs.map +1 -0
- package/dist/durable/DurableFailpointTestControl.d.mts +15 -0
- package/dist/durable/DurableFailpointTestControl.mjs +19 -0
- package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
- package/dist/durable/EventSource.d.mts +2 -0
- package/dist/durable/EventSource.mjs +65 -0
- package/dist/durable/EventSource.mjs.map +1 -0
- package/dist/durable/GitHubWorkflowSource.d.mts +144 -0
- package/dist/durable/GitHubWorkflowSource.mjs +209 -0
- package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
- package/dist/durable/MessageDelivery.d.mts +492 -0
- package/dist/durable/MessageDelivery.mjs +495 -0
- package/dist/durable/MessageDelivery.mjs.map +1 -0
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +358 -0
- package/dist/durable/MessageDeliveryStoreConformance.mjs +243 -0
- package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
- package/dist/durable/OperationAuthorizer.d.mts +2 -0
- package/dist/durable/OperationAuthorizer.mjs +70 -0
- package/dist/durable/OperationAuthorizer.mjs.map +1 -0
- package/dist/durable/PersistentHistory.d.mts +16 -0
- package/dist/durable/PersistentHistory.mjs +125 -0
- package/dist/durable/PersistentHistory.mjs.map +1 -0
- package/dist/durable/PreparedInputAdmission.d.mts +2 -0
- package/dist/durable/PreparedInputAdmission.mjs +34 -0
- package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
- package/dist/durable/Records.d.mts +2 -0
- package/dist/durable/Records.mjs +795 -0
- package/dist/durable/Records.mjs.map +1 -0
- package/dist/durable/Recovery.d.mts +2 -0
- package/dist/durable/Recovery.mjs +739 -0
- package/dist/durable/Recovery.mjs.map +1 -0
- package/dist/durable/RunJournal.d.mts +2 -0
- package/dist/durable/RunJournal.mjs +2 -0
- package/dist/durable/Schedule.d.mts +2 -0
- package/dist/durable/Schedule.mjs +382 -0
- package/dist/durable/Schedule.mjs.map +1 -0
- package/dist/durable/ScheduleStoreConformance.d.mts +18 -0
- package/dist/durable/ScheduleStoreConformance.mjs +420 -0
- package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
- package/dist/durable/ScheduleTransition.d.mts +24 -0
- package/dist/durable/ScheduleTransition.mjs +180 -0
- package/dist/durable/ScheduleTransition.mjs.map +1 -0
- package/dist/durable/Scheduling.d.mts +54 -0
- package/dist/durable/Scheduling.mjs +2 -0
- package/dist/durable/SqlMemoryStore.d.mts +30 -0
- package/dist/durable/SqlMemoryStore.mjs +435 -0
- package/dist/durable/SqlMemoryStore.mjs.map +1 -0
- package/dist/durable/SqlMessageDeliveryStore.d.mts +40 -0
- package/dist/durable/SqlMessageDeliveryStore.mjs +167 -0
- package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
- package/dist/durable/SqlStorageV2Upgrade.d.mts +22 -0
- package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
- package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
- package/dist/durable/SqlSubscriptionStore.d.mts +63 -0
- package/dist/durable/SqlSubscriptionStore.mjs +751 -0
- package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
- package/dist/durable/SubmissionLedger.d.mts +3 -0
- package/dist/durable/SubmissionLedger.mjs +914 -0
- package/dist/durable/SubmissionLedger.mjs.map +1 -0
- package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
- package/dist/durable/SubmissionLedgerConformance.mjs +1986 -0
- package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
- package/dist/durable/SubmissionStatus.d.mts +2 -0
- package/dist/durable/SubmissionStatus.mjs +18 -0
- package/dist/durable/SubmissionStatus.mjs.map +1 -0
- package/dist/durable/Subscription.d.mts +2 -0
- package/dist/durable/Subscription.mjs +360 -0
- package/dist/durable/Subscription.mjs.map +1 -0
- package/dist/durable/SubscriptionInput.d.mts +2 -0
- package/dist/durable/SubscriptionInput.mjs +52 -0
- package/dist/durable/SubscriptionInput.mjs.map +1 -0
- package/dist/durable/SubscriptionStoreConformance.d.mts +17 -0
- package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
- package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
- package/dist/durable/SubscriptionTools.d.mts +273 -0
- package/dist/durable/SubscriptionTools.mjs +190 -0
- package/dist/durable/SubscriptionTools.mjs.map +1 -0
- package/dist/durable/SubscriptionTransition.d.mts +21 -0
- package/dist/durable/SubscriptionTransition.mjs +148 -0
- package/dist/durable/SubscriptionTransition.mjs.map +1 -0
- package/dist/durable/Subscriptions.d.mts +73 -0
- package/dist/durable/Subscriptions.mjs +627 -0
- package/dist/durable/Subscriptions.mjs.map +1 -0
- package/dist/durable/ThreadContextHistory.d.mts +32 -0
- package/dist/durable/ThreadContextHistory.mjs +152 -0
- package/dist/durable/ThreadContextHistory.mjs.map +1 -0
- package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
- package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
- package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
- package/dist/durable/ThreadInvariants.d.mts +74 -0
- package/dist/durable/ThreadInvariants.mjs +200 -0
- package/dist/durable/ThreadInvariants.mjs.map +1 -0
- package/dist/durable/ThreadProjection.d.mts +78 -0
- package/dist/durable/ThreadProjection.mjs +158 -0
- package/dist/durable/ThreadProjection.mjs.map +1 -0
- package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
- package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
- package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
- package/dist/durable/ThreadStore.d.mts +2 -0
- package/dist/durable/ThreadStore.mjs +147 -0
- package/dist/durable/ThreadStore.mjs.map +1 -0
- package/dist/durable/ThreadStoreConformance.d.mts +29 -0
- package/dist/durable/ThreadStoreConformance.mjs +248 -0
- package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
- package/dist/durable/ToolReconciler.d.mts +2 -0
- package/dist/durable/ToolReconciler.mjs +81 -0
- package/dist/durable/ToolReconciler.mjs.map +1 -0
- package/dist/durable/WakeScheduler.d.mts +2 -0
- package/dist/durable/WakeScheduler.mjs +85 -0
- package/dist/durable/WakeScheduler.mjs.map +1 -0
- package/dist/durable/WorkerHost.d.mts +129 -0
- package/dist/durable/WorkerHost.mjs +77 -0
- package/dist/durable/WorkerHost.mjs.map +1 -0
- package/dist/engine/AgentRuntime.d.mts +2 -0
- package/dist/engine/AgentRuntime.mjs +2 -0
- package/dist/engine/Compaction.d.mts +7 -0
- package/dist/engine/Compaction.mjs +16 -0
- package/dist/engine/Compaction.mjs.map +1 -0
- package/dist/engine/ContextCompactor.d.mts +2 -0
- package/dist/engine/ContextCompactor.mjs +119 -0
- package/dist/engine/ContextCompactor.mjs.map +1 -0
- package/dist/engine/ContextHistory.d.mts +65 -0
- package/dist/engine/ContextHistory.mjs +76 -0
- package/dist/engine/ContextHistory.mjs.map +1 -0
- package/dist/engine/ContextWindow.d.mts +2 -0
- package/dist/engine/ContextWindow.mjs +59 -0
- package/dist/engine/ContextWindow.mjs.map +1 -0
- package/dist/engine/DurableStep.d.mts +2 -0
- package/dist/engine/DurableStep.mjs +62 -0
- package/dist/engine/DurableStep.mjs.map +1 -0
- package/dist/engine/MessagingHost.d.mts +2 -0
- package/dist/engine/MessagingHost.mjs +2 -0
- package/dist/engine/Output.d.mts +2 -0
- package/dist/engine/Output.mjs +8 -0
- package/dist/engine/Output.mjs.map +1 -0
- package/dist/engine/RunEventSink.d.mts +2 -0
- package/dist/engine/RunEventSink.mjs +22 -0
- package/dist/engine/RunEventSink.mjs.map +1 -0
- package/dist/engine/RunOptions.d.mts +2 -0
- package/dist/engine/RunOptions.mjs +122 -0
- package/dist/engine/RunOptions.mjs.map +1 -0
- package/dist/engine/SubagentHost.d.mts +2 -0
- package/dist/engine/SubagentHost.mjs +72 -0
- package/dist/engine/SubagentHost.mjs.map +1 -0
- package/dist/engine/ThreadHistory.d.mts +2 -0
- package/dist/engine/ThreadHistory.mjs +67 -0
- package/dist/engine/ThreadHistory.mjs.map +1 -0
- package/dist/engine/ToolBroker.d.mts +2 -0
- package/dist/engine/ToolBroker.mjs +42 -0
- package/dist/engine/ToolBroker.mjs.map +1 -0
- package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
- package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
- package/dist/index.d.mts +88 -54
- package/dist/index.mjs +97 -54
- package/dist/output-contract-BC7tjlGw.mjs +84 -0
- package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/dist/sandbox/CodeExecutor.d.mts +194 -0
- package/dist/sandbox/CodeExecutor.mjs +278 -0
- package/dist/sandbox/CodeExecutor.mjs.map +1 -0
- package/dist/sandbox/InteractiveBrowser.d.mts +142 -0
- package/dist/sandbox/InteractiveBrowser.mjs +165 -0
- package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
- package/dist/sandbox/PageCapture.d.mts +2 -0
- package/dist/sandbox/PageCapture.mjs +450 -0
- package/dist/sandbox/PageCapture.mjs.map +1 -0
- package/dist/sandbox/PageCrawl.d.mts +88 -0
- package/dist/sandbox/PageCrawl.mjs +124 -0
- package/dist/sandbox/PageCrawl.mjs.map +1 -0
- package/dist/sandbox/PageScreenshot.d.mts +2 -0
- package/dist/sandbox/PageScreenshot.mjs +53 -0
- package/dist/sandbox/PageScreenshot.mjs.map +1 -0
- package/dist/sandbox/ProtectedBrowser.d.mts +252 -0
- package/dist/sandbox/ProtectedBrowser.mjs +270 -0
- package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
- package/dist/sandbox/Sandbox.d.mts +2 -0
- package/dist/sandbox/Sandbox.mjs +208 -0
- package/dist/sandbox/Sandbox.mjs.map +1 -0
- package/dist/utf8-BYfhEkcj.mjs +11 -0
- package/dist/utf8-BYfhEkcj.mjs.map +1 -0
- package/dist/utf8-DchGZRBd.mjs +23 -0
- package/dist/utf8-DchGZRBd.mjs.map +1 -0
- package/package.json +1 -1
- package/src/Ephemeral.ts +17 -0
- package/src/ToolExposure.ts +2 -2
- package/src/capabilities/Approval.ts +352 -0
- package/src/capabilities/Budget.ts +536 -0
- package/src/capabilities/CodeMode.ts +1090 -0
- package/src/capabilities/Commands.ts +86 -0
- package/src/capabilities/ContextTools.ts +184 -0
- package/src/capabilities/Mcp.ts +427 -0
- package/src/capabilities/McpClient.ts +967 -0
- package/src/capabilities/MemoryNotes.ts +174 -0
- package/src/capabilities/Messaging.ts +261 -0
- package/src/capabilities/ModelContext.ts +354 -0
- package/src/capabilities/Redaction.ts +157 -0
- package/src/capabilities/Remembering.ts +550 -0
- package/src/capabilities/RunHooks.ts +280 -0
- package/src/capabilities/SemanticMemory.ts +447 -0
- package/src/capabilities/Subagent.ts +2277 -0
- package/src/capabilities/SubagentReservations.ts +850 -0
- package/src/capabilities/ToolDiscovery.ts +339 -0
- package/src/capabilities/WebCapture.ts +722 -0
- package/src/capabilities/WebSearch.ts +184 -0
- package/src/capabilities/internal/subagent-background.ts +1106 -0
- package/src/capabilities/internal/subagent-contract.ts +142 -0
- package/src/capabilities/internal/subagent-policy.ts +235 -0
- package/src/capabilities/internal/subagent-reporting.ts +261 -0
- package/src/capabilities/internal/utf8.ts +10 -0
- package/src/core/Agent.ts +575 -0
- package/src/core/AgentError.ts +152 -0
- package/src/core/AgentPolicy.ts +153 -0
- package/src/core/AgentUpdates.ts +100 -0
- package/src/core/IdGenerator.ts +39 -0
- package/src/core/Identifiers.ts +48 -0
- package/src/core/Memory.ts +290 -0
- package/src/core/MemoryNamespace.ts +196 -0
- package/src/core/MemoryReference.ts +121 -0
- package/src/core/MemoryRevalidation.ts +185 -0
- package/src/core/MemoryStore.ts +368 -0
- package/src/core/Messaging.ts +90 -0
- package/src/core/Receipt.ts +42 -0
- package/src/core/RememberingStore.ts +300 -0
- package/src/core/RunEvent.ts +366 -0
- package/src/core/RunPolicyUsage.ts +17 -0
- package/src/core/SemanticMemoryIndex.ts +250 -0
- package/src/core/SemanticMemoryRevalidation.ts +254 -0
- package/src/core/SubagentContract.ts +196 -0
- package/src/core/Thread.ts +371 -0
- package/src/core/ToolExposure.ts +74 -0
- package/src/core/ToolResult.ts +170 -0
- package/src/core/Usage.ts +529 -0
- package/src/core/Worker.ts +173 -0
- package/src/core/internal/agent-updates.ts +32 -0
- package/src/core/internal/utf8.ts +23 -0
- package/src/durable/ActivityStore.ts +160 -0
- package/src/durable/Admin.ts +496 -0
- package/src/durable/AgentRegistration.ts +13 -0
- package/src/durable/Certification.ts +210 -0
- package/src/durable/CommittedActivity.ts +296 -0
- package/src/durable/Digest.ts +93 -0
- package/src/durable/DurableAgentRuntime.ts +10340 -0
- package/src/durable/DurableFailpoint.ts +103 -0
- package/src/durable/DurableFailpointTestControl.ts +39 -0
- package/src/durable/EventSource.ts +172 -0
- package/src/durable/GitHubWorkflowSource.ts +453 -0
- package/src/durable/MessageDelivery.ts +708 -0
- package/src/durable/MessageDeliveryStoreConformance.ts +363 -0
- package/src/durable/OperationAuthorizer.ts +85 -0
- package/src/durable/PersistentHistory.ts +260 -0
- package/src/durable/PreparedInputAdmission.ts +44 -0
- package/src/durable/Records.ts +1010 -0
- package/src/durable/Recovery.ts +1018 -0
- package/src/durable/RunJournal.ts +1479 -0
- package/src/durable/Schedule.ts +504 -0
- package/src/durable/ScheduleStoreConformance.ts +638 -0
- package/src/durable/ScheduleTransition.ts +265 -0
- package/src/durable/Scheduling.ts +1077 -0
- package/src/durable/SqlMemoryStore.ts +774 -0
- package/src/durable/SqlMessageDeliveryStore.ts +302 -0
- package/src/durable/SqlStorageV2Upgrade.ts +500 -0
- package/src/durable/SqlSubscriptionStore.ts +1440 -0
- package/src/durable/SubmissionLedger.ts +1201 -0
- package/src/durable/SubmissionLedgerConformance.ts +4579 -0
- package/src/durable/SubmissionStatus.ts +14 -0
- package/src/durable/Subscription.ts +544 -0
- package/src/durable/SubscriptionInput.ts +144 -0
- package/src/durable/SubscriptionStoreConformance.ts +945 -0
- package/src/durable/SubscriptionTools.ts +327 -0
- package/src/durable/SubscriptionTransition.ts +302 -0
- package/src/durable/Subscriptions.ts +1210 -0
- package/src/durable/ThreadContextHistory.ts +227 -0
- package/src/durable/ThreadContextHistoryProjection.ts +216 -0
- package/src/durable/ThreadInvariants.ts +442 -0
- package/src/durable/ThreadProjection.ts +269 -0
- package/src/durable/ThreadProjectionMaintenance.ts +67 -0
- package/src/durable/ThreadStore.ts +242 -0
- package/src/durable/ThreadStoreConformance.ts +710 -0
- package/src/durable/ToolReconciler.ts +105 -0
- package/src/durable/WakeScheduler.ts +134 -0
- package/src/durable/WorkerHost.ts +171 -0
- package/src/durable/internal/agent-registration.ts +525 -0
- package/src/durable/internal/agent-updates.ts +302 -0
- package/src/durable/internal/foreign-diagnostic.ts +47 -0
- package/src/durable/internal/journal-checkpoint.ts +104 -0
- package/src/durable/internal/journal-metadata.ts +107 -0
- package/src/durable/internal/messaging-host.ts +608 -0
- package/src/durable/internal/schedule-time.ts +303 -0
- package/src/durable/internal/storage-v2-layout.ts +163 -0
- package/src/durable/internal/storage-v2.ts +73 -0
- package/src/durable/internal/worker-host.ts +2467 -0
- package/src/durable/internal/worker-runtime.ts +9 -0
- package/src/engine/AgentRuntime.ts +37 -0
- package/src/engine/Compaction.ts +11 -0
- package/src/engine/ContextCompactor.ts +277 -0
- package/src/engine/ContextHistory.ts +73 -0
- package/src/engine/ContextWindow.ts +72 -0
- package/src/engine/DurableStep.ts +132 -0
- package/src/engine/MessagingHost.ts +110 -0
- package/src/engine/Output.ts +2 -0
- package/src/engine/RunEventSink.ts +132 -0
- package/src/engine/RunOptions.ts +1077 -0
- package/src/engine/SubagentHost.ts +181 -0
- package/src/engine/ThreadHistory.ts +120 -0
- package/src/engine/ToolBroker.ts +157 -0
- package/src/engine/ToolExposure.ts +48 -0
- package/src/engine/internal/agent-runtime.ts +10117 -0
- package/src/engine/internal/bounded-value.ts +315 -0
- package/src/engine/internal/compaction.ts +678 -0
- package/src/engine/internal/error-diagnostic.ts +39 -0
- package/src/engine/internal/output-contract.ts +173 -0
- package/src/engine/internal/primitive-delta.ts +80 -0
- package/src/engine/internal/provider-result-staging.ts +211 -0
- package/src/engine/internal/tool-derivative.ts +106 -0
- package/src/engine/internal/tool-exposure.ts +224 -0
- package/src/engine/internal/tool-telemetry.ts +484 -0
- package/src/index.ts +96 -53
- package/src/sandbox/CodeExecutor.ts +352 -0
- package/src/sandbox/InteractiveBrowser.ts +257 -0
- package/src/sandbox/PageCapture.ts +692 -0
- package/src/sandbox/PageCrawl.ts +148 -0
- package/src/sandbox/PageScreenshot.ts +81 -0
- package/src/sandbox/ProtectedBrowser.ts +413 -0
- package/src/sandbox/Sandbox.ts +241 -0
- package/dist/Agent.d.mts +0 -5
- package/dist/Agent.mjs +0 -10
- package/dist/Agent.mjs.map +0 -1
- package/dist/AgentError.d.mts +0 -5
- package/dist/AgentError.mjs +0 -10
- package/dist/AgentError.mjs.map +0 -1
- package/dist/AgentPolicy.d.mts +0 -5
- package/dist/AgentPolicy.mjs +0 -10
- package/dist/AgentPolicy.mjs.map +0 -1
- package/dist/AgentRuntime.d.mts +0 -5
- package/dist/AgentRuntime.mjs +0 -10
- package/dist/AgentRuntime.mjs.map +0 -1
- package/dist/AgentUpdates.d.mts +0 -5
- package/dist/AgentUpdates.mjs +0 -10
- package/dist/AgentUpdates.mjs.map +0 -1
- package/dist/Approval.d.mts +0 -5
- package/dist/Approval.mjs +0 -10
- package/dist/Approval.mjs.map +0 -1
- package/dist/Budget.d.mts +0 -5
- package/dist/Budget.mjs +0 -10
- package/dist/Budget.mjs.map +0 -1
- package/dist/CodeMode.d.mts +0 -5
- package/dist/CodeMode.mjs +0 -10
- package/dist/CodeMode.mjs.map +0 -1
- package/dist/Commands.d.mts +0 -5
- package/dist/Commands.mjs +0 -10
- package/dist/Commands.mjs.map +0 -1
- package/dist/Compaction.d.mts +0 -5
- package/dist/Compaction.mjs +0 -10
- package/dist/Compaction.mjs.map +0 -1
- package/dist/ContextCompactor.d.mts +0 -5
- package/dist/ContextCompactor.mjs +0 -10
- package/dist/ContextCompactor.mjs.map +0 -1
- package/dist/ContextHistory.d.mts +0 -5
- package/dist/ContextHistory.mjs +0 -10
- package/dist/ContextHistory.mjs.map +0 -1
- package/dist/ContextTools.d.mts +0 -5
- package/dist/ContextTools.mjs +0 -10
- package/dist/ContextTools.mjs.map +0 -1
- package/dist/ContextWindow.d.mts +0 -5
- package/dist/ContextWindow.mjs +0 -10
- package/dist/ContextWindow.mjs.map +0 -1
- package/dist/DurableStep.d.mts +0 -5
- package/dist/DurableStep.mjs +0 -10
- package/dist/DurableStep.mjs.map +0 -1
- package/dist/EphemeralThreads.d.mts +0 -5
- package/dist/EphemeralThreads.mjs +0 -10
- package/dist/EphemeralThreads.mjs.map +0 -1
- package/dist/IdGenerator.d.mts +0 -5
- package/dist/IdGenerator.mjs +0 -10
- package/dist/IdGenerator.mjs.map +0 -1
- package/dist/Identifiers.d.mts +0 -5
- package/dist/Identifiers.mjs +0 -10
- package/dist/Identifiers.mjs.map +0 -1
- package/dist/Mcp.d.mts +0 -5
- package/dist/Mcp.mjs +0 -10
- package/dist/Mcp.mjs.map +0 -1
- package/dist/McpClient.d.mts +0 -5
- package/dist/McpClient.mjs +0 -10
- package/dist/McpClient.mjs.map +0 -1
- package/dist/Memory.d.mts +0 -5
- package/dist/Memory.mjs +0 -10
- package/dist/Memory.mjs.map +0 -1
- package/dist/MemoryNamespace.d.mts +0 -5
- package/dist/MemoryNamespace.mjs +0 -10
- package/dist/MemoryNamespace.mjs.map +0 -1
- package/dist/MemoryNotes.d.mts +0 -5
- package/dist/MemoryNotes.mjs +0 -10
- package/dist/MemoryNotes.mjs.map +0 -1
- package/dist/MemoryReference.d.mts +0 -5
- package/dist/MemoryReference.mjs +0 -10
- package/dist/MemoryReference.mjs.map +0 -1
- package/dist/MemoryRevalidation.d.mts +0 -5
- package/dist/MemoryRevalidation.mjs +0 -10
- package/dist/MemoryRevalidation.mjs.map +0 -1
- package/dist/MemoryStore.d.mts +0 -5
- package/dist/MemoryStore.mjs +0 -10
- package/dist/MemoryStore.mjs.map +0 -1
- package/dist/Messaging.d.mts +0 -5
- package/dist/Messaging.mjs +0 -10
- package/dist/Messaging.mjs.map +0 -1
- package/dist/MessagingHost.d.mts +0 -5
- package/dist/MessagingHost.mjs +0 -10
- package/dist/MessagingHost.mjs.map +0 -1
- package/dist/ModelContext.d.mts +0 -5
- package/dist/ModelContext.mjs +0 -10
- package/dist/ModelContext.mjs.map +0 -1
- package/dist/Receipt.d.mts +0 -5
- package/dist/Receipt.mjs +0 -10
- package/dist/Receipt.mjs.map +0 -1
- package/dist/Redaction.d.mts +0 -5
- package/dist/Redaction.mjs +0 -10
- package/dist/Redaction.mjs.map +0 -1
- package/dist/Remembering.d.mts +0 -5
- package/dist/Remembering.mjs +0 -10
- package/dist/Remembering.mjs.map +0 -1
- package/dist/RememberingStore.d.mts +0 -5
- package/dist/RememberingStore.mjs +0 -10
- package/dist/RememberingStore.mjs.map +0 -1
- package/dist/RunEvent.d.mts +0 -5
- package/dist/RunEvent.mjs +0 -10
- package/dist/RunEvent.mjs.map +0 -1
- package/dist/RunEventSink.d.mts +0 -5
- package/dist/RunEventSink.mjs +0 -10
- package/dist/RunEventSink.mjs.map +0 -1
- package/dist/RunHooks.d.mts +0 -5
- package/dist/RunHooks.mjs +0 -10
- package/dist/RunHooks.mjs.map +0 -1
- package/dist/RunOptions.d.mts +0 -5
- package/dist/RunOptions.mjs +0 -10
- package/dist/RunOptions.mjs.map +0 -1
- package/dist/RunPolicyUsage.d.mts +0 -5
- package/dist/RunPolicyUsage.mjs +0 -10
- package/dist/RunPolicyUsage.mjs.map +0 -1
- package/dist/SemanticMemory.d.mts +0 -5
- package/dist/SemanticMemory.mjs +0 -10
- package/dist/SemanticMemory.mjs.map +0 -1
- package/dist/SemanticMemoryIndex.d.mts +0 -5
- package/dist/SemanticMemoryIndex.mjs +0 -10
- package/dist/SemanticMemoryIndex.mjs.map +0 -1
- package/dist/SemanticMemoryRevalidation.d.mts +0 -5
- package/dist/SemanticMemoryRevalidation.mjs +0 -10
- package/dist/SemanticMemoryRevalidation.mjs.map +0 -1
- package/dist/Subagent.d.mts +0 -5
- package/dist/Subagent.mjs +0 -10
- package/dist/Subagent.mjs.map +0 -1
- package/dist/SubagentContract.d.mts +0 -5
- package/dist/SubagentContract.mjs +0 -10
- package/dist/SubagentContract.mjs.map +0 -1
- package/dist/SubagentHost.d.mts +0 -5
- package/dist/SubagentHost.mjs +0 -10
- package/dist/SubagentHost.mjs.map +0 -1
- package/dist/SubagentReservations.d.mts +0 -5
- package/dist/SubagentReservations.mjs +0 -10
- package/dist/SubagentReservations.mjs.map +0 -1
- package/dist/ThreadHistory.d.mts +0 -5
- package/dist/ThreadHistory.mjs +0 -10
- package/dist/ThreadHistory.mjs.map +0 -1
- package/dist/ToolBroker.d.mts +0 -5
- package/dist/ToolBroker.mjs +0 -10
- package/dist/ToolBroker.mjs.map +0 -1
- package/dist/ToolDiscovery.d.mts +0 -5
- package/dist/ToolDiscovery.mjs +0 -10
- package/dist/ToolDiscovery.mjs.map +0 -1
- package/dist/ToolResult.d.mts +0 -5
- package/dist/ToolResult.mjs +0 -10
- package/dist/ToolResult.mjs.map +0 -1
- package/dist/Usage.d.mts +0 -5
- package/dist/Usage.mjs +0 -10
- package/dist/Usage.mjs.map +0 -1
- package/dist/WebCapture.d.mts +0 -5
- package/dist/WebCapture.mjs +0 -10
- package/dist/WebCapture.mjs.map +0 -1
- package/dist/WebSearch.d.mts +0 -5
- package/dist/WebSearch.mjs +0 -10
- package/dist/WebSearch.mjs.map +0 -1
- package/dist/Worker.d.mts +0 -5
- package/dist/Worker.mjs +0 -10
- package/dist/Worker.mjs.map +0 -1
- package/dist/rolldown-runtime-BBjsoOtd.mjs +0 -27
- package/src/Agent.ts +0 -1
- package/src/AgentError.ts +0 -1
- package/src/AgentPolicy.ts +0 -1
- package/src/AgentRuntime.ts +0 -1
- package/src/AgentUpdates.ts +0 -1
- package/src/Approval.ts +0 -1
- package/src/Budget.ts +0 -1
- package/src/CodeMode.ts +0 -1
- package/src/Commands.ts +0 -1
- package/src/Compaction.ts +0 -1
- package/src/ContextCompactor.ts +0 -1
- package/src/ContextHistory.ts +0 -1
- package/src/ContextTools.ts +0 -1
- package/src/ContextWindow.ts +0 -1
- package/src/DurableStep.ts +0 -1
- package/src/EphemeralThreads.ts +0 -1
- package/src/IdGenerator.ts +0 -1
- package/src/Identifiers.ts +0 -1
- package/src/Mcp.ts +0 -1
- package/src/McpClient.ts +0 -1
- package/src/Memory.ts +0 -1
- package/src/MemoryNamespace.ts +0 -1
- package/src/MemoryNotes.ts +0 -1
- package/src/MemoryReference.ts +0 -1
- package/src/MemoryRevalidation.ts +0 -1
- package/src/MemoryStore.ts +0 -1
- package/src/Messaging.ts +0 -1
- package/src/MessagingHost.ts +0 -1
- package/src/ModelContext.ts +0 -1
- package/src/Receipt.ts +0 -1
- package/src/Redaction.ts +0 -1
- package/src/Remembering.ts +0 -1
- package/src/RememberingStore.ts +0 -1
- package/src/RunEvent.ts +0 -1
- package/src/RunEventSink.ts +0 -1
- package/src/RunHooks.ts +0 -1
- package/src/RunOptions.ts +0 -1
- package/src/RunPolicyUsage.ts +0 -1
- package/src/SemanticMemory.ts +0 -1
- package/src/SemanticMemoryIndex.ts +0 -1
- package/src/SemanticMemoryRevalidation.ts +0 -1
- package/src/Subagent.ts +0 -1
- package/src/SubagentContract.ts +0 -1
- package/src/SubagentHost.ts +0 -1
- package/src/SubagentReservations.ts +0 -1
- package/src/ThreadHistory.ts +0 -1
- package/src/ToolBroker.ts +0 -1
- package/src/ToolDiscovery.ts +0 -1
- package/src/ToolResult.ts +0 -1
- package/src/Usage.ts +0 -1
- package/src/WebCapture.ts +0 -1
- package/src/WebSearch.ts +0 -1
- package/src/Worker.ts +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context, type Effect } from "effect";
|
|
2
|
+
|
|
3
|
+
import type { makeWorkerRuntime } from "./worker-host.ts";
|
|
4
|
+
|
|
5
|
+
/** Canonical worker operations constructed once by the durable coordinator. */
|
|
6
|
+
export class WorkerRuntime extends Context.Service<
|
|
7
|
+
WorkerRuntime,
|
|
8
|
+
Effect.Success<ReturnType<typeof makeWorkerRuntime>>
|
|
9
|
+
>()("@effect-agent/thread/internal/WorkerRuntime") {}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Public AgentRuntime API. Implementation helpers remain private. */
|
|
2
|
+
export {
|
|
3
|
+
decodeFinalOutput,
|
|
4
|
+
encodeRunDisposition,
|
|
5
|
+
projectCompletionOutput,
|
|
6
|
+
projectCompletionFromToolOutput,
|
|
7
|
+
run,
|
|
8
|
+
runUnknown,
|
|
9
|
+
start,
|
|
10
|
+
startUnknown,
|
|
11
|
+
stream,
|
|
12
|
+
streamUnknown,
|
|
13
|
+
streamWithUsageAccountingUnknown,
|
|
14
|
+
AgentResultSchema,
|
|
15
|
+
AgentChildPending,
|
|
16
|
+
AgentSpawner,
|
|
17
|
+
SubagentDurability,
|
|
18
|
+
SubagentDurabilityError,
|
|
19
|
+
ToolCallWaiting,
|
|
20
|
+
renderInputPrompt,
|
|
21
|
+
withTerminalDefectEvent,
|
|
22
|
+
type AgentResult,
|
|
23
|
+
type AgentRuntimeFailure,
|
|
24
|
+
type AgentRuntimeRequirements,
|
|
25
|
+
type AgentCompletionProjectionRequirements,
|
|
26
|
+
type AgentSpawnerParent,
|
|
27
|
+
type AgentSpawnerService,
|
|
28
|
+
type DetachedRun,
|
|
29
|
+
type EngineProvidedToolServices,
|
|
30
|
+
type RuntimeBinding,
|
|
31
|
+
type SpawnDelegation,
|
|
32
|
+
type SpawnedChildRun,
|
|
33
|
+
type SpawnRunOptions,
|
|
34
|
+
type SubagentDurabilityDurable,
|
|
35
|
+
type SubagentDurabilityEphemeral,
|
|
36
|
+
type SubagentDurabilityService,
|
|
37
|
+
} from "./internal/agent-runtime.ts";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Public Compaction API. Implementation helpers remain private. */
|
|
2
|
+
export {
|
|
3
|
+
CLEARED_TOOL_RESULT,
|
|
4
|
+
COMPACTION_SUMMARY_PREFIX,
|
|
5
|
+
CONTEXT_ROLLOVER_PREFIX,
|
|
6
|
+
contextWindowId,
|
|
7
|
+
contextWindowMessage,
|
|
8
|
+
estimateMessageTokens,
|
|
9
|
+
estimatePromptTokens,
|
|
10
|
+
type ContextCompactionState,
|
|
11
|
+
} from "./internal/compaction.ts";
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Option, Schema, Stream } from "effect";
|
|
2
|
+
import { type LanguageModel, type Model, Prompt } from "effect/unstable/ai";
|
|
3
|
+
|
|
4
|
+
import { type CompactionPolicy } from "../core/AgentPolicy.ts";
|
|
5
|
+
import { type RunId, type ThreadId } from "../core/Identifiers.ts";
|
|
6
|
+
import { ContextHandoff, type ContextRolloverRequest } from "./ContextWindow.ts";
|
|
7
|
+
import {
|
|
8
|
+
buildCompactedView,
|
|
9
|
+
buildRolloverHandoff,
|
|
10
|
+
choosePruneBound,
|
|
11
|
+
chooseSummarizeCut,
|
|
12
|
+
collectCoveredMessages,
|
|
13
|
+
estimatePromptTokens,
|
|
14
|
+
evaluateMessageTokenEstimates,
|
|
15
|
+
renderForSummary,
|
|
16
|
+
SUMMARY_MAX_LENGTH,
|
|
17
|
+
SUMMARY_REQUEST_PREFIX,
|
|
18
|
+
SUMMARY_REQUEST_SUFFIX,
|
|
19
|
+
type ContextCompactionState,
|
|
20
|
+
} from "./internal/compaction.ts";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A proposed view change. Source indices are exclusive prefix bounds, never record sequences.
|
|
24
|
+
* Summaries contain at most 65,536 characters; the interpreter rejects oversized decisions
|
|
25
|
+
* before committing or changing coverage.
|
|
26
|
+
*/
|
|
27
|
+
export const CompactionDecision = Schema.Union([
|
|
28
|
+
Schema.Struct({
|
|
29
|
+
kind: Schema.Literal("rollover"),
|
|
30
|
+
through: Schema.Natural,
|
|
31
|
+
handoff: Schema.optionalKey(ContextHandoff),
|
|
32
|
+
}),
|
|
33
|
+
Schema.Struct({ kind: Schema.Literal("clear-tool-results"), through: Schema.Natural }),
|
|
34
|
+
Schema.Struct({
|
|
35
|
+
kind: Schema.Literal("summarize"),
|
|
36
|
+
through: Schema.Natural,
|
|
37
|
+
summary: Schema.NonEmptyString.check(
|
|
38
|
+
Schema.isMaxLength(SUMMARY_MAX_LENGTH),
|
|
39
|
+
Schema.isPattern(/\S/),
|
|
40
|
+
),
|
|
41
|
+
}),
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
export type CompactionDecision = typeof CompactionDecision.Type;
|
|
45
|
+
|
|
46
|
+
/** Expected strategy or decision-validation failure. Causes stay in the live Effect only. */
|
|
47
|
+
export class CompactionError extends Schema.TaggedError<CompactionError>()("CompactionError", {
|
|
48
|
+
message: Schema.String.check(Schema.isMaxLength(4_096)),
|
|
49
|
+
cause: Schema.optionalKey(Schema.Defect()),
|
|
50
|
+
}) {}
|
|
51
|
+
|
|
52
|
+
/** Upstream Model.captureRequirements returns this closed Layer. */
|
|
53
|
+
export type CompactionModelLayer = Layer.Layer<
|
|
54
|
+
LanguageModel.LanguageModel | Model.ProviderName | Model.ModelName
|
|
55
|
+
>;
|
|
56
|
+
|
|
57
|
+
/** A full message estimate, or undefined to use the native structural estimate. */
|
|
58
|
+
export type ContextMessageTokenEstimator = (message: Prompt.Message) => number | undefined;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* One bounded pass over an immutable source snapshot. A harness owns state, metering, and
|
|
62
|
+
* application of decisions. The interpreter permits at most one prune followed by one replacement
|
|
63
|
+
* (summary or rollover), and one call to summarize per Turn, shared across every trigger.
|
|
64
|
+
* All model work must use summarize so it is metered.
|
|
65
|
+
* Callback failures and requirements pass through unchanged; strategy dependencies belong to
|
|
66
|
+
* its construction Layer. Protected messages cannot be removed and Tool pairs cannot be split by a decision.
|
|
67
|
+
*/
|
|
68
|
+
export interface CompactionRequest<E, R> {
|
|
69
|
+
readonly threadId: ThreadId;
|
|
70
|
+
readonly runId: RunId;
|
|
71
|
+
readonly turn: number;
|
|
72
|
+
readonly source: Prompt.Prompt;
|
|
73
|
+
readonly state: Readonly<ContextCompactionState>;
|
|
74
|
+
readonly policy: CompactionPolicy;
|
|
75
|
+
readonly targetTokens: number | undefined;
|
|
76
|
+
readonly trigger: "pressure" | "overflow" | "requested";
|
|
77
|
+
/** Budget admission may prohibit a separate model call while still allowing a rollover. */
|
|
78
|
+
readonly modelCallAllowed: boolean;
|
|
79
|
+
/** The current captured Model's message accounting, including native fallback. */
|
|
80
|
+
readonly estimateMessageTokens?: ContextMessageTokenEstimator | undefined;
|
|
81
|
+
/** Present for a successful, singleton context rollover Tool; through excludes later steering. */
|
|
82
|
+
readonly requested?: (ContextRolloverRequest & { readonly through: number }) | undefined;
|
|
83
|
+
readonly summarize: (
|
|
84
|
+
prompt: Prompt.Prompt,
|
|
85
|
+
model?: CompactionModelLayer,
|
|
86
|
+
) => Effect.Effect<string, E, R>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface ContextCompaction {
|
|
90
|
+
/** Non-negative finite integer estimate, used for admission and derived prompt overhead too. */
|
|
91
|
+
readonly estimate: (messages: ReadonlyArray<Prompt.Message>) => number;
|
|
92
|
+
/** Emit decisions sequentially; the consumer commits each before pulling the next. */
|
|
93
|
+
readonly compact: <E, R>(
|
|
94
|
+
request: CompactionRequest<E, R>,
|
|
95
|
+
) => Stream.Stream<CompactionDecision, E | CompactionError, R>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const evaluateEstimates = <A>(
|
|
99
|
+
override: ContextMessageTokenEstimator | undefined,
|
|
100
|
+
operation: (estimate: (message: Prompt.Message) => number) => A,
|
|
101
|
+
): Effect.Effect<A, CompactionError> =>
|
|
102
|
+
Effect.suspend(() => {
|
|
103
|
+
const result = evaluateMessageTokenEstimates(override, operation);
|
|
104
|
+
|
|
105
|
+
return Option.isSome(result)
|
|
106
|
+
? Effect.succeed(result.value)
|
|
107
|
+
: CompactionError.make({
|
|
108
|
+
message: "Message token estimator returned an invalid token count",
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
const defaultCompactor = (model?: CompactionModelLayer): ContextCompaction => ({
|
|
113
|
+
estimate: estimatePromptTokens,
|
|
114
|
+
compact: <E, R>(request: CompactionRequest<E, R>) =>
|
|
115
|
+
Stream.unwrap(
|
|
116
|
+
Effect.gen(function* () {
|
|
117
|
+
const { source, policy, targetTokens, trigger, modelCallAllowed } = request;
|
|
118
|
+
|
|
119
|
+
if (request.requested !== undefined) {
|
|
120
|
+
return Stream.succeed({ kind: "rollover", ...request.requested });
|
|
121
|
+
}
|
|
122
|
+
const forceSummarize = trigger === "overflow";
|
|
123
|
+
const state = { ...request.state };
|
|
124
|
+
|
|
125
|
+
const keepRecentTokens =
|
|
126
|
+
targetTokens === undefined
|
|
127
|
+
? policy.keepRecentTokens
|
|
128
|
+
: Math.max(1, Math.min(policy.keepRecentTokens, targetTokens));
|
|
129
|
+
|
|
130
|
+
const decisions: Array<CompactionDecision> = [];
|
|
131
|
+
|
|
132
|
+
if (!forceSummarize && policy.mode !== "summarize") {
|
|
133
|
+
const through = yield* evaluateEstimates(request.estimateMessageTokens, (estimate) =>
|
|
134
|
+
choosePruneBound(source.content, state, keepRecentTokens, targetTokens, estimate),
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
if (through > state.clearedThrough) {
|
|
138
|
+
state.clearedThrough = through;
|
|
139
|
+
decisions.push({ kind: "clear-tool-results", through });
|
|
140
|
+
if (
|
|
141
|
+
targetTokens !== undefined &&
|
|
142
|
+
(yield* evaluateEstimates(request.estimateMessageTokens, (estimate) =>
|
|
143
|
+
estimatePromptTokens(buildCompactedView(source.content, state), estimate),
|
|
144
|
+
)) <= targetTokens
|
|
145
|
+
) {
|
|
146
|
+
return Stream.fromIterable(decisions);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const prune = Stream.fromIterable(decisions);
|
|
151
|
+
|
|
152
|
+
if ((!modelCallAllowed || policy.mode === "prune") && !forceSummarize) return prune;
|
|
153
|
+
|
|
154
|
+
return prune.pipe(
|
|
155
|
+
Stream.concat(
|
|
156
|
+
Stream.unwrap(
|
|
157
|
+
Effect.gen(function* () {
|
|
158
|
+
const through = yield* evaluateEstimates(
|
|
159
|
+
request.estimateMessageTokens,
|
|
160
|
+
(estimate) =>
|
|
161
|
+
chooseSummarizeCut(source.content, state, keepRecentTokens, estimate),
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
const covered = collectCoveredMessages(source.content, state, through);
|
|
165
|
+
|
|
166
|
+
if (covered.length === 0) return Stream.empty;
|
|
167
|
+
|
|
168
|
+
const transcript = renderForSummary(
|
|
169
|
+
covered,
|
|
170
|
+
state.replacement?.kind === "summarize"
|
|
171
|
+
? state.replacement.summary
|
|
172
|
+
: state.replacement?.handoff,
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
if (transcript === undefined) {
|
|
176
|
+
return yield* CompactionError.make({
|
|
177
|
+
message: `Previous compaction summary exceeds ${SUMMARY_MAX_LENGTH} characters`,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const prompt = Prompt.fromMessages([
|
|
182
|
+
Prompt.userMessage({
|
|
183
|
+
content: [
|
|
184
|
+
Prompt.textPart({
|
|
185
|
+
text: `${SUMMARY_REQUEST_PREFIX}${transcript}${SUMMARY_REQUEST_SUFFIX}`,
|
|
186
|
+
}),
|
|
187
|
+
],
|
|
188
|
+
}),
|
|
189
|
+
]);
|
|
190
|
+
|
|
191
|
+
const text = yield* request.summarize(prompt, model);
|
|
192
|
+
|
|
193
|
+
return Stream.succeed({
|
|
194
|
+
kind: "summarize",
|
|
195
|
+
through,
|
|
196
|
+
summary: text.trim(),
|
|
197
|
+
} satisfies CompactionDecision);
|
|
198
|
+
}),
|
|
199
|
+
),
|
|
200
|
+
),
|
|
201
|
+
);
|
|
202
|
+
}),
|
|
203
|
+
),
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* The sole interpreter compaction port. Runs without an installed service provide layer at their
|
|
208
|
+
* composition boundary. Decorators yield this service during construction and receive their
|
|
209
|
+
* underlying implementation through Layer.provide. Direct harnesses use the same Layer contract.
|
|
210
|
+
*/
|
|
211
|
+
export class ContextCompactor extends Context.Service<ContextCompactor, ContextCompaction>()(
|
|
212
|
+
"@effect-agent/engine/ContextCompactor",
|
|
213
|
+
) {
|
|
214
|
+
static readonly layer = Layer.succeed(ContextCompactor, defaultCompactor());
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Start fresh windows without a summarizer call. The engine retains instructions/input and
|
|
218
|
+
* commits each boundary; a bounded emergency handoff preserves user inputs and unseen results.
|
|
219
|
+
* Applications provide notes/history tools alongside this strategy.
|
|
220
|
+
*/
|
|
221
|
+
static readonly layerRollover = Layer.succeed(ContextCompactor, {
|
|
222
|
+
estimate: estimatePromptTokens,
|
|
223
|
+
compact: <E, R>(request: CompactionRequest<E, R>) =>
|
|
224
|
+
Stream.unwrap(
|
|
225
|
+
Effect.gen(function* () {
|
|
226
|
+
if (request.requested !== undefined) {
|
|
227
|
+
return Stream.succeed({
|
|
228
|
+
kind: "rollover",
|
|
229
|
+
...request.requested,
|
|
230
|
+
} satisfies CompactionDecision);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Trailing user steering may not be canonical until the next response. Keep it verbatim.
|
|
234
|
+
const through =
|
|
235
|
+
request.source.content.findLastIndex(
|
|
236
|
+
(message) => message.role === "assistant" || message.role === "tool",
|
|
237
|
+
) + 1;
|
|
238
|
+
|
|
239
|
+
if (collectCoveredMessages(request.source.content, request.state, through).length === 0) {
|
|
240
|
+
return Stream.empty;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const handoff = yield* evaluateEstimates(request.estimateMessageTokens, (estimate) =>
|
|
244
|
+
buildRolloverHandoff(
|
|
245
|
+
request.source.content,
|
|
246
|
+
request.state,
|
|
247
|
+
request.targetTokens,
|
|
248
|
+
through,
|
|
249
|
+
estimate,
|
|
250
|
+
),
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
if (handoff === undefined)
|
|
254
|
+
return Stream.fail(
|
|
255
|
+
CompactionError.make({
|
|
256
|
+
message: "Insufficient context capacity for an automatic rollover handoff",
|
|
257
|
+
}),
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
return Stream.succeed({
|
|
261
|
+
kind: "rollover",
|
|
262
|
+
through,
|
|
263
|
+
handoff,
|
|
264
|
+
} satisfies CompactionDecision);
|
|
265
|
+
}),
|
|
266
|
+
),
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
/** Use the bounded default algorithm with a separate upstream Effect AI Model. */
|
|
270
|
+
static readonly layerWithModel = <Provider, Requirements>(
|
|
271
|
+
model: Model.Model<Provider, LanguageModel.LanguageModel, Requirements>,
|
|
272
|
+
): Layer.Layer<ContextCompactor, never, Requirements> =>
|
|
273
|
+
Layer.effect(
|
|
274
|
+
ContextCompactor,
|
|
275
|
+
Effect.map(model.captureRequirements, (captured) => defaultCompactor(captured)),
|
|
276
|
+
);
|
|
277
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Context, type Effect, Schema } from "effect";
|
|
2
|
+
|
|
3
|
+
import { ThreadId } from "../core/Identifiers.ts";
|
|
4
|
+
|
|
5
|
+
/** Canonical transcript lookup failure. Access to a Thread remains a host authorization decision. */
|
|
6
|
+
export class ContextHistoryError extends Schema.TaggedError<ContextHistoryError>()(
|
|
7
|
+
"ContextHistoryError",
|
|
8
|
+
{
|
|
9
|
+
reason: Schema.Literals(["unavailable", "not-found", "invalid-input", "limit"]),
|
|
10
|
+
message: Schema.String.check(Schema.isMaxLength(4_096)),
|
|
11
|
+
},
|
|
12
|
+
) {}
|
|
13
|
+
|
|
14
|
+
export class ContextHistoryHit extends Schema.Class<ContextHistoryHit>("ContextHistoryHit")({
|
|
15
|
+
recordId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
16
|
+
windowId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
17
|
+
text: Schema.String.check(Schema.isMaxLength(2_000)),
|
|
18
|
+
}) {}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Newest-first literal substring search, trimmed and JavaScript case-folded (not FTS or regex).
|
|
22
|
+
* `beforeRecordId` excludes that record and every newer canonical position. Use the last hit
|
|
23
|
+
* from the previous page with the same query; fewer than `limit` hits (including zero) ends
|
|
24
|
+
* pagination. A full final page requires one more request to observe the empty page.
|
|
25
|
+
*
|
|
26
|
+
* The anchor must be eligible retained evidence in this authorized Thread, but need not match
|
|
27
|
+
* the query. Unknown, removed, foreign, and non-evidence anchors fail with `not-found`.
|
|
28
|
+
* IDs are opaque: adapters resolve and verify the canonical source, never sort or parse IDs.
|
|
29
|
+
* Each request captures its own tail; this is not a snapshot held across requests. New appends
|
|
30
|
+
* cannot displace matches older than the anchor. Retention and authorization are rechecked.
|
|
31
|
+
*/
|
|
32
|
+
export class ContextHistorySearch extends Schema.Class<ContextHistorySearch>(
|
|
33
|
+
"ContextHistorySearch",
|
|
34
|
+
)({
|
|
35
|
+
threadId: ThreadId,
|
|
36
|
+
query: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
37
|
+
limit: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 20 })),
|
|
38
|
+
beforeRecordId: Schema.optionalKey(ContextHistoryHit.fields.recordId),
|
|
39
|
+
}) {}
|
|
40
|
+
|
|
41
|
+
export class ContextHistoryRead extends Schema.Class<ContextHistoryRead>("ContextHistoryRead")({
|
|
42
|
+
threadId: ThreadId,
|
|
43
|
+
recordId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
44
|
+
offset: Schema.Natural,
|
|
45
|
+
maxChars: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 20_000 })),
|
|
46
|
+
}) {}
|
|
47
|
+
|
|
48
|
+
export class ContextHistoryPage extends Schema.Class<ContextHistoryPage>("ContextHistoryPage")({
|
|
49
|
+
recordId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
50
|
+
windowId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
51
|
+
text: Schema.String.check(Schema.isMaxLength(20_000)),
|
|
52
|
+
nextOffset: Schema.NullOr(Schema.Natural),
|
|
53
|
+
}) {}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Read-only access to retained canonical evidence, including closed context windows.
|
|
57
|
+
* Adapters bind storage and authorization; model parameters must not select a different Thread.
|
|
58
|
+
* Returned text is untrusted evidence, never instructions. This port does not retain raw Tool
|
|
59
|
+
* output that was discarded before canonical persistence, or transient prompt references.
|
|
60
|
+
* Search adapters must honor the exclusive `beforeRecordId` bound, return a complete bounded
|
|
61
|
+
* page, or fail explicitly; silently ignoring the bound can trap callers on the latest matches.
|
|
62
|
+
*/
|
|
63
|
+
export class ContextHistory extends Context.Service<
|
|
64
|
+
ContextHistory,
|
|
65
|
+
{
|
|
66
|
+
readonly search: (
|
|
67
|
+
request: ContextHistorySearch,
|
|
68
|
+
) => Effect.Effect<ReadonlyArray<ContextHistoryHit>, ContextHistoryError>;
|
|
69
|
+
readonly read: (
|
|
70
|
+
request: ContextHistoryRead,
|
|
71
|
+
) => Effect.Effect<ContextHistoryPage, ContextHistoryError>;
|
|
72
|
+
}
|
|
73
|
+
>()("@effect-agent/engine/ContextHistory") {}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Context, type Effect, Encoding, Schema } from "effect";
|
|
2
|
+
|
|
3
|
+
import { RunId, ThreadId } from "../core/Identifiers.ts";
|
|
4
|
+
|
|
5
|
+
/** Model-authored continuation state; fuller notes belong in an application-owned memory store. */
|
|
6
|
+
export const ContextHandoff = Schema.NonEmptyString.check(
|
|
7
|
+
Schema.isMaxLength(20_000),
|
|
8
|
+
Schema.isPattern(/\S/),
|
|
9
|
+
Schema.makeFilter((text) => Encoding.encodeHex(JSON.stringify(text)).length / 2 <= 32_768, {
|
|
10
|
+
expected: "at most 32768 JSON-encoded UTF-8 bytes",
|
|
11
|
+
}),
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
/** Successful output of an explicitly designated context-window Tool. */
|
|
15
|
+
export const ContextRolloverRequest = Schema.Struct({
|
|
16
|
+
handoff: Schema.optionalKey(ContextHandoff),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export type ContextRolloverRequest = typeof ContextRolloverRequest.Type;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Host-selected exclusive source-message boundary, applied at the next safe model seam.
|
|
23
|
+
* Omit through to reset the prefix before the protected current instructions/input. The
|
|
24
|
+
* engine resolves that prefix after preparation; an empty prior prefix needs no new window.
|
|
25
|
+
*/
|
|
26
|
+
export const ContextRolloverSelection = Schema.Struct({
|
|
27
|
+
...ContextRolloverRequest.fields,
|
|
28
|
+
through: Schema.optionalKey(Schema.Natural),
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export type ContextRolloverSelection = typeof ContextRolloverSelection.Type;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Bounds resolved alongside the native model for one Turn. Output reserve must match the
|
|
35
|
+
* selected provider configuration. Uncounted overhead includes only provider framing or image
|
|
36
|
+
* token costs absent from the prompt estimate; prompt text, output contracts, and native Tool
|
|
37
|
+
* schemas are counted by the engine. These are live-context bounds, not cumulative Run budgets.
|
|
38
|
+
*/
|
|
39
|
+
export class ModelCallContext extends Schema.Class<ModelCallContext>("ModelCallContext")({
|
|
40
|
+
contextCapacity: Schema.Int.check(Schema.isGreaterThan(0)),
|
|
41
|
+
maxInputTokens: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),
|
|
42
|
+
outputReserveTokens: Schema.Natural,
|
|
43
|
+
uncountedOverheadTokens: Schema.Natural,
|
|
44
|
+
}) {}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Definition-owned control annotation. A successful singleton application Tool carrying this
|
|
48
|
+
* annotation returns ContextRolloverRequest. The engine applies it at the next Turn seam,
|
|
49
|
+
* including after durable Tool-result replay. A Tool name alone never grants this authority.
|
|
50
|
+
*/
|
|
51
|
+
export const ContextRolloverTool = Context.Reference<boolean>(
|
|
52
|
+
"@effect-agent/engine/ContextRolloverTool",
|
|
53
|
+
{ defaultValue: () => false },
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
/** Best available live-context estimate, independent of cumulative Run budgets. */
|
|
57
|
+
export class ContextWindowStatus extends Schema.Class<ContextWindowStatus>("ContextWindowStatus")({
|
|
58
|
+
threadId: ThreadId,
|
|
59
|
+
runId: RunId,
|
|
60
|
+
windowId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
61
|
+
estimatedTokens: Schema.Natural,
|
|
62
|
+
contextTokenLimit: Schema.NullOr(Schema.Natural),
|
|
63
|
+
remainingTokens: Schema.NullOr(Schema.Natural),
|
|
64
|
+
}) {}
|
|
65
|
+
|
|
66
|
+
/** Engine-owned identity and context accounting for the current Run. */
|
|
67
|
+
export class ContextWindow extends Context.Service<
|
|
68
|
+
ContextWindow,
|
|
69
|
+
{
|
|
70
|
+
readonly status: Effect.Effect<ContextWindowStatus>;
|
|
71
|
+
}
|
|
72
|
+
>()("@effect-agent/engine/ContextWindow") {}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Context, Schema } from "effect";
|
|
2
|
+
import type { Effect, Option } from "effect";
|
|
3
|
+
import type { Tool } from "effect/unstable/ai";
|
|
4
|
+
|
|
5
|
+
import { ToolCallId } from "../core/Identifiers.ts";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Declared external execution class of one Tool, used by the durable runtime
|
|
9
|
+
* to decide which Tool Calls need the prepared/settled uncertainty protocol:
|
|
10
|
+
*
|
|
11
|
+
* - `"readonly"`: the handler performs no external mutation. A crash between
|
|
12
|
+
* start and settlement is a free re-run; no prepared record is written.
|
|
13
|
+
* - `"idempotent"`: the handler declares an external idempotency contract
|
|
14
|
+
* (it owns key derivation). Prepared/settled records are written and
|
|
15
|
+
* recovery may re-execute without reconciliation proof.
|
|
16
|
+
* - `"uncertain"`: no external contract is declared. Prepared/settled records
|
|
17
|
+
* are written and recovery must reconcile or record an Unknown Outcome.
|
|
18
|
+
*/
|
|
19
|
+
export type ToolExecutionClassValue = "readonly" | "idempotent" | "uncertain";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Effect AI Tool annotation key declaring a Tool's execution class, applied
|
|
23
|
+
* with `Tool.annotate(ToolExecutionClass, "...")`.
|
|
24
|
+
*
|
|
25
|
+
* Unannotated Tools default to `"uncertain"`: security and durability
|
|
26
|
+
* decisions are fail-closed, so the framework never infers a safer class
|
|
27
|
+
* from a Tool's shape.
|
|
28
|
+
*/
|
|
29
|
+
export const ToolExecutionClass = Context.Reference<ToolExecutionClassValue>(
|
|
30
|
+
"@effect-agent/engine/ToolExecutionClass",
|
|
31
|
+
{ defaultValue: () => "uncertain" },
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
/** Read a Tool's declared execution class, falling back to the fail-closed `"uncertain"` default. */
|
|
35
|
+
export const getToolExecutionClass = (tool: Tool.Any): ToolExecutionClassValue =>
|
|
36
|
+
Context.get(tool.annotations, ToolExecutionClass);
|
|
37
|
+
|
|
38
|
+
/** Stable identity of one Step within one Tool Call: `(toolCallId, stepName)`. */
|
|
39
|
+
export interface RunStepKey {
|
|
40
|
+
readonly toolCallId: ToolCallId;
|
|
41
|
+
readonly stepName: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** A previously committed Step result in its canonical encoded form. */
|
|
45
|
+
export interface PersistedStepResult {
|
|
46
|
+
readonly encodedOutput: unknown;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Dependency-neutral Step persistence seam implemented by a durable
|
|
51
|
+
* coordinator and consumed by the engine-provided `DurableStep` service.
|
|
52
|
+
*
|
|
53
|
+
* `lookup` returns the committed result for a Step identity when one exists;
|
|
54
|
+
* `commit` durably records one successful encoded output. Only success is
|
|
55
|
+
* ever committed — recording failures would replay a transient failure
|
|
56
|
+
* forever. Both operations are keyed by the deterministic `RunStepKey`, so
|
|
57
|
+
* replays and racing writers dedupe on record identity in the adapter.
|
|
58
|
+
*/
|
|
59
|
+
export interface RunStepHook<Error = never, Requirements = never> {
|
|
60
|
+
readonly lookup: (
|
|
61
|
+
key: RunStepKey,
|
|
62
|
+
) => Effect.Effect<Option.Option<PersistedStepResult>, Error, Requirements>;
|
|
63
|
+
readonly commit: (
|
|
64
|
+
key: RunStepKey,
|
|
65
|
+
encodedOutput: unknown,
|
|
66
|
+
) => Effect.Effect<void, Error, Requirements>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Typed failure of one `DurableStep.do` call.
|
|
71
|
+
*
|
|
72
|
+
* `duplicate-step-name` is an identity conflict: Step names must be
|
|
73
|
+
* deterministic and unique within one Tool Call, and reuse would silently
|
|
74
|
+
* replay another Step's recorded result. `recorded-result-invalid` is the
|
|
75
|
+
* replay-with-different-content conflict: a committed result that no longer
|
|
76
|
+
* decodes through the declared output Schema is never silently accepted.
|
|
77
|
+
*/
|
|
78
|
+
export class DurableStepError extends Schema.TaggedError<DurableStepError>()("DurableStepError", {
|
|
79
|
+
stepName: Schema.String,
|
|
80
|
+
reason: Schema.Literals([
|
|
81
|
+
"duplicate-step-name",
|
|
82
|
+
"lookup-failed",
|
|
83
|
+
"recorded-result-invalid",
|
|
84
|
+
"output-encoding-failed",
|
|
85
|
+
"commit-failed",
|
|
86
|
+
"no-active-tool-call",
|
|
87
|
+
]),
|
|
88
|
+
message: Schema.String.check(Schema.isMaxLength(4_096)),
|
|
89
|
+
toolCallId: Schema.optionalKey(ToolCallId),
|
|
90
|
+
/** Diagnostic cause for the live Effect only; Run events retain the fixed public message. */
|
|
91
|
+
cause: Schema.optionalKey(Schema.Defect()),
|
|
92
|
+
}) {}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Service value provided locally by the engine to each Tool Call's handler.
|
|
96
|
+
*
|
|
97
|
+
* `do` runs one named Step with exactly-once-recorded, at-least-once-executed
|
|
98
|
+
* semantics: a committed result decodes through `output` and returns without
|
|
99
|
+
* executing the body; otherwise the body runs (a crash mid-body re-executes
|
|
100
|
+
* on the next Attempt), the success is encoded through `output`, and only
|
|
101
|
+
* then committed. The Schema argument is the canonical codec for the recorded
|
|
102
|
+
* result, not decoration. A Step never makes a non-idempotent external API
|
|
103
|
+
* exactly-once — the body must use the external system's idempotency key,
|
|
104
|
+
* reconciliation API, or compensating workflow.
|
|
105
|
+
*/
|
|
106
|
+
export interface DurableStepService {
|
|
107
|
+
readonly do: <Output extends Schema.Top, BodyError, BodyServices>(
|
|
108
|
+
name: string,
|
|
109
|
+
output: Output,
|
|
110
|
+
execute: Effect.Effect<Output["Type"], BodyError, BodyServices>,
|
|
111
|
+
) => Effect.Effect<
|
|
112
|
+
Output["Type"],
|
|
113
|
+
DurableStepError | BodyError,
|
|
114
|
+
BodyServices | Output["DecodingServices"] | Output["EncodingServices"]
|
|
115
|
+
>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Engine-owned Durable Step seam.
|
|
120
|
+
*
|
|
121
|
+
* Declaring this service in `Tool.make({ dependencies: [DurableStep] })` is
|
|
122
|
+
* what makes a Tool a Durable Tool: its handler divides external effects into
|
|
123
|
+
* named Steps and may be re-entered after interruption. The engine provides
|
|
124
|
+
* the service locally to every Tool Call, bound to that call's identity; it
|
|
125
|
+
* is never satisfied from an application Layer and is excluded from the
|
|
126
|
+
* runtime's public requirements. Without a durable runtime the engine
|
|
127
|
+
* provides an ephemeral pass-through that executes each Step once and
|
|
128
|
+
* records nothing — the durable claim attaches to the runtime, not the Tool.
|
|
129
|
+
*/
|
|
130
|
+
export class DurableStep extends Context.Service<DurableStep, DurableStepService>()(
|
|
131
|
+
"@effect-agent/engine/DurableStep",
|
|
132
|
+
) {}
|