@yielded/agent 0.1.0-beta.176 → 0.1.0-beta.177

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 (180) hide show
  1. package/dist/{Admin-DTDihBra.d.mts → Admin-Bpg24yCK.d.mts} +7 -7
  2. package/dist/{Agent-BiRbr73L.mjs → Agent-B3J0B4l6.mjs} +6 -3
  3. package/dist/Agent-B3J0B4l6.mjs.map +1 -0
  4. package/dist/{AgentRuntime-DaDKMasp.mjs → AgentRuntime-DrQfy4cL.mjs} +7 -6
  5. package/dist/AgentRuntime-DrQfy4cL.mjs.map +1 -0
  6. package/dist/{AgentRuntime-CHDyRbSf.d.mts → AgentRuntime-Dx5u_FJD.d.mts} +6 -6
  7. package/dist/{Digest-C3EODOee.mjs → Digest-ft4ku9pj.mjs} +2 -2
  8. package/dist/{Digest-C3EODOee.mjs.map → Digest-ft4ku9pj.mjs.map} +1 -1
  9. package/dist/{DurableAgentRuntime-BJbuIqQq.mjs → DurableAgentRuntime-CGW93k81.mjs} +98 -32
  10. package/dist/DurableAgentRuntime-CGW93k81.mjs.map +1 -0
  11. package/dist/{DurableStep-DXGn7KQ4.d.mts → DurableStep-CAJnlgfL.d.mts} +5 -4
  12. package/dist/{EventSource-Cc58uEso.d.mts → EventSource-A6TB7t-f.d.mts} +2 -2
  13. package/dist/{MessageDelivery-ClHg7c0O.d.mts → MessageDelivery-BkWrcQUd.d.mts} +42 -42
  14. package/dist/{Messaging-SVu6rWV8.d.mts → Messaging-DpEZMTVE.d.mts} +2 -2
  15. package/dist/{MessagingHost-CZCyrnvJ.mjs → MessagingHost-BILcuj0V.mjs} +2 -2
  16. package/dist/{MessagingHost-CZCyrnvJ.mjs.map → MessagingHost-BILcuj0V.mjs.map} +1 -1
  17. package/dist/{MessagingHost-C6SOAcoG.d.mts → MessagingHost-BKxDskYj.d.mts} +2 -2
  18. package/dist/{PreparedInputAdmission-CjcX1OP0.d.mts → PreparedInputAdmission-DKIfqRZT.d.mts} +3 -3
  19. package/dist/{Records-DzL4Kbtw.mjs → Records-CZRedCE7.mjs} +3 -3
  20. package/dist/{Records-DzL4Kbtw.mjs.map → Records-CZRedCE7.mjs.map} +1 -1
  21. package/dist/{RunContinuation-DSnUTSSb.d.mts → RunContinuation-Ce2pR8VD.d.mts} +3 -3
  22. package/dist/{RunContinuation-CWHuciup.mjs → RunContinuation-D42RFqjS.mjs} +5 -5
  23. package/dist/{RunContinuation-CWHuciup.mjs.map → RunContinuation-D42RFqjS.mjs.map} +1 -1
  24. package/dist/{RunJournal-DGblbFas.mjs → RunJournal-oJLo-pjS.mjs} +3 -3
  25. package/dist/{RunJournal-DGblbFas.mjs.map → RunJournal-oJLo-pjS.mjs.map} +1 -1
  26. package/dist/{RunOptions-Be77lKVZ.d.mts → RunOptions-BANtohGk.d.mts} +3 -3
  27. package/dist/{RunStorage-BF2YgWkg.mjs → RunStorage-BRGP3Tcu.mjs} +2 -2
  28. package/dist/{RunStorage-BF2YgWkg.mjs.map → RunStorage-BRGP3Tcu.mjs.map} +1 -1
  29. package/dist/{Scheduling-07_dsGED.mjs → Scheduling-BebkRVc2.mjs} +3 -3
  30. package/dist/{Scheduling-07_dsGED.mjs.map → Scheduling-BebkRVc2.mjs.map} +1 -1
  31. package/dist/{Subagent-xhN_aD1r.d.mts → Subagent-5ulnV6An.d.mts} +9 -9
  32. package/dist/{Subagent-CexndZSp.mjs → Subagent-C7F7c8Op.mjs} +3 -3
  33. package/dist/{Subagent-CexndZSp.mjs.map → Subagent-C7F7c8Op.mjs.map} +1 -1
  34. package/dist/{SubagentHost-D1xBgn9g.d.mts → SubagentHost-CikdGpmk.d.mts} +2 -2
  35. package/dist/{Subscription-DuC_PcGx.d.mts → Subscription-D5sOrmlI.d.mts} +2 -2
  36. package/dist/{SubscriptionInput-B1IeAEDi.d.mts → SubscriptionInput-CxSXZUiC.d.mts} +2 -2
  37. package/dist/{ThreadImport-D_Biid6w.d.mts → ThreadImport-C6IiPJMW.d.mts} +4 -4
  38. package/dist/{ThreadImport-ZgWxf7bB.mjs → ThreadImport-DUcPj5jC.mjs} +9 -9
  39. package/dist/{ThreadImport-ZgWxf7bB.mjs.map → ThreadImport-DUcPj5jC.mjs.map} +1 -1
  40. package/dist/{ThreadStore-BC4V-mY-.mjs → ThreadStore-Cn6FDWX9.mjs} +5 -5
  41. package/dist/{ThreadStore-BC4V-mY-.mjs.map → ThreadStore-Cn6FDWX9.mjs.map} +1 -1
  42. package/dist/{ThreadTransfer-S7FnTRHt.mjs → ThreadTransfer-BWnAHIge.mjs} +4 -4
  43. package/dist/{ThreadTransfer-S7FnTRHt.mjs.map → ThreadTransfer-BWnAHIge.mjs.map} +1 -1
  44. package/dist/{Worker-CHRaIsWu.d.mts → Worker-CLYgfqhF.d.mts} +7 -5
  45. package/dist/{Worker-DZjdMjZn.mjs → Worker-CtuUwYOK.mjs} +4 -2
  46. package/dist/Worker-CtuUwYOK.mjs.map +1 -0
  47. package/dist/{WorkerAdmission-C47Vy_cK.mjs → WorkerAdmission-cfiK9aRi.mjs} +6 -6
  48. package/dist/{WorkerAdmission-C47Vy_cK.mjs.map → WorkerAdmission-cfiK9aRi.mjs.map} +1 -1
  49. package/dist/{agent-registration-a6QYaG3h.mjs → agent-registration-Dt57NAP6.mjs} +5 -5
  50. package/dist/{agent-registration-a6QYaG3h.mjs.map → agent-registration-Dt57NAP6.mjs.map} +1 -1
  51. package/dist/capabilities/CodeMode.mjs +1 -1
  52. package/dist/capabilities/Commands.d.mts +1 -1
  53. package/dist/capabilities/ContextTools.mjs +1 -1
  54. package/dist/capabilities/McpClient.mjs +1 -1
  55. package/dist/capabilities/MemoryNotes.d.mts +1 -1
  56. package/dist/capabilities/MemoryNotes.mjs +2 -1
  57. package/dist/capabilities/MemoryNotes.mjs.map +1 -1
  58. package/dist/capabilities/Messaging.d.mts +1 -1
  59. package/dist/capabilities/Messaging.mjs +2 -2
  60. package/dist/capabilities/RunHooks.d.mts +1 -1
  61. package/dist/capabilities/Subagent.d.mts +2 -2
  62. package/dist/capabilities/Subagent.mjs +2 -2
  63. package/dist/capabilities/ToolDiscovery.mjs +1 -1
  64. package/dist/capabilities/WebCapture.mjs +1 -1
  65. package/dist/capabilities/WebSearch.mjs +1 -1
  66. package/dist/core/Agent.mjs +1 -1
  67. package/dist/core/Worker.d.mts +1 -1
  68. package/dist/core/Worker.mjs +1 -1
  69. package/dist/durable/ActivityStore.mjs +1 -1
  70. package/dist/durable/Admin.d.mts +1 -1
  71. package/dist/durable/Admin.mjs +1 -1
  72. package/dist/durable/AgentRegistration.d.mts +1 -1
  73. package/dist/durable/AgentRegistration.mjs +1 -1
  74. package/dist/durable/Certification.d.mts +1 -1
  75. package/dist/durable/CommittedActivity.d.mts +1 -1
  76. package/dist/durable/CommittedActivity.mjs +3 -3
  77. package/dist/durable/Digest.mjs +1 -1
  78. package/dist/durable/DurableAgentRuntime.d.mts +1 -1
  79. package/dist/durable/DurableAgentRuntime.mjs +2 -2
  80. package/dist/durable/EventSource.d.mts +1 -1
  81. package/dist/durable/EventSource.mjs +1 -1
  82. package/dist/durable/GitHubWorkflowSource.d.mts +3 -3
  83. package/dist/durable/LifecyclePublication.d.mts +1 -1
  84. package/dist/durable/LifecyclePublication.mjs +3 -3
  85. package/dist/durable/MessageDelivery.d.mts +1 -1
  86. package/dist/durable/MessageDelivery.mjs +3 -3
  87. package/dist/durable/MessageDeliveryStoreConformance.d.mts +2 -2
  88. package/dist/durable/MessageDeliveryStoreConformance.mjs +3 -3
  89. package/dist/durable/PersistentHistory.d.mts +1 -1
  90. package/dist/durable/PersistentHistory.mjs +4 -4
  91. package/dist/durable/PreparedInputAdmission.d.mts +1 -1
  92. package/dist/durable/RecordFormat.mjs +1 -1
  93. package/dist/durable/Records.mjs +1 -1
  94. package/dist/durable/Recovery.d.mts +1 -1
  95. package/dist/durable/Recovery.mjs +1 -1
  96. package/dist/durable/RunContinuation.d.mts +2 -2
  97. package/dist/durable/RunContinuation.mjs +3 -3
  98. package/dist/durable/RunJournal.d.mts +1 -1
  99. package/dist/durable/RunJournal.mjs +1 -1
  100. package/dist/durable/RunStorage.d.mts +1 -1
  101. package/dist/durable/RunStorage.mjs +1 -1
  102. package/dist/durable/Schedule.mjs +1 -1
  103. package/dist/durable/ScheduleStoreConformance.mjs +1 -1
  104. package/dist/durable/ScheduleTransition.mjs +1 -1
  105. package/dist/durable/Scheduling.d.mts +1 -1
  106. package/dist/durable/Scheduling.mjs +1 -1
  107. package/dist/durable/SettlementPublisher.d.mts +1 -1
  108. package/dist/durable/SettlementPublisher.mjs +3 -3
  109. package/dist/durable/SubmissionLedger.d.mts +1 -1
  110. package/dist/durable/SubmissionLedger.mjs +4 -4
  111. package/dist/durable/SubmissionLedgerConformance.d.mts +1 -1
  112. package/dist/durable/SubmissionLedgerConformance.mjs +7 -7
  113. package/dist/durable/SubmissionStatus.d.mts +1 -1
  114. package/dist/durable/Subscription.d.mts +1 -1
  115. package/dist/durable/Subscription.mjs +2 -2
  116. package/dist/durable/SubscriptionInput.d.mts +1 -1
  117. package/dist/durable/SubscriptionInput.mjs +2 -2
  118. package/dist/durable/SubscriptionStoreConformance.d.mts +1 -1
  119. package/dist/durable/SubscriptionStoreConformance.mjs +1 -1
  120. package/dist/durable/SubscriptionTools.d.mts +3 -3
  121. package/dist/durable/SubscriptionTools.mjs +2 -1
  122. package/dist/durable/SubscriptionTools.mjs.map +1 -1
  123. package/dist/durable/SubscriptionTransition.d.mts +1 -1
  124. package/dist/durable/SubscriptionTransition.mjs +1 -1
  125. package/dist/durable/Subscriptions.d.mts +5 -5
  126. package/dist/durable/Subscriptions.mjs +2 -2
  127. package/dist/durable/ThreadArchiveRange.d.mts +1 -1
  128. package/dist/durable/ThreadArchiveRange.mjs +1 -1
  129. package/dist/durable/ThreadContextHistory.d.mts +1 -1
  130. package/dist/durable/ThreadContextHistory.mjs +2 -2
  131. package/dist/durable/ThreadContextHistoryProjection.mjs +1 -1
  132. package/dist/durable/ThreadImport.d.mts +1 -1
  133. package/dist/durable/ThreadImport.mjs +1 -1
  134. package/dist/durable/ThreadInvariants.d.mts +3 -3
  135. package/dist/durable/ThreadInvariants.mjs +4 -4
  136. package/dist/durable/ThreadProjection.mjs +1 -1
  137. package/dist/durable/ThreadProjectionMaintenance.d.mts +1 -1
  138. package/dist/durable/ThreadReader.d.mts +1 -1
  139. package/dist/durable/ThreadReader.mjs +1 -1
  140. package/dist/durable/ThreadStore.d.mts +1 -1
  141. package/dist/durable/ThreadStore.mjs +2 -2
  142. package/dist/durable/ThreadStoreConformance.d.mts +1 -1
  143. package/dist/durable/ThreadStoreConformance.mjs +4 -4
  144. package/dist/durable/ThreadTransfer.d.mts +1 -1
  145. package/dist/durable/ThreadTransfer.mjs +1 -1
  146. package/dist/durable/ThreadWork.d.mts +1 -1
  147. package/dist/durable/ThreadWork.mjs +5 -5
  148. package/dist/durable/ToolReconciler.mjs +1 -1
  149. package/dist/durable/WorkerAdmission.d.mts +1 -1
  150. package/dist/durable/WorkerAdmission.mjs +1 -1
  151. package/dist/durable/WorkerHost.d.mts +2 -2
  152. package/dist/durable/WorkerHost.mjs +1 -1
  153. package/dist/engine/AgentRuntime.d.mts +1 -1
  154. package/dist/engine/AgentRuntime.mjs +1 -1
  155. package/dist/engine/DurableStep.d.mts +2 -2
  156. package/dist/engine/DurableStep.mjs +1 -11
  157. package/dist/engine/DurableStep.mjs.map +1 -1
  158. package/dist/engine/MessagingHost.d.mts +1 -1
  159. package/dist/engine/MessagingHost.mjs +1 -1
  160. package/dist/engine/RunOptions.d.mts +1 -1
  161. package/dist/engine/SubagentHost.d.mts +1 -1
  162. package/dist/engine/SubagentHost.mjs +1 -1
  163. package/dist/index.d.mts +16 -16
  164. package/dist/index.mjs +15 -15
  165. package/dist/{run-context-reader-DvTEq2RC.d.mts → run-context-reader-BtBPX_nC.d.mts} +2 -2
  166. package/dist/tool-execution-Ba7tO7Pt.mjs +17 -0
  167. package/dist/tool-execution-Ba7tO7Pt.mjs.map +1 -0
  168. package/package.json +1 -1
  169. package/src/core/Worker.ts +3 -1
  170. package/src/core/internal/agent-updates.ts +9 -1
  171. package/src/core/internal/tool-execution.ts +33 -0
  172. package/src/durable/DurableAgentRuntime.ts +74 -8
  173. package/src/durable/internal/agent-updates.ts +59 -3
  174. package/src/durable/internal/worker-host.ts +3 -1
  175. package/src/engine/DurableStep.ts +5 -31
  176. package/src/engine/internal/agent-runtime.ts +2 -1
  177. package/dist/Agent-BiRbr73L.mjs.map +0 -1
  178. package/dist/AgentRuntime-DaDKMasp.mjs.map +0 -1
  179. package/dist/DurableAgentRuntime-BJbuIqQq.mjs.map +0 -1
  180. package/dist/Worker-DZjdMjZn.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -24,11 +24,11 @@ import { r as AgentPolicy_d_exports } from "./AgentPolicy-B4lbCU2T.mjs";
