effect-agent 0.1.0-beta.16 → 0.1.0-beta.161
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/Admin-Dirux8PR.d.mts +4270 -0
- package/dist/Agent-BMATXYsI.mjs +93 -0
- package/dist/Agent-BMATXYsI.mjs.map +1 -0
- package/dist/Agent-ZfnNCQXs.d.mts +259 -0
- package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
- package/dist/AgentPolicy-B4oH8TbG.d.mts +112 -0
- package/dist/AgentRuntime-CVMHysXm.mjs +4844 -0
- package/dist/AgentRuntime-CVMHysXm.mjs.map +1 -0
- package/dist/AgentRuntime-D1MmB_0z.d.mts +346 -0
- package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
- package/dist/ContextCompactor-BoKQOjr5.d.mts +161 -0
- package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
- package/dist/Digest-COAt3Orl.d.mts +22 -0
- package/dist/DurableAgentRuntime-BpB5rBcu.mjs +7513 -0
- package/dist/DurableAgentRuntime-BpB5rBcu.mjs.map +1 -0
- package/dist/DurableFailpoint-Cnr3wx1L.d.mts +41 -0
- package/dist/DurableStep-Cry_iol4.d.mts +103 -0
- package/dist/EventSource-DOXB0RJR.d.mts +51 -0
- package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
- package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
- package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
- package/dist/Identifiers-CN2s30fF.d.mts +40 -0
- package/dist/InMemory.d.mts +24 -0
- package/dist/InMemory.mjs +24 -0
- package/dist/InMemory.mjs.map +1 -0
- package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
- package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
- package/dist/Messaging-7VXQnWI3.d.mts +221 -0
- package/dist/Messaging-CICd_CSi.d.mts +1067 -0
- package/dist/MessagingHost-DXwWnrMh.d.mts +74 -0
- package/dist/MessagingHost-DfsbMPvq.mjs +110 -0
- package/dist/MessagingHost-DfsbMPvq.mjs.map +1 -0
- package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
- package/dist/Output-CY7NZByV.d.mts +25 -0
- package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
- package/dist/PreparedInputAdmission-B7r401xJ.d.mts +42 -0
- package/dist/Receipt-BAHyigAF.d.mts +33 -0
- package/dist/Records-Bm4Qt70a.d.mts +1115 -0
- package/dist/RunEvent-D0aepYwN.d.mts +474 -0
- package/dist/RunEventSink-9CUdI9Ar.d.mts +108 -0
- package/dist/RunJournal-CA2bsvHn.mjs +979 -0
- package/dist/RunJournal-CA2bsvHn.mjs.map +1 -0
- package/dist/RunOptions-BHmBa05n.d.mts +960 -0
- package/dist/RunPolicyUsage-CUudVtg_.d.mts +23 -0
- package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
- package/dist/Schedule-Bi_XVKLF.d.mts +847 -0
- package/dist/Scheduling-DPb2QyAK.mjs +691 -0
- package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
- package/dist/Subagent-D59om8SR.d.mts +1650 -0
- package/dist/Subagent-DH6G120f.mjs +1499 -0
- package/dist/Subagent-DH6G120f.mjs.map +1 -0
- package/dist/SubagentContract-tyN9v-Jv.d.mts +112 -0
- package/dist/SubagentHost-VTyf_wEF.d.mts +172 -0
- package/dist/Subscription-B3ScCBaN.d.mts +979 -0
- package/dist/SubscriptionInput-BP5WVsX_.d.mts +41 -0
- package/dist/Thread-DOBQ0QUY.d.mts +96 -0
- package/dist/ThreadHistory-FD-o4TsR.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 +8 -0
- package/dist/ToolExposure.mjs +21 -0
- package/dist/ToolExposure.mjs.map +1 -0
- package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
- package/dist/ToolResult-BKdqWRff.d.mts +78 -0
- package/dist/Usage-BNjPR7Zr.d.mts +129 -0
- package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
- package/dist/Worker-CfwzMZEK.mjs +271 -0
- package/dist/Worker-CfwzMZEK.mjs.map +1 -0
- package/dist/Worker-XEBYxRQv.d.mts +472 -0
- package/dist/WorkerAdmission-Cmcxd6nS.mjs +171 -0
- package/dist/WorkerAdmission-Cmcxd6nS.mjs.map +1 -0
- package/dist/agent-registration-BIOzAej4.mjs +210 -0
- package/dist/agent-registration-BIOzAej4.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/BrowserUse.d.mts +545 -0
- package/dist/capabilities/BrowserUse.mjs +254 -0
- package/dist/capabilities/BrowserUse.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 +523 -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 +187 -0
- package/dist/capabilities/ContextTools.mjs +87 -0
- package/dist/capabilities/ContextTools.mjs.map +1 -0
- package/dist/capabilities/Mcp.d.mts +108 -0
- package/dist/capabilities/Mcp.mjs +259 -0
- package/dist/capabilities/Mcp.mjs.map +1 -0
- package/dist/capabilities/McpClient.d.mts +115 -0
- package/dist/capabilities/McpClient.mjs +519 -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 +152 -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 +129 -0
- package/dist/capabilities/ToolDiscovery.mjs +239 -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 +75 -0
- package/dist/capabilities/WebSearch.mjs +123 -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 +134 -0
- package/dist/core/AgentError.mjs.map +1 -0
- package/dist/core/AgentPolicy.d.mts +2 -0
- package/dist/core/AgentPolicy.mjs +102 -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/FailureDiagnostic.d.mts +2 -0
- package/dist/core/FailureDiagnostic.mjs +2 -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 +346 -0
- package/dist/core/RunEvent.mjs.map +1 -0
- package/dist/core/RunPolicyUsage.d.mts +2 -0
- package/dist/core/RunPolicyUsage.mjs +26 -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 +142 -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 +156 -0
- package/dist/core/ToolResult.mjs.map +1 -0
- package/dist/core/Usage.d.mts +2 -0
- package/dist/core/Usage.mjs +340 -0
- package/dist/core/Usage.mjs.map +1 -0
- package/dist/core/Worker.d.mts +3 -0
- package/dist/core/Worker.mjs +3 -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 +330 -0
- package/dist/durable/Admin.mjs.map +1 -0
- package/dist/durable/AgentRegistration.d.mts +2 -0
- package/dist/durable/AgentRegistration.mjs +15 -0
- package/dist/durable/AgentRegistration.mjs.map +1 -0
- package/dist/durable/Certification.d.mts +110 -0
- package/dist/durable/Certification.mjs +159 -0
- package/dist/durable/Certification.mjs.map +1 -0
- package/dist/durable/CommittedActivity.d.mts +64 -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 +4 -0
- package/dist/durable/DurableFailpoint.d.mts +2 -0
- package/dist/durable/DurableFailpoint.mjs +102 -0
- package/dist/durable/DurableFailpoint.mjs.map +1 -0
- package/dist/durable/DurableFailpointTestControl.d.mts +14 -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 +185 -0
- package/dist/durable/GitHubWorkflowSource.mjs +209 -0
- package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
- package/dist/durable/LifecyclePublication.d.mts +2 -0
- package/dist/durable/LifecyclePublication.mjs +189 -0
- package/dist/durable/LifecyclePublication.mjs.map +1 -0
- package/dist/durable/MessageDelivery.d.mts +949 -0
- package/dist/durable/MessageDelivery.mjs +589 -0
- package/dist/durable/MessageDelivery.mjs.map +1 -0
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +400 -0
- package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -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 +38 -0
- package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
- package/dist/durable/Records.d.mts +2 -0
- package/dist/durable/Records.mjs +873 -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 +391 -0
- package/dist/durable/Schedule.mjs.map +1 -0
- package/dist/durable/ScheduleStoreConformance.d.mts +17 -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 +55 -0
- package/dist/durable/Scheduling.mjs +2 -0
- package/dist/durable/SqlMemoryStore.d.mts +742 -0
- package/dist/durable/SqlMemoryStore.mjs +627 -0
- package/dist/durable/SqlMemoryStore.mjs.map +1 -0
- package/dist/durable/SubmissionLedger.d.mts +3 -0
- package/dist/durable/SubmissionLedger.mjs +986 -0
- package/dist/durable/SubmissionLedger.mjs.map +1 -0
- package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
- package/dist/durable/SubmissionLedgerConformance.mjs +2254 -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 +16 -0
- package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
- package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
- package/dist/durable/SubscriptionTools.d.mts +274 -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 +74 -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 +77 -0
- package/dist/durable/ThreadInvariants.mjs +246 -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 +383 -0
- package/dist/durable/ThreadStore.mjs.map +1 -0
- package/dist/durable/ThreadStoreConformance.d.mts +28 -0
- package/dist/durable/ThreadStoreConformance.mjs +543 -0
- package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
- package/dist/durable/ToolReconciler.d.mts +2 -0
- package/dist/durable/ToolReconciler.mjs +85 -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/WorkerAdmission.d.mts +172 -0
- package/dist/durable/WorkerAdmission.mjs +2 -0
- package/dist/durable/WorkerHost.d.mts +156 -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 +125 -0
- package/dist/engine/RunOptions.mjs.map +1 -0
- package/dist/engine/SubagentHost.d.mts +2 -0
- package/dist/engine/SubagentHost.mjs +76 -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 +93 -6
- package/dist/index.mjs +101 -6
- package/dist/output-contract-DS-S8mTv.mjs +135 -0
- package/dist/output-contract-DS-S8mTv.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 +257 -0
- package/dist/sandbox/InteractiveBrowser.mjs +236 -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 +48 -0
- package/dist/sandbox/PageScreenshot.mjs +53 -0
- package/dist/sandbox/PageScreenshot.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 -40
- package/src/InMemory.ts +19 -0
- package/src/ToolExposure.ts +2 -0
- package/src/capabilities/Approval.ts +352 -0
- package/src/capabilities/BrowserUse.ts +367 -0
- package/src/capabilities/Budget.ts +536 -0
- package/src/capabilities/CodeMode.ts +1099 -0
- package/src/capabilities/Commands.ts +86 -0
- package/src/capabilities/ContextTools.ts +129 -0
- package/src/capabilities/Mcp.ts +426 -0
- package/src/capabilities/McpClient.ts +983 -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 +2486 -0
- package/src/capabilities/SubagentReservations.ts +850 -0
- package/src/capabilities/ToolDiscovery.ts +383 -0
- package/src/capabilities/WebCapture.ts +722 -0
- package/src/capabilities/WebSearch.ts +205 -0
- package/src/capabilities/internal/subagent-background.ts +1307 -0
- package/src/capabilities/internal/subagent-contract.ts +146 -0
- package/src/capabilities/internal/subagent-policy.ts +235 -0
- package/src/capabilities/internal/subagent-reporting.ts +136 -0
- package/src/capabilities/internal/utf8.ts +10 -0
- package/src/core/Agent.ts +623 -0
- package/src/core/AgentError.ts +172 -0
- package/src/core/AgentPolicy.ts +161 -0
- package/src/core/AgentUpdates.ts +100 -0
- package/src/core/FailureDiagnostic.ts +343 -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 +72 -0
- package/src/core/Receipt.ts +42 -0
- package/src/core/RememberingStore.ts +300 -0
- package/src/core/RunEvent.ts +375 -0
- package/src/core/RunPolicyUsage.ts +19 -0
- package/src/core/SemanticMemoryIndex.ts +250 -0
- package/src/core/SemanticMemoryRevalidation.ts +254 -0
- package/src/core/SubagentContract.ts +189 -0
- package/src/core/Thread.ts +371 -0
- package/src/core/ToolExposure.ts +74 -0
- package/src/core/ToolResult.ts +190 -0
- package/src/core/Usage.ts +570 -0
- package/src/core/Worker.ts +240 -0
- package/src/core/internal/agent-updates.ts +34 -0
- package/src/core/internal/message-status.ts +60 -0
- package/src/core/internal/strict-schema.ts +14 -0
- package/src/core/internal/utf8.ts +23 -0
- package/src/durable/ActivityStore.ts +160 -0
- package/src/durable/Admin.ts +505 -0
- package/src/durable/AgentRegistration.ts +16 -0
- package/src/durable/Certification.ts +210 -0
- package/src/durable/CommittedActivity.ts +296 -0
- package/src/durable/Digest.ts +87 -0
- package/src/durable/DurableAgentRuntime.ts +11867 -0
- package/src/durable/DurableFailpoint.ts +111 -0
- package/src/durable/DurableFailpointTestControl.ts +39 -0
- package/src/durable/EventSource.ts +172 -0
- package/src/durable/GitHubWorkflowSource.ts +447 -0
- package/src/durable/LifecyclePublication.ts +311 -0
- package/src/durable/MessageDelivery.ts +878 -0
- package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
- package/src/durable/OperationAuthorizer.ts +85 -0
- package/src/durable/PersistentHistory.ts +260 -0
- package/src/durable/PreparedInputAdmission.ts +57 -0
- package/src/durable/Records.ts +1099 -0
- package/src/durable/Recovery.ts +1018 -0
- package/src/durable/RunJournal.ts +1768 -0
- package/src/durable/Schedule.ts +513 -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 +1056 -0
- package/src/durable/SubmissionLedger.ts +1297 -0
- package/src/durable/SubmissionLedgerConformance.ts +4940 -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 +507 -0
- package/src/durable/ThreadProjection.ts +269 -0
- package/src/durable/ThreadProjectionMaintenance.ts +67 -0
- package/src/durable/ThreadStore.ts +637 -0
- package/src/durable/ThreadStoreConformance.ts +1296 -0
- package/src/durable/ToolReconciler.ts +109 -0
- package/src/durable/WakeScheduler.ts +134 -0
- package/src/durable/WorkerAdmission.ts +104 -0
- package/src/durable/WorkerHost.ts +205 -0
- package/src/durable/internal/agent-registration.ts +621 -0
- package/src/durable/internal/agent-updates.ts +306 -0
- package/src/durable/internal/foreign-diagnostic.ts +47 -0
- package/src/durable/internal/journal-checkpoint.ts +159 -0
- package/src/durable/internal/journal-metadata.ts +124 -0
- package/src/durable/internal/message-status.ts +20 -0
- package/src/durable/internal/messaging-host.ts +637 -0
- package/src/durable/internal/schedule-time.ts +303 -0
- package/src/durable/internal/thread-initialization.ts +195 -0
- package/src/durable/internal/worker-host.ts +3309 -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 +1127 -0
- package/src/engine/SubagentHost.ts +239 -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 +10845 -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 +250 -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 +100 -22
- package/src/sandbox/CodeExecutor.ts +352 -0
- package/src/sandbox/InteractiveBrowser.ts +339 -0
- package/src/sandbox/PageCapture.ts +691 -0
- package/src/sandbox/PageCrawl.ts +148 -0
- package/src/sandbox/PageScreenshot.ts +81 -0
- package/src/sandbox/Sandbox.ts +241 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
+
import { RunId, ThreadId, ToolCallId } from "../core/Identifiers.mjs";
|
|
3
|
+
import { n as utf8ByteLength } from "../utf8-DchGZRBd.mjs";
|
|
4
|
+
import { RedactedPreview, Redactor } from "./Redaction.mjs";
|
|
5
|
+
import { Clock, Context, DateTime, Duration, Effect, Layer, Ref, Schema } from "effect";
|
|
6
|
+
//#region src/capabilities/Approval.ts
|
|
7
|
+
var Approval_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
ApprovalApproved: () => ApprovalApproved,
|
|
9
|
+
ApprovalAudit: () => ApprovalAudit,
|
|
10
|
+
ApprovalAuditEvent: () => ApprovalAuditEvent,
|
|
11
|
+
ApprovalAuditEvents: () => ApprovalAuditEvents,
|
|
12
|
+
ApprovalAuditLimitExceeded: () => ApprovalAuditLimitExceeded,
|
|
13
|
+
ApprovalAuditMemoryLive: () => ApprovalAuditMemoryLive,
|
|
14
|
+
ApprovalDecision: () => ApprovalDecision,
|
|
15
|
+
ApprovalDecisionMismatch: () => ApprovalDecisionMismatch,
|
|
16
|
+
ApprovalDecisionRecorded: () => ApprovalDecisionRecorded,
|
|
17
|
+
ApprovalDenied: () => ApprovalDenied,
|
|
18
|
+
ApprovalDenyAll: () => ApprovalDenyAll,
|
|
19
|
+
ApprovalRequest: () => ApprovalRequest,
|
|
20
|
+
ApprovalRequestDraft: () => ApprovalRequestDraft,
|
|
21
|
+
ApprovalRequestRecorded: () => ApprovalRequestRecorded,
|
|
22
|
+
ApprovalResolver: () => ApprovalResolver,
|
|
23
|
+
ApprovalResolverError: () => ApprovalResolverError,
|
|
24
|
+
ApprovalTimedOut: () => ApprovalTimedOut,
|
|
25
|
+
makeApprovalRequest: () => makeApprovalRequest,
|
|
26
|
+
requestApproval: () => requestApproval
|
|
27
|
+
});
|
|
28
|
+
const MAX_APPROVAL_TARGETS = 32;
|
|
29
|
+
const MAX_APPROVAL_TARGET_BYTES = 65536;
|
|
30
|
+
const MAX_APPROVAL_AUDIT_EVENTS = 2048;
|
|
31
|
+
const ApprovalTargets = Schema.Array(Schema.String.check(Schema.isMaxLength(2048))).check(Schema.isMaxLength(MAX_APPROVAL_TARGETS)).pipe(Schema.refine((targets) => targets.reduce((total, target) => total + utf8ByteLength(target), 0) <= MAX_APPROVAL_TARGET_BYTES, { expected: `approval targets totaling at most ${MAX_APPROVAL_TARGET_BYTES} UTF-8 bytes` }));
|
|
32
|
+
const ApprovalRequestFields = {
|
|
33
|
+
requestId: Schema.NonEmptyString,
|
|
34
|
+
runId: RunId,
|
|
35
|
+
threadId: ThreadId,
|
|
36
|
+
toolCallId: ToolCallId,
|
|
37
|
+
toolName: Schema.NonEmptyString,
|
|
38
|
+
actionSummary: Schema.String.check(Schema.isMaxLength(2048)),
|
|
39
|
+
resourceTargets: ApprovalTargets,
|
|
40
|
+
risk: Schema.Literals([
|
|
41
|
+
"low",
|
|
42
|
+
"medium",
|
|
43
|
+
"high",
|
|
44
|
+
"critical"
|
|
45
|
+
]),
|
|
46
|
+
expiresAt: Schema.DateTimeUtcFromString,
|
|
47
|
+
denial: Schema.Literals(["terminal", "recoverable"])
|
|
48
|
+
};
|
|
49
|
+
/** Decoded approval metadata before the Redactor owns Tool input preview creation. */
|
|
50
|
+
var ApprovalRequestDraft = class extends Schema.Class("@effect-agent/capabilities/ApprovalRequestDraft")(ApprovalRequestFields) {};
|
|
51
|
+
/** Fully decoded, structurally redacted approval input. */
|
|
52
|
+
var ApprovalRequest = class extends Schema.Class("@effect-agent/capabilities/ApprovalRequest")({
|
|
53
|
+
...ApprovalRequestFields,
|
|
54
|
+
redactedInputPreview: RedactedPreview
|
|
55
|
+
}) {};
|
|
56
|
+
var ApprovalApproved = class extends Schema.TaggedClass()("ApprovalApproved", {
|
|
57
|
+
requestId: Schema.NonEmptyString,
|
|
58
|
+
decidedAt: Schema.DateTimeUtcFromString,
|
|
59
|
+
resolver: Schema.NonEmptyString
|
|
60
|
+
}) {};
|
|
61
|
+
var ApprovalDenied = class extends Schema.TaggedClass()("ApprovalDenied", {
|
|
62
|
+
requestId: Schema.NonEmptyString,
|
|
63
|
+
decidedAt: Schema.DateTimeUtcFromString,
|
|
64
|
+
resolver: Schema.NonEmptyString,
|
|
65
|
+
reason: Schema.String.check(Schema.isMaxLength(2048)),
|
|
66
|
+
timedOut: Schema.Boolean
|
|
67
|
+
}) {};
|
|
68
|
+
const ApprovalDecision = Schema.Union([ApprovalApproved, ApprovalDenied]);
|
|
69
|
+
/** Resolver infrastructure failed before it could make a policy decision. */
|
|
70
|
+
var ApprovalResolverError = class extends Schema.TaggedError()("ApprovalResolverError", { message: Schema.String }) {};
|
|
71
|
+
/** The resolver explicitly observed its request deadline; callers turn this into a denial. */
|
|
72
|
+
var ApprovalTimedOut = class extends Schema.TaggedError()("ApprovalTimedOut", { requestId: Schema.NonEmptyString }) {};
|
|
73
|
+
/** First-class approval authority. Interactive, policy, and remote adapters implement this service. */
|
|
74
|
+
var ApprovalResolver = class extends Context.Service()("@effect-agent/capabilities/ApprovalResolver") {};
|
|
75
|
+
var ApprovalRequestRecorded = class extends Schema.TaggedClass()("ApprovalRequestRecorded", {
|
|
76
|
+
sequence: Schema.Natural,
|
|
77
|
+
recordedAt: Schema.DateTimeUtcFromString,
|
|
78
|
+
request: ApprovalRequest
|
|
79
|
+
}) {};
|
|
80
|
+
var ApprovalDecisionRecorded = class extends Schema.TaggedClass()("ApprovalDecisionRecorded", {
|
|
81
|
+
sequence: Schema.Natural,
|
|
82
|
+
recordedAt: Schema.DateTimeUtcFromString,
|
|
83
|
+
decision: ApprovalDecision
|
|
84
|
+
}) {};
|
|
85
|
+
const ApprovalAuditEvent = Schema.Union([ApprovalRequestRecorded, ApprovalDecisionRecorded]);
|
|
86
|
+
const ApprovalAuditEvents = Schema.Array(ApprovalAuditEvent).check(Schema.isMaxLength(MAX_APPROVAL_AUDIT_EVENTS));
|
|
87
|
+
var ApprovalAuditLimitExceeded = class extends Schema.TaggedError()("ApprovalAuditLimitExceeded", {
|
|
88
|
+
limitValue: Schema.Natural,
|
|
89
|
+
observedValue: Schema.Natural
|
|
90
|
+
}) {};
|
|
91
|
+
/** A resolver or audit sink tried to associate a decision with another request. */
|
|
92
|
+
var ApprovalDecisionMismatch = class extends Schema.TaggedError()("ApprovalDecisionMismatch", {
|
|
93
|
+
expectedRequestId: Schema.NonEmptyString,
|
|
94
|
+
observedRequestId: Schema.NonEmptyString
|
|
95
|
+
}) {};
|
|
96
|
+
/** P2 semantic audit sink; durable runtimes replace this with canonical records. */
|
|
97
|
+
var ApprovalAudit = class extends Context.Service()("@effect-agent/capabilities/ApprovalAudit") {};
|
|
98
|
+
/** Scoped in-memory audit projection with monotonic event order. */
|
|
99
|
+
const ApprovalAuditMemoryLive = Layer.effect(ApprovalAudit, Effect.gen(function* () {
|
|
100
|
+
const state = yield* Ref.make({
|
|
101
|
+
events: [],
|
|
102
|
+
pending: /* @__PURE__ */ new Set()
|
|
103
|
+
});
|
|
104
|
+
return ApprovalAudit.of({
|
|
105
|
+
recordRequest: (request) => Effect.gen(function* () {
|
|
106
|
+
const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
|
|
107
|
+
const error = yield* Ref.modify(state, (current) => {
|
|
108
|
+
const reservedSize = current.events.length + current.pending.size + 2;
|
|
109
|
+
if (reservedSize > MAX_APPROVAL_AUDIT_EVENTS) return [ApprovalAuditLimitExceeded.make({
|
|
110
|
+
limitValue: MAX_APPROVAL_AUDIT_EVENTS,
|
|
111
|
+
observedValue: reservedSize
|
|
112
|
+
}), current];
|
|
113
|
+
const event = ApprovalRequestRecorded.make({
|
|
114
|
+
sequence: current.events.length,
|
|
115
|
+
recordedAt,
|
|
116
|
+
request
|
|
117
|
+
});
|
|
118
|
+
return [void 0, {
|
|
119
|
+
events: [...current.events, event],
|
|
120
|
+
pending: new Set(current.pending).add(request.requestId)
|
|
121
|
+
}];
|
|
122
|
+
});
|
|
123
|
+
if (error !== void 0) return yield* error;
|
|
124
|
+
}),
|
|
125
|
+
recordDecision: (decision) => Effect.gen(function* () {
|
|
126
|
+
const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
|
|
127
|
+
const error = yield* Ref.modify(state, (current) => {
|
|
128
|
+
if (!current.pending.has(decision.requestId)) return [ApprovalDecisionMismatch.make({
|
|
129
|
+
expectedRequestId: [...current.pending][0] ?? "no-pending-request",
|
|
130
|
+
observedRequestId: decision.requestId
|
|
131
|
+
}), current];
|
|
132
|
+
const pending = new Set(current.pending);
|
|
133
|
+
pending.delete(decision.requestId);
|
|
134
|
+
const event = ApprovalDecisionRecorded.make({
|
|
135
|
+
sequence: current.events.length,
|
|
136
|
+
recordedAt,
|
|
137
|
+
decision
|
|
138
|
+
});
|
|
139
|
+
return [void 0, {
|
|
140
|
+
events: [...current.events, event],
|
|
141
|
+
pending
|
|
142
|
+
}];
|
|
143
|
+
});
|
|
144
|
+
if (error !== void 0) return yield* error;
|
|
145
|
+
}),
|
|
146
|
+
events: Ref.get(state).pipe(Effect.map((current) => current.events))
|
|
147
|
+
});
|
|
148
|
+
}));
|
|
149
|
+
/** Construct an ApprovalRequest only after decoded input passes the configured Redactor. */
|
|
150
|
+
const makeApprovalRequest = Effect.fn("makeApprovalRequest")(function* (draft, decodedToolInput) {
|
|
151
|
+
const redactedInputPreview = yield* (yield* Redactor).redact(decodedToolInput);
|
|
152
|
+
return ApprovalRequest.make({
|
|
153
|
+
requestId: draft.requestId,
|
|
154
|
+
runId: draft.runId,
|
|
155
|
+
threadId: draft.threadId,
|
|
156
|
+
toolCallId: draft.toolCallId,
|
|
157
|
+
toolName: draft.toolName,
|
|
158
|
+
actionSummary: draft.actionSummary,
|
|
159
|
+
resourceTargets: draft.resourceTargets,
|
|
160
|
+
risk: draft.risk,
|
|
161
|
+
expiresAt: draft.expiresAt,
|
|
162
|
+
denial: draft.denial,
|
|
163
|
+
redactedInputPreview
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
const timeoutDenial = (request, decidedAt) => ApprovalDenied.make({
|
|
167
|
+
requestId: request.requestId,
|
|
168
|
+
decidedAt,
|
|
169
|
+
resolver: "effect-agent.timeout-deny",
|
|
170
|
+
reason: "Approval request expired before a decision was available",
|
|
171
|
+
timedOut: true
|
|
172
|
+
});
|
|
173
|
+
/**
|
|
174
|
+
* Resolve with fail-closed deadline semantics and record request/decision audit
|
|
175
|
+
* events around every successful, denied, timed-out, or resolver-failed
|
|
176
|
+
* resolution. A resolver infrastructure failure records a synthetic denial so
|
|
177
|
+
* the audit reservation is released before the typed error propagates.
|
|
178
|
+
*/
|
|
179
|
+
const requestApproval = Effect.fn("requestApproval")(function* (request) {
|
|
180
|
+
const audit = yield* ApprovalAudit;
|
|
181
|
+
yield* audit.recordRequest(request);
|
|
182
|
+
const nowMillis = yield* Clock.currentTimeMillis;
|
|
183
|
+
const now = DateTime.toUtc(DateTime.makeUnsafe(nowMillis));
|
|
184
|
+
const remainingMillis = DateTime.toEpochMillis(request.expiresAt) - nowMillis;
|
|
185
|
+
let decision;
|
|
186
|
+
if (remainingMillis <= 0) decision = timeoutDenial(request, now);
|
|
187
|
+
else decision = yield* (yield* ApprovalResolver).request(request).pipe(Effect.timeoutOrElse({
|
|
188
|
+
duration: Duration.millis(remainingMillis),
|
|
189
|
+
orElse: () => Clock.currentTimeMillis.pipe(Effect.map((millis) => timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis)))))
|
|
190
|
+
}), Effect.catchTag("ApprovalTimedOut", () => Clock.currentTimeMillis.pipe(Effect.map((millis) => timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis)))))), Effect.tapError(() => Clock.currentTimeMillis.pipe(Effect.flatMap((millis) => audit.recordDecision(ApprovalDenied.make({
|
|
191
|
+
requestId: request.requestId,
|
|
192
|
+
decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),
|
|
193
|
+
resolver: "effect-agent.resolver-error",
|
|
194
|
+
reason: "Approval resolver failed before making a policy decision",
|
|
195
|
+
timedOut: false
|
|
196
|
+
}))))));
|
|
197
|
+
if (decision.requestId !== request.requestId) {
|
|
198
|
+
const mismatch = ApprovalDecisionMismatch.make({
|
|
199
|
+
expectedRequestId: request.requestId,
|
|
200
|
+
observedRequestId: decision.requestId
|
|
201
|
+
});
|
|
202
|
+
const denied = ApprovalDenied.make({
|
|
203
|
+
requestId: request.requestId,
|
|
204
|
+
decidedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),
|
|
205
|
+
resolver: "effect-agent.correlation-check",
|
|
206
|
+
reason: "Approval resolver returned a decision for another request",
|
|
207
|
+
timedOut: false
|
|
208
|
+
});
|
|
209
|
+
yield* audit.recordDecision(denied);
|
|
210
|
+
return yield* mismatch;
|
|
211
|
+
}
|
|
212
|
+
yield* audit.recordDecision(decision);
|
|
213
|
+
return decision;
|
|
214
|
+
});
|
|
215
|
+
/** Deterministic policy layer for tests and deny-by-default deployments. */
|
|
216
|
+
const ApprovalDenyAll = Layer.succeed(ApprovalResolver)({ request: (request) => Clock.currentTimeMillis.pipe(Effect.map((millis) => ApprovalDenied.make({
|
|
217
|
+
requestId: request.requestId,
|
|
218
|
+
decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),
|
|
219
|
+
resolver: "effect-agent.deny-all",
|
|
220
|
+
reason: "No approving policy is configured",
|
|
221
|
+
timedOut: false
|
|
222
|
+
}))) });
|
|
223
|
+
//#endregion
|
|
224
|
+
export { ApprovalApproved, ApprovalAudit, ApprovalAuditEvent, ApprovalAuditEvents, ApprovalAuditLimitExceeded, ApprovalAuditMemoryLive, ApprovalDecision, ApprovalDecisionMismatch, ApprovalDecisionRecorded, ApprovalDenied, ApprovalDenyAll, ApprovalRequest, ApprovalRequestDraft, ApprovalRequestRecorded, ApprovalResolver, ApprovalResolverError, ApprovalTimedOut, makeApprovalRequest, requestApproval, Approval_exports as t };
|
|
225
|
+
|
|
226
|
+
//# sourceMappingURL=Approval.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Approval.mjs","names":[],"sources":["../../src/capabilities/Approval.ts"],"sourcesContent":["import { Clock, Context, DateTime, Duration, Effect, Layer, Ref, Schema } from \"effect\";\n\nimport { ThreadId, RunId, ToolCallId } from \"../core/Identifiers.ts\";\nimport { utf8ByteLength } from \"../core/internal/utf8.ts\";\nimport { RedactedPreview, Redactor, type RedactionError } from \"./Redaction.ts\";\n\nconst MAX_APPROVAL_TARGETS = 32;\nconst MAX_APPROVAL_TARGET_BYTES = 64 * 1024;\nconst MAX_APPROVAL_AUDIT_EVENTS = 2_048;\n\nconst ApprovalTargets = Schema.Array(Schema.String.check(Schema.isMaxLength(2 * 1024)))\n .check(Schema.isMaxLength(MAX_APPROVAL_TARGETS))\n .pipe(\n Schema.refine(\n (targets): targets is ReadonlyArray<string> =>\n targets.reduce((total, target) => total + utf8ByteLength(target), 0) <=\n MAX_APPROVAL_TARGET_BYTES,\n { expected: `approval targets totaling at most ${MAX_APPROVAL_TARGET_BYTES} UTF-8 bytes` },\n ),\n );\n\nconst ApprovalRequestFields = {\n requestId: Schema.NonEmptyString,\n runId: RunId,\n threadId: ThreadId,\n toolCallId: ToolCallId,\n toolName: Schema.NonEmptyString,\n actionSummary: Schema.String.check(Schema.isMaxLength(2 * 1024)),\n resourceTargets: ApprovalTargets,\n risk: Schema.Literals([\"low\", \"medium\", \"high\", \"critical\"]),\n expiresAt: Schema.DateTimeUtcFromString,\n denial: Schema.Literals([\"terminal\", \"recoverable\"]),\n} as const;\n\n/** Decoded approval metadata before the Redactor owns Tool input preview creation. */\nexport class ApprovalRequestDraft extends Schema.Class<ApprovalRequestDraft>(\n \"@effect-agent/capabilities/ApprovalRequestDraft\",\n)(ApprovalRequestFields) {}\n\n/** Fully decoded, structurally redacted approval input. */\nexport class ApprovalRequest extends Schema.Class<ApprovalRequest>(\n \"@effect-agent/capabilities/ApprovalRequest\",\n)({\n ...ApprovalRequestFields,\n redactedInputPreview: RedactedPreview,\n}) {}\n\nexport class ApprovalApproved extends Schema.TaggedClass<ApprovalApproved>()(\"ApprovalApproved\", {\n requestId: Schema.NonEmptyString,\n decidedAt: Schema.DateTimeUtcFromString,\n resolver: Schema.NonEmptyString,\n}) {}\n\nexport class ApprovalDenied extends Schema.TaggedClass<ApprovalDenied>()(\"ApprovalDenied\", {\n requestId: Schema.NonEmptyString,\n decidedAt: Schema.DateTimeUtcFromString,\n resolver: Schema.NonEmptyString,\n reason: Schema.String.check(Schema.isMaxLength(2 * 1024)),\n timedOut: Schema.Boolean,\n}) {}\n\nexport const ApprovalDecision = Schema.Union([ApprovalApproved, ApprovalDenied]);\nexport type ApprovalDecision = typeof ApprovalDecision.Type;\n\n/** Resolver infrastructure failed before it could make a policy decision. */\nexport class ApprovalResolverError extends Schema.TaggedError<ApprovalResolverError>()(\n \"ApprovalResolverError\",\n { message: Schema.String },\n) {}\n\n/** The resolver explicitly observed its request deadline; callers turn this into a denial. */\nexport class ApprovalTimedOut extends Schema.TaggedError<ApprovalTimedOut>()(\"ApprovalTimedOut\", {\n requestId: Schema.NonEmptyString,\n}) {}\n\n/** First-class approval authority. Interactive, policy, and remote adapters implement this service. */\nexport class ApprovalResolver extends Context.Service<\n ApprovalResolver,\n {\n readonly request: (\n request: ApprovalRequest,\n ) => Effect.Effect<ApprovalDecision, ApprovalResolverError | ApprovalTimedOut>;\n }\n>()(\"@effect-agent/capabilities/ApprovalResolver\") {}\n\nexport class ApprovalRequestRecorded extends Schema.TaggedClass<ApprovalRequestRecorded>()(\n \"ApprovalRequestRecorded\",\n {\n sequence: Schema.Natural,\n recordedAt: Schema.DateTimeUtcFromString,\n request: ApprovalRequest,\n },\n) {}\n\nexport class ApprovalDecisionRecorded extends Schema.TaggedClass<ApprovalDecisionRecorded>()(\n \"ApprovalDecisionRecorded\",\n {\n sequence: Schema.Natural,\n recordedAt: Schema.DateTimeUtcFromString,\n decision: ApprovalDecision,\n },\n) {}\n\nexport const ApprovalAuditEvent = Schema.Union([ApprovalRequestRecorded, ApprovalDecisionRecorded]);\nexport type ApprovalAuditEvent = typeof ApprovalAuditEvent.Type;\n\nexport const ApprovalAuditEvents = Schema.Array(ApprovalAuditEvent).check(\n Schema.isMaxLength(MAX_APPROVAL_AUDIT_EVENTS),\n);\n\nexport class ApprovalAuditLimitExceeded extends Schema.TaggedError<ApprovalAuditLimitExceeded>()(\n \"ApprovalAuditLimitExceeded\",\n {\n limitValue: Schema.Natural,\n observedValue: Schema.Natural,\n },\n) {}\n\n/** A resolver or audit sink tried to associate a decision with another request. */\nexport class ApprovalDecisionMismatch extends Schema.TaggedError<ApprovalDecisionMismatch>()(\n \"ApprovalDecisionMismatch\",\n {\n expectedRequestId: Schema.NonEmptyString,\n observedRequestId: Schema.NonEmptyString,\n },\n) {}\n\n/** P2 semantic audit sink; durable runtimes replace this with canonical records. */\nexport class ApprovalAudit extends Context.Service<\n ApprovalAudit,\n {\n readonly recordRequest: (\n request: ApprovalRequest,\n ) => Effect.Effect<void, ApprovalAuditLimitExceeded>;\n readonly recordDecision: (\n decision: ApprovalDecision,\n ) => Effect.Effect<void, ApprovalAuditLimitExceeded | ApprovalDecisionMismatch>;\n readonly events: Effect.Effect<ReadonlyArray<ApprovalAuditEvent>>;\n }\n>()(\"@effect-agent/capabilities/ApprovalAudit\") {}\n\n/** Scoped in-memory audit projection with monotonic event order. */\nexport const ApprovalAuditMemoryLive = Layer.effect(\n ApprovalAudit,\n Effect.gen(function* () {\n interface AuditState {\n readonly events: ReadonlyArray<ApprovalAuditEvent>;\n readonly pending: ReadonlySet<string>;\n }\n const state = yield* Ref.make<AuditState>({ events: [], pending: new Set() });\n\n return ApprovalAudit.of({\n recordRequest: (request) =>\n Effect.gen(function* () {\n const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n const error = yield* Ref.modify(state, (current) => {\n // Each accepted request atomically reserves room for its decision.\n const reservedSize = current.events.length + current.pending.size + 2;\n\n if (reservedSize > MAX_APPROVAL_AUDIT_EVENTS) {\n return [\n ApprovalAuditLimitExceeded.make({\n limitValue: MAX_APPROVAL_AUDIT_EVENTS,\n observedValue: reservedSize,\n }),\n current,\n ] as const;\n }\n\n const event = ApprovalRequestRecorded.make({\n sequence: current.events.length,\n recordedAt,\n request,\n });\n\n return [\n undefined,\n {\n events: [...current.events, event],\n pending: new Set(current.pending).add(request.requestId),\n },\n ] as const;\n });\n\n if (error !== undefined) return yield* error;\n }),\n recordDecision: (decision) =>\n Effect.gen(function* () {\n const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n const error = yield* Ref.modify(state, (current) => {\n if (!current.pending.has(decision.requestId)) {\n return [\n ApprovalDecisionMismatch.make({\n expectedRequestId: [...current.pending][0] ?? \"no-pending-request\",\n observedRequestId: decision.requestId,\n }),\n current,\n ] as const;\n }\n const pending = new Set(current.pending);\n\n pending.delete(decision.requestId);\n\n const event = ApprovalDecisionRecorded.make({\n sequence: current.events.length,\n recordedAt,\n decision,\n });\n\n return [\n undefined,\n {\n events: [...current.events, event],\n pending,\n },\n ] as const;\n });\n\n if (error !== undefined) return yield* error;\n }),\n events: Ref.get(state).pipe(Effect.map((current) => current.events)),\n });\n }),\n);\n\n/** Construct an ApprovalRequest only after decoded input passes the configured Redactor. */\nexport const makeApprovalRequest = Effect.fn(\"makeApprovalRequest\")(function* (\n draft: ApprovalRequestDraft,\n decodedToolInput: unknown,\n): Effect.fn.Return<ApprovalRequest, RedactionError, Redactor> {\n const redactor = yield* Redactor;\n const redactedInputPreview = yield* redactor.redact(decodedToolInput);\n\n return ApprovalRequest.make({\n requestId: draft.requestId,\n runId: draft.runId,\n threadId: draft.threadId,\n toolCallId: draft.toolCallId,\n toolName: draft.toolName,\n actionSummary: draft.actionSummary,\n resourceTargets: draft.resourceTargets,\n risk: draft.risk,\n expiresAt: draft.expiresAt,\n denial: draft.denial,\n redactedInputPreview,\n });\n});\n\nconst timeoutDenial = (request: ApprovalRequest, decidedAt: DateTime.Utc): ApprovalDenied =>\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt,\n resolver: \"effect-agent.timeout-deny\",\n reason: \"Approval request expired before a decision was available\",\n timedOut: true,\n });\n\n/**\n * Resolve with fail-closed deadline semantics and record request/decision audit\n * events around every successful, denied, timed-out, or resolver-failed\n * resolution. A resolver infrastructure failure records a synthetic denial so\n * the audit reservation is released before the typed error propagates.\n */\nexport const requestApproval = Effect.fn(\"requestApproval\")(function* (request: ApprovalRequest) {\n const audit = yield* ApprovalAudit;\n\n yield* audit.recordRequest(request);\n const nowMillis = yield* Clock.currentTimeMillis;\n const now = DateTime.toUtc(DateTime.makeUnsafe(nowMillis));\n const remainingMillis = DateTime.toEpochMillis(request.expiresAt) - nowMillis;\n\n let decision: ApprovalDecision;\n\n if (remainingMillis <= 0) {\n decision = timeoutDenial(request, now);\n } else {\n const resolver = yield* ApprovalResolver;\n\n decision = yield* resolver.request(request).pipe(\n Effect.timeoutOrElse({\n duration: Duration.millis(remainingMillis),\n orElse: () =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis))),\n ),\n ),\n }),\n Effect.catchTag(\"ApprovalTimedOut\", () =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis))),\n ),\n ),\n ),\n Effect.tapError(() =>\n Clock.currentTimeMillis.pipe(\n Effect.flatMap((millis) =>\n audit.recordDecision(\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),\n resolver: \"effect-agent.resolver-error\",\n reason: \"Approval resolver failed before making a policy decision\",\n timedOut: false,\n }),\n ),\n ),\n ),\n ),\n );\n }\n if (decision.requestId !== request.requestId) {\n const mismatch = ApprovalDecisionMismatch.make({\n expectedRequestId: request.requestId,\n observedRequestId: decision.requestId,\n });\n\n const denied = ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),\n resolver: \"effect-agent.correlation-check\",\n reason: \"Approval resolver returned a decision for another request\",\n timedOut: false,\n });\n\n yield* audit.recordDecision(denied);\n\n return yield* mismatch;\n }\n yield* audit.recordDecision(decision);\n\n return decision;\n});\n\n/** Deterministic policy layer for tests and deny-by-default deployments. */\nexport const ApprovalDenyAll = Layer.succeed(ApprovalResolver)({\n request: (request) =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),\n resolver: \"effect-agent.deny-all\",\n reason: \"No approving policy is configured\",\n timedOut: false,\n }),\n ),\n ),\n});\n"],"mappings":"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"}
|