effect-agent 0.1.0-beta.124 → 0.1.0-beta.126

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.
Files changed (80) hide show
  1. package/dist/{Records-D88mgvyS.d.mts → Admin-C34cVKlT.d.mts} +2908 -3941
  2. package/dist/{AgentRuntime-BUxDdLpw.d.mts → AgentRuntime-DEDvMkAR.d.mts} +2 -2
  3. package/dist/Digest-U69rDHuO.d.mts +22 -0
  4. package/dist/{DurableAgentRuntime-B-9w7jDt.mjs → DurableAgentRuntime-BydyN_n-.mjs} +89 -15
  5. package/dist/DurableAgentRuntime-BydyN_n-.mjs.map +1 -0
  6. package/dist/{EventSource-CnlZ3Kma.d.mts → EventSource-Bac0SxKL.d.mts} +3 -3
  7. package/dist/{PreparedInputAdmission-BQLGldl-.d.mts → PreparedInputAdmission-DcQGQ0Yp.d.mts} +4 -4
  8. package/dist/Records-B5GFWCpn.d.mts +1104 -0
  9. package/dist/{Schedule-BIOHA6RR.d.mts → Schedule-CtYREFnz.d.mts} +2 -2
  10. package/dist/{Subagent-DCrB7an7.mjs → Subagent-DJeZDrbD.mjs} +6 -2
  11. package/dist/Subagent-DJeZDrbD.mjs.map +1 -0
  12. package/dist/{Subagent-CNik9RiA.d.mts → Subagent-DRFyQxdb.d.mts} +21 -4
  13. package/dist/{SubagentHost-4WB8Hj0C.d.mts → SubagentHost-DQjHFGqH.d.mts} +10 -2
  14. package/dist/{Subscription-CRteOKRf.d.mts → Subscription-Bk2Smmqc.d.mts} +34 -3
  15. package/dist/{SubscriptionInput-oNcwTPti.d.mts → SubscriptionInput-ekbJz3pF.d.mts} +3 -3
  16. package/dist/capabilities/Subagent.d.mts +1 -1
  17. package/dist/capabilities/Subagent.mjs +1 -1
  18. package/dist/durable/ActivityStore.d.mts +1 -1
  19. package/dist/durable/Admin.d.mts +1 -1
  20. package/dist/durable/AgentRegistration.d.mts +1 -1
  21. package/dist/durable/Certification.d.mts +1 -1
  22. package/dist/durable/CommittedActivity.d.mts +3 -1
  23. package/dist/durable/Digest.d.mts +1 -1
  24. package/dist/durable/DurableAgentRuntime.d.mts +1 -1
  25. package/dist/durable/DurableAgentRuntime.mjs +1 -1
  26. package/dist/durable/EventSource.d.mts +1 -1
  27. package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
  28. package/dist/durable/MessageDelivery.d.mts +82 -41
  29. package/dist/durable/MessageDeliveryStoreConformance.d.mts +23 -1
  30. package/dist/durable/PersistentHistory.d.mts +1 -1
  31. package/dist/durable/PreparedInputAdmission.d.mts +1 -1
  32. package/dist/durable/Records.d.mts +2 -2
  33. package/dist/durable/Records.mjs +12 -2
  34. package/dist/durable/Records.mjs.map +1 -1
  35. package/dist/durable/Recovery.d.mts +1 -1
  36. package/dist/durable/RunJournal.d.mts +1 -1
  37. package/dist/durable/Schedule.d.mts +1 -1
  38. package/dist/durable/ScheduleStoreConformance.d.mts +1 -1
  39. package/dist/durable/ScheduleTransition.d.mts +1 -1
  40. package/dist/durable/Scheduling.d.mts +3 -2
  41. package/dist/durable/SqlStorageV2Upgrade.d.mts +2 -2
  42. package/dist/durable/SqlSubscriptionStore.d.mts +2 -2
  43. package/dist/durable/SqlThreadNativeReads.d.mts +2 -1
  44. package/dist/durable/SqlThreadNativeReads.mjs +1 -1
  45. package/dist/durable/SqlThreadNativeReads.mjs.map +1 -1
  46. package/dist/durable/SubmissionLedger.d.mts +1 -1
  47. package/dist/durable/SubmissionLedgerConformance.d.mts +2 -1
  48. package/dist/durable/SubmissionStatus.d.mts +1 -1
  49. package/dist/durable/Subscription.d.mts +1 -1
  50. package/dist/durable/SubscriptionInput.d.mts +1 -1
  51. package/dist/durable/SubscriptionStoreConformance.d.mts +1 -1
  52. package/dist/durable/SubscriptionTools.d.mts +4 -3
  53. package/dist/durable/SubscriptionTransition.d.mts +1 -1
  54. package/dist/durable/Subscriptions.d.mts +6 -5
  55. package/dist/durable/ThreadContextHistory.d.mts +1 -1
  56. package/dist/durable/ThreadContextHistoryProjection.d.mts +1 -1
  57. package/dist/durable/ThreadInvariants.d.mts +2 -1
  58. package/dist/durable/ThreadProjection.d.mts +1 -1
  59. package/dist/durable/ThreadProjectionMaintenance.d.mts +1 -1
  60. package/dist/durable/ThreadStore.d.mts +1 -1
  61. package/dist/durable/ThreadStoreConformance.d.mts +1 -1
  62. package/dist/durable/ThreadStoreConformance.mjs +10 -1
  63. package/dist/durable/ThreadStoreConformance.mjs.map +1 -1
  64. package/dist/durable/WorkerHost.d.mts +9 -2
  65. package/dist/durable/WorkerHost.mjs.map +1 -1
  66. package/dist/engine/AgentRuntime.d.mts +1 -1
  67. package/dist/engine/SubagentHost.d.mts +1 -1
  68. package/dist/engine/SubagentHost.mjs.map +1 -1
  69. package/dist/index.d.mts +12 -10
  70. package/dist/index.mjs +2 -2
  71. package/package.json +1 -1
  72. package/src/capabilities/internal/subagent-background.ts +37 -3
  73. package/src/durable/Records.ts +13 -1
  74. package/src/durable/SqlThreadNativeReads.ts +1 -1
  75. package/src/durable/ThreadStoreConformance.ts +28 -0
  76. package/src/durable/WorkerHost.ts +14 -2
  77. package/src/durable/internal/worker-host.ts +284 -9
  78. package/src/engine/SubagentHost.ts +9 -0
  79. package/dist/DurableAgentRuntime-B-9w7jDt.mjs.map +0 -1
  80. package/dist/Subagent-DCrB7an7.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -46,28 +46,30 @@ 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 { s as SubagentHost_d_exports } from "./SubagentHost-4WB8Hj0C.mjs";