24
24
  import { t as Agent_d_exports } from "./Agent-B39jRnFv.mjs";
25
25
  import { c as MemoryReference_d_exports } from "./MemoryReference-B8Q3UJoJ.mjs";
26
26
  import { n as RunPolicyUsage_d_exports } from "./RunPolicyUsage-QmYVw9z8.mjs";
27
- import { x as Worker_d_exports } from "./Worker-CHRaIsWu.mjs";
27
+ import { x as Worker_d_exports } from "./Worker-CLYgfqhF.mjs";
28
28
  import { s as ContextWindow_d_exports } from "./ContextWindow-Cvv8N9Xy.mjs";
29
29
  import { s as ContextCompactor_d_exports } from "./ContextCompactor-Bz91grmO.mjs";
30
- import { i as DurableStep_d_exports } from "./DurableStep-DXGn7KQ4.mjs";
31
- import { F as RunOptions_d_exports } from "./RunOptions-Be77lKVZ.mjs";
30
+ import { i as DurableStep_d_exports } from "./DurableStep-CAJnlgfL.mjs";
31
+ import { F as RunOptions_d_exports } from "./RunOptions-BANtohGk.mjs";
32
32
  import { t as Commands_d_exports } from "./capabilities/Commands.mjs";
33
33
  import { t as ContextHistory_d_exports } from "./engine/ContextHistory.mjs";
