@effect-agent/platform-cloudflare 0.1.0-beta.8 → 0.1.0-beta.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Alarm.d.mts +183 -0
- package/dist/Alarm.mjs +454 -0
- package/dist/Alarm.mjs.map +1 -0
- package/dist/BrowserRestCapture.d.mts +35 -0
- package/dist/BrowserRestCapture.mjs +238 -0
- package/dist/BrowserRestCapture.mjs.map +1 -0
- package/dist/BrowserRestCrawl.d.mts +17 -0
- package/dist/BrowserRestCrawl.mjs +244 -0
- package/dist/BrowserRestCrawl.mjs.map +1 -0
- package/dist/CloudflareAiGateway.d.mts +64 -0
- package/dist/CloudflareAiGateway.mjs +70 -0
- package/dist/CloudflareAiGateway.mjs.map +1 -0
- package/dist/CloudflareBindings.d.mts +112 -0
- package/dist/CloudflareBindings.mjs +101 -0
- package/dist/CloudflareBindings.mjs.map +1 -0
- package/dist/CloudflareBrowser-D4YqaTAl.mjs +495 -0
- package/dist/CloudflareBrowser-D4YqaTAl.mjs.map +1 -0
- package/dist/CloudflareBrowser-DJq53niJ.d.mts +80 -0
- package/dist/CloudflareBrowser.d.mts +2 -0
- package/dist/CloudflareBrowser.mjs +2 -0
- package/dist/CloudflareCodeMode.d.mts +44 -0
- package/dist/CloudflareCodeMode.mjs +616 -0
- package/dist/CloudflareCodeMode.mjs.map +1 -0
- package/dist/CloudflareConfig-f3CqTel1.d.mts +101 -0
- package/dist/CloudflareConfig.d.mts +2 -0
- package/dist/CloudflareConfig.mjs +122 -0
- package/dist/CloudflareConfig.mjs.map +1 -0
- package/dist/CloudflareMemory.d.mts +142 -0
- package/dist/CloudflareMemory.mjs +195 -0
- package/dist/CloudflareMemory.mjs.map +1 -0
- package/dist/CloudflareScheduling.d.mts +52 -0
- package/dist/CloudflareScheduling.mjs +389 -0
- package/dist/CloudflareScheduling.mjs.map +1 -0
- package/dist/CloudflareSubscriptions.d.mts +87 -0
- package/dist/CloudflareSubscriptions.mjs +524 -0
- package/dist/CloudflareSubscriptions.mjs.map +1 -0
- package/dist/CloudflareThreadClient.d.mts +1286 -0
- package/dist/CloudflareThreadClient.mjs +386 -0
- package/dist/CloudflareThreadClient.mjs.map +1 -0
- package/dist/InteractiveBrowser.d.mts +144 -0
- package/dist/InteractiveBrowser.mjs +1090 -0
- package/dist/InteractiveBrowser.mjs.map +1 -0
- package/dist/ProtectedBrowser.d.mts +65 -0
- package/dist/ProtectedBrowser.mjs +859 -0
- package/dist/ProtectedBrowser.mjs.map +1 -0
- package/dist/ThreadObject-3uDpKfB3.d.mts +816 -0
- package/dist/ThreadObject-DGkXv41C.mjs +836 -0
- package/dist/ThreadObject-DGkXv41C.mjs.map +1 -0
- package/dist/ThreadObject.d.mts +2 -0
- package/dist/ThreadObject.mjs +3 -0
- package/dist/WakeScheduler.d.mts +23 -0
- package/dist/WakeScheduler.mjs +60 -0
- package/dist/WakeScheduler.mjs.map +1 -0
- package/dist/boundary-BguazVkh.mjs +42 -0
- package/dist/boundary-BguazVkh.mjs.map +1 -0
- package/dist/browser-session-lifecycle-CUbVfEgP.mjs +84 -0
- package/dist/browser-session-lifecycle-CUbVfEgP.mjs.map +1 -0
- package/dist/browser-session-lifecycle-DJpqLXy_.d.mts +21 -0
- package/dist/index.d.mts +13 -1547
- package/dist/index.mjs +13 -1636
- package/dist/prepared-admission-DSi55W-7.mjs +73 -0
- package/dist/prepared-admission-DSi55W-7.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/package.json +1 -53
- package/src/Alarm.ts +953 -0
- package/src/BrowserRestCapture.ts +477 -0
- package/src/BrowserRestCrawl.ts +540 -0
- package/src/CloudflareAiGateway.ts +170 -0
- package/src/CloudflareBindings.ts +180 -0
- package/src/CloudflareBrowser.ts +15 -0
- package/src/{code-mode-executor.ts → CloudflareCodeMode.ts} +372 -204
- package/src/{config.ts → CloudflareConfig.ts} +9 -8
- package/src/CloudflareMemory.ts +406 -0
- package/src/CloudflareScheduling.ts +733 -0
- package/src/CloudflareSubscriptions.ts +1045 -0
- package/src/CloudflareThreadClient.ts +807 -0
- package/src/InteractiveBrowser.ts +2357 -0
- package/src/ProtectedBrowser.ts +2 -0
- package/src/ThreadObject.ts +1179 -0
- package/src/{wake-scheduler.ts → WakeScheduler.ts} +23 -23
- package/src/index.ts +12 -23
- package/src/internal/boundary.ts +55 -0
- package/src/internal/browser-quick-action.ts +857 -0
- package/src/internal/browser-session-lifecycle.ts +160 -0
- package/src/internal/layers.ts +751 -0
- package/src/internal/message-delivery.ts +148 -0
- package/src/internal/prepared-admission.ts +116 -0
- package/src/internal/progress-wait.ts +121 -0
- package/src/internal/transport.ts +42 -0
- package/src/protected-browser/binding.ts +187 -0
- package/src/protected-browser/inspect-frame.ts +125 -0
- package/src/protected-browser/native.ts +429 -0
- package/src/protected-browser/policy.ts +719 -0
- package/dist/index.mjs.map +0 -1
- package/src/alarm.ts +0 -334
- package/src/bindings.ts +0 -145
- package/src/client.ts +0 -646
- package/src/conversation-object.ts +0 -768
- package/src/layers.ts +0 -376
- package/src/transport.ts +0 -38
|
@@ -0,0 +1,816 @@
|
|
|
1
|
+
import { DurableObjectContext, ThreadObjectIdentity, ThreadObjectNamespace, ThreadObjectPlacement } from "./CloudflareBindings.mjs";
|
|
2
|
+
import { c as CloudflarePlatformConfigError, o as CloudflareDurableRuntimeConfig, t as AdmissionLimitExceeded } from "./CloudflareConfig-f3CqTel1.mjs";
|
|
3
|
+
import { DurableAlarmError, DurableAlarmService, ThreadMaintenance, ThreadMaintenanceFailpoint, ThreadMaintenanceFailpointHandler, ThreadMutationGate, ThreadPublication } from "./Alarm.mjs";
|
|
4
|
+
import { HostProtocolError, SubmitRequest } from "./CloudflareThreadClient.mjs";
|
|
5
|
+
import { SubmissionId, ThreadId } from "@effect-agent/core/Identifiers";
|
|
6
|
+
import { AgentRegistration } from "@effect-agent/thread/AgentRegistration";
|
|
7
|
+
import { DurableAgentRuntime, DurableRuntimeConfig, RecoveryReport } from "@effect-agent/thread/DurableAgentRuntime";
|
|
8
|
+
import { AdmissionPolicyError, LedgerError, OwnershipLost, SettlementConflict, SubmissionLedger, SubmissionSnapshot } from "@effect-agent/thread/SubmissionLedger";
|
|
9
|
+
import { ThreadProjectionMaintenance } from "@effect-agent/thread/ThreadProjectionMaintenance";
|
|
10
|
+
import { Context, Crypto, Effect, Layer, Option, Schema, Scope } from "effect";
|
|
11
|
+
import { DurableObject, DurableObjectState as DurableObjectState$1, WorkerEnvironment } from "effect-cf";
|
|
12
|
+
import { DigestError } from "@effect-agent/thread/Digest";
|
|
13
|
+
import { DurableRuntimeFailpoint, DurableRuntimeFailpointError, DurableRuntimeFailpointHandler } from "@effect-agent/thread/DurableFailpoint";
|
|
14
|
+
import { OperationAuthorizerService, OperationDenied } from "@effect-agent/thread/OperationAuthorizer";
|
|
15
|
+
import { AppendConflict, FenceRejected, ThreadNotMaterialized, ThreadStore, ThreadStoreError } from "@effect-agent/thread/ThreadStore";
|
|
16
|
+
import { PreparedInputAdmission } from "@effect-agent/thread/PreparedInputAdmission";
|
|
17
|
+
import { PortRequest, PortResponse } from "@effect-agent/storage-cloudflare/PortProtocol";
|
|
18
|
+
import { IntegrityReport, ObligationReport, ObligationThresholds, RecoveryExplanation, RetryCommand, RetryRefused } from "@effect-agent/thread/Admin";
|
|
19
|
+
import { RunJournalError } from "@effect-agent/thread/RunJournal";
|
|
20
|
+
import { WakeScheduler } from "@effect-agent/thread/WakeScheduler";
|
|
21
|
+
import { RunContextPreparation, RunCostEstimator, RunToolAuthorization, RunToolFailureObserver } from "@effect-agent/engine/RunOptions";
|
|
22
|
+
import { DoStorageFailpoint, DoStorageFailpointHandler } from "@effect-agent/storage-cloudflare/DoStorageFailpoint";
|
|
23
|
+
import { DoStorageInitializationError } from "@effect-agent/storage-cloudflare/DoThreadStore";
|
|
24
|
+
import { MessageDeliveryError, MessageDeliveryStore } from "@effect-agent/thread/MessageDelivery";
|
|
25
|
+
import { ToolReconciler } from "@effect-agent/thread/ToolReconciler";
|
|
26
|
+
import { SqlClient } from "effect/unstable/sql/SqlClient";
|
|
27
|
+
//#region src/internal/progress-wait.d.ts
|
|
28
|
+
declare const ProgressWaitRegistry_base: Context.ServiceClass<ProgressWaitRegistry, "@effect-agent/platform-cloudflare/ProgressWaitRegistry", {
|
|
29
|
+
/** Register a Scope-owned cancellation signal, observing any early cancel tombstone. */
|
|
30
|
+
readonly subscribe: (waiterId: string) => Effect.Effect<Effect.Effect<void>, never, Scope.Scope>;
|
|
31
|
+
/** Cancel every attempt and retain a bounded tombstone for later transport attempts. */
|
|
32
|
+
readonly cancel: (waiterId: string) => Effect.Effect<void>;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Per-incarnation cancellation registry for long-lived progress RPCs. The public runtime owns
|
|
36
|
+
* the actual wake registration; this host-only registry lets an interrupted Worker Effect ask
|
|
37
|
+
* the Object to interrupt its scoped wait before the Worker execution context itself ends.
|
|
38
|
+
*/
|
|
39
|
+
declare class ProgressWaitRegistry extends ProgressWaitRegistry_base {
|
|
40
|
+
static readonly layer: Layer.Layer<ProgressWaitRegistry>;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/internal/layers.d.ts
|
|
44
|
+
/**
|
|
45
|
+
* Raw (unvalidated) construction options for `ThreadObject.make`, mirroring
|
|
46
|
+
* `NodeDurableAgentRuntimeOptions`. Optional fields default to the documented production values
|
|
47
|
+
* (`CLOUDFLARE_RUNTIME_DEFAULTS`); everything is schema-decoded into
|
|
48
|
+
* `CloudflareDurableRuntimeConfigValue` before any resource opens (deployment §5 gate 1).
|
|
49
|
+
*/
|
|
50
|
+
interface CloudflareDurableRuntimeOptions {
|
|
51
|
+
readonly deploymentId: string;
|
|
52
|
+
/** Head of the minted producer identity `{producerPrefix}:{threadId}`. */
|
|
53
|
+
readonly producerPrefix: string;
|
|
54
|
+
/** Milliseconds; default 30s (D5). */
|
|
55
|
+
readonly ownershipLeaseDuration?: number | undefined;
|
|
56
|
+
/** Milliseconds; default 100. */
|
|
57
|
+
readonly alarmBackoffBase?: number | undefined;
|
|
58
|
+
/** Milliseconds; default 5000. */
|
|
59
|
+
readonly alarmBackoffCap?: number | undefined;
|
|
60
|
+
/** Milliseconds; default 1000. Bounds every alarm re-arm delay. */
|
|
61
|
+
readonly wakeScanInterval?: number | undefined;
|
|
62
|
+
/** Milliseconds; default 500. */
|
|
63
|
+
readonly settlementPollInterval?: number | undefined;
|
|
64
|
+
/** Milliseconds; default 10000. */
|
|
65
|
+
readonly leaseRenewalInterval?: number | undefined;
|
|
66
|
+
/** Milliseconds; default 500. */
|
|
67
|
+
readonly abortPollInterval?: number | undefined;
|
|
68
|
+
/** Deployment-owned pricing authority used by durable cost budgets and settlements. */
|
|
69
|
+
readonly estimateCostMicrousd?: RunCostEstimator | undefined;
|
|
70
|
+
/** Closed trusted Tool failure reporting. Omission masks ambient observers at construction. */
|
|
71
|
+
readonly toolFailureObserver?: RunToolFailureObserver | undefined;
|
|
72
|
+
/** Milliseconds; default 25. */
|
|
73
|
+
readonly observationPollInterval?: number | undefined;
|
|
74
|
+
/** Bytes; default just under the 2 MB platform value limit. */
|
|
75
|
+
readonly maxStoredValueBytes?: number | undefined;
|
|
76
|
+
/** Default false. */
|
|
77
|
+
readonly verifyOnOpen?: boolean | undefined;
|
|
78
|
+
/** Nonterminal Submissions per lane before admission refuses; default 256. */
|
|
79
|
+
readonly maxQueueDepthPerLane?: number | undefined;
|
|
80
|
+
/** Encoded input bytes per Submission; default = the stored-value bound. */
|
|
81
|
+
readonly maxInputBytes?: number | undefined;
|
|
82
|
+
/** `ctx.storage.sql.databaseSize` ceiling at admission; default 9 GB (10 GB platform cap). */
|
|
83
|
+
readonly maxDatabaseBytes?: number | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Durable Object storage fault injection (`ledger:*` / `append:*` locations). Handlers are
|
|
86
|
+
* constructed per incarnation WITH the live `DurableObjectState`, so eviction harnesses can
|
|
87
|
+
* map an armed hit to `ctx.abort()` — the platform's real failure mode. Default none.
|
|
88
|
+
*/
|
|
89
|
+
readonly storageFailpoint?: ((ctx: DurableObjectState) => DoStorageFailpointHandler) | undefined;
|
|
90
|
+
/** Coordinator fault injection (`submit:*` / `terminalize:*` locations); default none. */
|
|
91
|
+
readonly runtimeFailpoint?: ((ctx: DurableObjectState) => DurableRuntimeFailpointHandler) | undefined;
|
|
92
|
+
/** Thread-maintenance generation/alarm fault injection; default none. */
|
|
93
|
+
readonly maintenanceFailpoint?: ((ctx: DurableObjectState) => ThreadMaintenanceFailpointHandler) | undefined;
|
|
94
|
+
/** Host-supplied fail-closed authorization policy; defaults to service possession. */
|
|
95
|
+
readonly operationAuthorizer?: OperationAuthorizerService | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Reconciliation policy consulted for open ordinary Tool Calls before an Unknown Outcome
|
|
98
|
+
* is recorded (durability §10, DUR-009). Defaults to the fail-closed
|
|
99
|
+
* `ToolReconciler.uncertain`.
|
|
100
|
+
*/
|
|
101
|
+
readonly toolReconciler?: Layer.Layer<ToolReconciler> | undefined;
|
|
102
|
+
}
|
|
103
|
+
/** Services supplied before the application graph is built, including its dependencies. */
|
|
104
|
+
type CloudflareBootstrapServices = CloudflareDurableRuntimeConfig | ThreadObjectIdentity | ThreadObjectPlacement | DurableRuntimeConfig | Crypto.Crypto | DoStorageFailpoint | DurableRuntimeFailpoint | ThreadMaintenanceFailpoint | RunContextPreparation | RunToolAuthorization | ToolReconciler;
|
|
105
|
+
/** Every construction failure of the assembled Cloudflare durable runtime stack. */
|
|
106
|
+
type CloudflareDurableRuntimeInitializationError = CloudflarePlatformConfigError | DigestError | MessageDeliveryError | DoStorageInitializationError;
|
|
107
|
+
/**
|
|
108
|
+
* The services `ThreadObject.layer` provides, including its single owner SQL client.
|
|
109
|
+
* Its Context also supplies ThreadMessageDelivery (a defaulted Reference, with no required R)
|
|
110
|
+
* so application-composed maintenance retains the same native message recovery capability.
|
|
111
|
+
*/
|
|
112
|
+
type CloudflareDurableRuntimeServices = DurableAgentRuntime | SubmissionLedger | ThreadStore | MessageDeliveryStore | WakeScheduler | DurableAlarmService | ThreadMaintenance | ThreadMutationGate | ThreadPublication | ThreadProjectionMaintenance | ThreadObjectPorts | ProgressWaitRegistry | SqlClient;
|
|
113
|
+
declare const ThreadObjectPorts_base: Context.ServiceClass<ThreadObjectPorts, "@effect-agent/platform-cloudflare/ThreadObjectPorts", {
|
|
114
|
+
readonly handle: (request: PortRequest) => Effect.Effect<PortResponse>;
|
|
115
|
+
/** Local-only identity check before a bound RPC can read or mutate a Submission. */
|
|
116
|
+
readonly lookupSubmission: (submissionId: SubmissionId) => Effect.Effect<Option.Option<SubmissionSnapshot>, LedgerError>;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Owner-side execution port for a `portCall` request the wire endpoint has already decoded.
|
|
120
|
+
* It executes against THIS Object's LOCAL port facets — never the routed decorators, so a
|
|
121
|
+
* request cannot bounce between Objects — and returns the typed response for the endpoint to
|
|
122
|
+
* encode.
|
|
123
|
+
*/
|
|
124
|
+
declare class ThreadObjectPorts extends ThreadObjectPorts_base {}
|
|
125
|
+
/** Native one-Thread configuration; retains its existing producer and logical identities. */
|
|
126
|
+
declare const layerConfig: (options: CloudflareDurableRuntimeOptions) => Layer.Layer<CloudflareBootstrapServices, CloudflarePlatformConfigError, DurableObjectContext>;
|
|
127
|
+
/**
|
|
128
|
+
* Configuration for an application Object owning several logical Threads. The producer is
|
|
129
|
+
* the stable physical Object. No logical identity is installed globally: handleRpc binds and
|
|
130
|
+
* validates it per request using the placement guard and this actual runtime producer.
|
|
131
|
+
*/
|
|
132
|
+
declare const layerHostConfig: (options: CloudflareDurableRuntimeOptions, ownsThread: (threadId: ThreadId) => boolean) => Layer.Layer<Exclude<CloudflareBootstrapServices, ThreadObjectIdentity>, CloudflarePlatformConfigError, DurableObjectContext>;
|
|
133
|
+
interface ThreadPublicationOptions<E = never, R = never, P = never> {
|
|
134
|
+
/**
|
|
135
|
+
* Optional host outbox consumer, built once per incarnation with RAW LOCAL ThreadStore and
|
|
136
|
+
* SubmissionLedger services. Yield DurableObjectContext and ThreadObjectIdentity for native
|
|
137
|
+
* bindings and identity. Initialization is local-only, inside the constructor gate; setup
|
|
138
|
+
* errors and additional requirements remain in the returned Layer. Layer.effect owns Scope.
|
|
139
|
+
* Canonical appends and durable approval, abort and unknown-resolution intents invalidate
|
|
140
|
+
* publication after commit. Custom host facts must use ThreadMaintenance.withMutation.
|
|
141
|
+
*/
|
|
142
|
+
readonly publication?: Layer.Layer<ThreadPublication, E, R>;
|
|
143
|
+
/**
|
|
144
|
+
* Disposable index maintenance, built once with the raw local ThreadStore and owner
|
|
145
|
+
* SqlClient. Additional services P are exposed by the returned Layer, allowing Tool
|
|
146
|
+
* handlers and maintenance to share one index instance. Construction is local-only.
|
|
147
|
+
* Live committed batches run before append returns; bounded backfill uses the native
|
|
148
|
+
* alarm without delaying execution behind projection backlog.
|
|
149
|
+
*/
|
|
150
|
+
readonly projection?: Layer.Layer<ThreadProjectionMaintenance | P, E, R>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Register typed Agents and version declarations. Hashing and dependency capture happen in
|
|
154
|
+
* this Layer's Scope, after application Layers have been provided. Every Agent's instruction,
|
|
155
|
+
* Tool, Schema, and model requirements remain visible until satisfied by Layer composition.
|
|
156
|
+
* Use Layer.unwrap for registration values that need effectful application setup.
|
|
157
|
+
*/
|
|
158
|
+
declare const registeredLayer: <const Entries extends ReadonlyArray<AgentRegistration>, E = never, R = never>(registrations: Entries, options?: ThreadPublicationOptions<E, R>) => Layer.Layer<CloudflareDurableRuntimeServices, E | DigestError | MessageDeliveryError | DoStorageInitializationError, DurableObjectContext | ThreadObjectNamespace | Exclude<R, SqlClient | SubmissionLedger | ThreadStore> | Exclude<[Entries[number]] extends [never] ? never : (Entries[number] extends (infer T_3) ? T_3 extends Entries[number] ? T_3 extends {
|
|
159
|
+
readonly attemptLayer: (context: import("@effect-agent/thread/AgentRegistration").AgentAttemptContext) => Layer.Layer<infer Provides, never, infer Requires>;
|
|
160
|
+
} ? Requires | Exclude<T_3 extends (infer T_4) ? T_4 extends T_3 ? T_4 extends {
|
|
161
|
+
readonly agent: infer A extends import("@effect-agent/thread/AgentRegistration").ExecutableAgentBinding;
|
|
162
|
+
} ? import("@effect-agent/thread/DurableAgentRuntime").DurableWorkerRequirements<A> : T_4 extends {
|
|
163
|
+
readonly agent: infer D extends import("@effect-agent/core/Agent").Definition<Schema.Top, Schema.Top, unknown, import("effect/unstable/ai/Toolkit").Any, import("@effect-agent/core/Agent").RunDispositionDeclaration<never, Schema.Top> | undefined, unknown> & {
|
|
164
|
+
readonly instructions: import("@effect-agent/core/Agent").InstructionSource<never, unknown, unknown>;
|
|
165
|
+
readonly inputPrompt?: import("@effect-agent/core/Agent").InputPromptSource<never, unknown, unknown> | undefined;
|
|
166
|
+
};
|
|
167
|
+
readonly model: infer M extends import("@effect-agent/thread/AgentRegistration").ExecutableAgentBinding["model"];
|
|
168
|
+
} ? import("@effect-agent/thread/DurableAgentRuntime").DurableWorkerRequirements<{
|
|
169
|
+
readonly definition: D;
|
|
170
|
+
readonly model: M;
|
|
171
|
+
}> : never : never : never, Provides> : T_3 extends {
|
|
172
|
+
readonly agent: infer A extends import("@effect-agent/thread/AgentRegistration").ExecutableAgentBinding;
|
|
173
|
+
} ? import("@effect-agent/thread/DurableAgentRuntime").DurableWorkerRequirements<A> : T_3 extends {
|
|
174
|
+
readonly agent: infer D extends import("@effect-agent/core/Agent").Definition<Schema.Top, Schema.Top, unknown, import("effect/unstable/ai/Toolkit").Any, import("@effect-agent/core/Agent").RunDispositionDeclaration<never, Schema.Top> | undefined, unknown> & {
|
|
175
|
+
readonly instructions: import("@effect-agent/core/Agent").InstructionSource<never, unknown, unknown>;
|
|
176
|
+
readonly inputPrompt?: import("@effect-agent/core/Agent").InputPromptSource<never, unknown, unknown> | undefined;
|
|
177
|
+
};
|
|
178
|
+
readonly model: infer M extends import("@effect-agent/thread/AgentRegistration").ExecutableAgentBinding["model"];
|
|
179
|
+
} ? import("@effect-agent/thread/DurableAgentRuntime").DurableWorkerRequirements<{
|
|
180
|
+
readonly definition: D;
|
|
181
|
+
readonly model: M;
|
|
182
|
+
}> : never : never : never) | (Entries[number] extends (infer T_5) ? T_5 extends Entries[number] ? T_5 extends {
|
|
183
|
+
readonly reporting: infer Reports extends ReadonlyArray<import("@effect-agent/engine/SubagentHost").WorkerReporting<unknown, unknown>>;
|
|
184
|
+
} ? [Reports[number]] extends [never] ? never : Reports[number] extends import("@effect-agent/engine/SubagentHost").WorkerReporting<unknown, infer R_1> ? Exclude<R_1, import("effect/Scope").Scope> : never : never : never : never), import("effect/Scope").Scope> | CloudflareBootstrapServices>;
|
|
185
|
+
/** Preserve additional index services only when a projection Layer is actually supplied. */
|
|
186
|
+
declare function layer<const Entries extends ReadonlyArray<AgentRegistration>, E = never, R = never, P = never, PE = never, PR = never>(registrations: Entries, options: Omit<ThreadPublicationOptions<E, R>, "projection"> & {
|
|
187
|
+
readonly projection: Layer.Layer<ThreadProjectionMaintenance | P, PE, PR>;
|
|
188
|
+
}): Layer.Layer<Layer.Success<ReturnType<typeof registeredLayer<Entries, E | PE, R | PR>>> | P, Layer.Error<ReturnType<typeof registeredLayer<Entries, E | PE, R | PR>>>, Layer.Services<ReturnType<typeof registeredLayer<Entries, E | PE, R | PR>>>>;
|
|
189
|
+
declare function layer<const Entries extends ReadonlyArray<AgentRegistration>, E = never, R = never>(registrations: Entries, options?: ThreadPublicationOptions<E, R>): ReturnType<typeof registeredLayer<Entries, E, R>>;
|
|
190
|
+
/**
|
|
191
|
+
* Build the application runtime over the existing owner SqlClient and native ports, then
|
|
192
|
+
* assemble its one maintenance coordinator. The application may acquire its Bindings from
|
|
193
|
+
* those ports and expose extra services, including ThreadHostMaintenance. It must not acquire
|
|
194
|
+
* another runtime stack or require ThreadMaintenance while constructing this Layer.
|
|
195
|
+
* Supply layerHostConfig and deterministic placement; dispatch addressed ingress with handleRpc.
|
|
196
|
+
*/
|
|
197
|
+
declare function layerInHost<A, E, R, P = never, PE = never, PR = never>(application: Layer.Layer<DurableAgentRuntime | A, E, R>, options: Omit<ThreadPublicationOptions<PE, PR>, "projection"> & {
|
|
198
|
+
readonly projection: Layer.Layer<ThreadProjectionMaintenance | P, PE, PR>;
|
|
199
|
+
}): Layer.Layer<CloudflareDurableRuntimeServices | A | P, Layer.Error<ReturnType<typeof sharedLayer<A, E, R, PE, PR>>>, Layer.Services<ReturnType<typeof sharedLayer<A, E, Exclude<R, P>, PE, PR>>>>;
|
|
200
|
+
declare function layerInHost<A, E, R, PE = never, PR = never>(application: Layer.Layer<DurableAgentRuntime | A, E, R>, options?: ThreadPublicationOptions<PE, PR>): ReturnType<typeof sharedLayer<A, E, R, PE, PR>>;
|
|
201
|
+
type HostRuntimeServices = Exclude<CloudflareDurableRuntimeServices, DurableAgentRuntime | ThreadMaintenance>;
|
|
202
|
+
declare const sharedLayer: <A, E, R, PE = never, PR = never>(application: Layer.Layer<DurableAgentRuntime | A, E, R>, options?: ThreadPublicationOptions<PE, PR>) => Layer.Layer<CloudflareDurableRuntimeServices | A, DoStorageInitializationError | MessageDeliveryError | E | PE, DurableObjectContext | ThreadObjectNamespace | Exclude<CloudflareBootstrapServices, ThreadObjectIdentity> | SqlClient | Exclude<R, HostRuntimeServices | PreparedInputAdmission> | Exclude<PR, ThreadStore | SubmissionLedger | SqlClient>>;
|
|
203
|
+
declare namespace ThreadObject_d_exports {
|
|
204
|
+
export { AdminExplainRequest, AdminFailed, AdminFailure, AdminResponse, AdminVerifyRequest, CloudflareBootstrapServices as BootstrapServices, Class, ExplainedRecovery, CloudflareDurableRuntimeInitializationError as InitializationError, Instance, ObligationsScanned, Options, ThreadPublicationOptions as PublicationOptions, RetryExecuted, CloudflareDurableRuntimeOptions as RuntimeOptions, CloudflareDurableRuntimeServices as Services, ThreadObjectPorts, ThreadRpcOperation, VerifiedIntegrity, decodeAdminExplainRequest, decodeAdminResponse, decodeAdminVerifyRequest, decodeObligationThresholds, decodeRetryCommand, encodeAdminResponse, handleRpc, layer, layerConfig, layerHostConfig, layerInHost, make, portCall, submit };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* `ThreadObject.make(application, options)` — the Thread Durable Object
|
|
208
|
+
* (plan §1.4,
|
|
209
|
+
* D-P6-1): a factory returning a class that applications export from their Worker entry.
|
|
210
|
+
* One SQLite-backed Object per Thread is the serialized owner (durability §6); the
|
|
211
|
+
* Object never runs `runResolvedWorker`'s infinite loop — each ingress event or alarm runs
|
|
212
|
+
* ONE bounded `runRecovery` + `processThreadHead` pass, and the persisted alarm
|
|
213
|
+
* (the single multiplexed slot, D-P6-2) finishes accepted work across evictions WITHOUT any
|
|
214
|
+
* incoming request.
|
|
215
|
+
* `Services` exposes the same owner `SqlClient` used by the Thread stores. Compose optional
|
|
216
|
+
* local repositories after `ThreadObject.layer`; never acquire another independently locked
|
|
217
|
+
* SQL client for the same Object. Exposing the client installs no additional storage schemas.
|
|
218
|
+
*
|
|
219
|
+
* Constructor gate (`blockConcurrencyWhile`) is LOCAL-ONLY: schema migration and the
|
|
220
|
+
* exact-version check, configuration decode, and the defensive ensure-alarm half of the
|
|
221
|
+
* alarm invariant. It deliberately does NOT run the recovery pass: parent recovery can
|
|
222
|
+
* require child-Object reads and vice versa, and two Objects blocked in constructor gates
|
|
223
|
+
* awaiting each other's RPC would deadlock (plan §1.4). Instead every pass runs
|
|
224
|
+
* `runRecovery` BEFORE any claim, so reconciliation still strictly precedes new work.
|
|
225
|
+
*/
|
|
226
|
+
/** Construction options for one deployed Thread Object class. */
|
|
227
|
+
interface Options<ApplicationServices = never, EventServices = never, EventLayerError = never> extends CloudflareDurableRuntimeOptions {
|
|
228
|
+
/** Accept transient native RPC tracing through effect-cf; disabled by default. */
|
|
229
|
+
readonly rpcTracing?: boolean;
|
|
230
|
+
/**
|
|
231
|
+
* Name of the Worker `env` binding carrying THIS class's `DurableObjectNamespace` — the
|
|
232
|
+
* Object's route back to sibling Thread Objects for the WP2 cross-Object port calls
|
|
233
|
+
* and remote wakes (DEPLOY-010: the binding enters through a Layer, never ambiently).
|
|
234
|
+
*/
|
|
235
|
+
readonly namespaceBinding: string;
|
|
236
|
+
/** Acquired and finalized per native event, with access to the complete application runtime. */
|
|
237
|
+
readonly eventLayer?: Layer.Layer<EventServices, EventLayerError, RuntimeServices | ApplicationServices | DurableObjectState$1.DurableObjectState | WorkerEnvironment>;
|
|
238
|
+
}
|
|
239
|
+
type EndpointServices = CloudflareDurableRuntimeServices | CloudflareBootstrapServices | DurableObjectContext;
|
|
240
|
+
type RuntimeServices = EndpointServices | ThreadObjectNamespace;
|
|
241
|
+
/**
|
|
242
|
+
* Admit an already Schema-decoded request to a logical Thread in this physical owner.
|
|
243
|
+
* Custom hosts validate local placement before calling this Effect and provide their same
|
|
244
|
+
* runtime/maintenance instances. The native endpoint uses this path too: queue limits,
|
|
245
|
+
* idempotent receipts and the pre-admission generation/alarm commit have one owner.
|
|
246
|
+
*/
|
|
247
|
+
declare const submit: (threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">, request: SubmitRequest) => Effect.Effect<import("@effect-agent/core/Receipt").Receipt, AdmissionLimitExceeded | DurableAlarmError | HostProtocolError | import("@effect-agent/thread/DurableAgentRuntime").DurableSubmitFailure, CloudflareDurableRuntimeConfig | DurableAgentRuntime | DurableObjectContext | SubmissionLedger | ThreadMutationGate | ThreadObjectPlacement | ThreadPublication>;
|
|
248
|
+
declare const AdminExplainRequest_base: Schema.Class<AdminExplainRequest, Schema.Struct<{
|
|
249
|
+
readonly submissionId: Schema.optionalKey<Schema.brand<Schema.NonEmptyString, "@effect-agent/core/SubmissionId">>;
|
|
250
|
+
}>, {}>;
|
|
251
|
+
/** Explain one Submission (`submissionId` present) or every nonterminal lane member. */
|
|
252
|
+
declare class AdminExplainRequest extends AdminExplainRequest_base {}
|
|
253
|
+
declare const AdminVerifyRequest_base: Schema.Class<AdminVerifyRequest, Schema.Struct<{}>, {}>;
|
|
254
|
+
/** Verify carries no parameters — the addressed Object IS the lane. */
|
|
255
|
+
declare class AdminVerifyRequest extends AdminVerifyRequest_base {}
|
|
256
|
+
/** Every typed failure of the four admin entry points, plus the protocol's own errors. */
|
|
257
|
+
declare const AdminFailure: Schema.Union<readonly [typeof AdmissionPolicyError, typeof OperationDenied, typeof RetryRefused, typeof LedgerError, typeof RunJournalError, typeof DigestError, typeof OwnershipLost, typeof SettlementConflict, typeof ThreadStoreError, typeof ThreadNotMaterialized, typeof AppendConflict, typeof FenceRejected, typeof DurableRuntimeFailpointError, typeof DurableAlarmError, typeof HostProtocolError]>;
|
|
258
|
+
type AdminFailure = typeof AdminFailure.Type;
|
|
259
|
+
declare const ExplainedRecovery_base: Schema.Class<ExplainedRecovery, Schema.TaggedStruct<"ExplainedRecovery", {
|
|
260
|
+
readonly explanations: Schema.$Array<typeof RecoveryExplanation>;
|
|
261
|
+
}>, {}>;
|
|
262
|
+
declare class ExplainedRecovery extends ExplainedRecovery_base {}
|
|
263
|
+
declare const VerifiedIntegrity_base: Schema.Class<VerifiedIntegrity, Schema.TaggedStruct<"VerifiedIntegrity", {
|
|
264
|
+
readonly report: typeof IntegrityReport;
|
|
265
|
+
}>, {}>;
|
|
266
|
+
declare class VerifiedIntegrity extends VerifiedIntegrity_base {}
|
|
267
|
+
declare const RetryExecuted_base: Schema.Class<RetryExecuted, Schema.TaggedStruct<"RetryExecuted", {
|
|
268
|
+
readonly report: typeof RecoveryReport;
|
|
269
|
+
}>, {}>;
|
|
270
|
+
declare class RetryExecuted extends RetryExecuted_base {}
|
|
271
|
+
declare const ObligationsScanned_base: Schema.Class<ObligationsScanned, Schema.TaggedStruct<"ObligationsScanned", {
|
|
272
|
+
readonly report: typeof ObligationReport;
|
|
273
|
+
}>, {}>;
|
|
274
|
+
declare class ObligationsScanned extends ObligationsScanned_base {}
|
|
275
|
+
declare const AdminFailed_base: Schema.Class<AdminFailed, Schema.TaggedStruct<"AdminFailed", {
|
|
276
|
+
readonly failure: Schema.Union<readonly [typeof AdmissionPolicyError, typeof OperationDenied, typeof RetryRefused, typeof LedgerError, typeof RunJournalError, typeof DigestError, typeof OwnershipLost, typeof SettlementConflict, typeof ThreadStoreError, typeof ThreadNotMaterialized, typeof AppendConflict, typeof FenceRejected, typeof DurableRuntimeFailpointError, typeof DurableAlarmError, typeof HostProtocolError]>;
|
|
277
|
+
}>, {}>;
|
|
278
|
+
/** The admin entry point failed TYPED on the Object; the failure re-decodes verbatim. */
|
|
279
|
+
declare class AdminFailed extends AdminFailed_base {}
|
|
280
|
+
/** The uniform answer of one admin entry point. Callers narrow by the tag their call implies. */
|
|
281
|
+
declare const AdminResponse: Schema.Union<readonly [typeof ExplainedRecovery, typeof VerifiedIntegrity, typeof RetryExecuted, typeof ObligationsScanned, typeof AdminFailed]>;
|
|
282
|
+
type AdminResponse = typeof AdminResponse.Type;
|
|
283
|
+
declare const decodeAdminExplainRequest: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<AdminExplainRequest, Schema.SchemaError, never>;
|
|
284
|
+
declare const decodeAdminVerifyRequest: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<AdminVerifyRequest, Schema.SchemaError, never>;
|
|
285
|
+
declare const decodeRetryCommand: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<RetryCommand, Schema.SchemaError, never>;
|
|
286
|
+
declare const decodeObligationThresholds: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<ObligationThresholds, Schema.SchemaError, never>;
|
|
287
|
+
declare const encodeAdminResponse: (input: AdminFailed | ExplainedRecovery | ObligationsScanned | RetryExecuted | VerifiedIntegrity, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<{
|
|
288
|
+
readonly _tag: "ExplainedRecovery";
|
|
289
|
+
readonly explanations: readonly {
|
|
290
|
+
readonly submission: {
|
|
291
|
+
readonly submissionId: string;
|
|
292
|
+
readonly threadId: string;
|
|
293
|
+
readonly state: "admitted" | "input-applied" | "joined" | "joining" | "ready" | "running" | "settled" | "suspended" | "terminalizing" | "unknown";
|
|
294
|
+
readonly queueSequence: number;
|
|
295
|
+
readonly createdAt: string;
|
|
296
|
+
readonly readyAt?: string | undefined;
|
|
297
|
+
readonly ageSeconds: number;
|
|
298
|
+
readonly readyAgeSeconds?: number | undefined;
|
|
299
|
+
readonly parentLinkage?: {
|
|
300
|
+
readonly parentSubmissionId: string;
|
|
301
|
+
readonly parentToolCallId: string;
|
|
302
|
+
} | undefined;
|
|
303
|
+
};
|
|
304
|
+
readonly evidence: {
|
|
305
|
+
readonly threadMaterialized: boolean;
|
|
306
|
+
readonly inputRecorded: boolean;
|
|
307
|
+
readonly abortRecorded: boolean;
|
|
308
|
+
readonly recordedSettlementOutcome?: "aborted" | "completed" | "failed" | undefined;
|
|
309
|
+
readonly openToolCalls: readonly {
|
|
310
|
+
readonly toolCallId: string;
|
|
311
|
+
readonly toolName: string;
|
|
312
|
+
readonly turn: number;
|
|
313
|
+
}[];
|
|
314
|
+
readonly openDelegationCalls: readonly {
|
|
315
|
+
readonly toolCallId: string;
|
|
316
|
+
readonly toolName: string;
|
|
317
|
+
readonly turn: number;
|
|
318
|
+
readonly requested: boolean;
|
|
319
|
+
readonly started: boolean;
|
|
320
|
+
readonly joined: boolean;
|
|
321
|
+
readonly childThreadId?: string | undefined;
|
|
322
|
+
readonly childSubmissionId?: string | undefined;
|
|
323
|
+
readonly admission?: "admitted" | "indeterminate" | "not-admitted" | undefined;
|
|
324
|
+
}[];
|
|
325
|
+
readonly approvalsPending: readonly {
|
|
326
|
+
readonly toolCallId: string;
|
|
327
|
+
readonly turn: number;
|
|
328
|
+
}[];
|
|
329
|
+
readonly unknownCalls: readonly {
|
|
330
|
+
readonly toolCallId: string;
|
|
331
|
+
readonly toolName: string;
|
|
332
|
+
readonly reason: string;
|
|
333
|
+
readonly recordedAt: string;
|
|
334
|
+
readonly resolved: boolean;
|
|
335
|
+
}[];
|
|
336
|
+
readonly approvalDecisions: readonly {
|
|
337
|
+
readonly submissionId: string;
|
|
338
|
+
readonly toolCallId: string;
|
|
339
|
+
readonly decision: "approved" | "denied";
|
|
340
|
+
readonly resolver: string;
|
|
341
|
+
readonly reason: string;
|
|
342
|
+
readonly decidedAt: string;
|
|
343
|
+
readonly canonicalRecordId?: string | undefined;
|
|
344
|
+
}[];
|
|
345
|
+
readonly unknownResolutions: readonly {
|
|
346
|
+
readonly submissionId: string;
|
|
347
|
+
readonly toolCallId: string;
|
|
348
|
+
readonly author: string;
|
|
349
|
+
readonly reason: string;
|
|
350
|
+
readonly resolution: {
|
|
351
|
+
readonly _tag: "CompletedWithResult";
|
|
352
|
+
readonly result: Schema.Json;
|
|
353
|
+
readonly isFailure: boolean;
|
|
354
|
+
} | {
|
|
355
|
+
readonly _tag: "NeverHappened";
|
|
356
|
+
} | {
|
|
357
|
+
readonly _tag: "SafeToRetry";
|
|
358
|
+
} | {
|
|
359
|
+
readonly _tag: "AbortSubmission";
|
|
360
|
+
};
|
|
361
|
+
readonly resolvedAt: string;
|
|
362
|
+
readonly canonicalRecordId?: string | undefined;
|
|
363
|
+
}[];
|
|
364
|
+
readonly childAttachments: readonly {
|
|
365
|
+
readonly toolCallId: string;
|
|
366
|
+
readonly childSubmissionId: string;
|
|
367
|
+
readonly childState: "admitted" | "input-applied" | "joined" | "joining" | "ready" | "running" | "settled" | "suspended" | "terminalizing" | "unknown";
|
|
368
|
+
readonly childOutcome?: "aborted" | "completed" | "failed" | undefined;
|
|
369
|
+
}[];
|
|
370
|
+
readonly joins: readonly {
|
|
371
|
+
readonly submissionId: string;
|
|
372
|
+
readonly state: "admitted" | "input-applied" | "joined" | "joining" | "ready" | "running" | "settled" | "suspended" | "terminalizing" | "unknown";
|
|
373
|
+
readonly hostSubmissionId: string;
|
|
374
|
+
}[];
|
|
375
|
+
readonly hostSubmissionId?: string | undefined;
|
|
376
|
+
readonly suspension?: {
|
|
377
|
+
readonly reason: {
|
|
378
|
+
readonly _tag: "ApprovalPending";
|
|
379
|
+
readonly toolCallIds: readonly [string, ...string[]];
|
|
380
|
+
} | {
|
|
381
|
+
readonly _tag: "WaitingForChild";
|
|
382
|
+
readonly children: readonly [{
|
|
383
|
+
readonly toolCallId: string;
|
|
384
|
+
readonly childSubmissionId: string;
|
|
385
|
+
}, ...{
|
|
386
|
+
readonly toolCallId: string;
|
|
387
|
+
readonly childSubmissionId: string;
|
|
388
|
+
}[]];
|
|
389
|
+
};
|
|
390
|
+
readonly suspendedAt: string;
|
|
391
|
+
} | undefined;
|
|
392
|
+
readonly abortIntent?: {
|
|
393
|
+
readonly submissionId: string;
|
|
394
|
+
readonly author: string;
|
|
395
|
+
readonly reason: string;
|
|
396
|
+
readonly requestedAt: string;
|
|
397
|
+
readonly canonicalRecordId?: string | undefined;
|
|
398
|
+
} | undefined;
|
|
399
|
+
};
|
|
400
|
+
readonly decision: {
|
|
401
|
+
readonly _tag: "CompleteMaterialization";
|
|
402
|
+
readonly submissionId: string;
|
|
403
|
+
} | {
|
|
404
|
+
readonly _tag: "RepairReadiness";
|
|
405
|
+
readonly submissionId: string;
|
|
406
|
+
} | {
|
|
407
|
+
readonly _tag: "ApplyInput";
|
|
408
|
+
readonly submissionId: string;
|
|
409
|
+
} | {
|
|
410
|
+
readonly _tag: "RepairInputMarker";
|
|
411
|
+
readonly submissionId: string;
|
|
412
|
+
} | {
|
|
413
|
+
readonly _tag: "ResumeFromTurnBoundary";
|
|
414
|
+
readonly submissionId: string;
|
|
415
|
+
} | {
|
|
416
|
+
readonly _tag: "AppendReservedSettlement";
|
|
417
|
+
readonly submissionId: string;
|
|
418
|
+
readonly settlementId: string;
|
|
419
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
420
|
+
} | {
|
|
421
|
+
readonly _tag: "FinalizeLedgerFromHistory";
|
|
422
|
+
readonly submissionId: string;
|
|
423
|
+
readonly settlementId: string;
|
|
424
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
425
|
+
} | {
|
|
426
|
+
readonly _tag: "SettleAborted";
|
|
427
|
+
readonly submissionId: string;
|
|
428
|
+
} | {
|
|
429
|
+
readonly _tag: "MarkUnknown";
|
|
430
|
+
readonly submissionId: string;
|
|
431
|
+
readonly reason: string;
|
|
432
|
+
readonly openToolCallIds: readonly string[];
|
|
433
|
+
} | {
|
|
434
|
+
readonly _tag: "ResumePendingToolBatch";
|
|
435
|
+
readonly submissionId: string;
|
|
436
|
+
readonly turn: number;
|
|
437
|
+
} | {
|
|
438
|
+
readonly _tag: "AwaitApprovalDecision";
|
|
439
|
+
readonly submissionId: string;
|
|
440
|
+
} | {
|
|
441
|
+
readonly _tag: "ResumeSuspended";
|
|
442
|
+
readonly submissionId: string;
|
|
443
|
+
} | {
|
|
444
|
+
readonly _tag: "AwaitUnknownResolution";
|
|
445
|
+
readonly submissionId: string;
|
|
446
|
+
} | {
|
|
447
|
+
readonly _tag: "ApplyUnknownResolutions";
|
|
448
|
+
readonly submissionId: string;
|
|
449
|
+
} | {
|
|
450
|
+
readonly _tag: "RevertJoining";
|
|
451
|
+
readonly submissionId: string;
|
|
452
|
+
} | {
|
|
453
|
+
readonly _tag: "RepairJoinMarker";
|
|
454
|
+
readonly submissionId: string;
|
|
455
|
+
} | {
|
|
456
|
+
readonly _tag: "SettleJoinedWithHost";
|
|
457
|
+
readonly submissionId: string;
|
|
458
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
459
|
+
} | {
|
|
460
|
+
readonly _tag: "AwaitHostSettlement";
|
|
461
|
+
readonly submissionId: string;
|
|
462
|
+
readonly hostSubmissionId?: string | undefined;
|
|
463
|
+
} | {
|
|
464
|
+
readonly _tag: "CompleteChildAdmission";
|
|
465
|
+
readonly submissionId: string;
|
|
466
|
+
readonly toolCallId: string;
|
|
467
|
+
} | {
|
|
468
|
+
readonly _tag: "AwaitChildAdmissionResolution";
|
|
469
|
+
readonly submissionId: string;
|
|
470
|
+
readonly toolCallId: string;
|
|
471
|
+
} | {
|
|
472
|
+
readonly _tag: "RepairSubagentStartLink";
|
|
473
|
+
readonly submissionId: string;
|
|
474
|
+
readonly toolCallId: string;
|
|
475
|
+
} | {
|
|
476
|
+
readonly _tag: "EnsureWaitingForChild";
|
|
477
|
+
readonly submissionId: string;
|
|
478
|
+
readonly children: readonly [{
|
|
479
|
+
readonly toolCallId: string;
|
|
480
|
+
readonly childSubmissionId: string;
|
|
481
|
+
}, ...{
|
|
482
|
+
readonly toolCallId: string;
|
|
483
|
+
readonly childSubmissionId: string;
|
|
484
|
+
}[]];
|
|
485
|
+
} | {
|
|
486
|
+
readonly _tag: "AwaitChildSettlement";
|
|
487
|
+
readonly submissionId: string;
|
|
488
|
+
} | {
|
|
489
|
+
readonly _tag: "ResumeWaitingParent";
|
|
490
|
+
readonly submissionId: string;
|
|
491
|
+
readonly children: readonly [{
|
|
492
|
+
readonly toolCallId: string;
|
|
493
|
+
readonly childSubmissionId: string;
|
|
494
|
+
}, ...{
|
|
495
|
+
readonly toolCallId: string;
|
|
496
|
+
readonly childSubmissionId: string;
|
|
497
|
+
}[]];
|
|
498
|
+
} | {
|
|
499
|
+
readonly _tag: "ApplyJoinAccounting";
|
|
500
|
+
readonly submissionId: string;
|
|
501
|
+
readonly toolCallId: string;
|
|
502
|
+
readonly reservationId: string;
|
|
503
|
+
} | {
|
|
504
|
+
readonly _tag: "PropagateChildAbort";
|
|
505
|
+
readonly submissionId: string;
|
|
506
|
+
readonly children: readonly [{
|
|
507
|
+
readonly toolCallId: string;
|
|
508
|
+
readonly childSubmissionId: string;
|
|
509
|
+
}, ...{
|
|
510
|
+
readonly toolCallId: string;
|
|
511
|
+
readonly childSubmissionId: string;
|
|
512
|
+
}[]];
|
|
513
|
+
} | {
|
|
514
|
+
readonly _tag: "ReleaseOrphanChildReservation";
|
|
515
|
+
readonly submissionId: string;
|
|
516
|
+
readonly reservationIds: readonly [string, ...string[]];
|
|
517
|
+
} | {
|
|
518
|
+
readonly _tag: "AwaitParentEstablishment";
|
|
519
|
+
readonly submissionId: string;
|
|
520
|
+
readonly parentSubmissionId: string;
|
|
521
|
+
readonly parentToolCallId: string;
|
|
522
|
+
} | {
|
|
523
|
+
readonly _tag: "NoAction";
|
|
524
|
+
readonly submissionId: string;
|
|
525
|
+
};
|
|
526
|
+
readonly decisionMeaning: string;
|
|
527
|
+
readonly disposition: "deferred" | "none" | "repaired" | "unknown";
|
|
528
|
+
readonly explainedAt: string;
|
|
529
|
+
}[];
|
|
530
|
+
} | {
|
|
531
|
+
readonly _tag: "VerifiedIntegrity";
|
|
532
|
+
readonly report: {
|
|
533
|
+
readonly threadId: string;
|
|
534
|
+
readonly tailSequence: number;
|
|
535
|
+
readonly recordCount: number;
|
|
536
|
+
readonly submissionCount: number;
|
|
537
|
+
readonly checks: readonly {
|
|
538
|
+
readonly name: "all-settled" | "checkpoint-binding" | "digest-chain" | "fifo-input-order" | "fifo-settlement-order" | "ledger-canonical-agreement" | "record-identity" | "schema-round-trip" | "sequence-contiguity" | "terminal-uniqueness";
|
|
539
|
+
readonly status: "failed" | "passed" | "skipped";
|
|
540
|
+
readonly detail?: string | undefined;
|
|
541
|
+
}[];
|
|
542
|
+
readonly ok: boolean;
|
|
543
|
+
};
|
|
544
|
+
} | {
|
|
545
|
+
readonly _tag: "RetryExecuted";
|
|
546
|
+
readonly report: {
|
|
547
|
+
readonly submissionId: string;
|
|
548
|
+
readonly threadId: string;
|
|
549
|
+
readonly decision: {
|
|
550
|
+
readonly _tag: "CompleteMaterialization";
|
|
551
|
+
readonly submissionId: string;
|
|
552
|
+
} | {
|
|
553
|
+
readonly _tag: "RepairReadiness";
|
|
554
|
+
readonly submissionId: string;
|
|
555
|
+
} | {
|
|
556
|
+
readonly _tag: "ApplyInput";
|
|
557
|
+
readonly submissionId: string;
|
|
558
|
+
} | {
|
|
559
|
+
readonly _tag: "RepairInputMarker";
|
|
560
|
+
readonly submissionId: string;
|
|
561
|
+
} | {
|
|
562
|
+
readonly _tag: "ResumeFromTurnBoundary";
|
|
563
|
+
readonly submissionId: string;
|
|
564
|
+
} | {
|
|
565
|
+
readonly _tag: "AppendReservedSettlement";
|
|
566
|
+
readonly submissionId: string;
|
|
567
|
+
readonly settlementId: string;
|
|
568
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
569
|
+
} | {
|
|
570
|
+
readonly _tag: "FinalizeLedgerFromHistory";
|
|
571
|
+
readonly submissionId: string;
|
|
572
|
+
readonly settlementId: string;
|
|
573
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
574
|
+
} | {
|
|
575
|
+
readonly _tag: "SettleAborted";
|
|
576
|
+
readonly submissionId: string;
|
|
577
|
+
} | {
|
|
578
|
+
readonly _tag: "MarkUnknown";
|
|
579
|
+
readonly submissionId: string;
|
|
580
|
+
readonly reason: string;
|
|
581
|
+
readonly openToolCallIds: readonly string[];
|
|
582
|
+
} | {
|
|
583
|
+
readonly _tag: "ResumePendingToolBatch";
|
|
584
|
+
readonly submissionId: string;
|
|
585
|
+
readonly turn: number;
|
|
586
|
+
} | {
|
|
587
|
+
readonly _tag: "AwaitApprovalDecision";
|
|
588
|
+
readonly submissionId: string;
|
|
589
|
+
} | {
|
|
590
|
+
readonly _tag: "ResumeSuspended";
|
|
591
|
+
readonly submissionId: string;
|
|
592
|
+
} | {
|
|
593
|
+
readonly _tag: "AwaitUnknownResolution";
|
|
594
|
+
readonly submissionId: string;
|
|
595
|
+
} | {
|
|
596
|
+
readonly _tag: "ApplyUnknownResolutions";
|
|
597
|
+
readonly submissionId: string;
|
|
598
|
+
} | {
|
|
599
|
+
readonly _tag: "RevertJoining";
|
|
600
|
+
readonly submissionId: string;
|
|
601
|
+
} | {
|
|
602
|
+
readonly _tag: "RepairJoinMarker";
|
|
603
|
+
readonly submissionId: string;
|
|
604
|
+
} | {
|
|
605
|
+
readonly _tag: "SettleJoinedWithHost";
|
|
606
|
+
readonly submissionId: string;
|
|
607
|
+
readonly outcome: "aborted" | "completed" | "failed";
|
|
608
|
+
} | {
|
|
609
|
+
readonly _tag: "AwaitHostSettlement";
|
|
610
|
+
readonly submissionId: string;
|
|
611
|
+
readonly hostSubmissionId?: string | undefined;
|
|
612
|
+
} | {
|
|
613
|
+
readonly _tag: "CompleteChildAdmission";
|
|
614
|
+
readonly submissionId: string;
|
|
615
|
+
readonly toolCallId: string;
|
|
616
|
+
} | {
|
|
617
|
+
readonly _tag: "AwaitChildAdmissionResolution";
|
|
618
|
+
readonly submissionId: string;
|
|
619
|
+
readonly toolCallId: string;
|
|
620
|
+
} | {
|
|
621
|
+
readonly _tag: "RepairSubagentStartLink";
|
|
622
|
+
readonly submissionId: string;
|
|
623
|
+
readonly toolCallId: string;
|
|
624
|
+
} | {
|
|
625
|
+
readonly _tag: "EnsureWaitingForChild";
|
|
626
|
+
readonly submissionId: string;
|
|
627
|
+
readonly children: readonly [{
|
|
628
|
+
readonly toolCallId: string;
|
|
629
|
+
readonly childSubmissionId: string;
|
|
630
|
+
}, ...{
|
|
631
|
+
readonly toolCallId: string;
|
|
632
|
+
readonly childSubmissionId: string;
|
|
633
|
+
}[]];
|
|
634
|
+
} | {
|
|
635
|
+
readonly _tag: "AwaitChildSettlement";
|
|
636
|
+
readonly submissionId: string;
|
|
637
|
+
} | {
|
|
638
|
+
readonly _tag: "ResumeWaitingParent";
|
|
639
|
+
readonly submissionId: string;
|
|
640
|
+
readonly children: readonly [{
|
|
641
|
+
readonly toolCallId: string;
|
|
642
|
+
readonly childSubmissionId: string;
|
|
643
|
+
}, ...{
|
|
644
|
+
readonly toolCallId: string;
|
|
645
|
+
readonly childSubmissionId: string;
|
|
646
|
+
}[]];
|
|
647
|
+
} | {
|
|
648
|
+
readonly _tag: "ApplyJoinAccounting";
|
|
649
|
+
readonly submissionId: string;
|
|
650
|
+
readonly toolCallId: string;
|
|
651
|
+
readonly reservationId: string;
|
|
652
|
+
} | {
|
|
653
|
+
readonly _tag: "PropagateChildAbort";
|
|
654
|
+
readonly submissionId: string;
|
|
655
|
+
readonly children: readonly [{
|
|
656
|
+
readonly toolCallId: string;
|
|
657
|
+
readonly childSubmissionId: string;
|
|
658
|
+
}, ...{
|
|
659
|
+
readonly toolCallId: string;
|
|
660
|
+
readonly childSubmissionId: string;
|
|
661
|
+
}[]];
|
|
662
|
+
} | {
|
|
663
|
+
readonly _tag: "ReleaseOrphanChildReservation";
|
|
664
|
+
readonly submissionId: string;
|
|
665
|
+
readonly reservationIds: readonly [string, ...string[]];
|
|
666
|
+
} | {
|
|
667
|
+
readonly _tag: "AwaitParentEstablishment";
|
|
668
|
+
readonly submissionId: string;
|
|
669
|
+
readonly parentSubmissionId: string;
|
|
670
|
+
readonly parentToolCallId: string;
|
|
671
|
+
} | {
|
|
672
|
+
readonly _tag: "NoAction";
|
|
673
|
+
readonly submissionId: string;
|
|
674
|
+
};
|
|
675
|
+
readonly disposition: "deferred" | "none" | "repaired" | "unknown";
|
|
676
|
+
};
|
|
677
|
+
} | {
|
|
678
|
+
readonly _tag: "ObligationsScanned";
|
|
679
|
+
readonly report: {
|
|
680
|
+
readonly thresholds: {
|
|
681
|
+
readonly agingSeconds: number;
|
|
682
|
+
readonly overdueSeconds: number;
|
|
683
|
+
};
|
|
684
|
+
readonly entries: readonly {
|
|
685
|
+
readonly submissionId: string;
|
|
686
|
+
readonly threadId: string;
|
|
687
|
+
readonly state: "admitted" | "input-applied" | "joined" | "joining" | "ready" | "running" | "settled" | "suspended" | "terminalizing" | "unknown";
|
|
688
|
+
readonly blockedOn: "approval" | "ready-aged" | "running-aged" | "unknown" | "waitingForChild";
|
|
689
|
+
readonly ageSeconds: number;
|
|
690
|
+
readonly severity: "aging" | "ok" | "overdue";
|
|
691
|
+
}[];
|
|
692
|
+
readonly generatedAt: string;
|
|
693
|
+
};
|
|
694
|
+
} | {
|
|
695
|
+
readonly _tag: "AdminFailed";
|
|
696
|
+
readonly failure: {
|
|
697
|
+
readonly _tag: "DurableAlarmError";
|
|
698
|
+
readonly operation: string;
|
|
699
|
+
readonly message: string;
|
|
700
|
+
readonly cause?: Schema.Json | undefined;
|
|
701
|
+
} | {
|
|
702
|
+
readonly _tag: "HostProtocolError";
|
|
703
|
+
readonly message: string;
|
|
704
|
+
} | {
|
|
705
|
+
readonly _tag: "LedgerError";
|
|
706
|
+
readonly operation: string;
|
|
707
|
+
readonly message: string;
|
|
708
|
+
readonly cause?: Schema.Json | undefined;
|
|
709
|
+
} | {
|
|
710
|
+
readonly _tag: "AdmissionPolicyError";
|
|
711
|
+
readonly reason: "occupied" | "refused" | "unavailable";
|
|
712
|
+
readonly code: string;
|
|
713
|
+
} | {
|
|
714
|
+
readonly _tag: "AppendConflict";
|
|
715
|
+
readonly threadId: string;
|
|
716
|
+
readonly batchId: string;
|
|
717
|
+
readonly reason: "batch-digest" | "record-identity" | "tail";
|
|
718
|
+
readonly actualTailSequence?: number | undefined;
|
|
719
|
+
readonly actualTailDigest?: string | undefined;
|
|
720
|
+
} | {
|
|
721
|
+
readonly _tag: "DigestError";
|
|
722
|
+
readonly message: string;
|
|
723
|
+
readonly cause?: Schema.Json | undefined;
|
|
724
|
+
} | {
|
|
725
|
+
readonly _tag: "DurableRuntimeFailpointError";
|
|
726
|
+
readonly location: "abort:after-intent" | "approval:after-request-append" | "approval:after-suspend" | "checkpoint:after-save" | "checkpoint:before-save" | "claim:after-claim" | "compaction:after-canonical-append" | "compaction:before-canonical-append" | "input:after-canonical-append" | "join:after-canonical-append" | "join:after-claim" | "policy:after-reservation-append" | "policy:before-reservation-append" | "resolve:after-intent" | "run:after-start-append" | "run:before-start-append" | "step:after-step-append" | "subagent:after-admit" | "subagent:after-child-abort-intent" | "subagent:after-child-ready" | "subagent:after-join-append" | "subagent:after-release" | "subagent:after-release-pending" | "subagent:after-request-append" | "subagent:after-reserve" | "subagent:after-sibling-settle" | "subagent:after-start-append" | "subagent:after-suspend" | "subagent:before-join-append" | "submit:after-admit" | "submit:after-materialize" | "terminalize:after-canonical-append" | "terminalize:after-reserve" | "tools:after-prepared-append" | "tools:before-prepared-append" | "turn:after-canonical-append" | "turn:after-response-append" | "turn:after-results-append" | "worker:after-completion-append" | "worker:after-origin-append" | "worker:after-report-append" | "worker:after-report-delivery" | "worker:after-source-append" | "worker:after-subtree-append" | "worker:before-completion-append" | "worker:before-origin-append" | "worker:before-report-append" | "worker:before-report-delivery" | "worker:before-source-append" | "worker:before-subtree-append";
|
|
727
|
+
} | {
|
|
728
|
+
readonly _tag: "FenceRejected";
|
|
729
|
+
readonly threadId: string;
|
|
730
|
+
readonly actualEpoch: number;
|
|
731
|
+
readonly attemptedEpoch: number;
|
|
732
|
+
} | {
|
|
733
|
+
readonly _tag: "ThreadNotMaterialized";
|
|
734
|
+
readonly threadId: string;
|
|
735
|
+
} | {
|
|
736
|
+
readonly _tag: "ThreadStoreError";
|
|
737
|
+
readonly operation: string;
|
|
738
|
+
readonly message: string;
|
|
739
|
+
readonly cause?: Schema.Json | undefined;
|
|
740
|
+
} | {
|
|
741
|
+
readonly _tag: "OperationDenied";
|
|
742
|
+
readonly operation: "abort" | "awaitSettlement" | "explain" | "observe" | "resolveApproval" | "resolveUnknown" | "retry" | "scanObligations" | "verify" | "wake";
|
|
743
|
+
readonly reason: string;
|
|
744
|
+
readonly threadId?: string | undefined;
|
|
745
|
+
readonly submissionId?: string | undefined;
|
|
746
|
+
} | {
|
|
747
|
+
readonly _tag: "SettlementConflict";
|
|
748
|
+
readonly submissionId: string;
|
|
749
|
+
readonly existingOutcome: "aborted" | "completed" | "failed";
|
|
750
|
+
} | {
|
|
751
|
+
readonly _tag: "OwnershipLost";
|
|
752
|
+
readonly submissionId: string;
|
|
753
|
+
readonly actualEpoch: number;
|
|
754
|
+
} | {
|
|
755
|
+
readonly _tag: "RunJournalError";
|
|
756
|
+
readonly message: string;
|
|
757
|
+
readonly cause?: Schema.Json | undefined;
|
|
758
|
+
} | {
|
|
759
|
+
readonly _tag: "RetryRefused";
|
|
760
|
+
readonly submissionId: string;
|
|
761
|
+
readonly refusal: "await-approval-decision" | "await-unknown-resolution" | "settled";
|
|
762
|
+
readonly decisionTag: string;
|
|
763
|
+
readonly message: string;
|
|
764
|
+
};
|
|
765
|
+
}, Schema.SchemaError, never>;
|
|
766
|
+
declare const decodeAdminResponse: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => Effect.Effect<AdminFailed | ExplainedRecovery | ObligationsScanned | RetryExecuted | VerifiedIntegrity, Schema.SchemaError, never>;
|
|
767
|
+
declare const portCall: (encoded: unknown) => Effect.Effect<unknown, never, ThreadObjectPorts | ThreadMaintenance | DurableAlarmService | ThreadObjectIdentity>;
|
|
768
|
+
/** The per-Thread wire operations supported by native and application-owned endpoints. */
|
|
769
|
+
declare const ThreadRpcOperation: Schema.Literals<readonly ["submitEncoded", "submissionStatusEncoded", "awaitSettlementEncoded", "awaitProgressEncoded", "cancelProgressEncoded", "observePage", "abortEncoded", "resolveApprovalEncoded", "resolveUnknownEncoded", "portCall", "wake"]>;
|
|
770
|
+
type ThreadRpcOperation = typeof ThreadRpcOperation.Type;
|
|
771
|
+
/**
|
|
772
|
+
* Bind an addressed request to its logical Thread while sharing one physical runtime. This
|
|
773
|
+
* validates local placement before invoking the same native handlers. Receipts, Submission
|
|
774
|
+
* commands and port envelopes must match this identity; progress cancellation is Thread-scoped.
|
|
775
|
+
* The producer comes from the actual runtime configuration, never from caller input. These
|
|
776
|
+
* guards supplement the existing current model/Tool and operation authorization policies.
|
|
777
|
+
*/
|
|
778
|
+
declare const handleRpc: (threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">, operation: "abortEncoded" | "awaitProgressEncoded" | "awaitSettlementEncoded" | "cancelProgressEncoded" | "observePage" | "portCall" | "resolveApprovalEncoded" | "resolveUnknownEncoded" | "submissionStatusEncoded" | "submitEncoded" | "wake", encoded: unknown) => Effect.Effect<unknown, HostProtocolError, CloudflareDurableRuntimeConfig | import("effect/Crypto").Crypto | import("@effect-agent/storage-cloudflare/DoStorageFailpoint").DoStorageFailpoint | DurableObjectContext | DurableRuntimeConfig | import("@effect-agent/thread/DurableFailpoint").DurableRuntimeFailpoint | import("@effect-agent/engine/RunOptions").RunContextPreparation | import("@effect-agent/engine/RunOptions").RunToolAuthorization | ThreadMaintenanceFailpoint | ThreadObjectPlacement | import("@effect-agent/thread/ToolReconciler").ToolReconciler | CloudflareDurableRuntimeServices>;
|
|
779
|
+
/** The public endpoints and effect-cf invocation hook of one Thread Object instance. */
|
|
780
|
+
interface Instance<EventServices = never> extends InstanceType<DurableObject.DurableObjectClass<Record<never, never>, RuntimeServices | EventServices>> {
|
|
781
|
+
submitEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
782
|
+
submissionStatusEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
783
|
+
awaitSettlementEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
784
|
+
awaitProgressEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
785
|
+
cancelProgressEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
786
|
+
observePage(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
787
|
+
abortEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
788
|
+
resolveApprovalEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
789
|
+
resolveUnknownEncoded(encoded: unknown, traceContext?: unknown): Promise<unknown>;
|
|
790
|
+
explainEncoded(encoded: unknown): Promise<unknown>;
|
|
791
|
+
verifyEncoded(encoded: unknown): Promise<unknown>;
|
|
792
|
+
retryEncoded(encoded: unknown): Promise<unknown>;
|
|
793
|
+
obligationsEncoded(encoded: unknown): Promise<unknown>;
|
|
794
|
+
portCall(encoded: unknown): Promise<unknown>;
|
|
795
|
+
wake(): Promise<void>;
|
|
796
|
+
alarm(alarmInfo?: AlarmInvocationInfo): Promise<void> | void;
|
|
797
|
+
}
|
|
798
|
+
/** The constructor shape workerd instantiates for each Thread Object. */
|
|
799
|
+
interface Class<EventServices = never> {
|
|
800
|
+
new (ctx: DurableObjectState, env: Cloudflare.Env): Instance<EventServices>;
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Export a composed application Layer as a native Durable Object class.
|
|
804
|
+
* Bootstrap services are provided to the whole graph before it acquires, so application Layers
|
|
805
|
+
* can yield effect-cf's WorkerEnvironment and DurableObjectState, derived identity, and Crypto.
|
|
806
|
+
* Effect Config reads scalar Worker vars and secrets through effect-cf's environment provider;
|
|
807
|
+
* WorkerEnvironment exposes resource bindings without a separate config Layer.
|
|
808
|
+
* Application dependencies remain visible until Layer.provide satisfies them. effect-cf owns the
|
|
809
|
+
* cached ManagedRuntime, native RPC methods, event scopes, and telemetry flushing.
|
|
810
|
+
* Initialization is local and bounded inside the constructor gate. Cloudflare eviction does not
|
|
811
|
+
* guarantee finalizers; put resources requiring timely release in scoped operations or eventLayer.
|
|
812
|
+
*/
|
|
813
|
+
declare const make: <ApplicationServices, ApplicationError, EventServices = never, EventLayerError = never>(applicationLayer: Layer.Layer<CloudflareDurableRuntimeServices | ApplicationServices, ApplicationError, CloudflareBootstrapServices | DurableObjectState$1.DurableObjectState | WorkerEnvironment | DurableObjectContext | ThreadObjectNamespace>, options: Options<ApplicationServices, EventServices, EventLayerError>) => Class<ApplicationServices | EventServices>;
|
|
814
|
+
//#endregion
|
|
815
|
+
export { ThreadPublicationOptions as A, portCall as C, CloudflareDurableRuntimeOptions as D, CloudflareDurableRuntimeInitializationError as E, layerConfig as M, layerHostConfig as N, CloudflareDurableRuntimeServices as O, layerInHost as P, make as S, CloudflareBootstrapServices as T, decodeAdminVerifyRequest as _, AdminVerifyRequest as a, encodeAdminResponse as b, Instance as c, RetryExecuted as d, ThreadObject_d_exports as f, decodeAdminResponse as g, decodeAdminExplainRequest as h, AdminResponse as i, layer as j, ThreadObjectPorts as k, ObligationsScanned as l, VerifiedIntegrity as m, AdminFailed as n, Class as o, ThreadRpcOperation as p, AdminFailure as r, ExplainedRecovery as s, AdminExplainRequest as t, Options as u, decodeObligationThresholds as v, submit as w, handleRpc as x, decodeRetryCommand as y };
|
|
816
|
+
//# sourceMappingURL=ThreadObject-3uDpKfB3.d.mts.map
|