@yielded/agent-platform-cloudflare 0.1.0-beta.173 → 0.1.0-beta.175
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-BMEAZo3p.mjs → Alarm-B44efvB1.mjs} +162 -103
- package/dist/Alarm-B44efvB1.mjs.map +1 -0
- package/dist/Alarm.d.mts +2 -0
- package/dist/Alarm.mjs +1 -1
- package/dist/BrowserRestCapture.mjs.map +1 -1
- package/dist/BrowserRestCrawl.mjs.map +1 -1
- package/dist/{BrowserSession-Bx0V1-6_.d.mts → BrowserSession-Cojp7nth.d.mts} +3 -2
- package/dist/{BrowserSession-BfNmyayH.mjs → BrowserSession-aovMjfL4.mjs} +14 -14
- package/dist/BrowserSession-aovMjfL4.mjs.map +1 -0
- package/dist/BrowserSession.d.mts +1 -1
- package/dist/BrowserSession.mjs +2 -2
- package/dist/BrowserUse.d.mts +40 -64
- package/dist/BrowserUse.mjs +223 -2
- package/dist/BrowserUse.mjs.map +1 -0
- package/dist/CloudflareBrowser-Vt8qTdYW.mjs.map +1 -1
- package/dist/CloudflareCodeMode.mjs.map +1 -1
- package/dist/CloudflareScheduling.mjs +9 -9
- package/dist/CloudflareScheduling.mjs.map +1 -1
- package/dist/CloudflareSubscriptions.mjs +15 -15
- package/dist/CloudflareSubscriptions.mjs.map +1 -1
- package/dist/{CloudflareThreadClient-DgZVrZzF.mjs → CloudflareThreadClient-Ai3MTs3X.mjs} +43 -40
- package/dist/CloudflareThreadClient-Ai3MTs3X.mjs.map +1 -0
- package/dist/CloudflareThreadClient.mjs +1 -1
- package/dist/{InteractiveBrowser-LdKzQeLR.mjs → InteractiveBrowser-BHNlwjZL.mjs} +40 -31
- package/dist/InteractiveBrowser-BHNlwjZL.mjs.map +1 -0
- package/dist/InteractiveBrowser.mjs +1 -1
- package/dist/{ThreadObject-CRbLbdXM.d.mts → ThreadObject-CxNlhoPL.d.mts} +3 -3
- package/dist/{ThreadObject-CGIaz6Jv.mjs → ThreadObject-DGvlHWYi.mjs} +50 -52
- package/dist/ThreadObject-DGvlHWYi.mjs.map +1 -0
- package/dist/ThreadObject.d.mts +1 -1
- package/dist/ThreadObject.mjs +1 -1
- package/dist/WakeScheduler.d.mts +1 -1
- package/dist/WakeScheduler.mjs +8 -3
- package/dist/WakeScheduler.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +5 -5
- package/dist/{prepared-admission-CSdzFM_v.mjs → prepared-admission-DYdffQ8K.mjs} +2 -2
- package/dist/{prepared-admission-CSdzFM_v.mjs.map → prepared-admission-DYdffQ8K.mjs.map} +1 -1
- package/package.json +1 -1
- package/src/Alarm.ts +293 -155
- package/src/BrowserRestCapture.ts +1 -0
- package/src/BrowserRestCrawl.ts +1 -0
- package/src/BrowserSession.ts +3 -2
- package/src/BrowserUse.ts +287 -1504
- package/src/CloudflareCodeMode.ts +6 -0
- package/src/CloudflareScheduling.ts +103 -103
- package/src/CloudflareSubscriptions.ts +192 -199
- package/src/CloudflareThreadClient.ts +258 -269
- package/src/InteractiveBrowser.ts +43 -17
- package/src/ThreadObject.ts +51 -45
- package/src/WakeScheduler.ts +12 -9
- package/src/internal/browser-binding.ts +8 -0
- package/src/internal/browser-credentials.ts +18 -13
- package/src/internal/browser-file-selection.ts +13 -2
- package/src/internal/browser-quick-action.ts +1 -0
- package/src/internal/browser-session-lifecycle.ts +32 -36
- package/src/internal/due-queue.ts +38 -19
- package/src/internal/layers.ts +108 -87
- package/src/internal/message-delivery.ts +61 -37
- package/dist/Alarm-BMEAZo3p.mjs.map +0 -1
- package/dist/BrowserSession-BfNmyayH.mjs.map +0 -1
- package/dist/BrowserUse-Bc2JdLW2.mjs +0 -1528
- package/dist/BrowserUse-Bc2JdLW2.mjs.map +0 -1
- package/dist/CloudflareThreadClient-DgZVrZzF.mjs.map +0 -1
- package/dist/InteractiveBrowser-LdKzQeLR.mjs.map +0 -1
- package/dist/ThreadObject-CGIaz6Jv.mjs.map +0 -1
- package/dist/page-function-CmUCcyNP.mjs +0 -11
- package/dist/page-function-CmUCcyNP.mjs.map +0 -1
- package/src/internal/browser-dom.ts +0 -886
- package/src/internal/browser-jev-dom.ts +0 -362
package/dist/ThreadObject.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as ThreadObjectPorts, D as layerInHost, E as layerHostConfig, S as submit, T as layerConfig, _ as decodeRetryCommand, a as AdminVerifyRequest, b as make, c as RetryExecuted, d as VerifiedIntegrity, f as alarms, g as decodeObligationThresholds, h as decodeAdminVerifyRequest, i as AdminResponse, m as decodeAdminResponse, n as AdminFailed, o as ExplainedRecovery, p as decodeAdminExplainRequest, r as AdminFailure, s as ObligationsScanned, t as AdminExplainRequest, u as ThreadRpcOperation, v as encodeAdminResponse, w as layer, x as portCall, y as handleRpc } from "./ThreadObject-
|
|
1
|
+
import { C as ThreadObjectPorts, D as layerInHost, E as layerHostConfig, S as submit, T as layerConfig, _ as decodeRetryCommand, a as AdminVerifyRequest, b as make, c as RetryExecuted, d as VerifiedIntegrity, f as alarms, g as decodeObligationThresholds, h as decodeAdminVerifyRequest, i as AdminResponse, m as decodeAdminResponse, n as AdminFailed, o as ExplainedRecovery, p as decodeAdminExplainRequest, r as AdminFailure, s as ObligationsScanned, t as AdminExplainRequest, u as ThreadRpcOperation, v as encodeAdminResponse, w as layer, x as portCall, y as handleRpc } from "./ThreadObject-DGvlHWYi.mjs";
|
|
2
2
|
export { AdminExplainRequest, AdminFailed, AdminFailure, AdminResponse, AdminVerifyRequest, ExplainedRecovery, ObligationsScanned, RetryExecuted, ThreadObjectPorts, ThreadRpcOperation, VerifiedIntegrity, alarms, decodeAdminExplainRequest, decodeAdminResponse, decodeAdminVerifyRequest, decodeObligationThresholds, decodeRetryCommand, encodeAdminResponse, handleRpc, layer, layerConfig, layerHostConfig, layerInHost, make, portCall, submit };
|
package/dist/WakeScheduler.d.mts
CHANGED
|
@@ -11,7 +11,7 @@ declare namespace WakeScheduler_d_exports {
|
|
|
11
11
|
* - `notify(local)` wakes progress and settlement registrations, publishes a worker hint, and
|
|
12
12
|
* schedules the earliest alarm. Processing an owned Thread defers immediate alarms until
|
|
13
13
|
* processing exits; pre-armed recovery deadlines remain active. Progress hints skip settlement
|
|
14
|
-
* registrations
|
|
14
|
+
* registrations; single-Thread native progress also omits the redundant worker hint.
|
|
15
15
|
* - `notify(remote)` → fire-and-forget `wake()` on the owning Object's stub with every error
|
|
16
16
|
* swallowed and logged: hints are droppable, and the target's own alarm/scan pairing (the
|
|
17
17
|
* maintenance pass re-polls unsettled children) guarantees liveness without this call.
|
package/dist/WakeScheduler.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
2
|
import { ThreadObjectNamespace, ThreadObjectPlacement, callThreadObject } from "./CloudflareBindings.mjs";
|
|
3
3
|
import { r as safeCauseMessage } from "./boundary-BguazVkh.mjs";
|
|
4
|
-
import { r as DurableAlarmService } from "./Alarm-
|
|
4
|
+
import { r as DurableAlarmService } from "./Alarm-B44efvB1.mjs";
|
|
5
|
+
import { CurrentNativeSource } from "@yielded/agent-storage-cloudflare/port-routing";
|
|
5
6
|
import "@yielded/agent/identifiers";
|
|
6
7
|
import { WakeScheduler, makeWakeSubscriptionHub } from "@yielded/agent/wake-scheduler";
|
|
7
8
|
import { Effect, Layer, PubSub, Schema, Stream } from "effect";
|
|
@@ -26,7 +27,7 @@ var RemoteWakeDropped = class extends Schema.TaggedError()("RemoteWakeDropped",
|
|
|
26
27
|
* - `notify(local)` wakes progress and settlement registrations, publishes a worker hint, and
|
|
27
28
|
* schedules the earliest alarm. Processing an owned Thread defers immediate alarms until
|
|
28
29
|
* processing exits; pre-armed recovery deadlines remain active. Progress hints skip settlement
|
|
29
|
-
* registrations
|
|
30
|
+
* registrations; single-Thread native progress also omits the redundant worker hint.
|
|
30
31
|
* - `notify(remote)` → fire-and-forget `wake()` on the owning Object's stub with every error
|
|
31
32
|
* swallowed and logged: hints are droppable, and the target's own alarm/scan pairing (the
|
|
32
33
|
* maintenance pass re-polls unsettled children) guarantees liveness without this call.
|
|
@@ -42,7 +43,11 @@ const cloudflareWakeSchedulerLayer = Layer.effect(WakeScheduler)(Effect.gen(func
|
|
|
42
43
|
const settlements = yield* makeWakeSubscriptionHub;
|
|
43
44
|
yield* Effect.addFinalizer(() => PubSub.shutdown(hints));
|
|
44
45
|
const scheduleLocal = alarm.scheduleNow.pipe(Effect.catch((error) => Effect.logWarning("CloudflareWakeScheduler: local alarm wake failed", error)));
|
|
45
|
-
const notifyLocal =
|
|
46
|
+
const notifyLocal = Effect.fnUntraced(function* (threadId, kind) {
|
|
47
|
+
yield* kind === "progress" ? progress.notify(threadId) : settlements.notify(threadId).pipe(Effect.andThen(progress.notify(threadId)));
|
|
48
|
+
if (kind !== "progress" || placement.threadId === void 0 || !(yield* CurrentNativeSource)) yield* PubSub.publish(hints, threadId);
|
|
49
|
+
yield* scheduleLocal;
|
|
50
|
+
});
|
|
46
51
|
const notifyRemote = (threadId) => callThreadObject(threadId, (target) => target.wake(), (cause) => RemoteWakeDropped.make({
|
|
47
52
|
threadId,
|
|
48
53
|
message: safeCauseMessage(cause, "The remote wake failed without a diagnostic"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WakeScheduler.mjs","names":[],"sources":["../src/WakeScheduler.ts"],"sourcesContent":["import { type ThreadId } from \"@yielded/agent/identifiers\";\nimport { makeWakeSubscriptionHub, WakeScheduler } from \"@yielded/agent/wake-scheduler\";\nimport { Effect, Layer, PubSub, Schema, Stream } from \"effect\";\n\nimport { DurableAlarmService } from \"./Alarm.ts\";\nimport {\n callThreadObject,\n ThreadObjectPlacement,\n ThreadObjectNamespace,\n} from \"./CloudflareBindings.ts\";\nimport { safeCauseMessage } from \"./internal/boundary.ts\";\n\n/**\n * Bounded in-memory wake buffer for same-incarnation workers. Wake\n * hints are droppable by contract (consumers pair hints with durable authority), so\n * a full buffer slides out the oldest hint and an eviction simply loses the buffer — the\n * poll interval and the persisted alarm keep liveness (persistence §14).\n */\nconst WAKE_BUFFER_CAPACITY = 1_024;\n\n/** A remote wake stub call failed; always swallowed and logged (hints are droppable). */\nclass RemoteWakeDropped extends Schema.TaggedError<RemoteWakeDropped>()(\"RemoteWakeDropped\", {\n threadId: Schema.String,\n message: Schema.String,\n cause: Schema.optionalKey(Schema.Defect()),\n}) {}\n\n/**\n * The DC `WakeScheduler` (plan §1.4):\n *\n * - `notify(local)` wakes progress and settlement registrations, publishes a worker hint, and\n * schedules the earliest alarm. Processing an owned Thread defers immediate alarms until\n * processing exits; pre-armed recovery deadlines remain active. Progress hints skip settlement\n * registrations
|
|
1
|
+
{"version":3,"file":"WakeScheduler.mjs","names":[],"sources":["../src/WakeScheduler.ts"],"sourcesContent":["import { CurrentNativeSource } from \"@yielded/agent-storage-cloudflare/port-routing\";\nimport { type ThreadId } from \"@yielded/agent/identifiers\";\nimport { makeWakeSubscriptionHub, WakeScheduler } from \"@yielded/agent/wake-scheduler\";\nimport { Effect, Layer, PubSub, Schema, Stream } from \"effect\";\n\nimport { DurableAlarmService } from \"./Alarm.ts\";\nimport {\n callThreadObject,\n ThreadObjectPlacement,\n ThreadObjectNamespace,\n} from \"./CloudflareBindings.ts\";\nimport { safeCauseMessage } from \"./internal/boundary.ts\";\n\n/**\n * Bounded in-memory wake buffer for same-incarnation workers. Wake\n * hints are droppable by contract (consumers pair hints with durable authority), so\n * a full buffer slides out the oldest hint and an eviction simply loses the buffer — the\n * poll interval and the persisted alarm keep liveness (persistence §14).\n */\nconst WAKE_BUFFER_CAPACITY = 1_024;\n\n/** A remote wake stub call failed; always swallowed and logged (hints are droppable). */\nclass RemoteWakeDropped extends Schema.TaggedError<RemoteWakeDropped>()(\"RemoteWakeDropped\", {\n threadId: Schema.String,\n message: Schema.String,\n cause: Schema.optionalKey(Schema.Defect()),\n}) {}\n\n/**\n * The DC `WakeScheduler` (plan §1.4):\n *\n * - `notify(local)` wakes progress and settlement registrations, publishes a worker hint, and\n * schedules the earliest alarm. Processing an owned Thread defers immediate alarms until\n * processing exits; pre-armed recovery deadlines remain active. Progress hints skip settlement\n * registrations; single-Thread native progress also omits the redundant worker hint.\n * - `notify(remote)` → fire-and-forget `wake()` on the owning Object's stub with every error\n * swallowed and logged: hints are droppable, and the target's own alarm/scan pairing (the\n * maintenance pass re-polls unsettled children) guarantees liveness without this call.\n * - `wakes` → the bounded sliding PubSub only. Thread waiters use Scope-owned one-shot hubs;\n * the settlement poll interval and persisted alarm retain liveness after hint loss.\n */\nexport const cloudflareWakeSchedulerLayer: Layer.Layer<\n WakeScheduler,\n never,\n DurableAlarmService | ThreadObjectPlacement | ThreadObjectNamespace\n> = Layer.effect(WakeScheduler)(\n Effect.gen(function* () {\n const alarm = yield* DurableAlarmService;\n const placement = yield* ThreadObjectPlacement;\n const namespace = yield* ThreadObjectNamespace;\n const hints = yield* PubSub.sliding<ThreadId>(WAKE_BUFFER_CAPACITY);\n const progress = yield* makeWakeSubscriptionHub;\n const settlements = yield* makeWakeSubscriptionHub;\n\n yield* Effect.addFinalizer(() => PubSub.shutdown(hints));\n\n const scheduleLocal = alarm.scheduleNow.pipe(\n Effect.catch((error) =>\n Effect.logWarning(\"CloudflareWakeScheduler: local alarm wake failed\", error),\n ),\n );\n\n const notifyLocal = Effect.fnUntraced(function* (threadId: ThreadId, kind?: \"progress\") {\n yield* kind === \"progress\"\n ? progress.notify(threadId)\n : settlements.notify(threadId).pipe(Effect.andThen(progress.notify(threadId)));\n\n // Progress waiters still observe every hint. The single-Thread maintenance loop\n // already awaits the running native fiber; its source commits enroll auxiliary work.\n if (kind !== \"progress\" || placement.threadId === undefined || !(yield* CurrentNativeSource))\n yield* PubSub.publish(hints, threadId);\n yield* scheduleLocal;\n });\n\n const notifyRemote = (threadId: ThreadId) =>\n callThreadObject(\n threadId,\n (target) => target.wake(),\n (cause) =>\n RemoteWakeDropped.make({\n threadId,\n message: safeCauseMessage(cause, \"The remote wake failed without a diagnostic\"),\n cause,\n }),\n ).pipe(\n Effect.provideService(ThreadObjectNamespace, namespace),\n Effect.catch((error) =>\n Effect.logWarning(`CloudflareWakeScheduler: remote wake of ${threadId} dropped`, error),\n ),\n Effect.asVoid,\n );\n\n return WakeScheduler.of({\n withProcessing: (threadId, body) =>\n placement.ownsThread(threadId)\n ? alarm.withHintsDeferred(body).pipe(Effect.ensuring(scheduleLocal))\n : body,\n notify: (threadId, kind) =>\n placement.ownsThread(threadId) ? notifyLocal(threadId, kind) : notifyRemote(threadId),\n subscribe: (threadId, kind) =>\n (kind === \"settlement\" ? settlements : progress).subscribe(threadId),\n wakes: Stream.fromPubSub(hints),\n });\n }),\n);\n"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAM,uBAAuB;;AAG7B,IAAM,oBAAN,cAAgC,OAAO,YAA+B,CAAC,CAAC,qBAAqB;CAC3F,UAAU,OAAO;CACjB,SAAS,OAAO;CAChB,OAAO,OAAO,YAAY,OAAO,OAAO,CAAC;AAC3C,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;AAeJ,MAAa,+BAIT,MAAM,OAAO,aAAa,CAAC,CAC7B,OAAO,IAAI,aAAa;CACtB,MAAM,QAAQ,OAAO;CACrB,MAAM,YAAY,OAAO;CACzB,MAAM,YAAY,OAAO;CACzB,MAAM,QAAQ,OAAO,OAAO,QAAkB,oBAAoB;CAClE,MAAM,WAAW,OAAO;CACxB,MAAM,cAAc,OAAO;CAE3B,OAAO,OAAO,mBAAmB,OAAO,SAAS,KAAK,CAAC;CAEvD,MAAM,gBAAgB,MAAM,YAAY,KACtC,OAAO,OAAO,UACZ,OAAO,WAAW,oDAAoD,KAAK,CAC7E,CACF;CAEA,MAAM,cAAc,OAAO,WAAW,WAAW,UAAoB,MAAmB;EACtF,OAAO,SAAS,aACZ,SAAS,OAAO,QAAQ,IACxB,YAAY,OAAO,QAAQ,CAAC,CAAC,KAAK,OAAO,QAAQ,SAAS,OAAO,QAAQ,CAAC,CAAC;EAI/E,IAAI,SAAS,cAAc,UAAU,aAAa,KAAA,KAAa,EAAE,OAAO,sBACtE,OAAO,OAAO,QAAQ,OAAO,QAAQ;EACvC,OAAO;CACT,CAAC;CAED,MAAM,gBAAgB,aACpB,iBACE,WACC,WAAW,OAAO,KAAK,IACvB,UACC,kBAAkB,KAAK;EACrB;EACA,SAAS,iBAAiB,OAAO,6CAA6C;EAC9E;CACF,CAAC,CACL,CAAC,CAAC,KACA,OAAO,eAAe,uBAAuB,SAAS,GACtD,OAAO,OAAO,UACZ,OAAO,WAAW,2CAA2C,SAAS,WAAW,KAAK,CACxF,GACA,OAAO,MACT;CAEF,OAAO,cAAc,GAAG;EACtB,iBAAiB,UAAU,SACzB,UAAU,WAAW,QAAQ,IACzB,MAAM,kBAAkB,IAAI,CAAC,CAAC,KAAK,OAAO,SAAS,aAAa,CAAC,IACjE;EACN,SAAS,UAAU,SACjB,UAAU,WAAW,QAAQ,IAAI,YAAY,UAAU,IAAI,IAAI,aAAa,QAAQ;EACtF,YAAY,UAAU,UACnB,SAAS,eAAe,cAAc,SAAA,CAAU,UAAU,QAAQ;EACrE,OAAO,OAAO,WAAW,KAAK;CAChC,CAAC;AACH,CAAC,CACH"}
|
package/dist/index.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { o as CloudflareConfig_d_exports } from "./CloudflareConfig-C9MvPbX8.mjs
|
|
|
3
3
|
import { t as Alarm_d_exports } from "./Alarm.mjs";
|
|
4
4
|
import { r as BrowserCredentials_d_exports } from "./BrowserCredentials-C5IWfi7f.mjs";
|
|
5
5
|
import { t as CloudflareBrowser_d_exports } from "./CloudflareBrowser-gu7gma0Y.mjs";
|
|
6
|
-
import { a as BrowserSession_d_exports } from "./BrowserSession-
|
|
6
|
+
import { a as BrowserSession_d_exports } from "./BrowserSession-Cojp7nth.mjs";
|
|
7
7
|
import { t as BrowserUse_d_exports } from "./BrowserUse.mjs";
|
|
8
8
|
import { t as CloudflareAiGateway_d_exports } from "./CloudflareAiGateway.mjs";
|
|
9
9
|
import { t as CloudflareCodeMode_d_exports } from "./CloudflareCodeMode.mjs";
|
|
@@ -11,6 +11,6 @@ import { t as CloudflareMemory_d_exports } from "./CloudflareMemory.mjs";
|
|
|
11
11
|
import { t as CloudflareScheduling_d_exports } from "./CloudflareScheduling.mjs";
|
|
12
12
|
import { t as CloudflareSubscriptions_d_exports } from "./CloudflareSubscriptions.mjs";
|
|
13
13
|
import { m as CloudflareThreadClient_d_exports } from "./CloudflareThreadClient-HO_3rkM7.mjs";
|
|
14
|
-
import { f as ThreadObject_d_exports } from "./ThreadObject-
|
|
14
|
+
import { f as ThreadObject_d_exports } from "./ThreadObject-CxNlhoPL.mjs";
|
|
15
15
|
import { t as WakeScheduler_d_exports } from "./WakeScheduler.mjs";
|
|
16
16
|
export { Alarm_d_exports as Alarm, BrowserCredentials_d_exports as BrowserCredentials, BrowserSession_d_exports as BrowserSession, BrowserUse_d_exports as BrowserUse, CloudflareAiGateway_d_exports as CloudflareAiGateway, CloudflareBindings_d_exports as CloudflareBindings, CloudflareBrowser_d_exports as CloudflareBrowser, CloudflareCodeMode_d_exports as CloudflareCodeMode, CloudflareConfig_d_exports as CloudflareConfig, CloudflareMemory_d_exports as CloudflareMemory, CloudflareScheduling_d_exports as CloudflareScheduling, CloudflareSubscriptions_d_exports as CloudflareSubscriptions, CloudflareThreadClient_d_exports as CloudflareThreadClient, ThreadObject_d_exports as ThreadObject, WakeScheduler_d_exports as WakeScheduler };
|
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as CloudflareBindings_exports } from "./CloudflareBindings.mjs";
|
|
2
2
|
import { t as CloudflareConfig_exports } from "./CloudflareConfig.mjs";
|
|
3
|
-
import { t as Alarm_exports } from "./Alarm-
|
|
3
|
+
import { t as Alarm_exports } from "./Alarm-B44efvB1.mjs";
|
|
4
4
|
import { t as CloudflareBrowser_exports } from "./CloudflareBrowser-Vt8qTdYW.mjs";
|
|
5
5
|
import { t as CloudflareCodeMode_exports } from "./CloudflareCodeMode.mjs";
|
|
6
6
|
import { t as CloudflareMemory_exports } from "./CloudflareMemory.mjs";
|
|
7
|
-
import { s as CloudflareThreadClient_exports } from "./CloudflareThreadClient-
|
|
7
|
+
import { s as CloudflareThreadClient_exports } from "./CloudflareThreadClient-Ai3MTs3X.mjs";
|
|
8
8
|
import { t as CloudflareScheduling_exports } from "./CloudflareScheduling.mjs";
|
|
9
9
|
import { t as CloudflareSubscriptions_exports } from "./CloudflareSubscriptions.mjs";
|
|
10
10
|
import { t as WakeScheduler_exports } from "./WakeScheduler.mjs";
|
|
11
|
-
import { l as ThreadObject_exports } from "./ThreadObject-
|
|
11
|
+
import { l as ThreadObject_exports } from "./ThreadObject-DGvlHWYi.mjs";
|
|
12
12
|
import { t as CloudflareAiGateway_exports } from "./CloudflareAiGateway.mjs";
|
|
13
13
|
import { t as BrowserCredentials_exports } from "./BrowserCredentials.mjs";
|
|
14
|
-
import { i as BrowserSession_exports } from "./BrowserSession-
|
|
15
|
-
import { t as BrowserUse_exports } from "./BrowserUse
|
|
14
|
+
import { i as BrowserSession_exports } from "./BrowserSession-aovMjfL4.mjs";
|
|
15
|
+
import { t as BrowserUse_exports } from "./BrowserUse.mjs";
|
|
16
16
|
export { Alarm_exports as Alarm, BrowserCredentials_exports as BrowserCredentials, BrowserSession_exports as BrowserSession, BrowserUse_exports as BrowserUse, CloudflareAiGateway_exports as CloudflareAiGateway, CloudflareBindings_exports as CloudflareBindings, CloudflareBrowser_exports as CloudflareBrowser, CloudflareCodeMode_exports as CloudflareCodeMode, CloudflareConfig_exports as CloudflareConfig, CloudflareMemory_exports as CloudflareMemory, CloudflareScheduling_exports as CloudflareScheduling, CloudflareSubscriptions_exports as CloudflareSubscriptions, CloudflareThreadClient_exports as CloudflareThreadClient, ThreadObject_exports as ThreadObject, WakeScheduler_exports as WakeScheduler };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as CloudflareThreadClient } from "./CloudflareThreadClient-
|
|
1
|
+
import { o as CloudflareThreadClient } from "./CloudflareThreadClient-Ai3MTs3X.mjs";
|
|
2
2
|
import "@yielded/agent/durable-agent-runtime";
|
|
3
3
|
import "@yielded/agent/identifiers";
|
|
4
4
|
import { Effect, Layer } from "effect";
|
|
@@ -70,4 +70,4 @@ const cloudflareScheduledInputAdmissionLayer = Layer.effect(ScheduledInputAdmiss
|
|
|
70
70
|
//#endregion
|
|
71
71
|
export { cloudflareScheduledInputAdmissionLayer as n, cloudflarePreparedInputAdmissionLayer as t };
|
|
72
72
|
|
|
73
|
-
//# sourceMappingURL=prepared-admission-
|
|
73
|
+
//# sourceMappingURL=prepared-admission-DYdffQ8K.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepared-admission-
|
|
1
|
+
{"version":3,"file":"prepared-admission-DYdffQ8K.mjs","names":[],"sources":["../src/internal/prepared-admission.ts"],"sourcesContent":["import { type DurableSubmitAgent } from \"@yielded/agent/durable-agent-runtime\";\nimport { type AgentId } from \"@yielded/agent/identifiers\";\nimport { PreparedInputAdmission } from \"@yielded/agent/prepared-input-admission\";\nimport { PersistedJson } from \"@yielded/agent/records\";\nimport {\n type ScheduledEnvelope,\n ScheduledInputAdmission,\n ScheduledInputRetryable,\n ScheduledInputRefused,\n ScheduleStorageError,\n} from \"@yielded/agent/schedule\";\nimport { type PreparedInput } from \"@yielded/agent/subscription\";\nimport { Effect, Layer } from \"effect\";\n\nimport { CloudflareThreadClient, type ThreadClientError } from \"../CloudflareThreadClient.ts\";\n\nconst passthroughAgent = (agentId: AgentId): DurableSubmitAgent<typeof PersistedJson> => ({\n definition: { id: agentId, input: PersistedJson },\n});\n\n/** Ordinary prepared admission through one freshly addressed Thread Object call. */\nexport const cloudflarePreparedInputAdmissionLayer: Layer.Layer<\n PreparedInputAdmission,\n never,\n CloudflareThreadClient\n> = Layer.effect(\n PreparedInputAdmission,\n Effect.gen(function* () {\n const client = yield* CloudflareThreadClient;\n\n return PreparedInputAdmission.of({\n submissionStatus: (receipt) =>\n client\n .submissionStatus(receipt)\n .pipe(Effect.mapError(() => ScheduledInputRetryable.make({ reason: \"storage\" }))),\n submit: (envelope) =>\n client\n .submit(passthroughAgent(envelope.agentId), envelope.input, {\n threadId: envelope.threadId,\n principal: envelope.deliveryPrincipal,\n idempotencyKey: envelope.admissionKey,\n ...(envelope.admissionGroup === undefined\n ? {}\n : { admissionGroup: envelope.admissionGroup }),\n ...(envelope.admissionFence === undefined\n ? {}\n : { admissionFence: envelope.admissionFence }),\n ...(envelope.workerAdmission === undefined\n ? {}\n : { workerAdmission: envelope.workerAdmission }),\n ...(envelope.messageAdmission === undefined\n ? {}\n : { messageAdmission: envelope.messageAdmission }),\n definitions: envelope.definitions,\n })\n .pipe(\n Effect.catchTags({\n AdmissionConflict: () =>\n ScheduleStorageError.make({ operation: \"prepared admission\", reason: \"corrupt\" }),\n AdmissionLimitExceeded: () => ScheduledInputRetryable.make({ reason: \"capacity\" }),\n ThreadClientError: (error: ThreadClientError) =>\n ScheduledInputRetryable.make({\n reason: error.overloaded === true ? \"capacity\" : \"transport\",\n }),\n HostProtocolError: () => ScheduledInputRetryable.make({ reason: \"ambiguous\" }),\n AdmissionPolicyError: (error) =>\n error.reason === \"refused\"\n ? ScheduledInputRefused.make({ code: error.code })\n : ScheduledInputRetryable.make({\n reason: error.reason === \"occupied\" ? \"capacity\" : \"storage\",\n }),\n LedgerError: () => ScheduledInputRetryable.make({ reason: \"storage\" }),\n ThreadStoreError: () => ScheduledInputRetryable.make({ reason: \"storage\" }),\n DurableAlarmError: () => ScheduledInputRetryable.make({ reason: \"storage\" }),\n AgentInputError: () =>\n ScheduleStorageError.make({ operation: \"prepared admission\", reason: \"corrupt\" }),\n DigestError: () =>\n ScheduleStorageError.make({ operation: \"prepared admission\", reason: \"corrupt\" }),\n ThreadNotMaterialized: () => ScheduledInputRetryable.make({ reason: \"storage\" }),\n AppendConflict: () => ScheduledInputRetryable.make({ reason: \"ambiguous\" }),\n OwnershipLost: () => ScheduledInputRetryable.make({ reason: \"ambiguous\" }),\n DurableRuntimeFailpointError: () =>\n ScheduledInputRetryable.make({ reason: \"ambiguous\" }),\n }),\n ),\n });\n }),\n);\n\nconst preparedFromSchedule = (envelope: ScheduledEnvelope): PreparedInput => ({\n schemaVersion: 1,\n threadId: envelope.threadId,\n deliveryPrincipal: envelope.deliveryPrincipal,\n ...(envelope.admissionGroup === undefined ? {} : { admissionGroup: envelope.admissionGroup }),\n ...(envelope.admissionFence === undefined ? {} : { admissionFence: envelope.admissionFence }),\n agentId: envelope.agentId,\n definitions: envelope.definitions,\n input: envelope.input,\n inputDigest: envelope.inputDigest,\n admissionKey: envelope.admissionKey,\n authorization: envelope.authorization,\n});\n\n/** Compatibility adapter retaining Scheduling's public admission port. */\nexport const cloudflareScheduledInputAdmissionLayer: Layer.Layer<\n ScheduledInputAdmission,\n never,\n PreparedInputAdmission\n> = Layer.effect(\n ScheduledInputAdmission,\n Effect.map(PreparedInputAdmission, (admission) =>\n ScheduledInputAdmission.of({\n submit: (envelope) => admission.submit(preparedFromSchedule(envelope)),\n }),\n ),\n);\n"],"mappings":";;;;;;;;;AAgBA,MAAM,oBAAoB,aAAgE,EACxF,YAAY;CAAE,IAAI;CAAS,OAAO;AAAc,EAClD;;AAGA,MAAa,wCAIT,MAAM,OACR,wBACA,OAAO,IAAI,aAAa;CACtB,MAAM,SAAS,OAAO;CAEtB,OAAO,uBAAuB,GAAG;EAC/B,mBAAmB,YACjB,OACG,iBAAiB,OAAO,CAAC,CACzB,KAAK,OAAO,eAAe,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC,CAAC,CAAC;EACpF,SAAS,aACP,OACG,OAAO,iBAAiB,SAAS,OAAO,GAAG,SAAS,OAAO;GAC1D,UAAU,SAAS;GACnB,WAAW,SAAS;GACpB,gBAAgB,SAAS;GACzB,GAAI,SAAS,mBAAmB,KAAA,IAC5B,CAAC,IACD,EAAE,gBAAgB,SAAS,eAAe;GAC9C,GAAI,SAAS,mBAAmB,KAAA,IAC5B,CAAC,IACD,EAAE,gBAAgB,SAAS,eAAe;GAC9C,GAAI,SAAS,oBAAoB,KAAA,IAC7B,CAAC,IACD,EAAE,iBAAiB,SAAS,gBAAgB;GAChD,GAAI,SAAS,qBAAqB,KAAA,IAC9B,CAAC,IACD,EAAE,kBAAkB,SAAS,iBAAiB;GAClD,aAAa,SAAS;EACxB,CAAC,CAAC,CACD,KACC,OAAO,UAAU;GACf,yBACE,qBAAqB,KAAK;IAAE,WAAW;IAAsB,QAAQ;GAAU,CAAC;GAClF,8BAA8B,wBAAwB,KAAK,EAAE,QAAQ,WAAW,CAAC;GACjF,oBAAoB,UAClB,wBAAwB,KAAK,EAC3B,QAAQ,MAAM,eAAe,OAAO,aAAa,YACnD,CAAC;GACH,yBAAyB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;GAC7E,uBAAuB,UACrB,MAAM,WAAW,YACb,sBAAsB,KAAK,EAAE,MAAM,MAAM,KAAK,CAAC,IAC/C,wBAAwB,KAAK,EAC3B,QAAQ,MAAM,WAAW,aAAa,aAAa,UACrD,CAAC;GACP,mBAAmB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;GACrE,wBAAwB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;GAC1E,yBAAyB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;GAC3E,uBACE,qBAAqB,KAAK;IAAE,WAAW;IAAsB,QAAQ;GAAU,CAAC;GAClF,mBACE,qBAAqB,KAAK;IAAE,WAAW;IAAsB,QAAQ;GAAU,CAAC;GAClF,6BAA6B,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;GAC/E,sBAAsB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;GAC1E,qBAAqB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;GACzE,oCACE,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;EACxD,CAAC,CACH;CACN,CAAC;AACH,CAAC,CACH;AAEA,MAAM,wBAAwB,cAAgD;CAC5E,eAAe;CACf,UAAU,SAAS;CACnB,mBAAmB,SAAS;CAC5B,GAAI,SAAS,mBAAmB,KAAA,IAAY,CAAC,IAAI,EAAE,gBAAgB,SAAS,eAAe;CAC3F,GAAI,SAAS,mBAAmB,KAAA,IAAY,CAAC,IAAI,EAAE,gBAAgB,SAAS,eAAe;CAC3F,SAAS,SAAS;CAClB,aAAa,SAAS;CACtB,OAAO,SAAS;CAChB,aAAa,SAAS;CACtB,cAAc,SAAS;CACvB,eAAe,SAAS;AAC1B;;AAGA,MAAa,yCAIT,MAAM,OACR,yBACA,OAAO,IAAI,yBAAyB,cAClC,wBAAwB,GAAG,EACzB,SAAS,aAAa,UAAU,OAAO,qBAAqB,QAAQ,CAAC,EACvE,CAAC,CACH,CACF"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@yielded/agent-platform-cloudflare","version":"0.1.0-beta.
|
|
1
|
+
{"name":"@yielded/agent-platform-cloudflare","version":"0.1.0-beta.175","dependencies":{"@effect/platform-browser":"4.0.3","@effect/sql-sqlite-do":"4.0.3","@yielded/agent":"0.1.0-beta.175","@yielded/agent-storage-cloudflare":"0.1.0-beta.175","@yielded/agent-storage-sql":"0.1.0-beta.175","puppeteer-core":"24.29.0"},"devDependencies":{"@cloudflare/vitest-plugin":"1.4.0","@cloudflare/workers-types":"5.20260926.1","@effect/platform-node":"4.0.3","@effect/sql-d1":"4.0.3","@effect/vitest":"4.0.3","@yielded/agent-testing":"0.1.0-beta.175","effect":"4.0.3","effect-cf":"0.56.2","esbuild":"0.28.1","miniflare":"5.20260811.1-alpha","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","effect-cf":"^0.56.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./alarm":{"types":"./dist/Alarm.d.mts","default":"./dist/Alarm.mjs"},"./browser-rest-capture":{"types":"./dist/BrowserRestCapture.d.mts","default":"./dist/BrowserRestCapture.mjs"},"./browser-rest-crawl":{"types":"./dist/BrowserRestCrawl.d.mts","default":"./dist/BrowserRestCrawl.mjs"},"./cloudflare-bindings":{"types":"./dist/CloudflareBindings.d.mts","default":"./dist/CloudflareBindings.mjs"},"./cloudflare-browser":{"types":"./dist/CloudflareBrowser.d.mts","default":"./dist/CloudflareBrowser.mjs"},"./cloudflare-code-mode":{"types":"./dist/CloudflareCodeMode.d.mts","default":"./dist/CloudflareCodeMode.mjs"},"./cloudflare-config":{"types":"./dist/CloudflareConfig.d.mts","default":"./dist/CloudflareConfig.mjs"},"./cloudflare-memory":{"types":"./dist/CloudflareMemory.d.mts","default":"./dist/CloudflareMemory.mjs"},"./cloudflare-scheduling":{"types":"./dist/CloudflareScheduling.d.mts","default":"./dist/CloudflareScheduling.mjs"},"./cloudflare-subscriptions":{"types":"./dist/CloudflareSubscriptions.d.mts","default":"./dist/CloudflareSubscriptions.mjs"},"./cloudflare-thread-client":{"types":"./dist/CloudflareThreadClient.d.mts","default":"./dist/CloudflareThreadClient.mjs"},"./interactive-browser":{"types":"./dist/InteractiveBrowser.d.mts","default":"./dist/InteractiveBrowser.mjs"},"./browser-session":{"types":"./dist/BrowserSession.d.mts","default":"./dist/BrowserSession.mjs"},"./browser-credentials":{"types":"./dist/BrowserCredentials.d.mts","default":"./dist/BrowserCredentials.mjs"},"./thread-object":{"types":"./dist/ThreadObject.d.mts","default":"./dist/ThreadObject.mjs"},"./wake-scheduler":{"types":"./dist/WakeScheduler.d.mts","default":"./dist/WakeScheduler.mjs"},"./cloudflare-ai-gateway":{"types":"./dist/CloudflareAiGateway.d.mts","default":"./dist/CloudflareAiGateway.mjs"},"./browser-use":{"types":"./dist/BrowserUse.d.mts","default":"./dist/BrowserUse.mjs"}},"description":"Cloudflare Layer assembly for Effect Agent: Durable Objects and Browser Run adapters.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/yielded-dev/agent.git","directory":"packages/platform-cloudflare"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json"}}
|