34
34
  import { t as ContextTools_d_exports } from "./capabilities/ContextTools.mjs";
@@ -37,8 +37,8 @@ import { t as McpClient_d_exports } from "./capabilities/McpClient.mjs";
37
37
  import { i as MemoryNamespace_d_exports } from "./MemoryNamespace-BbRW5p71.mjs";
38
38
  import { t as MemoryStore_d_exports } from "./core/MemoryStore.mjs";
39
39
  import { t as MemoryNotes_d_exports } from "./capabilities/MemoryNotes.mjs";
40
- import { n as MessagingHost_d_exports } from "./MessagingHost-C6SOAcoG.mjs";
41
- import { t as Messaging_d_exports } from "./Messaging-SVu6rWV8.mjs";
40
+ import { n as MessagingHost_d_exports } from "./MessagingHost-BKxDskYj.mjs";
41
+ import { t as Messaging_d_exports } from "./Messaging-DpEZMTVE.mjs";
42
42
  import { t as ModelContext_d_exports } from "./capabilities/ModelContext.mjs";
43
43
  import { t as RememberingStore_d_exports } from "./core/RememberingStore.mjs";
44
44
  import { t as Remembering_d_exports } from "./capabilities/Remembering.mjs";
@@ -47,10 +47,10 @@ import { t as MemoryRevalidation_d_exports } from "./core/MemoryRevalidation.mjs
47
47
  import { t as SemanticMemoryIndex_d_exports } from "./core/SemanticMemoryIndex.mjs";
48
48
  import { t as SemanticMemoryRevalidation_d_exports } from "./core/SemanticMemoryRevalidation.mjs";
49
49
  import { t as SemanticMemory_d_exports } from "./capabilities/SemanticMemory.mjs";
50
- import { s as SubagentHost_d_exports } from "./SubagentHost-D1xBgn9g.mjs";
51
- import { t as AgentRuntime_d_exports } from "./AgentRuntime-CHDyRbSf.mjs";
50
+ import { s as SubagentHost_d_exports } from "./SubagentHost-CikdGpmk.mjs";
51
+ import { t as AgentRuntime_d_exports } from "./AgentRuntime-Dx5u_FJD.mjs";
52
52
  import { i as RunEventSink_d_exports } from "./RunEventSink-shh6Qf9E.mjs";
53
- import { v as Subagent_d_exports } from "./Subagent-xhN_aD1r.mjs";
53
+ import { v as Subagent_d_exports } from "./Subagent-5ulnV6An.mjs";
54
54
  import { t as ToolDiscovery_d_exports } from "./capabilities/ToolDiscovery.mjs";
55
55
  import { D as PageCapture_d_exports } from "./PageCapture-Df8Xwskw.mjs";
56
56
  import { t as WebCapture_d_exports } from "./capabilities/WebCapture.mjs";
@@ -61,7 +61,7 @@ import { t as ProvisionalText_d_exports } from "./core/ProvisionalText.mjs";
61
61
  import { nt as Records_d_exports } from "./Records-BTnGRdcf.mjs";
62
62
  import { t as ActivityStore_d_exports } from "./durable/ActivityStore.mjs";
63
63
  import { n as Digest_d_exports } from "./Digest-DjUgS5PG.mjs";
64
- import { Ar as SubmissionStatus_d_exports, Do as RunJournal_d_exports, Es as AgentRegistration_d_exports, Ta as ThreadWork_d_exports, Yn as DurableAgentRuntime_d_exports, fo as LifecyclePublication_d_exports, no as ThreadArchiveRange_d_exports, pn as SubmissionLedger_d_exports, q as Recovery_d_exports, qi as ThreadStore_d_exports, t as Admin_d_exports } from "./Admin-DTDihBra.mjs";
64
+ import { Ar as SubmissionStatus_d_exports, Do as RunJournal_d_exports, Es as AgentRegistration_d_exports, Ta as ThreadWork_d_exports, Yn as DurableAgentRuntime_d_exports, fo as LifecyclePublication_d_exports, no as ThreadArchiveRange_d_exports, pn as SubmissionLedger_d_exports, q as Recovery_d_exports, qi as ThreadStore_d_exports, t as Admin_d_exports } from "./Admin-Bpg24yCK.mjs";
65
65
  import { t as DurableFailpoint_d_exports } from "./DurableFailpoint-BugHZKvJ.mjs";
66
66
  import { a as OperationAuthorizer_d_exports } from "./OperationAuthorizer-TzcQtpX5.mjs";
67
67
  import { s as RecordFormat_d_exports } from "./RecordFormat-BNiLpe43.mjs";
