effect-agent 0.1.0-beta.125 → 0.1.0-beta.129

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-uGX4_EGf.d.mts → Admin-C34cVKlT.d.mts} +2908 -3941
  2. package/dist/{AgentRuntime-ov0LFEb-.d.mts → AgentRuntime-DEDvMkAR.d.mts} +2 -2
  3. package/dist/Digest-U69rDHuO.d.mts +22 -0
  4. package/dist/{DurableAgentRuntime-BvDGe7F9.mjs → DurableAgentRuntime-BydyN_n-.mjs} +88 -15
  5. package/dist/DurableAgentRuntime-BydyN_n-.mjs.map +1 -0
  6. package/dist/{EventSource-CNBoY8AA.d.mts → EventSource-Bac0SxKL.d.mts} +3 -3
  7. package/dist/{PreparedInputAdmission--_APJzWY.d.mts → PreparedInputAdmission-DcQGQ0Yp.d.mts} +4 -4
  8. package/dist/Records-B5GFWCpn.d.mts +1104 -0
  9. package/dist/{Schedule-C8ze8WTW.d.mts → Schedule-CtYREFnz.d.mts} +2 -2
  10. package/dist/{Subagent-CudP5BlT.mjs → Subagent-DJeZDrbD.mjs} +5 -2
  11. package/dist/Subagent-DJeZDrbD.mjs.map +1 -0
  12. package/dist/{Subagent-CCf7rY70.d.mts → Subagent-DRFyQxdb.d.mts} +13 -4
  13. package/dist/{SubagentHost-B0-cRCqs.d.mts → SubagentHost-DQjHFGqH.d.mts} +7 -2
  14. package/dist/{Subscription-CYb8ltMK.d.mts → Subscription-Bk2Smmqc.d.mts} +34 -3
  15. package/dist/{SubscriptionInput-C1XE9Vyi.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 +44 -3
  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 +25 -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 +282 -9
  78. package/src/engine/SubagentHost.ts +6 -0
  79. package/dist/DurableAgentRuntime-BvDGe7F9.mjs.map +0 -1
  80. package/dist/Subagent-CudP5BlT.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-B0-cRCqs.mjs";
50
- import { t as AgentRuntime_d_exports } from "./AgentRuntime-ov0LFEb-.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-CCf7rY70.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-uGX4_EGf.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-C8ze8WTW.mjs";
67
- import { k as Subscription_d_exports } from "./Subscription-CYb8ltMK.mjs";
68
- import { n as EventSource_d_exports } from "./EventSource-CNBoY8AA.mjs";
69
- import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission--_APJzWY.mjs";
70
- import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-C1XE9Vyi.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-CudP5BlT.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-BvDGe7F9.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.125","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.129","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"}}
@@ -258,7 +258,11 @@ const operations = <
258
258
 
259
259
  const start = Effect.fn("Subagent.start")(function* (
260
260
  parameters: Parameters["Type"],
261
- options: { readonly idempotencyKey: IdempotencyKey; readonly budgetScope?: WorkerBudgetScope },
261
+ options: {
262
+ readonly idempotencyKey: IdempotencyKey;
263
+ readonly budgetScope?: WorkerBudgetScope;
264
+ readonly continuationOf?: WorkerRef;
265
+ },
262
266
  ) {
263
267
  const service = yield* host;
264
268
  const caller = yield* context;
@@ -297,6 +301,7 @@ const operations = <
297
301
  idempotencyKey: key,
298
302
  encodedParameters,
299
303
  encodedGrant,
304
+ ...(options.continuationOf === undefined ? {} : { continuationOf: options.continuationOf }),
300
305
  ...(options.budgetScope === undefined ? {} : { budgetScope: options.budgetScope }),
301
306
  prepare: Effect.gen(function* () {
302
307
  const encodedInput = yield* prepare(parameters, caller);
@@ -304,6 +309,9 @@ const operations = <
304
309
  const effectiveTarget = yield* service.resolveTargetPolicy({
305
310
  target: declaration.target,
306
311
  encodedInput,
312
+ ...(options.continuationOf === undefined
313
+ ? {}
314
+ : { continuationOf: options.continuationOf }),
307
315
  });
308
316
 
309
317
  const resolvedTarget = Option.getOrUndefined(effectiveTarget);
@@ -600,7 +608,11 @@ export const start = <
600
608
  >(
601
609
  declaration: Declaration<Name, Input, Output, Parameters, Success, Failure, Prepare, Project>,
602
610
  parameters: Parameters["Type"],
603
- options: { readonly idempotencyKey: IdempotencyKey; readonly budgetScope?: WorkerBudgetScope },
611
+ options: {
612
+ readonly idempotencyKey: IdempotencyKey;
613
+ readonly budgetScope?: WorkerBudgetScope;
614
+ readonly continuationOf?: WorkerRef;
615
+ },
604
616
  ) => operations(declaration).start(parameters, options);
605
617
 
606
618
  /** Retain typed follow-up parameters for the same worker Thread; inspect its MessageRef for delivery. */
@@ -837,6 +849,13 @@ export interface BackgroundOptions {
837
849
  * The first accepted emission freezes the decision; replay does not reevaluate it.
838
850
  */
839
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"];
840
859
  readonly start?: true;
841
860
  readonly followUp?: true;
842
861
  readonly inspect?: true;
@@ -849,7 +868,7 @@ export interface BackgroundOptions {
849
868
 
850
869
  type Operation = Exclude<
851
870
  keyof BackgroundOptions,
852
- "budgetScope" | "reportToParent" | "reportUpdate"
871
+ "budgetScope" | "reportToParent" | "reportUpdate" | "reportCompletion"
853
872
  >;
854
873
  type Suffix = {
855
874
  start: "start";
@@ -1083,6 +1102,9 @@ export const background = <
1083
1102
  : {
1084
1103
  ...report,
1085
1104
  ...(selected.reportUpdate === undefined ? {} : { reportUpdate: selected.reportUpdate }),
1105
+ ...(selected.reportCompletion === undefined
1106
+ ? {}
1107
+ : { reportCompletion: selected.reportCompletion }),
1086
1108
  prepare: (value) =>
1087
1109
  Effect.flatMap(Effect.serviceOption(reportService), (service) =>
1088
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>;