@effect-agent/platform-cloudflare 0.1.0-beta.13 → 0.1.0-beta.130

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 (105) hide show
  1. package/dist/Alarm.d.mts +244 -0
  2. package/dist/Alarm.mjs +947 -0
  3. package/dist/Alarm.mjs.map +1 -0
  4. package/dist/BrowserCredentials.d.mts +91 -0
  5. package/dist/BrowserCredentials.mjs +120 -0
  6. package/dist/BrowserCredentials.mjs.map +1 -0
  7. package/dist/BrowserRestCapture.d.mts +34 -0
  8. package/dist/BrowserRestCapture.mjs +238 -0
  9. package/dist/BrowserRestCapture.mjs.map +1 -0
  10. package/dist/BrowserRestCrawl.d.mts +16 -0
  11. package/dist/BrowserRestCrawl.mjs +244 -0
  12. package/dist/BrowserRestCrawl.mjs.map +1 -0
  13. package/dist/BrowserSession-BplIoNfi.mjs +442 -0
  14. package/dist/BrowserSession-BplIoNfi.mjs.map +1 -0
  15. package/dist/BrowserSession-DxCN-5F9.d.mts +109 -0
  16. package/dist/BrowserSession.d.mts +3 -0
  17. package/dist/BrowserSession.mjs +4 -0
  18. package/dist/CloudflareAiGateway.d.mts +64 -0
  19. package/dist/CloudflareAiGateway.mjs +70 -0
  20. package/dist/CloudflareAiGateway.mjs.map +1 -0
  21. package/dist/CloudflareBindings.d.mts +115 -0
  22. package/dist/CloudflareBindings.mjs +113 -0
  23. package/dist/CloudflareBindings.mjs.map +1 -0
  24. package/dist/CloudflareBrowser-DV6kya1H.mjs +495 -0
  25. package/dist/CloudflareBrowser-DV6kya1H.mjs.map +1 -0
  26. package/dist/CloudflareBrowser-Doe1M7R5.d.mts +80 -0
  27. package/dist/CloudflareBrowser.d.mts +2 -0
  28. package/dist/CloudflareBrowser.mjs +2 -0
  29. package/dist/CloudflareCodeMode.d.mts +44 -0
  30. package/dist/CloudflareCodeMode.mjs +616 -0
  31. package/dist/CloudflareCodeMode.mjs.map +1 -0
  32. package/dist/CloudflareConfig-DKXGo8L3.d.mts +106 -0
  33. package/dist/CloudflareConfig.d.mts +2 -0
  34. package/dist/CloudflareConfig.mjs +128 -0
  35. package/dist/CloudflareConfig.mjs.map +1 -0
  36. package/dist/CloudflareMemory.d.mts +142 -0
  37. package/dist/CloudflareMemory.mjs +202 -0
  38. package/dist/CloudflareMemory.mjs.map +1 -0
  39. package/dist/CloudflareScheduling.d.mts +52 -0
  40. package/dist/CloudflareScheduling.mjs +396 -0
  41. package/dist/CloudflareScheduling.mjs.map +1 -0
  42. package/dist/CloudflareSubscriptions.d.mts +87 -0
  43. package/dist/CloudflareSubscriptions.mjs +530 -0
  44. package/dist/CloudflareSubscriptions.mjs.map +1 -0
  45. package/dist/CloudflareThreadClient.d.mts +1752 -0
  46. package/dist/CloudflareThreadClient.mjs +382 -0
  47. package/dist/CloudflareThreadClient.mjs.map +1 -0
  48. package/dist/InteractiveBrowser-BnqY_Y-F.d.mts +228 -0
  49. package/dist/InteractiveBrowser-D-xxDv_f.mjs +1923 -0
  50. package/dist/InteractiveBrowser-D-xxDv_f.mjs.map +1 -0
  51. package/dist/InteractiveBrowser.d.mts +2 -0
  52. package/dist/InteractiveBrowser.mjs +2 -0
  53. package/dist/ThreadObject-CVhZC-7l.mjs +849 -0
  54. package/dist/ThreadObject-CVhZC-7l.mjs.map +1 -0
  55. package/dist/ThreadObject-CcS4Q2iT.d.mts +839 -0
  56. package/dist/ThreadObject.d.mts +2 -0
  57. package/dist/ThreadObject.mjs +3 -0
  58. package/dist/WakeScheduler.d.mts +23 -0
  59. package/dist/WakeScheduler.mjs +57 -0
  60. package/dist/WakeScheduler.mjs.map +1 -0
  61. package/dist/boundary-BguazVkh.mjs +42 -0
  62. package/dist/boundary-BguazVkh.mjs.map +1 -0
  63. package/dist/index.d.mts +15 -1550
  64. package/dist/index.mjs +15 -1716
  65. package/dist/prepared-admission-DU0_T-ev.mjs +73 -0
  66. package/dist/prepared-admission-DU0_T-ev.mjs.map +1 -0
  67. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  68. package/package.json +1 -56
  69. package/src/Alarm.ts +1979 -0
  70. package/src/BrowserCredentials.ts +146 -0
  71. package/src/BrowserRestCapture.ts +477 -0
  72. package/src/BrowserRestCrawl.ts +540 -0
  73. package/src/BrowserSession.ts +591 -0
  74. package/src/CloudflareAiGateway.ts +170 -0
  75. package/src/CloudflareBindings.ts +199 -0
  76. package/src/CloudflareBrowser.ts +15 -0
  77. package/src/{code-mode-executor.ts → CloudflareCodeMode.ts} +308 -283
  78. package/src/{config.ts → CloudflareConfig.ts} +19 -12
  79. package/src/CloudflareMemory.ts +420 -0
  80. package/src/CloudflareScheduling.ts +747 -0
  81. package/src/CloudflareSubscriptions.ts +1041 -0
  82. package/src/CloudflareThreadClient.ts +809 -0
  83. package/src/InteractiveBrowser.ts +3246 -0
  84. package/src/ThreadObject.ts +1190 -0
  85. package/src/{wake-scheduler.ts → WakeScheduler.ts} +32 -26
  86. package/src/index.ts +14 -23
  87. package/src/internal/boundary.ts +55 -0
  88. package/src/internal/browser-binding.ts +322 -0
  89. package/src/internal/browser-credentials.ts +362 -0
  90. package/src/internal/browser-failure.ts +92 -0
  91. package/src/internal/browser-file-selection.ts +126 -0
  92. package/src/internal/browser-quick-action.ts +857 -0
  93. package/src/internal/browser-session-lifecycle.ts +193 -0
  94. package/src/internal/layers.ts +773 -0
  95. package/src/internal/message-delivery.ts +131 -0
  96. package/src/internal/prepared-admission.ts +116 -0
  97. package/src/internal/progress-wait.ts +121 -0
  98. package/src/internal/transport.ts +44 -0
  99. package/dist/index.mjs.map +0 -1
  100. package/src/alarm.ts +0 -334
  101. package/src/bindings.ts +0 -145
  102. package/src/client.ts +0 -646
  103. package/src/conversation-object.ts +0 -768
  104. package/src/layers.ts +0 -376
  105. package/src/transport.ts +0 -38