@@ -69,21 +69,21 @@ import { l as ToolReconciler_d_exports } from "./ToolReconciler-SrOHkvF8.mjs";
69
69
  import { n as WakeScheduler_d_exports } from "./WakeScheduler-DJIMMf77.mjs";
70
70
  import { t as CommittedActivity_d_exports } from "./durable/CommittedActivity.mjs";
71
71
  import { R as Schedule_d_exports } from "./Schedule-CDgTz0vj.mjs";
72
- import { k as Subscription_d_exports } from "./Subscription-DuC_PcGx.mjs";
73
- import { n as EventSource_d_exports } from "./EventSource-Cc58uEso.mjs";
74
- import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-CjcX1OP0.mjs";
75
- import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-B1IeAEDi.mjs";
72
+ import { k as Subscription_d_exports } from "./Subscription-D5sOrmlI.mjs";
73
+ import { n as EventSource_d_exports } from "./EventSource-A6TB7t-f.mjs";
74
+ import { n as PreparedInputAdmission_d_exports } from "./PreparedInputAdmission-DKIfqRZT.mjs";
75
+ import { r as SubscriptionInput_d_exports } from "./SubscriptionInput-CxSXZUiC.mjs";
76
76
  import { t as Subscriptions_d_exports } from "./durable/Subscriptions.mjs";
77
- import { g as MessageDelivery_d_exports } from "./MessageDelivery-ClHg7c0O.mjs";
77
+ import { g as MessageDelivery_d_exports } from "./MessageDelivery-BkWrcQUd.mjs";
78
78
  import { t as PersistentHistory_d_exports } from "./durable/PersistentHistory.mjs";
79
- import { i as RunContinuation_d_exports } from "./RunContinuation-DSnUTSSb.mjs";
79
+ import { i as RunContinuation_d_exports } from "./RunContinuation-Ce2pR8VD.mjs";
80
80
  import { t as ScheduleTransition_d_exports } from "./durable/ScheduleTransition.mjs";
81
81
  import { t as Scheduling_d_exports } from "./durable/Scheduling.mjs";
82
82
  import { t as SubscriptionTools_d_exports } from "./durable/SubscriptionTools.mjs";
83
83
  import { t as SubscriptionTransition_d_exports } from "./durable/SubscriptionTransition.mjs";
84
84
  import { t as ThreadContextHistory_d_exports } from "./durable/ThreadContextHistory.mjs";
85
85
  import { t as ThreadContextHistoryProjection_d_exports } from "./durable/ThreadContextHistoryProjection.mjs";
86
- import { l as ThreadImport_d_exports } from "./ThreadImport-D_Biid6w.mjs";
86
+ import { l as ThreadImport_d_exports } from "./ThreadImport-C6IiPJMW.mjs";
87
87
  import { t as ThreadInvariants_d_exports } from "./durable/ThreadInvariants.mjs";
88
88
  import { t as ThreadProjection_d_exports } from "./durable/ThreadProjection.mjs";
89
89
  import { t as ThreadProjectionMaintenance_d_exports } from "./durable/ThreadProjectionMaintenance.mjs";
package/dist/index.mjs CHANGED
@@ -3,19 +3,19 @@ import { t as ToolResult_exports } from "./core/ToolResult.mjs";
3
3
  import { t as AgentPolicy_exports } from "./core/AgentPolicy.mjs";
4
4
  import { t as Receipt_exports } from "./core/Receipt.mjs";
5
5
  import { t as AgentUpdates_exports } from "./core/AgentUpdates.mjs";
6
- import { t as Agent_exports } from "./Agent-BiRbr73L.mjs";
6
+ import { t as Agent_exports } from "./Agent-B3J0B4l6.mjs";
7
7
  import { a as FailureDiagnostic_exports } from "./FailureDiagnostic-D9oW23Cn.mjs";
8
8
  import { t as AgentError_exports } from "./core/AgentError.mjs";
9
9
  import { t as IdGenerator_exports } from "./core/IdGenerator.mjs";
10
10
  import { t as SubagentContract_exports } from "./core/SubagentContract.mjs";
11
11
  import { t as Usage_exports } from "./core/Usage.mjs";
12
12
  import { t as RunEvent_exports } from "./core/RunEvent.mjs";
13
- import { x as Worker_exports } from "./Worker-DZjdMjZn.mjs";
14
- import { n as MessagingHost_exports } from "./MessagingHost-CZCyrnvJ.mjs";
13
+ import { x as Worker_exports } from "./Worker-CtuUwYOK.mjs";
14
+ import { n as MessagingHost_exports } from "./MessagingHost-BILcuj0V.mjs";
15
15
  import { t as SubagentHost_exports } from "./engine/SubagentHost.mjs";
16
16
  import { t as Thread_exports } from "./core/Thread.mjs";
17
17
  import { t as ThreadHistory_exports } from "./engine/ThreadHistory.mjs";
18
- import { t as AgentRuntime_exports } from "./AgentRuntime-DaDKMasp.mjs";
18
+ import { t as AgentRuntime_exports } from "./AgentRuntime-DrQfy4cL.mjs";
19
19
  import { t as ProvisionalText_exports } from "./core/ProvisionalText.mjs";
20
20
  import { t as ContextWindow_exports } from "./engine/ContextWindow.mjs";
21
21
  import { t as DurableStep_exports } from "./engine/DurableStep.mjs";
@@ -58,21 +58,21 @@ import { t as RunHooks_exports } from "./capabilities/RunHooks.mjs";
58
58
  import { t as SemanticMemoryIndex_exports } from "./core/SemanticMemoryIndex.mjs";
59
59
  import { t as SemanticMemoryRevalidation_exports } from "./core/SemanticMemoryRevalidation.mjs";
60
60
  import { t as SemanticMemory_exports } from "./capabilities/SemanticMemory.mjs";
61
- import { r as Subagent_exports } from "./Subagent-CexndZSp.mjs";
61
+ import { r as Subagent_exports } from "./Subagent-C7F7c8Op.mjs";
62
62
  import { t as ToolDiscovery_exports } from "./capabilities/ToolDiscovery.mjs";
63
63
  import { t as ToolExposure_exports } from "./ToolExposure.mjs";
64
64
  import { t as WebCapture_exports } from "./capabilities/WebCapture.mjs";
65
65
  import { t as WebSearch_exports } from "./capabilities/WebSearch.mjs";
66
- import { $ as Records_exports } from "./Records-DzL4Kbtw.mjs";
66
+ import { $ as Records_exports } from "./Records-CZRedCE7.mjs";
67
67
  import { t as ActivityStore_exports } from "./durable/ActivityStore.mjs";
68
- import { n as Digest_exports } from "./Digest-C3EODOee.mjs";
68
+ import { n as Digest_exports } from "./Digest-ft4ku9pj.mjs";
69
69
  import { t as SubmissionLedger_exports } from "./durable/SubmissionLedger.mjs";
70
70
  import { t as Recovery_exports } from "./durable/Recovery.mjs";
71
71
  import { t as Admin_exports } from "./durable/Admin.mjs";
72
72
  import { t as AgentRegistration_exports } from "./durable/AgentRegistration.mjs";
73
73
  import { t as RecordFormat_exports } from "./durable/RecordFormat.mjs";