50
- import { t as AgentRuntime_d_exports } from "./AgentRuntime-BUxDdLpw.mjs";
49
+ import { s as SubagentHost_d_exports } from "./SubagentHost-DQjHFGqH.mjs";
50
+ import { t as AgentRuntime_d_exports } from "./AgentRuntime-DEDvMkAR.mjs";
51
51
  import { i as RunEventSink_d_exports } from "./RunEventSink-D5aVhISG.mjs";
52
- import { v as Subagent_d_exports } from "./Subagent-CNik9RiA.mjs";
52
+ import { v as Subagent_d_exports } from "./Subagent-DRFyQxdb.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 { En as ThreadStore_d_exports, Hn as RunJournal_d_exports, Hr as Admin_d_exports, Ln as SubmissionStatus_d_exports, N as Records_d_exports, To as SubmissionLedger_d_exports, bt as DurableAgentRuntime_d_exports, di as AgentRegistration_d_exports, ea as Recovery_d_exports, wi as Digest_d_exports } from "./Records-D88mgvyS.mjs";
59
+ import { N as Records_d_exports } from "./Records-B5GFWCpn.mjs";
60
+ import { t as ActivityStore_d_exports } from "./durable/ActivityStore.mjs";
61
+ import { n as Digest_d_exports } from "./Digest-U69rDHuO.mjs";
62
+ import { J as Recovery_d_exports, Xn as DurableAgentRuntime_d_exports, ni as ThreadStore_d_exports, pi as SubmissionStatus_d_exports, t as Admin_d_exports, va as AgentRegistration_d_exports, vi as RunJournal_d_exports, yn as SubmissionLedger_d_exports } from "./Admin-C34cVKlT.mjs";
60
63
  import { t as DurableFailpoint_d_exports } from "./DurableFailpoint-Cnr3wx1L.mjs";
61
64
  import { a as OperationAuthorizer_d_exports } from "./OperationAuthorizer-TzcQtpX5.mjs";