@@ -0,0 +1,244 @@
1
+ import { DurableObjectContext } from "./CloudflareBindings.mjs";
2
+ import { s as CloudflareDurableRuntimeConfig } from "./CloudflareConfig-DKXGo8L3.mjs";
3
+ import { Cause, Context, Effect, Layer, Option, Schema, Scope } from "effect";
4
+ import { DurableBindingFailure } from "effect-agent/agent-registration";
5
+ import { DurableAgentRuntime, DurableRuntimeConfig, DurableWorkerFailure, RecoveryFailure } from "effect-agent/durable-agent-runtime";
6
+ import { ThreadId } from "effect-agent/identifiers";
7
+ import { OperationDenied } from "effect-agent/operation-authorizer";
8
+ import { SubmissionLedger } from "effect-agent/submission-ledger";
9
+ import { ThreadProjectionError, ThreadProjectionMaintenance } from "effect-agent/thread-projection-maintenance";
10
+ import { WakeScheduler } from "effect-agent/wake-scheduler";
11
+ import { SqlClient } from "effect/unstable/sql/SqlClient";
12
+ declare namespace Alarm_d_exports {
13
+ export { DurableAlarmError, DurableAlarmService, MaintenancePassFailure, MaintenancePassReport, ThreadHostMaintenance, ThreadHostMaintenanceLane, ThreadMaintenance, ThreadMaintenanceFailpoint, ThreadMaintenanceFailpointHandler, ThreadMaintenanceFailpointLocation, ThreadMessageDelivery, ThreadMutationGate, ThreadPublication, ThreadPublicationService, ThreadRecoveryFault, publishCommitted };
14
+ }
15
+ declare const DurableAlarmError_base: Schema.Class<DurableAlarmError, Schema.TaggedStruct<"DurableAlarmError", {
16
+ readonly operation: Schema.String;
17
+ readonly message: Schema.String;
18
+ readonly cause: Schema.optionalKey<Schema.Defect>;
19
+ }>, Cause.YieldableError>;
20
+ /**
21
+ * The single multiplexed Durable Object alarm (decision D-P6-2). A Durable Object has ONE
22
+ * alarm slot; every cadence the Node host ran on fibers (wake scan, lease expiry, settlement
23
+ * and abort re-checks, retry backoff) multiplexes into one idempotent maintenance pass, and
24
+ * the slot always holds the EARLIEST deadline any caller asked for.
25
+ *
26
+ * The alarm invariant (plan §1.4): every committed actionable mutation carries a newer durable
27
+ * maintenance generation and a committed alarm. Stable externally-driven waits may be
28
+ * nonterminal without retaining an alarm; their resolving mutation advances the generation and
29
+ * restores the alarm atomically.
30
+ */
31
+ /** The Durable Object alarm API failed; surfaces on host entry points as a typed refusal. */
32
+ export declare class DurableAlarmError extends DurableAlarmError_base {}
33
+ declare const DurableAlarmService_base: Context.ServiceClass<DurableAlarmService, "@effect-agent/platform-cloudflare/DurableAlarmService", {
34
+ /** The scheduled deadline in epoch milliseconds, if any. */
35
+ readonly scheduled: Effect.Effect<Option.Option<number>, DurableAlarmError>;
36
+ /** Replace the slot with this deadline. */
37
+ readonly scheduleAt: (epochMillis: number) => Effect.Effect<void, DurableAlarmError>;
38
+ /** Keep the EARLIER of the existing deadline and this one (the multiplexing rule). */
39
+ readonly ensureScheduledBy: (epochMillis: number) => Effect.Effect<void, DurableAlarmError>;
40
+ /**
41
+ * Arm an immediate alarm (the durable, coalescing local wake) — DEFERRED while a
42
+ * maintenance pass is executing. Workerd cancels an in-flight alarm handler when a new
43
+ * EARLIER deadline is written during its execution (`requestScheduledAlarm`), and the
44
+ * maintenance pass runs INSIDE the alarm handler: an immediate wake landing mid-pass
45
+ * (a routed port mutation, a sibling's `wake()`, the coordinator's own local notify)
46
+ * would kill the running Attempt — manufacturing an ownership loss no real eviction
47
+ * caused, and routing open uncertain-class Tool Calls into spurious Unknown Outcomes.
48
+ * Deferral is contract-safe: wakes are droppable hints, every mutating entry point
49
+ * pre-arms BEFORE its first durable mutation (the alarm invariant never rests on this
50
+ * call). The pass's durable generation check observes any racing mutation, so the
51
+ * in-memory hint does not need to be flushed after a stable wait is acknowledged.
52
+ */
53
+ readonly scheduleNow: Effect.Effect<void, DurableAlarmError>;
54
+ /**
55
+ * Run one maintenance pass with wake deferral (see `scheduleNow`). Calls made while `body`
56
+ * executes are droppable promptness hints; correctness rests on the durable generation.
57
+ */
58
+ readonly withWakesDeferred: <A, E, R>(body: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
59
+ /** Clear the slot; correctness-sensitive clears live in maintenance generation transactions. */
60
+ readonly cancel: Effect.Effect<void, DurableAlarmError>;
61
+ }>;
62
+ /** `ctx.storage` alarm slot as an Effect service; storage is truth, never a memory field. */
63
+ export declare class DurableAlarmService extends DurableAlarmService_base {
64
+ static readonly layer: Layer.Layer<DurableAlarmService, never, DurableObjectContext | SqlClient>;
65
+ }
66
+ declare const MaintenancePassReport_base: Schema.Class<MaintenancePassReport, Schema.Struct<{
67
+ /** `caught-up` ran no runtime work (publication may be pending); `actionable` ran recovery. */
68
+ readonly phase: Schema.Literals<readonly ["caught-up", "actionable"]>;
69
+ /** Recovery decisions and Thread faults observed during this event. */
70
+ readonly recovered: Schema.Int;
71
+ /** Head Attempts settled during the event. Joined input may settle with each head. */
72
+ readonly settled: Schema.Int;
73
+ /** Submissions still nonterminal after the pass (suspended/unknown lanes stay honest). */
74
+ readonly nonterminal: Schema.Int;
75
+ /** `rearmed` for dirty/autonomous work, `cleared` for stable waits or settlement. */
76
+ readonly alarm: Schema.Literals<readonly ["rearmed", "cleared"]>;
77
+ }>, {}>;
78
+ /** What one maintenance pass did — auditable evidence mirroring `NodeDurableHost`'s report. */
79
+ export declare class MaintenancePassReport extends MaintenancePassReport_base {}
80
+ /** Fault boundaries around every maintenance-owned durable mutation. */
81
+ export type ThreadMaintenanceFailpointLocation = "maintenance:dirty:before" | "maintenance:dirty:after" | "maintenance:mutation:armed" | "maintenance:mutation:finished" | "maintenance:ensure:before" | "maintenance:ensure:after" | "maintenance:begin:before" | "maintenance:begin:after" | "maintenance:select:before" | "maintenance:select:after" | "maintenance:binding-retry:before" | "maintenance:binding-retry:after" | "maintenance:recovery-status:before" | "maintenance:recovery-status:after" | "maintenance:retry:before" | "maintenance:retry:after" | "maintenance:checkpoint:before" | "maintenance:checkpoint:after" | "maintenance:finish:before" | "maintenance:finish:after";
82
+ export type ThreadMaintenanceFailpointHandler = (location: ThreadMaintenanceFailpointLocation) => Effect.Effect<void>;
83
+ declare const ThreadMaintenanceFailpoint_base: Context.ServiceClass<ThreadMaintenanceFailpoint, "@effect-agent/platform-cloudflare/ThreadMaintenanceFailpoint", {
84
+ readonly hit: ThreadMaintenanceFailpointHandler;
85
+ }>;
86
+ /** Test-only fault authority; production uses the inert layer. */
87
+ export declare class ThreadMaintenanceFailpoint extends ThreadMaintenanceFailpoint_base {
88
+ static readonly layer: Layer.Layer<ThreadMaintenanceFailpoint, never, never>;
89
+ }
90
+ /**
91
+ * Durable host publication of canonical records and ledger approval/abort/resolution intents.
92
+ * The host owns schema-versioned cursors, destination idempotency and acknowledgement. Delivery
93
+ * is at least once. Hooks must not write the alarm slot or mutate the supplied raw source ports.
94
+ *
95
+ * `invalidate`, `prepareGeneration` and `pendingDeadline` must be bounded local operations.
96
+ * `prepareGeneration` durably invalidates a scan only when its generation changes; repeated
97
+ * calls must preserve partial scan progress. It runs with no source mutation in flight.
98
+ * Use this gate only for publication required before dependent native execution. Independent
99
+ * UI relays and outboxes belong to ThreadHostMaintenance.
100
+ * `drain` performs bounded delivery and persists retries before returning. A pending deadline
101
+ * defers runtime recovery/Attempts, allowing committed host publications to drain first.
102
+ * Unexpected hook failures leave the prearmed generation for retry. Hooks acquire per-call
103
+ * resources with Effect.scoped; Layer construction owns incarnation resources (eviction need
104
+ * not run finalizers). Do not hold a local hook behind network I/O or call back into producers.
105
+ */
106
+ export interface ThreadPublicationService {
107
+ readonly invalidate: Effect.Effect<void, DurableAlarmError>;
108
+ readonly prepareGeneration: (generation: bigint) => Effect.Effect<void, DurableAlarmError>;
109
+ readonly drain: Effect.Effect<void, DurableAlarmError>;
110
+ readonly pendingDeadline: Effect.Effect<Option.Option<number>, DurableAlarmError>;
111
+ }
112
+ declare const ThreadPublication_base: Context.ServiceClass<ThreadPublication, "@effect-agent/platform-cloudflare/ThreadPublication", ThreadPublicationService>;
113
+ /** Opt in with `ThreadObject.layer(registrations, { publication: Layer.effect(ThreadPublication)(...) })`. */
114
+ export declare class ThreadPublication extends ThreadPublication_base {
115
+ static readonly layer: Layer.Layer<ThreadPublication, never, never>;
116
+ }
117
+ /**
118
+ * Host-assembled native message recovery. Preparation is a bounded local selection; the
119
+ * driver bounds each actual Claim and persists its timeout/retry before `run` returns.
120
+ * The alarm must not add a timer starting at selection: Claim setup and retry commits belong
121
+ * to the driver. The prepared allowance decides only whether a wave fits this event.
122
+ */
123
+ export declare const ThreadMessageDelivery: Context.Reference<{
124
+ readonly prepare: Effect.Effect<{
125
+ readonly timeoutMillis: number;
126
+ readonly run: Effect.Effect<void, DurableAlarmError>;
127
+ }, DurableAlarmError>;
128
+ readonly pendingDeadline: Effect.Effect<Option.Option<number>, DurableAlarmError>;
129
+ }>;
130
+ /**
131
+ * One independently schedulable application obligation. `run` selects and joins one finite
132
+ * wave, including its retry/receipt commits. The alarm gives every lane an initial opportunity,
133
+ * then checks its local pending deadline on completion, native progress, wakes and bounded scans.
134
+ * No subscriptions, readiness acknowledgements, deadline sleeps or dispatch loops are needed.
135
+ *
136
+ * Declare a whole-wave allowance (1..300000ms), including selection, local commits and cleanup. A wave
137
+ * starts only if that allowance fits the event and later arrivals cannot renew it. A failed
138
+ * lane is not retried within the event. The alarm joins admitted work and closes its Scope
139
+ * before reading durable deadlines under the shared ThreadMutationGate.
140
+ *
141
+ * `pendingDeadline` is bounded local control state, never a retained-history scan. Persist
142
+ * envelopes/claims before dispatch; cancellation is local, not remote rollback. Network waits
143
+ * and finalizers must be interruptible; short atomic commits may be uninterruptible. Mutations
144
+ * use the shared gate and producers notify the existing WakeScheduler after commit. Hooks never
145
+ * write the raw alarm slot. Required native publication gates belong to ThreadPublication.
146
+ */
147
+ export interface ThreadHostMaintenanceLane {
148
+ readonly dispatchTimeoutMillis: number;
149
+ readonly run: Effect.Effect<void, DurableAlarmError, Scope.Scope>;
150
+ readonly pendingDeadline: Effect.Effect<Option.Option<number>, DurableAlarmError>;
151
+ }
152
+ /** Independent lanes share the existing alarm; compose hosts by concatenating their lanes. */
153
+ export declare const ThreadHostMaintenance: Context.Reference<{
154
+ readonly lanes: ReadonlyArray<ThreadHostMaintenanceLane>;
155
+ }>;
156
+ /** @internal A committed source operation must not become a failed operation because delivery failed. */
157
+ export declare const publishCommitted: Effect.Effect<void, never, ThreadPublication>;
158
+ declare const ThreadRecoveryFault_base: Schema.Class<ThreadRecoveryFault, Schema.Struct<{
159
+ readonly schemaVersion: Schema.Literal<1>;
160
+ readonly threadId: Schema.brand<Schema.NonEmptyString, "@effect-agent/core/ThreadId">;
161
+ readonly firstFailedAt: Schema.Finite;
162
+ readonly lastFailedAt: Schema.Finite;
163
+ /** Earliest automatic recovery retry; new admissions do not erase this deadline. */
164
+ readonly retryAt: Schema.Finite;
165
+ /** Saturates at 2^31 - 1; one observation per Thread per recovery sweep. */
166
+ readonly attempts: Schema.Int;
167
+ readonly failure: typeof RecoveryFailure;
168
+ }>, {}>;
169
+ /**
170
+ * A durable observation of blocked recovery, independent of the execution journal. This is
171
+ * neither a Settlement nor proof that external effects did not happen. A successful recovery
172
+ * sweep clears it; repair must preserve canonical history and the original admission identity.
173
+ */
174
+ export declare class ThreadRecoveryFault extends ThreadRecoveryFault_base {}
175
+ declare const ThreadMutationGate_base: Context.ServiceClass<ThreadMutationGate, "@effect-agent/platform-cloudflare/internal/ThreadMutationGate", {
176
+ readonly withMutation: <A, E, R>(body: Effect.Effect<A, E, R>,
177
+ /**
178
+ * Native admission, approval, abort and unknown resolution keep the default true.
179
+ * Projection/relay/reply receipt-only bookkeeping must use false: its local durable
180
+ * pendingDeadline owns scheduling without creating native recovery debt.
181
+ */
182
+ options?: {
183
+ readonly invalidatesRecovery: boolean;
184
+ }) => Effect.Effect<A, E | DurableAlarmError, R>;
185
+ readonly withSnapshot: <A, E, R>(body: (active: number) => Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
186
+ }>;
187
+ /**
188
+ * Shared prearm/acknowledgement boundary for ingress and runtime-owned producers.
189
+ * `ThreadObject.layer` provides this same instance in its Services. Rebuilt runtime/maintenance
190
+ * Layers must reuse that instance; a second gate cannot observe the native producers' activity.
191
+ */
192
+ export declare class ThreadMutationGate extends ThreadMutationGate_base {
193
+ static readonly layer: Layer.Layer<ThreadMutationGate, never, CloudflareDurableRuntimeConfig | DurableObjectContext | SqlClient | ThreadMaintenanceFailpoint>;
194
+ }
195
+ export type MaintenancePassFailure = DurableWorkerFailure | DurableBindingFailure | DurableAlarmError | ThreadProjectionError;
196
+ declare const ThreadMaintenance_base: Context.ServiceClass<ThreadMaintenance, "@effect-agent/platform-cloudflare/ThreadMaintenance", {
197
+ /** One idempotent pass; failures propagate after durably scheduling bounded recovery. */
198
+ readonly pass: Effect.Effect<MaintenancePassReport, MaintenancePassFailure>;
199
+ /**
200
+ * Constructor gate: initialize/inspect only the O(1) maintenance record and ensure a dirty
201
+ * generation has an alarm. It never scans the ledger or canonical history.
202
+ */
203
+ readonly ensureAlarm: Effect.Effect<void, MaintenancePassFailure>;
204
+ /**
205
+ * Authorize `explain`, then read one bounded local record without reading execution history.
206
+ * None means no recorded fault, not proof of health or settlement. The host authenticates
207
+ * callers and verifies local Thread membership before exposing this service across RPC.
208
+ * Created, updated and cleared faults notify WakeScheduler after their durable commit.
209
+ * Provide OperationAuthorizer when constructing this Layer, as for DurableAgentRuntime.
210
+ */
211
+ readonly recoveryStatus: (threadId: ThreadId) => Effect.Effect<Option.Option<ThreadRecoveryFault>, DurableAlarmError | OperationDenied>;
212
+ /**
213
+ * Serialize the pre-arm boundary with pass acknowledgement, advance the durable dirty
214
+ * generation and arm the alarm in one transaction BEFORE running the caller's mutation.
215
+ * A pass cannot acknowledge while that mutation remains in flight.
216
+ */
217
+ readonly withMutation: <A, E, R>(body: Effect.Effect<A, E, R>) => Effect.Effect<A, E | DurableAlarmError, R>;
218
+ }>;
219
+ /**
220
+ * Incremental, quiescent maintenance over a durable dirty/processed generation (issue #93).
221
+ *
222
+ * One physical event owns native scheduling, auxiliary delivery and final alarm rearming.
223
+ *
224
+ * 1. Prearm before any work. A caught-up native step uses the O(1) generation record without
225
+ * recovery, ledger scans or canonical-history reads.
226
+ * 2. Reconcile before each head Attempt, then checkpoint only the observed generation. A racing
227
+ * producer keeps its generation dirty and immediately eligible. Quiescent native retries
228
+ * retain their durable backoff.
229
+ * 3. Admit at most two independent Thread Attempts, one active head per Thread.
230
+ * Keep native and delivery admission open together while finite waves remain active, so
231
+ * fresh replies and abort controls can progress during unrelated cleanup. Close atomically
232
+ * at quiescence, or at the original ten-minute yield deadline, then join admitted waves.
233
+ * 4. Native message delivery retains its driver-owned Claim deadline. Host/backfill waves are
234
+ * bounded independently; incoming native work never restarts or cancels their attempts.
235
+ * Auxiliary failures are reported after the current native opportunity.
236
+ * 5. Close every event resource before the final gated deadline snapshot and alarm decision.
237
+ * The whole event retains one fourteen-minute cooperative timeout.
238
+ */
239
+ export declare class ThreadMaintenance extends ThreadMaintenance_base {
240
+ static readonly layer: Layer.Layer<ThreadMaintenance, never, ThreadMutationGate | ThreadPublication | ThreadProjectionMaintenance | DurableAgentRuntime | DurableRuntimeConfig | SubmissionLedger | WakeScheduler | DurableAlarmService | ThreadMaintenanceFailpoint | CloudflareDurableRuntimeConfig | DurableObjectContext | SqlClient>;
241
+ }
242
+ //#endregion
243
+ export { Alarm_d_exports as t };
244
+ //# sourceMappingURL=Alarm.d.mts.map