74
- import { n as RunJournal_exports } from "./RunJournal-DGblbFas.mjs";
75
- import { Z as ThreadStore_exports } from "./ThreadStore-BC4V-mY-.mjs";
74
+ import { n as RunJournal_exports } from "./RunJournal-oJLo-pjS.mjs";
75
+ import { Z as ThreadStore_exports } from "./ThreadStore-Cn6FDWX9.mjs";
76
76
  import { t as Schedule_exports } from "./durable/Schedule.mjs";
77
77
  import { t as PreparedInputAdmission_exports } from "./durable/PreparedInputAdmission.mjs";
78
78
  import { t as Subscription_exports } from "./durable/Subscription.mjs";
@@ -80,11 +80,11 @@ import { t as MessageDelivery_exports } from "./durable/MessageDelivery.mjs";
80
80
  import { t as ThreadArchiveRange_exports } from "./durable/ThreadArchiveRange.mjs";
81
81
  import { t as CommittedActivity_exports } from "./durable/CommittedActivity.mjs";
82
82
  import { t as DurableFailpoint_exports } from "./durable/DurableFailpoint.mjs";
83
- import { i as RunContinuation_exports } from "./RunContinuation-CWHuciup.mjs";
83
+ import { i as RunContinuation_exports } from "./RunContinuation-D42RFqjS.mjs";
84
84
  import { t as ThreadWork_exports } from "./durable/ThreadWork.mjs";
85
85
  import { t as WakeScheduler_exports } from "./durable/WakeScheduler.mjs";
86
- import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-BJbuIqQq.mjs";
87
- import { i as WorkerAdmission_exports } from "./WorkerAdmission-C47Vy_cK.mjs";
86
+ import { r as DurableAgentRuntime_exports } from "./DurableAgentRuntime-CGW93k81.mjs";
87
+ import { i as WorkerAdmission_exports } from "./WorkerAdmission-cfiK9aRi.mjs";
88
88
  import { t as WorkerHost_exports } from "./durable/WorkerHost.mjs";
89
89
  import { t as OperationAuthorizer_exports } from "./durable/OperationAuthorizer.mjs";
90
90
  import { t as SubmissionStatus_exports } from "./durable/SubmissionStatus.mjs";
@@ -92,13 +92,13 @@ import { t as ToolReconciler_exports } from "./durable/ToolReconciler.mjs";
92
92
  import { t as EventSource_exports } from "./durable/EventSource.mjs";
93
93
  import { t as PersistentHistory_exports } from "./durable/PersistentHistory.mjs";
94
94
  import { t as ScheduleTransition_exports } from "./durable/ScheduleTransition.mjs";
95
- import { i as Scheduling_exports } from "./Scheduling-07_dsGED.mjs";
95
+ import { i as Scheduling_exports } from "./Scheduling-BebkRVc2.mjs";
96
96
  import { t as SubscriptionInput_exports } from "./durable/SubscriptionInput.mjs";
97
97
  import { t as Subscriptions_exports } from "./durable/Subscriptions.mjs";
98
98
  import { t as SubscriptionTools_exports } from "./durable/SubscriptionTools.mjs";
99
99
  import { t as SubscriptionTransition_exports } from "./durable/SubscriptionTransition.mjs";
100
- import { o as ThreadImport_exports } from "./ThreadImport-ZgWxf7bB.mjs";
101
- import { n as ThreadTransfer_exports } from "./ThreadTransfer-S7FnTRHt.mjs";
100
+ import { o as ThreadImport_exports } from "./ThreadImport-DUcPj5jC.mjs";
101
+ import { n as ThreadTransfer_exports } from "./ThreadTransfer-BWnAHIge.mjs";
102
102
  import { t as ThreadInvariants_exports } from "./durable/ThreadInvariants.mjs";
103
103
  import { t as ThreadProjection_exports } from "./durable/ThreadProjection.mjs";
104
104
  import { t as ThreadProjectionMaintenance_exports } from "./durable/ThreadProjectionMaintenance.mjs";
@@ -1,6 +1,6 @@
1
1
  import { u as ThreadId } from "./Identifiers-CN2s30fF.mjs";
2
2
  import { d as CanonicalRecordEnvelope, et as RecordId } from "./Records-BTnGRdcf.mjs";
3
- import { Fi as ThreadPromptRead, Gi as ThreadStoreError, Mi as ThreadNotMaterialized, Ri as ThreadReader, ws as JournalRecordEnvelope } from "./Admin-DTDihBra.mjs";
3
+ import { Fi as ThreadPromptRead, Gi as ThreadStoreError, Mi as ThreadNotMaterialized, Ri as ThreadReader, ws as JournalRecordEnvelope } from "./Admin-Bpg24yCK.mjs";
4
4
  import { Context, Effect, Layer, Stream } from "effect";
5
5
  //#region src/durable/internal/run-context-reader.d.ts