62
65
  import { l as ToolReconciler_d_exports } from "./ToolReconciler-BmVRAHKs.mjs";
63
66
  import { n as WakeScheduler_d_exports } from "./WakeScheduler-EjUF-GhC.mjs";
64
- import { t as ActivityStore_d_exports } from "./durable/ActivityStore.mjs";
65
67
  import { t as CommittedActivity_d_exports } from "./durable/CommittedActivity.mjs";
66
- import { R as Schedule_d_exports } from "./Schedule-BIOHA6RR.mjs";
67
- import { k as Subscription_d_exports } from "./Subscription-CRteOKRf.mjs";
68
- import { n as EventSource_d_exports } from "./EventSource-CnlZ3Kma.mjs";
69
- import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-BQLGldl-.mjs";
70
- import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-oNcwTPti.mjs";
68
+ import { R as Schedule_d_exports } from "./Schedule-CtYREFnz.mjs";
69
+ import { k as Subscription_d_exports } from "./Subscription-Bk2Smmqc.mjs";
70
+ import { n as EventSource_d_exports } from "./EventSource-Bac0SxKL.mjs";
71
+ import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-DcQGQ0Yp.mjs";
72
+ import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-ekbJz3pF.mjs";
71
73
  import { t as Subscriptions_d_exports } from "./durable/Subscriptions.mjs";
72
74
  import { t as MessageDelivery_d_exports } from "./durable/MessageDelivery.mjs";
73
75
  import { t as PersistentHistory_d_exports } from "./durable/PersistentHistory.mjs";
package/dist/index.mjs CHANGED
@@ -56,7 +56,7 @@ import { t as RunHooks_exports } from "./capabilities/RunHooks.mjs";
56
56
  import { t as SemanticMemoryIndex_exports } from "./core/SemanticMemoryIndex.mjs";
57
57
  import { t as SemanticMemoryRevalidation_exports } from "./core/SemanticMemoryRevalidation.mjs";
58
58
  import { t as SemanticMemory_exports } from "./capabilities/SemanticMemory.mjs";
59
- import { r as Subagent_exports } from "./Subagent-DCrB7an7.mjs";
59
+ import { r as Subagent_exports } from "./Subagent-DJeZDrbD.mjs";
60
60
  import { t as ToolDiscovery_exports } from "./capabilities/ToolDiscovery.mjs";
61
61
  import { t as ToolExposure_exports } from "./ToolExposure.mjs";
62
62
  import { t as WebCapture_exports } from "./capabilities/WebCapture.mjs";
@@ -68,7 +68,7 @@ import { t as Recovery_exports } from "./durable/Recovery.mjs";
68
68
  import { t as Admin_exports } from "./durable/Admin.mjs";
69
69
  import { t as Digest_exports } from "./durable/Digest.mjs";
70
70
  import { t as AgentRegistration_exports } from "./durable/AgentRegistration.mjs";
71
- import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-B-9w7jDt.mjs";
71
+ import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-BydyN_n-.mjs";
72
72
  import { n as RunJournal_exports } from "./RunJournal-BXrq0VIK.mjs";
73
73
  import { t as ThreadStore_exports } from "./durable/ThreadStore.mjs";
74
74
  import { t as CommittedActivity_exports } from "./durable/CommittedActivity.mjs";
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"effect-agent","version":"0.1.0-beta.124","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"},"./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.126","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"},"./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"}}
@@ -3,6 +3,7 @@ import { Context, Crypto, Effect, Encoding, Layer, Option, Schema, Stream } from
3
3
  import { Tool, Toolkit } from "effect/unstable/ai";
4
4
 
5
5
  import type { AnyDefinition } from "../../core/Agent.ts";
6
+ import type { Update } from "../../core/AgentUpdates.ts";
6
7
  import * as FailureDiagnostic from "../../core/FailureDiagnostic.ts";
7
8
  import { RunId, SettlementId, ThreadId } from "../../core/Identifiers.ts";
8
9
  import { utf8ByteLength } from "../../core/internal/utf8.ts";
@@ -257,7 +258,11 @@ const operations = <
257
258
 
