effect-agent 0.1.0-beta.115 → 0.1.0-beta.116
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/{AgentRuntime-DyZv8uu2.d.mts → AgentRuntime-BUxDdLpw.d.mts} +2 -2
- package/dist/{DurableAgentRuntime-tNrkJZNo.mjs → DurableAgentRuntime-DQqxmn2h.mjs} +39 -10
- package/dist/DurableAgentRuntime-DQqxmn2h.mjs.map +1 -0
- package/dist/{EventSource-DPRdlvhV.d.mts → EventSource-hk1sVGsO.d.mts} +3 -3
- package/dist/{PreparedInputAdmission-DqQUjA9k.d.mts → PreparedInputAdmission-DXvFh8zZ.d.mts} +4 -4
- package/dist/{Records-Byeb70tt.d.mts → Records-3uLornLz.d.mts} +3 -3
- package/dist/{Schedule-krSnBcbU.d.mts → Schedule-yVT2CmKT.d.mts} +2 -2
- package/dist/{Subagent-gw9KD6eb.d.mts → Subagent-CNik9RiA.d.mts} +3 -3
- package/dist/{Subagent-Di8EEjWZ.mjs → Subagent-DCrB7an7.mjs} +2 -3
- package/dist/Subagent-DCrB7an7.mjs.map +1 -0
- package/dist/{SubagentHost-P9zB_TfV.d.mts → SubagentHost-4WB8Hj0C.d.mts} +13 -4
- package/dist/{Subscription-Xnwd42Sm.d.mts → Subscription-CCvcJGlB.d.mts} +3 -3
- package/dist/{SubscriptionInput-CqtJ58vl.d.mts → SubscriptionInput-BlE85a8M.d.mts} +3 -3
- package/dist/capabilities/Subagent.d.mts +1 -1
- package/dist/capabilities/Subagent.mjs +1 -1
- package/dist/durable/ActivityStore.d.mts +1 -1
- package/dist/durable/Admin.d.mts +1 -1
- package/dist/durable/AgentRegistration.d.mts +1 -1
- package/dist/durable/Certification.d.mts +1 -1
- package/dist/durable/CommittedActivity.d.mts +1 -1
- package/dist/durable/Digest.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.d.mts +1 -1
- package/dist/durable/DurableAgentRuntime.mjs +1 -1
- package/dist/durable/EventSource.d.mts +1 -1
- package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
- package/dist/durable/MessageDelivery.d.mts +3 -3
- package/dist/durable/MessageDeliveryStoreConformance.d.mts +39 -39
- package/dist/durable/PersistentHistory.d.mts +1 -1
- package/dist/durable/PreparedInputAdmission.d.mts +1 -1
- package/dist/durable/Records.d.mts +1 -1
- package/dist/durable/Recovery.d.mts +1 -1
- package/dist/durable/RunJournal.d.mts +1 -1
- package/dist/durable/Schedule.d.mts +1 -1
- package/dist/durable/ScheduleStoreConformance.d.mts +1 -1
- package/dist/durable/ScheduleTransition.d.mts +1 -1
- package/dist/durable/Scheduling.d.mts +2 -2
- package/dist/durable/SqlStorageV2Upgrade.d.mts +2 -2
- package/dist/durable/SqlSubscriptionStore.d.mts +2 -2
- package/dist/durable/SqlThreadNativeReads.d.mts +1 -1
- package/dist/durable/SubmissionLedger.d.mts +1 -1
- package/dist/durable/SubmissionLedgerConformance.d.mts +1 -1
- package/dist/durable/SubmissionStatus.d.mts +1 -1
- package/dist/durable/Subscription.d.mts +1 -1
- package/dist/durable/SubscriptionInput.d.mts +1 -1
- package/dist/durable/SubscriptionStoreConformance.d.mts +1 -1
- package/dist/durable/SubscriptionTools.d.mts +3 -3
- package/dist/durable/SubscriptionTransition.d.mts +1 -1
- package/dist/durable/Subscriptions.d.mts +5 -5
- package/dist/durable/ThreadContextHistory.d.mts +1 -1
- package/dist/durable/ThreadContextHistoryProjection.d.mts +1 -1
- package/dist/durable/ThreadInvariants.d.mts +1 -1
- package/dist/durable/ThreadProjection.d.mts +1 -1
- package/dist/durable/ThreadProjectionMaintenance.d.mts +1 -1
- package/dist/durable/ThreadStore.d.mts +1 -1
- package/dist/durable/ThreadStoreConformance.d.mts +1 -1
- package/dist/durable/WorkerHost.d.mts +1 -1
- package/dist/engine/AgentRuntime.d.mts +1 -1
- package/dist/engine/SubagentHost.d.mts +2 -2
- package/dist/engine/SubagentHost.mjs.map +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/src/capabilities/internal/subagent-background.ts +1 -3
- package/src/durable/internal/worker-host.ts +76 -18
- package/src/engine/SubagentHost.ts +16 -3
- package/dist/DurableAgentRuntime-tNrkJZNo.mjs.map +0 -1
- package/dist/Subagent-Di8EEjWZ.mjs.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -46,28 +46,28 @@ import { t as MemoryRevalidation_d_exports } from "./core/MemoryRevalidation.mjs
|
|
|
46
46
|
import { t as SemanticMemoryIndex_d_exports } from "./core/SemanticMemoryIndex.mjs";
|
|
47
47
|
import { t as SemanticMemoryRevalidation_d_exports } from "./core/SemanticMemoryRevalidation.mjs";
|
|
48
48
|
import { t as SemanticMemory_d_exports } from "./capabilities/SemanticMemory.mjs";
|
|
49
|
-
import {
|
|
50
|
-
import { t as AgentRuntime_d_exports } from "./AgentRuntime-
|
|
49
|
+
import { s as SubagentHost_d_exports } from "./SubagentHost-4WB8Hj0C.mjs";
|
|
50
|
+
import { t as AgentRuntime_d_exports } from "./AgentRuntime-BUxDdLpw.mjs";
|
|
51
51
|
import { i as RunEventSink_d_exports } from "./RunEventSink-D5aVhISG.mjs";
|
|
52
|
-
import { v as Subagent_d_exports } from "./Subagent-
|
|
52
|
+
import { v as Subagent_d_exports } from "./Subagent-CNik9RiA.mjs";
|
|
53
53
|
import { t as ToolDiscovery_d_exports } from "./capabilities/ToolDiscovery.mjs";
|
|
54
54
|
import { D as PageCapture_d_exports } from "./PageCapture-Df8Xwskw.mjs";
|
|
55
55
|
import { t as WebCapture_d_exports } from "./capabilities/WebCapture.mjs";
|
|
56
56
|
import { t as WebSearch_d_exports } from "./capabilities/WebSearch.mjs";
|
|
57
57
|
import { t as IdGenerator_d_exports } from "./core/IdGenerator.mjs";
|
|
58
58
|
import { t as Memory_d_exports } from "./core/Memory.mjs";
|
|
59
|
-
import { Bn as RunJournal_d_exports, Br as Admin_d_exports, Co as SubmissionLedger_d_exports, Fn as SubmissionStatus_d_exports, N as Records_d_exports, Qi as Recovery_d_exports, Si as Digest_d_exports, li as AgentRegistration_d_exports, wn as ThreadStore_d_exports, yt as DurableAgentRuntime_d_exports } from "./Records-
|
|
59
|
+
import { Bn as RunJournal_d_exports, Br as Admin_d_exports, Co as SubmissionLedger_d_exports, Fn as SubmissionStatus_d_exports, N as Records_d_exports, Qi as Recovery_d_exports, Si as Digest_d_exports, li as AgentRegistration_d_exports, wn as ThreadStore_d_exports, yt as DurableAgentRuntime_d_exports } from "./Records-3uLornLz.mjs";
|
|
60
60
|
import { t as DurableFailpoint_d_exports } from "./DurableFailpoint-Cnr3wx1L.mjs";
|
|
61
61
|
import { a as OperationAuthorizer_d_exports } from "./OperationAuthorizer-TzcQtpX5.mjs";
|
|
62
62
|
import { l as ToolReconciler_d_exports } from "./ToolReconciler-BmVRAHKs.mjs";
|
|
63
63
|
import { n as WakeScheduler_d_exports } from "./WakeScheduler-EjUF-GhC.mjs";
|
|
64
64
|
import { t as ActivityStore_d_exports } from "./durable/ActivityStore.mjs";
|
|
65
65
|
import { t as CommittedActivity_d_exports } from "./durable/CommittedActivity.mjs";
|
|
66
|
-
import { R as Schedule_d_exports } from "./Schedule-
|
|
67
|
-
import { k as Subscription_d_exports } from "./Subscription-
|
|
68
|
-
import { n as EventSource_d_exports } from "./EventSource-
|
|
69
|
-
import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-
|
|
70
|
-
import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-
|
|
66
|
+
import { R as Schedule_d_exports } from "./Schedule-yVT2CmKT.mjs";
|
|
67
|
+
import { k as Subscription_d_exports } from "./Subscription-CCvcJGlB.mjs";
|
|
68
|
+
import { n as EventSource_d_exports } from "./EventSource-hk1sVGsO.mjs";
|
|
69
|
+
import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-DXvFh8zZ.mjs";
|
|
70
|
+
import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-BlE85a8M.mjs";
|
|
71
71
|
import { t as Subscriptions_d_exports } from "./durable/Subscriptions.mjs";
|
|
72
72
|
import { t as MessageDelivery_d_exports } from "./durable/MessageDelivery.mjs";
|
|
73
73
|
import { t as PersistentHistory_d_exports } from "./durable/PersistentHistory.mjs";
|
package/dist/index.mjs
CHANGED
|
@@ -57,7 +57,7 @@ import { t as RunHooks_exports } from "./capabilities/RunHooks.mjs";
|
|
|
57
57
|
import { t as SemanticMemoryIndex_exports } from "./core/SemanticMemoryIndex.mjs";
|
|
58
58
|
import { t as SemanticMemoryRevalidation_exports } from "./core/SemanticMemoryRevalidation.mjs";
|
|
59
59
|
import { t as SemanticMemory_exports } from "./capabilities/SemanticMemory.mjs";
|
|
60
|
-
import { r as Subagent_exports } from "./Subagent-
|
|
60
|
+
import { r as Subagent_exports } from "./Subagent-DCrB7an7.mjs";
|
|
61
61
|
import { t as ToolDiscovery_exports } from "./capabilities/ToolDiscovery.mjs";
|
|
62
62
|
import { t as ToolExposure_exports } from "./ToolExposure.mjs";
|
|
63
63
|
import { t as WebCapture_exports } from "./capabilities/WebCapture.mjs";
|
|
@@ -69,7 +69,7 @@ import { t as Recovery_exports } from "./durable/Recovery.mjs";
|
|
|
69
69
|
import { t as Admin_exports } from "./durable/Admin.mjs";
|
|
70
70
|
import { t as Digest_exports } from "./durable/Digest.mjs";
|
|
71
71
|
import { t as AgentRegistration_exports } from "./durable/AgentRegistration.mjs";
|
|
72
|
-
import { n as DurableAgentRuntime_exports } from "./DurableAgentRuntime-
|
|
72
|
+
import { n as DurableAgentRuntime_exports } from "./DurableAgentRuntime-DQqxmn2h.mjs";
|
|
73
73
|
import { n as RunJournal_exports } from "./RunJournal-BXrq0VIK.mjs";
|
|
74
74
|
import { t as ThreadStore_exports } from "./durable/ThreadStore.mjs";
|
|
75
75
|
import { t as CommittedActivity_exports } from "./durable/CommittedActivity.mjs";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"effect-agent","version":"0.1.0-beta.115","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./protected-browser":{"types":"./dist/sandbox/ProtectedBrowser.d.mts","default":"./dist/sandbox/ProtectedBrowser.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
1
|
+
{"name":"effect-agent","version":"0.1.0-beta.116","devDependencies":{"@effect/platform-node":"4.0.0-rc.116","@effect/vitest":"4.0.0-rc.116","effect":"4.0.0-rc.116","typescript":"7.0.2","vite-plus":"0.3.2"},"peerDependencies":{"effect":"^4.0.0-rc.116"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./activity-store":{"types":"./dist/durable/ActivityStore.d.mts","default":"./dist/durable/ActivityStore.mjs"},"./admin":{"types":"./dist/durable/Admin.d.mts","default":"./dist/durable/Admin.mjs"},"./agent":{"types":"./dist/core/Agent.d.mts","default":"./dist/core/Agent.mjs"},"./agent-error":{"types":"./dist/core/AgentError.d.mts","default":"./dist/core/AgentError.mjs"},"./agent-policy":{"types":"./dist/core/AgentPolicy.d.mts","default":"./dist/core/AgentPolicy.mjs"},"./agent-registration":{"types":"./dist/durable/AgentRegistration.d.mts","default":"./dist/durable/AgentRegistration.mjs"},"./agent-runtime":{"types":"./dist/engine/AgentRuntime.d.mts","default":"./dist/engine/AgentRuntime.mjs"},"./agent-updates":{"types":"./dist/core/AgentUpdates.d.mts","default":"./dist/core/AgentUpdates.mjs"},"./approval":{"types":"./dist/capabilities/Approval.d.mts","default":"./dist/capabilities/Approval.mjs"},"./budget":{"types":"./dist/capabilities/Budget.d.mts","default":"./dist/capabilities/Budget.mjs"},"./code-executor":{"types":"./dist/sandbox/CodeExecutor.d.mts","default":"./dist/sandbox/CodeExecutor.mjs"},"./code-mode":{"types":"./dist/capabilities/CodeMode.d.mts","default":"./dist/capabilities/CodeMode.mjs"},"./commands":{"types":"./dist/capabilities/Commands.d.mts","default":"./dist/capabilities/Commands.mjs"},"./committed-activity":{"types":"./dist/durable/CommittedActivity.d.mts","default":"./dist/durable/CommittedActivity.mjs"},"./compaction":{"types":"./dist/engine/Compaction.d.mts","default":"./dist/engine/Compaction.mjs"},"./context-compactor":{"types":"./dist/engine/ContextCompactor.d.mts","default":"./dist/engine/ContextCompactor.mjs"},"./context-history":{"types":"./dist/engine/ContextHistory.d.mts","default":"./dist/engine/ContextHistory.mjs"},"./context-tools":{"types":"./dist/capabilities/ContextTools.d.mts","default":"./dist/capabilities/ContextTools.mjs"},"./context-window":{"types":"./dist/engine/ContextWindow.d.mts","default":"./dist/engine/ContextWindow.mjs"},"./digest":{"types":"./dist/durable/Digest.d.mts","default":"./dist/durable/Digest.mjs"},"./durable-agent-runtime":{"types":"./dist/durable/DurableAgentRuntime.d.mts","default":"./dist/durable/DurableAgentRuntime.mjs"},"./durable-failpoint":{"types":"./dist/durable/DurableFailpoint.d.mts","default":"./dist/durable/DurableFailpoint.mjs"},"./durable-step":{"types":"./dist/engine/DurableStep.d.mts","default":"./dist/engine/DurableStep.mjs"},"./event-source":{"types":"./dist/durable/EventSource.d.mts","default":"./dist/durable/EventSource.mjs"},"./failure-diagnostic":{"types":"./dist/core/FailureDiagnostic.d.mts","default":"./dist/core/FailureDiagnostic.mjs"},"./git-hub-workflow-source":{"types":"./dist/durable/GitHubWorkflowSource.d.mts","default":"./dist/durable/GitHubWorkflowSource.mjs"},"./id-generator":{"types":"./dist/core/IdGenerator.d.mts","default":"./dist/core/IdGenerator.mjs"},"./identifiers":{"types":"./dist/core/Identifiers.d.mts","default":"./dist/core/Identifiers.mjs"},"./in-memory":{"types":"./dist/InMemory.d.mts","default":"./dist/InMemory.mjs"},"./interactive-browser":{"types":"./dist/sandbox/InteractiveBrowser.d.mts","default":"./dist/sandbox/InteractiveBrowser.mjs"},"./mcp":{"types":"./dist/capabilities/Mcp.d.mts","default":"./dist/capabilities/Mcp.mjs"},"./mcp-client":{"types":"./dist/capabilities/McpClient.d.mts","default":"./dist/capabilities/McpClient.mjs"},"./memory":{"types":"./dist/core/Memory.d.mts","default":"./dist/core/Memory.mjs"},"./memory-namespace":{"types":"./dist/core/MemoryNamespace.d.mts","default":"./dist/core/MemoryNamespace.mjs"},"./memory-notes":{"types":"./dist/capabilities/MemoryNotes.d.mts","default":"./dist/capabilities/MemoryNotes.mjs"},"./memory-reference":{"types":"./dist/core/MemoryReference.d.mts","default":"./dist/core/MemoryReference.mjs"},"./memory-revalidation":{"types":"./dist/core/MemoryRevalidation.d.mts","default":"./dist/core/MemoryRevalidation.mjs"},"./memory-store":{"types":"./dist/core/MemoryStore.d.mts","default":"./dist/core/MemoryStore.mjs"},"./message-delivery":{"types":"./dist/durable/MessageDelivery.d.mts","default":"./dist/durable/MessageDelivery.mjs"},"./messaging":{"types":"./dist/capabilities/Messaging.d.mts","default":"./dist/capabilities/Messaging.mjs"},"./messaging-host":{"types":"./dist/engine/MessagingHost.d.mts","default":"./dist/engine/MessagingHost.mjs"},"./model-context":{"types":"./dist/capabilities/ModelContext.d.mts","default":"./dist/capabilities/ModelContext.mjs"},"./operation-authorizer":{"types":"./dist/durable/OperationAuthorizer.d.mts","default":"./dist/durable/OperationAuthorizer.mjs"},"./output":{"types":"./dist/engine/Output.d.mts","default":"./dist/engine/Output.mjs"},"./page-capture":{"types":"./dist/sandbox/PageCapture.d.mts","default":"./dist/sandbox/PageCapture.mjs"},"./page-crawl":{"types":"./dist/sandbox/PageCrawl.d.mts","default":"./dist/sandbox/PageCrawl.mjs"},"./page-screenshot":{"types":"./dist/sandbox/PageScreenshot.d.mts","default":"./dist/sandbox/PageScreenshot.mjs"},"./persistent-history":{"types":"./dist/durable/PersistentHistory.d.mts","default":"./dist/durable/PersistentHistory.mjs"},"./prepared-input-admission":{"types":"./dist/durable/PreparedInputAdmission.d.mts","default":"./dist/durable/PreparedInputAdmission.mjs"},"./protected-browser":{"types":"./dist/sandbox/ProtectedBrowser.d.mts","default":"./dist/sandbox/ProtectedBrowser.mjs"},"./receipt":{"types":"./dist/core/Receipt.d.mts","default":"./dist/core/Receipt.mjs"},"./records":{"types":"./dist/durable/Records.d.mts","default":"./dist/durable/Records.mjs"},"./recovery":{"types":"./dist/durable/Recovery.d.mts","default":"./dist/durable/Recovery.mjs"},"./redaction":{"types":"./dist/capabilities/Redaction.d.mts","default":"./dist/capabilities/Redaction.mjs"},"./remembering":{"types":"./dist/capabilities/Remembering.d.mts","default":"./dist/capabilities/Remembering.mjs"},"./remembering-store":{"types":"./dist/core/RememberingStore.d.mts","default":"./dist/core/RememberingStore.mjs"},"./run-event":{"types":"./dist/core/RunEvent.d.mts","default":"./dist/core/RunEvent.mjs"},"./run-event-sink":{"types":"./dist/engine/RunEventSink.d.mts","default":"./dist/engine/RunEventSink.mjs"},"./run-hooks":{"types":"./dist/capabilities/RunHooks.d.mts","default":"./dist/capabilities/RunHooks.mjs"},"./run-journal":{"types":"./dist/durable/RunJournal.d.mts","default":"./dist/durable/RunJournal.mjs"},"./run-options":{"types":"./dist/engine/RunOptions.d.mts","default":"./dist/engine/RunOptions.mjs"},"./run-policy-usage":{"types":"./dist/core/RunPolicyUsage.d.mts","default":"./dist/core/RunPolicyUsage.mjs"},"./sandbox":{"types":"./dist/sandbox/Sandbox.d.mts","default":"./dist/sandbox/Sandbox.mjs"},"./schedule":{"types":"./dist/durable/Schedule.d.mts","default":"./dist/durable/Schedule.mjs"},"./schedule-transition":{"types":"./dist/durable/ScheduleTransition.d.mts","default":"./dist/durable/ScheduleTransition.mjs"},"./scheduling":{"types":"./dist/durable/Scheduling.d.mts","default":"./dist/durable/Scheduling.mjs"},"./semantic-memory":{"types":"./dist/capabilities/SemanticMemory.d.mts","default":"./dist/capabilities/SemanticMemory.mjs"},"./semantic-memory-index":{"types":"./dist/core/SemanticMemoryIndex.d.mts","default":"./dist/core/SemanticMemoryIndex.mjs"},"./semantic-memory-revalidation":{"types":"./dist/core/SemanticMemoryRevalidation.d.mts","default":"./dist/core/SemanticMemoryRevalidation.mjs"},"./sql-thread-native-reads":{"types":"./dist/durable/SqlThreadNativeReads.d.mts","default":"./dist/durable/SqlThreadNativeReads.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.mjs"},"./sql-message-delivery-store":{"types":"./dist/durable/SqlMessageDeliveryStore.d.mts","default":"./dist/durable/SqlMessageDeliveryStore.mjs"},"./sql-storage-v2-upgrade":{"types":"./dist/durable/SqlStorageV2Upgrade.d.mts","default":"./dist/durable/SqlStorageV2Upgrade.mjs"},"./sql-subscription-store":{"types":"./dist/durable/SqlSubscriptionStore.d.mts","default":"./dist/durable/SqlSubscriptionStore.mjs"},"./subagent":{"types":"./dist/capabilities/Subagent.d.mts","default":"./dist/capabilities/Subagent.mjs"},"./subagent-contract":{"types":"./dist/core/SubagentContract.d.mts","default":"./dist/core/SubagentContract.mjs"},"./subagent-host":{"types":"./dist/engine/SubagentHost.d.mts","default":"./dist/engine/SubagentHost.mjs"},"./subagent-reservations":{"types":"./dist/capabilities/SubagentReservations.d.mts","default":"./dist/capabilities/SubagentReservations.mjs"},"./submission-ledger":{"types":"./dist/durable/SubmissionLedger.d.mts","default":"./dist/durable/SubmissionLedger.mjs"},"./submission-status":{"types":"./dist/durable/SubmissionStatus.d.mts","default":"./dist/durable/SubmissionStatus.mjs"},"./subscription":{"types":"./dist/durable/Subscription.d.mts","default":"./dist/durable/Subscription.mjs"},"./subscription-input":{"types":"./dist/durable/SubscriptionInput.d.mts","default":"./dist/durable/SubscriptionInput.mjs"},"./subscription-tools":{"types":"./dist/durable/SubscriptionTools.d.mts","default":"./dist/durable/SubscriptionTools.mjs"},"./subscription-transition":{"types":"./dist/durable/SubscriptionTransition.d.mts","default":"./dist/durable/SubscriptionTransition.mjs"},"./subscriptions":{"types":"./dist/durable/Subscriptions.d.mts","default":"./dist/durable/Subscriptions.mjs"},"./testing/certification":{"types":"./dist/durable/Certification.d.mts","default":"./dist/durable/Certification.mjs"},"./testing/durable-failpoint-test-control":{"types":"./dist/durable/DurableFailpointTestControl.d.mts","default":"./dist/durable/DurableFailpointTestControl.mjs"},"./testing/message-delivery-store-conformance":{"types":"./dist/durable/MessageDeliveryStoreConformance.d.mts","default":"./dist/durable/MessageDeliveryStoreConformance.mjs"},"./testing/schedule-store-conformance":{"types":"./dist/durable/ScheduleStoreConformance.d.mts","default":"./dist/durable/ScheduleStoreConformance.mjs"},"./testing/submission-ledger-conformance":{"types":"./dist/durable/SubmissionLedgerConformance.d.mts","default":"./dist/durable/SubmissionLedgerConformance.mjs"},"./testing/subscription-store-conformance":{"types":"./dist/durable/SubscriptionStoreConformance.d.mts","default":"./dist/durable/SubscriptionStoreConformance.mjs"},"./testing/thread-store-conformance":{"types":"./dist/durable/ThreadStoreConformance.d.mts","default":"./dist/durable/ThreadStoreConformance.mjs"},"./thread":{"types":"./dist/core/Thread.d.mts","default":"./dist/core/Thread.mjs"},"./thread-context-history":{"types":"./dist/durable/ThreadContextHistory.d.mts","default":"./dist/durable/ThreadContextHistory.mjs"},"./thread-context-history-projection":{"types":"./dist/durable/ThreadContextHistoryProjection.d.mts","default":"./dist/durable/ThreadContextHistoryProjection.mjs"},"./thread-history":{"types":"./dist/engine/ThreadHistory.d.mts","default":"./dist/engine/ThreadHistory.mjs"},"./thread-invariants":{"types":"./dist/durable/ThreadInvariants.d.mts","default":"./dist/durable/ThreadInvariants.mjs"},"./thread-projection":{"types":"./dist/durable/ThreadProjection.d.mts","default":"./dist/durable/ThreadProjection.mjs"},"./thread-projection-maintenance":{"types":"./dist/durable/ThreadProjectionMaintenance.d.mts","default":"./dist/durable/ThreadProjectionMaintenance.mjs"},"./thread-store":{"types":"./dist/durable/ThreadStore.d.mts","default":"./dist/durable/ThreadStore.mjs"},"./tool-broker":{"types":"./dist/engine/ToolBroker.d.mts","default":"./dist/engine/ToolBroker.mjs"},"./tool-discovery":{"types":"./dist/capabilities/ToolDiscovery.d.mts","default":"./dist/capabilities/ToolDiscovery.mjs"},"./tool-exposure":{"types":"./dist/ToolExposure.d.mts","default":"./dist/ToolExposure.mjs"},"./tool-reconciler":{"types":"./dist/durable/ToolReconciler.d.mts","default":"./dist/durable/ToolReconciler.mjs"},"./tool-result":{"types":"./dist/core/ToolResult.d.mts","default":"./dist/core/ToolResult.mjs"},"./usage":{"types":"./dist/core/Usage.d.mts","default":"./dist/core/Usage.mjs"},"./wake-scheduler":{"types":"./dist/durable/WakeScheduler.d.mts","default":"./dist/durable/WakeScheduler.mjs"},"./web-capture":{"types":"./dist/capabilities/WebCapture.d.mts","default":"./dist/capabilities/WebCapture.mjs"},"./web-search":{"types":"./dist/capabilities/WebSearch.d.mts","default":"./dist/capabilities/WebSearch.mjs"},"./worker":{"types":"./dist/core/Worker.d.mts","default":"./dist/core/Worker.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"}},"description":"Effect-native agents, execution, subagents, and sandbox contracts in one tree-shakeable package.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/effect-agent"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests"}}
|
|
@@ -366,13 +366,11 @@ const operations = <
|
|
|
366
366
|
Effect.mapError((cause) => projectionFailure("input", cause)),
|
|
367
367
|
);
|
|
368
368
|
|
|
369
|
-
const encodedInput = yield* prepare(parameters, caller);
|
|
370
|
-
|
|
371
369
|
const delivery = yield* validateDelivery(
|
|
372
370
|
validated,
|
|
373
371
|
yield* service.followUp({
|
|
374
372
|
encodedParameters,
|
|
375
|
-
encodedInput,
|
|
373
|
+
prepare: prepare(parameters, caller).pipe(Effect.map((encodedInput) => ({ encodedInput }))),
|
|
376
374
|
worker: validated,
|
|
377
375
|
target: declaration.target,
|
|
378
376
|
idempotencyKey: key,
|
|
@@ -15,7 +15,7 @@ import type * as Agent from "../../core/Agent.ts";
|
|
|
15
15
|
import { AgentPolicy } from "../../core/AgentPolicy.ts";
|
|
16
16
|
import { Update, UpdateError } from "../../core/AgentUpdates.ts";
|
|
17
17
|
import { ThreadId, type AgentId, type SubmissionId } from "../../core/Identifiers.ts";
|
|
18
|
-
import { MessageRef } from "../../core/Messaging.ts";
|
|
18
|
+
import { MessageRef, type MessageStatus } from "../../core/Messaging.ts";
|
|
19
19
|
import { IdempotencyKey, Receipt } from "../../core/Receipt.ts";
|
|
20
20
|
import { SubagentDelegationCaps, SubagentGrant } from "../../core/SubagentContract.ts";
|
|
21
21
|
import {
|
|
@@ -33,6 +33,8 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
type SubagentHost,
|
|
35
35
|
type DeferredStartWorkerRequest,
|
|
36
|
+
type DeferredFollowUpWorkerRequest,
|
|
37
|
+
type FollowUpWorkerRequest,
|
|
36
38
|
type StartWorkerRequest,
|
|
37
39
|
type WorkerObservation,
|
|
38
40
|
type WorkerReceiptRequest,
|
|
@@ -2363,36 +2365,92 @@ export const makeWorkerRuntime = Effect.fn("WorkerHost.make")(function* (
|
|
|
2363
2365
|
),
|
|
2364
2366
|
);
|
|
2365
2367
|
}),
|
|
2366
|
-
followUp: Effect.fn("WorkerHost.followUp")(function* (
|
|
2367
|
-
|
|
2368
|
-
|
|
2368
|
+
followUp: Effect.fn("WorkerHost.followUp")(function* <E = never, R = never>(
|
|
2369
|
+
command: FollowUpWorkerRequest | DeferredFollowUpWorkerRequest<E, R>,
|
|
2370
|
+
): Effect.fn.Return<MessageStatus, WorkerError | E, R> {
|
|
2371
|
+
const principal = yield* authorize("followUp", "send", command.worker);
|
|
2372
|
+
const origin = yield* findOrigin(command.worker, command.target, "followUp");
|
|
2369
2373
|
|
|
2370
|
-
|
|
2374
|
+
const currentPolicy = resolveTargetPolicy({
|
|
2371
2375
|
_tag: "RetainedWorker",
|
|
2372
|
-
definition:
|
|
2376
|
+
definition: command.target,
|
|
2373
2377
|
definitions: origin.targetDigests,
|
|
2374
2378
|
source: origin.source,
|
|
2375
2379
|
origin,
|
|
2376
2380
|
});
|
|
2377
2381
|
|
|
2378
|
-
yield*
|
|
2379
|
-
request.encodedInput,
|
|
2380
|
-
).pipe(Effect.mapError((cause) => failure("followUp", "corrupt", cause)));
|
|
2382
|
+
yield* currentPolicy;
|
|
2381
2383
|
|
|
2382
2384
|
const messageId = yield* messageIdFor([
|
|
2383
2385
|
context.source.threadId,
|
|
2384
|
-
|
|
2386
|
+
command.worker.threadId,
|
|
2385
2387
|
"followUp",
|
|
2386
|
-
|
|
2388
|
+
command.idempotencyKey,
|
|
2387
2389
|
]);
|
|
2388
2390
|
|
|
2389
|
-
return yield*
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2391
|
+
if (Option.isNone(deps.deliveries)) return yield* failure("followUp", "unavailable");
|
|
2392
|
+
const deliveries = deps.deliveries.value;
|
|
2393
|
+
|
|
2394
|
+
const retained = () =>
|
|
2395
|
+
deliveries
|
|
2396
|
+
.get({ ownerThreadId: context.source.threadId, messageId })
|
|
2397
|
+
.pipe(Effect.mapError(storageFailure("followUp")));
|
|
2398
|
+
|
|
2399
|
+
const replay = (saved: MessageDeliveryRecord) =>
|
|
2400
|
+
Effect.gen(function* () {
|
|
2401
|
+
const replayPrincipal = yield* authorize("followUp", "send", command.worker);
|
|
2402
|
+
|
|
2403
|
+
yield* currentPolicy;
|
|
2404
|
+
|
|
2405
|
+
return yield* send(
|
|
2406
|
+
origin,
|
|
2407
|
+
messageId,
|
|
2408
|
+
saved.envelope.input,
|
|
2409
|
+
command.encodedParameters,
|
|
2410
|
+
replayPrincipal,
|
|
2411
|
+
"followUp",
|
|
2412
|
+
);
|
|
2413
|
+
});
|
|
2414
|
+
|
|
2415
|
+
const existing = "prepare" in command ? yield* retained() : null;
|
|
2416
|
+
|
|
2417
|
+
if (existing !== null) return yield* replay(existing);
|
|
2418
|
+
|
|
2419
|
+
return yield* Effect.gen(function* () {
|
|
2420
|
+
const request =
|
|
2421
|
+
"prepare" in command ? { ...(yield* command.prepare), ...command } : command;
|
|
2422
|
+
|
|
2423
|
+
yield* Schema.decodeUnknownEffect(Schema.toEncoded(request.target.input))(
|
|
2424
|
+
request.encodedInput,
|
|
2425
|
+
).pipe(Effect.mapError((cause) => failure("followUp", "corrupt", cause)));
|
|
2426
|
+
|
|
2427
|
+
let sendPrincipal = principal;
|
|
2428
|
+
|
|
2429
|
+
if ("prepare" in command) {
|
|
2430
|
+
// Preparation can yield while authority changes, even when another writer saves equal input.
|
|
2431
|
+
sendPrincipal = yield* authorize("followUp", "send", command.worker);
|
|
2432
|
+
yield* currentPolicy;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
return yield* send(
|
|
2436
|
+
origin,
|
|
2437
|
+
messageId,
|
|
2438
|
+
request.encodedInput,
|
|
2439
|
+
request.encodedParameters,
|
|
2440
|
+
sendPrincipal,
|
|
2441
|
+
"followUp",
|
|
2442
|
+
);
|
|
2443
|
+
}).pipe(
|
|
2444
|
+
Effect.catch((error) =>
|
|
2445
|
+
Effect.gen(function* () {
|
|
2446
|
+
if (!("prepare" in command)) return yield* Effect.fail(error);
|
|
2447
|
+
// A concurrent first writer can retain the original correction during preparation.
|
|
2448
|
+
// Replay rechecks current authority before reusing its immutable envelope.
|
|
2449
|
+
const saved = yield* retained();
|
|
2450
|
+
|
|
2451
|
+
return saved === null ? yield* Effect.fail(error) : yield* replay(saved);
|
|
2452
|
+
}),
|
|
2453
|
+
),
|
|
2396
2454
|
);
|
|
2397
2455
|
}),
|
|
2398
2456
|
inspect: Effect.fn("WorkerHost.inspect")(function* (request) {
|
|
@@ -70,6 +70,18 @@ export interface FollowUpWorkerRequest {
|
|
|
70
70
|
readonly encodedParameters: unknown;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Like deferred starts, follow-ups prepare only after current authorization and retained-command
|
|
75
|
+
* lookup. Replays compare declared parameters and reuse the original input and worker authority.
|
|
76
|
+
* Preparation must be free of external effects because concurrent first admissions can prepare.
|
|
77
|
+
*/
|
|
78
|
+
export interface DeferredFollowUpWorkerRequest<E = never, R = never> extends Omit<
|
|
79
|
+
FollowUpWorkerRequest,
|
|
80
|
+
"encodedInput"
|
|
81
|
+
> {
|
|
82
|
+
readonly prepare: Effect.Effect<Pick<FollowUpWorkerRequest, "encodedInput">, E, R>;
|
|
83
|
+
}
|
|
84
|
+
|
|
73
85
|
export interface WorkerReceiptRequest {
|
|
74
86
|
readonly worker: WorkerRef;
|
|
75
87
|
readonly target: Agent.AnyDefinition;
|
|
@@ -157,9 +169,10 @@ export class SubagentHost extends Context.Service<
|
|
|
157
169
|
readonly start: <E = never, R = never>(
|
|
158
170
|
request: StartWorkerRequest | DeferredStartWorkerRequest<E, R>,
|
|
159
171
|
) => Effect.Effect<WorkerStarted, WorkerError | E, R>;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
172
|
+
/** Prepared callers retain strict input conflicts; deferred callers replay the saved capture. */
|
|
173
|
+
readonly followUp: <E = never, R = never>(
|
|
174
|
+
request: FollowUpWorkerRequest | DeferredFollowUpWorkerRequest<E, R>,
|
|
175
|
+
) => Effect.Effect<MessageStatus, WorkerError | E, R>;
|
|
163
176
|
readonly inspect: (
|
|
164
177
|
request: WorkerReceiptRequest | WorkerMessageRequest,
|
|
165
178
|
) => Effect.Effect<WorkerObservation | MessageStatus, WorkerError>;
|