6
6
  declare const RunContextReader_base: Context.ServiceClass<RunContextReader, "@effect-agent/thread/RunContextReader", {
@@ -14,4 +14,4 @@ declare class RunContextReader extends RunContextReader_base {
14
14
  }
15
15
  //#endregion
16
16
  export { RunContextReader as t };
17
- //# sourceMappingURL=run-context-reader-DvTEq2RC.d.mts.map
17
+ //# sourceMappingURL=run-context-reader-BtBPX_nC.d.mts.map
@@ -0,0 +1,17 @@
1
+ import * as Context from "effect/Context";
2
+ //#region src/core/internal/tool-execution.ts
3
+ /**
4
+ * Effect AI Tool annotation key declaring a Tool's execution class, applied
5
+ * with `Tool.annotate(ToolExecutionClass, "...")`.
6
+ *
7
+ * Unannotated Tools default to `"uncertain"`: security and durability
8
+ * decisions are fail-closed, so the framework never infers a safer class
9
+ * from a Tool's shape.
10
+ */
11
+ const ToolExecutionClass = Context.Reference("@effect-agent/engine/ToolExecutionClass", { defaultValue: () => "uncertain" });
12
+ /** Read a Tool's declared execution class, falling back to the fail-closed `"uncertain"` default. */
13
+ const getToolExecutionClass = (tool) => Context.get(tool.annotations, ToolExecutionClass);
14
+ //#endregion
15
+ export { getToolExecutionClass as n, ToolExecutionClass as t };
16
+
17
+ //# sourceMappingURL=tool-execution-Ba7tO7Pt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-execution-Ba7tO7Pt.mjs","names":[],"sources":["../src/core/internal/tool-execution.ts"],"sourcesContent":["import type { Tool } from \"effect/ai\";\nimport * as Context from \"effect/Context\";\n\n/**\n * Declared external execution class of one Tool, used by the durable runtime\n * to decide which Tool Calls need the prepared/settled uncertainty protocol:\n *\n * - `\"readonly\"`: the handler performs no external mutation. A crash between\n * start and settlement is a free re-run; no prepared record is written.\n * - `\"idempotent\"`: the handler declares an external idempotency contract\n * (it owns key derivation). Prepared/settled records are written and\n * recovery may re-execute without reconciliation proof.\n * - `\"uncertain\"`: no external contract is declared. Prepared/settled records\n * are written and recovery must reconcile or record an Unknown Outcome.\n */\nexport type ToolExecutionClassValue = \"readonly\" | \"idempotent\" | \"uncertain\";\n\n/**\n * Effect AI Tool annotation key declaring a Tool's execution class, applied\n * with `Tool.annotate(ToolExecutionClass, \"...\")`.\n *\n * Unannotated Tools default to `\"uncertain\"`: security and durability\n * decisions are fail-closed, so the framework never infers a safer class\n * from a Tool's shape.\n */\nexport const ToolExecutionClass = Context.Reference<ToolExecutionClassValue>(\n \"@effect-agent/engine/ToolExecutionClass\",\n { defaultValue: () => \"uncertain\" },\n);\n\n/** Read a Tool's declared execution class, falling back to the fail-closed `\"uncertain\"` default. */\nexport const getToolExecutionClass = (tool: Tool.Any): ToolExecutionClassValue =>\n Context.get(tool.annotations, ToolExecutionClass);\n"],"mappings":";;;;;;;;;;AAyBA,MAAa,qBAAqB,QAAQ,UACxC,2CACA,EAAE,oBAAoB,YAAY,CACpC;;AAGA,MAAa,yBAAyB,SACpC,QAAQ,IAAI,KAAK,aAAa,kBAAkB"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@yielded/agent","version":"0.1.0-beta.176","devDependencies":{"@effect/platform-node":"4.0.4","@effect/vitest":"4.0.4","effect":"4.0.4","typescript":"7.0.2","vite":"npm:@voidzero-dev/vite-plus-core@1.1.0","vite-plus":"1.1.0","vitest":"5.0.3"},"peerDependencies":{"effect":"^4.0.3"},"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"},"./browser-use":{"types":"./dist/capabilities/BrowserUse.d.mts","default":"./dist/capabilities/BrowserUse.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"},"./provisional-text":{"types":"./dist/core/ProvisionalText.d.mts","default":"./dist/core/ProvisionalText.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-continuation":{"types":"./dist/durable/RunContinuation.d.mts","default":"./dist/durable/RunContinuation.mjs"},"./thread-work":{"types":"./dist/durable/ThreadWork.d.mts","default":"./dist/durable/ThreadWork.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"},"./run-storage":{"types":"./dist/durable/RunStorage.d.mts","default":"./dist/durable/RunStorage.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"},"./settlement-publisher":{"types":"./dist/durable/SettlementPublisher.d.mts","default":"./dist/durable/SettlementPublisher.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.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-reader":{"types":"./dist/durable/ThreadReader.d.mts","default":"./dist/durable/ThreadReader.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-admission":{"types":"./dist/durable/WorkerAdmission.d.mts","default":"./dist/durable/WorkerAdmission.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"},"./lifecycle-publication":{"types":"./dist/durable/LifecyclePublication.d.mts","default":"./dist/durable/LifecyclePublication.mjs"},"./record-format":{"types":"./dist/durable/RecordFormat.d.mts","default":"./dist/durable/RecordFormat.mjs"},"./thread-import":{"types":"./dist/durable/ThreadImport.d.mts","default":"./dist/durable/ThreadImport.mjs"},"./thread-archive-range":{"types":"./dist/durable/ThreadArchiveRange.d.mts","default":"./dist/durable/ThreadArchiveRange.mjs"},"./thread-transfer":{"types":"./dist/durable/ThreadTransfer.d.mts","default":"./dist/durable/ThreadTransfer.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/yielded-dev/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":"@yielded/agent","version":"0.1.0-beta.177","devDependencies":{"@effect/platform-node":"4.0.4","@effect/vitest":"4.0.4","effect":"4.0.4","typescript":"7.0.2","vite":"npm:@voidzero-dev/vite-plus-core@1.1.0","vite-plus":"1.1.0","vitest":"5.0.3"},"peerDependencies":{"effect":"^4.0.3"},"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"},"./browser-use":{"types":"./dist/capabilities/BrowserUse.d.mts","default":"./dist/capabilities/BrowserUse.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"},"./provisional-text":{"types":"./dist/core/ProvisionalText.d.mts","default":"./dist/core/ProvisionalText.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-continuation":{"types":"./dist/durable/RunContinuation.d.mts","default":"./dist/durable/RunContinuation.mjs"},"./thread-work":{"types":"./dist/durable/ThreadWork.d.mts","default":"./dist/durable/ThreadWork.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"},"./run-storage":{"types":"./dist/durable/RunStorage.d.mts","default":"./dist/durable/RunStorage.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"},"./settlement-publisher":{"types":"./dist/durable/SettlementPublisher.d.mts","default":"./dist/durable/SettlementPublisher.mjs"},"./sql-memory-store":{"types":"./dist/durable/SqlMemoryStore.d.mts","default":"./dist/durable/SqlMemoryStore.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-reader":{"types":"./dist/durable/ThreadReader.d.mts","default":"./dist/durable/ThreadReader.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-admission":{"types":"./dist/durable/WorkerAdmission.d.mts","default":"./dist/durable/WorkerAdmission.mjs"},"./worker-host":{"types":"./dist/durable/WorkerHost.d.mts","default":"./dist/durable/WorkerHost.mjs"},"./lifecycle-publication":{"types":"./dist/durable/LifecyclePublication.d.mts","default":"./dist/durable/LifecyclePublication.mjs"},"./record-format":{"types":"./dist/durable/RecordFormat.d.mts","default":"./dist/durable/RecordFormat.mjs"},"./thread-import":{"types":"./dist/durable/ThreadImport.d.mts","default":"./dist/durable/ThreadImport.mjs"},"./thread-archive-range":{"types":"./dist/durable/ThreadArchiveRange.d.mts","default":"./dist/durable/ThreadArchiveRange.mjs"},"./thread-transfer":{"types":"./dist/durable/ThreadTransfer.d.mts","default":"./dist/durable/ThreadTransfer.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/yielded-dev/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"}}
@@ -101,10 +101,12 @@ export const WorkerRun = Schema.Struct({
101
101
  export const WorkerSummary = Schema.Struct({
102
102
  worker: WorkerRef,
103
103
  latestReceipt: Schema.NullOr(Receipt),
104
- /** stopping/stopped identify an owner-issued worker stop, never an ordinary Receipt abort. */
104
+ /** Unknown work awaits reconciliation and is not progressing. stopping/stopped identify
105
+ * an owner-issued worker stop, never an ordinary Receipt abort. */
105
106
  state: Schema.Literals([
106
107
  "starting",
107
108
  "active",
109
+ "unknown",
108
110
  "idle",
109
111
  "stopping",
110
112
  "stopped",
@@ -3,6 +3,12 @@ import * as Toolkit from "effect/ai/Toolkit";
3
3
  import * as Schema from "effect/Schema";
4
4
 
5
5
  import { Emitter, UpdateError } from "../AgentUpdates.ts";
6
+ import type { RunId } from "../Identifiers.ts";
7
+ import { ToolExecutionClass } from "./tool-execution.ts";
8
+
9
+ /** Stable native acceptance identity, shared by execution and recovery. */
10
+ export const nativeUpdateId = (runId: RunId, toolCallId: string): string =>
11
+ `tool:${runId}:${toolCallId}`;
6
12
 
7
13
  /** Definition-owned native Tool. Runtime supplies its handler under the same identity. */
8
14
  export const updateTool = <S extends Schema.Top>(schema: S) =>
@@ -14,7 +20,9 @@ export const updateTool = <S extends Schema.Top>(schema: S) =>
14
20
  success: Schema.Struct({ emitted: Schema.Literal(true) }),
15
21
  failure: UpdateError,
16
22
  failureMode: "return",
17
- }).addDependency(Emitter);
23
+ })
24
+ .addDependency(Emitter)
25
+ .annotate(ToolExecutionClass, "idempotent");
18
26
 
19
27
  export type UpdateToolkit<
20
28
  T extends Toolkit.Any,
@@ -0,0 +1,33 @@
1
+ import type { Tool } from "effect/ai";
2
+ import * as Context from "effect/Context";
3
+
4
+ /**
5
+ * Declared external execution class of one Tool, used by the durable runtime
6
+ * to decide which Tool Calls need the prepared/settled uncertainty protocol:
7
+ *
8
+ * - `"readonly"`: the handler performs no external mutation. A crash between
9
+ * start and settlement is a free re-run; no prepared record is written.
10
+ * - `"idempotent"`: the handler declares an external idempotency contract
11
+ * (it owns key derivation). Prepared/settled records are written and
12
+ * recovery may re-execute without reconciliation proof.
13
+ * - `"uncertain"`: no external contract is declared. Prepared/settled records
14
+ * are written and recovery must reconcile or record an Unknown Outcome.
15
+ */
16
+ export type ToolExecutionClassValue = "readonly" | "idempotent" | "uncertain";
17
+
18
+ /**
19
+ * Effect AI Tool annotation key declaring a Tool's execution class, applied
20
+ * with `Tool.annotate(ToolExecutionClass, "...")`.
21
+ *
22
+ * Unannotated Tools default to `"uncertain"`: security and durability
23
+ * decisions are fail-closed, so the framework never infers a safer class
24
+ * from a Tool's shape.
25
+ */
26
+ export const ToolExecutionClass = Context.Reference<ToolExecutionClassValue>(
27
+ "@effect-agent/engine/ToolExecutionClass",
28
+ { defaultValue: () => "uncertain" },
29
+ );
30
+
31
+ /** Read a Tool's declared execution class, falling back to the fail-closed `"uncertain"` default. */
32
+ export const getToolExecutionClass = (tool: Tool.Any): ToolExecutionClassValue =>
33
+ Context.get(tool.annotations, ToolExecutionClass);
@@ -156,7 +156,7 @@ import {
156
156
  resolveWorkerBinding,
157
157
  CurrentBindingSelection,
158
158
  } from "./internal/agent-registration.ts";
159
- import { makeAgentUpdateRuntime } from "./internal/agent-updates.ts";
159
+ import { makeAgentUpdateRuntime, nativeUpdateAccepted } from "./internal/agent-updates.ts";
160
160
  import { inspectForeignDiagnostic, safeUnknownString } from "./internal/foreign-diagnostic.ts";
161
161
  import { initialContext, type InitialContextInput } from "./internal/initial-context.ts";
162
162
  import {
@@ -3094,6 +3094,22 @@ const make = Effect.fnUntraced(function* (bindings: ReadonlyArray<ResolvedBindin
3094
3094
  recovered += 1;
3095
3095
  });
3096
3096
 
3097
+ // Retry permission cannot mask a recorded outcome or require a runnable old binding.
3098
+ // Explicit factual resolutions and abort instructions retain their own handling below.
3099
+ if (
3100
+ (intent === undefined || intent.resolution._tag === "SafeToRetry") &&
3101
+ declared !== undefined &&
3102
+ nativeUpdateAccepted(submission, declared, records)
3103
+ ) {
3104
+ yield* appendClosedCall(ctx, submissionId, knownIds, call, {
3105
+ result: { value: { emitted: true }, isFailure: false },
3106
+ resolution: "completed-with-result",
3107
+ author: RECONCILER_AUTHOR,
3108
+ reason: "The exact native update was canonically accepted",
3109
+ });
3110
+ recovered += 1;
3111
+ continue;
3112
+ }
3097
3113
  if (intent !== undefined) {
3098
3114
  switch (intent.resolution._tag) {
3099
3115
  case "AbortSubmission":
@@ -9649,6 +9665,8 @@ const make = Effect.fnUntraced(function* (bindings: ReadonlyArray<ResolvedBindin
9649
9665
  for (const intent of intents) {
9650
9666
  const original = declared.get(intent.toolCallId);
9651
9667
 
9668
+ if (original !== undefined && nativeUpdateAccepted(submission, original, records)) continue;
9669
+
9652
9670
  if (
9653
9671
  original === undefined ||
9654
9672
  (current !== undefined &&
@@ -9830,9 +9848,52 @@ const make = Effect.fnUntraced(function* (bindings: ReadonlyArray<ResolvedBindin
9830
9848
  return yield* applyUnknownResolutionsForRecovery(snapshot, evidence, records);
9831
9849
  }
9832
9850
  case "AwaitUnknownResolution": {
9833
- // This Submission stays parked awaiting the authorized DUR-017 resolution path;
9834
- // the settlement obligation stays visible, nothing replays.
9835
- return "unknown";
9851
+ // Older Attempts may already have marked a native update unknown. Its exact
9852
+ // canonical acceptance is a factual resolution, never permission to retry an
9853
+ // external operation. The ledger wakes only when every unknown call is covered;
9854
+ // the next owner appends closure under the original call identity.
9855
+ const declared = yield* declaredCallsFor(
9856
+ records,
9857
+ runId,
9858
+ new Set(evidence.openToolCalls.map((call) => call.toolCallId)),
9859
+ );
9860
+
9861
+ let repaired = false;
9862
+
9863
+ for (const call of declared.values()) {
9864
+ if (
9865
+ snapshot.unknownResolutions.some((intent) => intent.toolCallId === call.toolCallId) ||
9866
+ !nativeUpdateAccepted(submission, call, records)
9867
+ )
9868
+ continue;
9869
+ yield* ledger
9870
+ .recordUnknownResolution(
9871
+ UnknownResolutionCommand.make({
9872
+ submissionId: submission.submissionId,
9873
+ toolCallId: call.toolCallId,
9874
+ author: RECONCILER_AUTHOR,
9875
+ reason: "The exact native update was canonically accepted",
9876
+ resolution: {
9877
+ _tag: "CompletedWithResult",
9878
+ result: { emitted: true },
9879
+ isFailure: false,
9880
+ },
9881
+ }),
9882
+ )
9883
+ .pipe(
9884
+ Effect.catchTag("UnknownResolutionConflict", (cause) =>
9885
+ LedgerError.make({
9886
+ operation: "recover native update",
9887
+ message: "Native acceptance conflicts with a retained resolution",
9888
+ cause,
9889
+ }),
9890
+ ),
9891
+ );
9892
+ repaired = true;
9893
+ }
9894
+ if (repaired) yield* wake.notify(submission.threadId);
9895
+
9896
+ return repaired ? "repaired" : "unknown";
9836
9897
  }
9837
9898
  case "AwaitApprovalDecision": {
9838
9899
  return yield* awaitApprovalForRecovery(snapshot, evidence, decision);
@@ -10486,8 +10547,11 @@ const make = Effect.fnUntraced(function* (bindings: ReadonlyArray<ResolvedBindin
10486
10547
 
10487
10548
  const factual = intent?.resolution;
10488
10549
 
10550
+ const acceptedNative =
10551
+ factual === undefined && (yield* updateRuntime.accepted(submission, selected.declared));
10552
+
10489
10553
  const reconciliation =
10490
- factual === undefined && selected.declared.executionKind === "ordinary"
10554
+ factual === undefined && !acceptedNative && selected.declared.executionKind === "ordinary"
10491
10555
  ? yield* reconciler
10492
10556
  .reconcile(
10493
10557
  DeclaredToolCallEvidence.make({
@@ -10505,9 +10569,11 @@ const make = Effect.fnUntraced(function* (bindings: ReadonlyArray<ResolvedBindin
10505
10569
  const completed =
10506
10570
  factual?._tag === "CompletedWithResult"
10507
10571
  ? factual
10508
- : Option.isSome(reconciliation) && reconciliation.value._tag === "CompletedWithResult"
10509
- ? reconciliation.value
10510
- : undefined;
10572
+ : acceptedNative
10573
+ ? { result: { emitted: true }, isFailure: false }
10574
+ : Option.isSome(reconciliation) && reconciliation.value._tag === "CompletedWithResult"
10575
+ ? reconciliation.value
10576
+ : undefined;
10511
10577
 
10512
10578
  const neverStarted =
10513
10579
  factual?._tag === "NeverHappened" ||
@@ -2,6 +2,7 @@ import { Clock, Crypto, DateTime, Effect, Option, Schema, Stream } from "effect"
2
2
 
3
3
  import { Update, UpdateError } from "../../core/AgentUpdates.ts";
4
4
  import type { RunId, SubmissionId, ThreadId } from "../../core/Identifiers.ts";
5
+ import { nativeUpdateId } from "../../core/internal/agent-updates.ts";
5
6
  import { utf8ByteLength } from "../../core/internal/utf8.ts";
6
7
  import { IdempotencyKey } from "../../core/Receipt.ts";
7
8
  import { digestJson } from "../Digest.ts";
@@ -16,6 +17,8 @@ import {
16
17
  BatchId,
17
18
  CanonicalBatch,
18
19
  DefinitionDigests,
20
+ type CanonicalRecordEnvelope,
21
+ type DeclaredToolCall,
19
22
  type DeploymentId,
20
23
  PersistedJson,
21
24
  type ProducerId,
@@ -26,7 +29,7 @@ import { CurrentRunWriter, readRunEvidenceSnapshot } from "../RunContinuation.ts
26
29
  import { runIdForSubmission } from "../RunJournal.ts";
27
30
  import { LedgerError, type SubmissionSnapshot } from "../SubmissionLedger.ts";
28
31
  import { PreparedInput } from "../Subscription.ts";
29
- import { ThreadReader, ThreadStore, ThreadTailRequest } from "../ThreadStore.ts";
32
+ import { getRecord, ThreadReader, ThreadStore, ThreadTailRequest } from "../ThreadStore.ts";
30
33
  import {
31
34
  deliveryPredecessor,
32
35
  decodeWorkCursor,
@@ -44,6 +47,37 @@ const storage = () =>
44
47
 
45
48
  const rejected = (reason: UpdateError["reason"]) => UpdateError.make({ reason });
46
49
 
50
+ const updateDigest = (threadId: ThreadId, runId: RunId, updateId: string) =>
51
+ digestJson([threadId, runId, updateId]);
52
+
53
+ const nativeParameters = Schema.Struct({ value: Schema.Json });
54
+ const isNativeParameters = Schema.is(nativeParameters);
55
+ const definitionDigestsEqual = Schema.toEquivalence(DefinitionDigests);
56
+ const updateValuesEqual = Schema.toEquivalence(Schema.Json);
57
+
58
+ /** Canonical native acceptance proves only this exact update call, never an external effect.
59
+ * Its frozen delivery remains independently recoverable even when its Tool acknowledgement is lost.
60
+ */
61
+ export const nativeUpdateAccepted = (
62
+ submission: SubmissionSnapshot,
63
+ call: DeclaredToolCall,
64
+ records: ReadonlyArray<CanonicalRecordEnvelope>,
65
+ ): boolean => {
66
+ if (call.toolName !== "emit_update" || !isNativeParameters(call.parameters)) return false;
67
+ const value = call.parameters.value;
68
+
69
+ return records.some(
70
+ ({ record: { payload } }) =>
71
+ payload._tag === "AgentUpdateEmitted" &&
72
+ payload.update.threadId === submission.threadId &&
73
+ payload.update.agentId === submission.agentId &&
74
+ payload.update.runId === call.runId &&
75
+ payload.update.updateId === nativeUpdateId(call.runId, call.toolCallId) &&
76
+ definitionDigestsEqual(payload.definitions, submission.agentDigests) &&
77
+ updateValuesEqual(payload.update.value, value),
78
+ );
79
+ };
80
+
47
81
  /** Acceptance is fenced by the actual emitting Attempt; recovery only recreates frozen outbox rows. */
48
82
  export const makeAgentUpdateRuntime = Effect.fnUntraced(function* (options: {
49
83
  readonly deploymentId: DeploymentId;
@@ -58,6 +92,28 @@ export const makeAgentUpdateRuntime = Effect.fnUntraced(function* (options: {
58
92
 
59
93
  const reader = ThreadReader.fromStore(store);
60
94
 
95
+ // Terminal operation evidence excludes updates; fetch the original acceptance by its
96
+ // stable identity instead of expanding every operation's recovery history.
97
+ const accepted = Effect.fnUntraced(function* (
98
+ submission: SubmissionSnapshot,
99
+ call: DeclaredToolCall,
100
+ ) {
101
+ if (call.toolName !== "emit_update") return false;
102
+
103
+ const digest = yield* updateDigest(
104
+ submission.threadId,
105
+ call.runId,
106
+ nativeUpdateId(call.runId, call.toolCallId),
107
+ ).pipe(Effect.provideService(Crypto.Crypto, crypto), Effect.mapError(storage));
108
+
109
+ const record = yield* getRecord({
110
+ threadId: submission.threadId,
111
+ recordId: RecordId.make(`agent-update:${digest}`),
112
+ }).pipe(Effect.provideService(ThreadReader, reader), Effect.mapError(storage));
113
+
114
+ return Option.isSome(record) && nativeUpdateAccepted(submission, call, [record.value]);
115
+ });
116
+
61
117
  const readRun = Effect.fnUntraced(function* (threadId: ThreadId, submissionId: SubmissionId) {
62
118
  const tail = yield* store
63
119
  .inspectTail(ThreadTailRequest.make({ threadId }))
@@ -194,7 +250,7 @@ export const makeAgentUpdateRuntime = Effect.fnUntraced(function* (options: {
194
250
  Effect.mapError(() => rejected("validation")),
195
251
  );
196
252
 
197
- const digest = yield* digestJson([request.submission.threadId, request.runId, updateId]).pipe(
253
+ const digest = yield* updateDigest(request.submission.threadId, request.runId, updateId).pipe(
198
254
  Effect.provideService(Crypto.Crypto, crypto),
199
255
  Effect.mapError(storage),
200
256
  );
@@ -367,5 +423,5 @@ export const makeAgentUpdateRuntime = Effect.fnUntraced(function* (options: {
367
423
  ),
368
424
  );
369
425
 
370
- return { emit, repair: insert, repairRun };
426
+ return { emit, accepted, repair: insert, repairRun };
371
427
  });