258
259
  const start = Effect.fn("Subagent.start")(function* (
259
260
  parameters: Parameters["Type"],
260
- options: { readonly idempotencyKey: IdempotencyKey; readonly budgetScope?: WorkerBudgetScope },
261
+ options: {
262
+ readonly idempotencyKey: IdempotencyKey;
263
+ readonly budgetScope?: WorkerBudgetScope;
264
+ readonly continuationOf?: WorkerRef;
265
+ },
261
266
  ) {
262
267
  const service = yield* host;
263
268
  const caller = yield* context;
@@ -296,6 +301,7 @@ const operations = <
296
301
  idempotencyKey: key,
297
302
  encodedParameters,
298
303
  encodedGrant,
304
+ ...(options.continuationOf === undefined ? {} : { continuationOf: options.continuationOf }),
299
305
  ...(options.budgetScope === undefined ? {} : { budgetScope: options.budgetScope }),
300
306
  prepare: Effect.gen(function* () {
301
307
  const encodedInput = yield* prepare(parameters, caller);
@@ -303,6 +309,9 @@ const operations = <
303
309
  const effectiveTarget = yield* service.resolveTargetPolicy({
304
310
  target: declaration.target,
305
311
  encodedInput,
312
+ ...(options.continuationOf === undefined
313
+ ? {}
314
+ : { continuationOf: options.continuationOf }),
306
315
  });
307
316
 
308
317
  const resolvedTarget = Option.getOrUndefined(effectiveTarget);
@@ -599,7 +608,11 @@ export const start = <
599
608
  >(
600
609
  declaration: Declaration<Name, Input, Output, Parameters, Success, Failure, Prepare, Project>,
601
610
  parameters: Parameters["Type"],
602
- options: { readonly idempotencyKey: IdempotencyKey; readonly budgetScope?: WorkerBudgetScope },
611
+ options: {
612
+ readonly idempotencyKey: IdempotencyKey;
613
+ readonly budgetScope?: WorkerBudgetScope;
614
+ readonly continuationOf?: WorkerRef;
615
+ },
603
616
  ) => operations(declaration).start(parameters, options);
604
617
 
605
618
  /** Retain typed follow-up parameters for the same worker Thread; inspect its MessageRef for delivery. */
@@ -829,6 +842,20 @@ export const cancel = <
829
842
  export interface BackgroundOptions {
830
843
  /** Deliver standard completion and progress messages to the parent. */
831
844
  readonly reportToParent?: true;
845
+ /**
846
+ * With reportToParent, select which canonical updates also notify the parent. Defaults to all.
847
+ * This pure predicate receives the encoded update; decode value with the child's update Schema.
848
+ * False retains the update for observers without starting a parent Run. Completion is unaffected.
849
+ * The first accepted emission freezes the decision; replay does not reevaluate it.
850
+ */
851
+ readonly reportUpdate?: (update: Update) => boolean;
852
+ /**
853
+ * With reportToParent, select which settled Runs notify the parent before result projection.
854
+ * The pure predicate sees canonical encoded output and outcome. False retains a filtered
855
+ * report decision without parent delivery; later Runs and explicit updates are independent.
856
+ * Recovery reuses a committed decision, but may reevaluate before that decision commits.
857
+ */
858
+ readonly reportCompletion?: WorkerReporting["reportCompletion"];
832
859
  readonly start?: true;
833
860
  readonly followUp?: true;
834
861
  readonly inspect?: true;
@@ -839,7 +866,10 @@ export interface BackgroundOptions {
839
866
  readonly budgetScope?: WorkerBudgetScope;
840
867
  }
841
868
 
842
- type Operation = Exclude<keyof BackgroundOptions, "budgetScope" | "reportToParent">;
869
+ type Operation = Exclude<
870
+ keyof BackgroundOptions,
871
+ "budgetScope" | "reportToParent" | "reportUpdate" | "reportCompletion"
872
+ >;
843
873
  type Suffix = {
844
874
  start: "start";
845
875
  followUp: "follow_up";
@@ -1071,6 +1101,10 @@ export const background = <
1071
1101
  ? undefined
1072
1102
  : {
1073
1103
  ...report,
1104
+ ...(selected.reportUpdate === undefined ? {} : { reportUpdate: selected.reportUpdate }),
1105
+ ...(selected.reportCompletion === undefined
1106
+ ? {}
1107
+ : { reportCompletion: selected.reportCompletion }),
1074
1108
  prepare: (value) =>
1075
1109
  Effect.flatMap(Effect.serviceOption(reportService), (service) =>
1076
1110
  Option.isSome(service)
@@ -19,7 +19,7 @@ import {
19
19
  TurnId,
20
20
  } from "../core/Identifiers.ts";
21
21
  import { utf8ByteLength } from "../core/internal/utf8.ts";
22
- import { IdempotencyKey, Principal } from "../core/Receipt.ts";
22
+ import { IdempotencyKey, Principal, Receipt } from "../core/Receipt.ts";
23
23
  import { ExhaustedLimit } from "../core/RunEvent.ts";
24
24
  import { RunPolicyUsage } from "../core/RunPolicyUsage.ts";
25
25
  import {
@@ -826,10 +826,21 @@ export const WorkerReportingIntent = Schema.Struct({
826
826
  Schema.makeFilter((value) => (value.mode === "standard") === (value.returnAddress !== undefined)),
827
827
  );
828
828
 
829
+ /** Exact successful predecessor evidence; a locator alone grants no authority. */
830
+ export const WorkerContinuation = Schema.Struct({
831
+ worker: WorkerRef,
832
+ receipt: Receipt,
833
+ settlementId: SettlementId,
834
+ }).check(Schema.makeFilter((value) => value.worker.threadId === value.receipt.threadId));
835
+
836
+ export type WorkerContinuation = typeof WorkerContinuation.Type;
837
+
829
838
  /** Immutable worker Thread origin. Each input has its own digest and parameters separately. */
830
839
  export const WorkerOrigin = Schema.Struct({
831
840
  worker: WorkerRef,
832
841
  source: WorkerSource,
842
+ /** A new assignment may continue this completed, immutable predecessor. */
843
+ continuationOf: Schema.optionalKey(WorkerContinuation),
833
844
  /** Omitted retains source-subtree funding; worker-run renews only for a new native Run. */
834
845
  budgetScope: Schema.optionalKey(WorkerBudgetScope),
835
846
  /** Frozen at worker creation; older origins remain reusable. */
@@ -940,6 +951,7 @@ export class WorkerReportRefused extends Schema.TaggedClass<WorkerReportRefused>
940
951
  runId: RunId,
941
952
  messageId: IdempotencyKey,
942
953
  reason: Schema.Literals([
954
+ "filtered",
943
955
  "declaration-unavailable",
944
956
  "destination",
945
957
  "projection",
@@ -200,7 +200,7 @@ export const makeSelectedReads = Effect.fnUntraced(function* (
200
200
 
201
201
  rows = yield* sql`
202
202
  SELECT thread_id, sequence, record_id, batch_id, record_json FROM effect_agent_canonical_records
203
- WHERE thread_id = ${request.threadId} AND sequence > ${after} AND json_extract(record_json, '$.payload._tag') IN ('ThreadCreated', 'WorkerOriginRecorded', 'SubagentLineageRecorded', 'WorkerInputRequested', 'WorkerInputCompleted')
203
+ WHERE thread_id = ${request.threadId} AND sequence > ${after} AND json_extract(record_json, '$.payload._tag') IN ('ThreadCreated', 'WorkerOriginRecorded', 'SubagentLineageRecorded', 'WorkerInputRequested', 'WorkerInputCompleted', 'WorkerStopRequested')
204
204
  UNION ALL
205
205
  SELECT thread_id, sequence, record_id, batch_id, record_json FROM effect_agent_canonical_records
206
206
  WHERE thread_id = ${request.threadId} AND sequence > ${after} AND json_extract(record_json, '$.payload._tag') = 'SubtreeBudgetReserved' AND json_extract(record_json, '$.payload.sourceSubmissionId') IS ${selection.sourceSubmissionId ?? null}
@@ -36,6 +36,7 @@ import {
36
36
  ToolCallSettled,
37
37
  WorkerInputRequested,
38
38
  WorkerInputCompleted,
39
+ WorkerStopRequested,
39
40
  SubtreeBudgetReserved,
40
41
  PeerMessagePrepared,
41
42
  } from "./Records.ts";
@@ -1130,6 +1131,33 @@ const nativeWorkerAccounting = conformanceCase(
1130
1131
  accounting.tailSequence === tail.lastSequence && accounting.tailDigest === tail.tailDigest,
1131
1132
  "The accounting snapshot carries the full canonical CAS tail",
1132
1133
  );
1134
+ // Regression: https://github.com/danieljvdm/effect-agent/blob/c721a292205e06185f0136c3ed05dcf53e29ca66/packages/effect-agent/src/durable/SqlThreadNativeReads.ts#L195-L214
1135
+ yield* append(
1136
+ threadId,
1137
+ batch("stop-worker", [
1138
+ envelope(
1139
+ "stop-worker",
1140
+ WorkerStopRequested.make({
1141
+ command: {
1142
+ worker: origin.worker,
1143
+ idempotencyKey: Schema.decodeSync(IdempotencyKey)("stop-worker"),
1144
+ },
1145
+ }),
1146
+ ),
1147
+ ]),
1148
+ tail,
1149
+ );
1150
+
1151
+ const stopped = yield* readWorkerState({
1152
+ threadId,
1153
+ sourceSubmissionId: CONFORMANCE_SUBMISSION,
1154
+ limit: 5,
1155
+ });
1156
+
1157
+ yield* ensure(
1158
+ stopped.records.some(({ record }) => record.payload._tag === "WorkerStopRequested"),
1159
+ "Native worker state retains explicit stop intent after assignment completion",
1160
+ );
1133
1161
  }),
1134
1162
  );
1135
1163
 
@@ -5,7 +5,13 @@ import type { AgentPolicy } from "../core/AgentPolicy.ts";
5
5
  import type { SubmissionId, ThreadId } from "../core/Identifiers.ts";
6
6
  import type { SubagentBudgetReservation } from "../core/SubagentContract.ts";
7
7
  import { WorkerError, type WorkerRef, type WorkerSource } from "../core/Worker.ts";
8
- import type { DefinitionDigests, Digest, PersistedJson, WorkerOrigin } from "./Records.ts";
8
+ import type {
9
+ DefinitionDigests,
10
+ Digest,
11
+ PersistedJson,
12
+ WorkerOrigin,
13
+ WorkerContinuation,
14
+ } from "./Records.ts";
9
15
  import type { Principal, SubmissionSnapshot } from "./SubmissionLedger.ts";
10
16
 
11
17
  /** Host-verified source input; absence never means the latest input in the Thread. */
@@ -24,6 +30,7 @@ export type WorkerPolicyTarget = {
24
30
  } & (
25
31
  | {
26
32
  readonly _tag: "InitialInput";
33
+ readonly continuationOf?: WorkerContinuation;
27
34
  readonly sourceSubmission?: SubmissionSnapshot;
28
35
  readonly input: PersistedJson;
29
36
  readonly inputDigest: Digest;
@@ -83,6 +90,7 @@ export const WorkerConcurrencyResolver = Context.Reference<{
83
90
  readonly source: WorkerSource;
84
91
  readonly sourceSubmission?: SubmissionSnapshot;
85
92
  readonly worker: WorkerRef;
93
+ readonly continuationOf?: WorkerContinuation;
86
94
  readonly principal: Principal;
87
95
  }) => Effect.Effect<Option.Option<WorkerConcurrencyLimit>, WorkerError>;
88
96
  }>("@effect-agent/thread/WorkerConcurrencyResolver", {
@@ -133,8 +141,11 @@ export interface WorkerHostAuthorizationRequest {
133
141
  readonly sourceSubmissionId?: SubmissionId;
134
142
  readonly principal: Principal;
135
143
  readonly operation: WorkerError["operation"];
136
- readonly access: "context" | "read" | "send" | "control";
144
+ /** Report access follows native frozen-message proof and preserves the destination principal. */
145
+ readonly access: "context" | "read" | "send" | "control" | "report";
137
146
  readonly worker?: WorkerRef;
147
+ /** Native-verified successful predecessor, never a caller-supplied authorization grant. */
148
+ readonly continuationOf?: WorkerContinuation;
138
149
  }
139
150
 
140
151
  export const WorkerHostAuthorizer = Context.Reference<{
@@ -161,6 +172,7 @@ export const WorkerBudgetAuthorizer = Context.Reference<{
161
172
  readonly source: WorkerSource;
162
173
  readonly principal: Principal;
163
174
  readonly worker: WorkerRef;
175
+ readonly continuationOf?: WorkerContinuation;
164
176
  readonly policy: AgentPolicy;
165
177
  readonly budget: SubagentBudgetReservation;
166
178
  }) => Effect.Effect<void, WorkerError>;