@effect-agent/platform-cloudflare 0.1.0-beta.44 → 0.1.0-beta.46
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 +119 -0
- package/dist/Alarm.mjs +317 -0
- package/dist/Alarm.mjs.map +1 -0
- package/dist/{browser-rest-capture.d.mts → BrowserRestCapture.d.mts} +5 -4
- package/dist/{browser-rest-capture.mjs → BrowserRestCapture.mjs} +5 -4
- package/dist/BrowserRestCapture.mjs.map +1 -0
- package/dist/{browser-rest-crawl.d.mts → BrowserRestCrawl.d.mts} +4 -3
- package/dist/{browser-rest-crawl.mjs → BrowserRestCrawl.mjs} +4 -3
- package/dist/BrowserRestCrawl.mjs.map +1 -0
- package/dist/{bindings-BrVEOkfe.d.mts → CloudflareBindings.d.mts} +7 -5
- package/dist/CloudflareBindings.mjs +98 -0
- package/dist/CloudflareBindings.mjs.map +1 -0
- package/dist/{browser-quick-action.mjs → CloudflareBrowser-1jeZx3_g.mjs} +19 -4
- package/dist/CloudflareBrowser-1jeZx3_g.mjs.map +1 -0
- package/dist/{browser-quick-action.d.mts → CloudflareBrowser-DJq53niJ.d.mts} +9 -18
- package/dist/CloudflareBrowser.d.mts +2 -0
- package/dist/CloudflareBrowser.mjs +2 -0
- package/dist/CloudflareCodeMode.d.mts +44 -0
- package/dist/CloudflareCodeMode.mjs +618 -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 +140 -0
- package/dist/CloudflareMemory.mjs +168 -0
- package/dist/CloudflareMemory.mjs.map +1 -0
- package/dist/{scheduling.d.mts → CloudflareScheduling.d.mts} +9 -6
- package/dist/{scheduling.mjs → CloudflareScheduling.mjs} +22 -8
- package/dist/CloudflareScheduling.mjs.map +1 -0
- package/dist/{subscriptions.d.mts → CloudflareSubscriptions.d.mts} +11 -6
- package/dist/{subscriptions.mjs → CloudflareSubscriptions.mjs} +26 -7
- package/dist/CloudflareSubscriptions.mjs.map +1 -0
- package/dist/CloudflareThreadClient.d.mts +715 -0
- package/dist/CloudflareThreadClient.mjs +364 -0
- package/dist/CloudflareThreadClient.mjs.map +1 -0
- package/dist/{interactive-browser.d.mts → InteractiveBrowser.d.mts} +5 -4
- package/dist/{interactive-browser.mjs → InteractiveBrowser.mjs} +6 -4
- package/dist/InteractiveBrowser.mjs.map +1 -0
- package/dist/{protected-browser.d.mts → ProtectedBrowser.d.mts} +4 -3
- package/dist/{protected-browser.mjs → ProtectedBrowser.mjs} +4 -3
- package/dist/ProtectedBrowser.mjs.map +1 -0
- package/dist/ThreadObject-Ia94R_B1.d.mts +735 -0
- package/dist/ThreadObject-IrGuIO4a.mjs +575 -0
- package/dist/ThreadObject-IrGuIO4a.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-ZGgb3pnK.mjs → browser-session-lifecycle-CUbVfEgP.mjs} +2 -2
- package/dist/browser-session-lifecycle-CUbVfEgP.mjs.map +1 -0
- package/dist/{browser-session-lifecycle-DqntvG-Y.d.mts → browser-session-lifecycle-DJpqLXy_.d.mts} +2 -2
- package/dist/index.d.mts +12 -1833
- package/dist/index.mjs +12 -1357
- package/dist/prepared-admission-DRBhl2Sp.mjs +63 -0
- package/dist/prepared-admission-DRBhl2Sp.mjs.map +1 -0
- package/package.json +1 -1
- package/src/{alarm.ts → Alarm.ts} +265 -272
- package/src/{browser-rest-capture.ts → BrowserRestCapture.ts} +3 -3
- package/src/{browser-rest-crawl.ts → BrowserRestCrawl.ts} +2 -2
- package/src/{bindings.ts → CloudflareBindings.ts} +2 -2
- package/src/CloudflareBrowser.ts +15 -0
- package/src/{code-mode-executor.ts → CloudflareCodeMode.ts} +3 -3
- package/src/{config.ts → CloudflareConfig.ts} +3 -2
- package/src/{memory.ts → CloudflareMemory.ts} +15 -12
- package/src/{scheduling.ts → CloudflareScheduling.ts} +12 -11
- package/src/{subscriptions.ts → CloudflareSubscriptions.ts} +14 -12
- package/src/{client.ts → CloudflareThreadClient.ts} +27 -20
- package/src/{interactive-browser.ts → InteractiveBrowser.ts} +9 -5
- package/src/{thread-object.ts → ThreadObject.ts} +37 -29
- package/src/{wake-scheduler.ts → WakeScheduler.ts} +5 -5
- package/src/index.ts +11 -30
- package/src/{browser-quick-action.ts → internal/browser-quick-action.ts} +10 -8
- package/src/{layers.ts → internal/layers.ts} +42 -33
- package/src/{prepared-admission.ts → internal/prepared-admission.ts} +7 -7
- package/src/{transport.ts → internal/transport.ts} +5 -2
- package/src/protected-browser/binding.ts +3 -2
- package/src/protected-browser/native.ts +2 -2
- package/src/protected-browser/policy.ts +2 -2
- package/dist/browser-quick-action.mjs.map +0 -1
- package/dist/browser-rest-capture.mjs.map +0 -1
- package/dist/browser-rest-crawl.mjs.map +0 -1
- package/dist/browser-session-lifecycle-ZGgb3pnK.mjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/interactive-browser.mjs.map +0 -1
- package/dist/prepared-admission-BKp_Upw2.mjs +0 -890
- package/dist/prepared-admission-BKp_Upw2.mjs.map +0 -1
- package/dist/protected-browser.mjs.map +0 -1
- package/dist/scheduling.mjs.map +0 -1
- package/dist/subscriptions.mjs.map +0 -1
- /package/src/{protected-browser.ts → ProtectedBrowser.ts} +0 -0
- /package/src/{boundary.ts → internal/boundary.ts} +0 -0
- /package/src/{browser-session-lifecycle.ts → internal/browser-session-lifecycle.ts} +0 -0
- /package/src/{progress-wait.ts → internal/progress-wait.ts} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CloudflareThreadClient } from "./CloudflareThreadClient.mjs";
|
|
2
|
+
import "@effect-agent/thread/DurableAgentRuntime";
|
|
3
|
+
import { Effect, Layer } from "effect";
|
|
4
|
+
import "@effect-agent/core/Identifiers";
|
|
5
|
+
import { PersistedJson } from "@effect-agent/thread/Records";
|
|
6
|
+
import { ScheduleStorageError, ScheduledInputAdmission, ScheduledInputRetryable } from "@effect-agent/thread/Schedule";
|
|
7
|
+
import { PreparedInputAdmission } from "@effect-agent/thread/PreparedInputAdmission";
|
|
8
|
+
import "@effect-agent/thread/Subscription";
|
|
9
|
+
//#region src/internal/prepared-admission.ts
|
|
10
|
+
const passthroughAgent = (agentId) => ({ definition: {
|
|
11
|
+
id: agentId,
|
|
12
|
+
input: PersistedJson
|
|
13
|
+
} });
|
|
14
|
+
/** Ordinary prepared admission through one freshly addressed Thread Object call. */
|
|
15
|
+
const cloudflarePreparedInputAdmissionLayer = Layer.effect(PreparedInputAdmission, Effect.gen(function* () {
|
|
16
|
+
const client = yield* CloudflareThreadClient;
|
|
17
|
+
return PreparedInputAdmission.of({ submit: (envelope) => client.submit(passthroughAgent(envelope.agentId), envelope.input, {
|
|
18
|
+
threadId: envelope.threadId,
|
|
19
|
+
principal: envelope.deliveryPrincipal,
|
|
20
|
+
idempotencyKey: envelope.admissionKey,
|
|
21
|
+
definitions: envelope.definitions
|
|
22
|
+
}).pipe(Effect.catchTags({
|
|
23
|
+
AdmissionConflict: () => ScheduleStorageError.make({
|
|
24
|
+
operation: "prepared admission",
|
|
25
|
+
reason: "corrupt"
|
|
26
|
+
}),
|
|
27
|
+
AdmissionLimitExceeded: () => ScheduledInputRetryable.make({ reason: "capacity" }),
|
|
28
|
+
ThreadClientError: (error) => ScheduledInputRetryable.make({ reason: error.overloaded === true ? "capacity" : "transport" }),
|
|
29
|
+
HostProtocolError: () => ScheduledInputRetryable.make({ reason: "ambiguous" }),
|
|
30
|
+
LedgerError: () => ScheduledInputRetryable.make({ reason: "storage" }),
|
|
31
|
+
ThreadStoreError: () => ScheduledInputRetryable.make({ reason: "storage" }),
|
|
32
|
+
DurableAlarmError: () => ScheduledInputRetryable.make({ reason: "storage" }),
|
|
33
|
+
AgentInputError: () => ScheduleStorageError.make({
|
|
34
|
+
operation: "prepared admission",
|
|
35
|
+
reason: "corrupt"
|
|
36
|
+
}),
|
|
37
|
+
DigestError: () => ScheduleStorageError.make({
|
|
38
|
+
operation: "prepared admission",
|
|
39
|
+
reason: "corrupt"
|
|
40
|
+
}),
|
|
41
|
+
ThreadNotMaterialized: () => ScheduledInputRetryable.make({ reason: "storage" }),
|
|
42
|
+
AppendConflict: () => ScheduledInputRetryable.make({ reason: "ambiguous" }),
|
|
43
|
+
FenceRejected: () => ScheduledInputRetryable.make({ reason: "ambiguous" }),
|
|
44
|
+
DurableRuntimeFailpointError: () => ScheduledInputRetryable.make({ reason: "ambiguous" })
|
|
45
|
+
})) });
|
|
46
|
+
}));
|
|
47
|
+
const preparedFromSchedule = (envelope) => ({
|
|
48
|
+
schemaVersion: 1,
|
|
49
|
+
threadId: envelope.threadId,
|
|
50
|
+
deliveryPrincipal: envelope.deliveryPrincipal,
|
|
51
|
+
agentId: envelope.agentId,
|
|
52
|
+
definitions: envelope.definitions,
|
|
53
|
+
input: envelope.input,
|
|
54
|
+
inputDigest: envelope.inputDigest,
|
|
55
|
+
admissionKey: envelope.admissionKey,
|
|
56
|
+
authorization: envelope.authorization
|
|
57
|
+
});
|
|
58
|
+
/** Compatibility adapter retaining Scheduling's public admission port. */
|
|
59
|
+
const cloudflareScheduledInputAdmissionLayer = Layer.effect(ScheduledInputAdmission, Effect.map(PreparedInputAdmission, (admission) => ScheduledInputAdmission.of({ submit: (envelope) => admission.submit(preparedFromSchedule(envelope)) })));
|
|
60
|
+
//#endregion
|
|
61
|
+
export { cloudflareScheduledInputAdmissionLayer as n, cloudflarePreparedInputAdmissionLayer as t };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=prepared-admission-DRBhl2Sp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-admission-DRBhl2Sp.mjs","names":[],"sources":["../src/internal/prepared-admission.ts"],"sourcesContent":["import { type AgentId } from \"@effect-agent/core/Identifiers\";\nimport { type DurableSubmitAgent } from \"@effect-agent/thread/DurableAgentRuntime\";\nimport { PreparedInputAdmission } from \"@effect-agent/thread/PreparedInputAdmission\";\nimport { PersistedJson } from \"@effect-agent/thread/Records\";\nimport {\n type ScheduledEnvelope,\n ScheduledInputAdmission,\n ScheduledInputRetryable,\n ScheduleStorageError,\n} from \"@effect-agent/thread/Schedule\";\nimport { type PreparedInput } from \"@effect-agent/thread/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 submit: (envelope) =>\n client\n .submit(passthroughAgent(envelope.agentId), envelope.input, {\n threadId: envelope.threadId,\n principal: envelope.deliveryPrincipal,\n idempotencyKey: envelope.admissionKey,\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 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 FenceRejected: () => 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 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":";;;;;;;;;AAeA,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,SAAS,aACP,OACG,OAAO,iBAAiB,SAAS,OAAO,GAAG,SAAS,OAAO;EAC1D,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,gBAAgB,SAAS;EACzB,aAAa,SAAS;CACxB,CAAC,CAAC,CACD,KACC,OAAO,UAAU;EACf,yBACE,qBAAqB,KAAK;GAAE,WAAW;GAAsB,QAAQ;EAAU,CAAC;EAClF,8BAA8B,wBAAwB,KAAK,EAAE,QAAQ,WAAW,CAAC;EACjF,oBAAoB,UAClB,wBAAwB,KAAK,EAC3B,QAAQ,MAAM,eAAe,OAAO,aAAa,YACnD,CAAC;EACH,yBAAyB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;EAC7E,mBAAmB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EACrE,wBAAwB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EAC1E,yBAAyB,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EAC3E,uBACE,qBAAqB,KAAK;GAAE,WAAW;GAAsB,QAAQ;EAAU,CAAC;EAClF,mBACE,qBAAqB,KAAK;GAAE,WAAW;GAAsB,QAAQ;EAAU,CAAC;EAClF,6BAA6B,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EAC/E,sBAAsB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;EAC1E,qBAAqB,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;EACzE,oCACE,wBAAwB,KAAK,EAAE,QAAQ,YAAY,CAAC;CACxD,CAAC,CACH,EACN,CAAC;AACH,CAAC,CACH;AAEA,MAAM,wBAAwB,cAAgD;CAC5E,eAAe;CACf,UAAU,SAAS;CACnB,mBAAmB,SAAS;CAC5B,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":"@effect-agent/platform-cloudflare","version":"0.1.0-beta.
|
|
1
|
+
{"name":"@effect-agent/platform-cloudflare","version":"0.1.0-beta.46","dependencies":{"@effect-agent/core":"0.1.0-beta.46","@effect-agent/engine":"0.1.0-beta.46","@effect-agent/sandbox":"0.1.0-beta.46","@effect-agent/storage-cloudflare":"0.1.0-beta.46","@effect-agent/thread":"0.1.0-beta.46","@effect/platform-browser":"4.0.0-rc.112","@effect/sql-sqlite-do":"4.0.0-rc.112"},"devDependencies":{"@cloudflare/puppeteer":"1.1.0","@cloudflare/vitest-pool-workers":"0.21.3","@cloudflare/workers-types":"5.20260825.1","@effect-agent/capabilities":"0.1.0-beta.46","@effect-agent/testing":"0.1.0-beta.46","@effect/platform-node":"4.0.0-rc.112","@effect/sql-d1":"4.0.0-rc.112","@effect/vitest":"4.0.0-rc.112","effect":"4.0.0-rc.112","effect-cf":"0.40.0","esbuild":"0.28.1","miniflare":"5.20260811.1-alpha","typescript":"7.0.2","vite-plus":"0.3.0","vitest":"4.1.11"},"peerDependencies":{"@cloudflare/puppeteer":"^1.1.0","effect":"^4.0.0-rc.112","effect-cf":"^0.40.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./Alarm":{"types":"./dist/Alarm.d.mts","default":"./dist/Alarm.mjs"},"./BrowserRestCapture":{"types":"./dist/BrowserRestCapture.d.mts","default":"./dist/BrowserRestCapture.mjs"},"./BrowserRestCrawl":{"types":"./dist/BrowserRestCrawl.d.mts","default":"./dist/BrowserRestCrawl.mjs"},"./CloudflareBindings":{"types":"./dist/CloudflareBindings.d.mts","default":"./dist/CloudflareBindings.mjs"},"./CloudflareBrowser":{"types":"./dist/CloudflareBrowser.d.mts","default":"./dist/CloudflareBrowser.mjs"},"./CloudflareCodeMode":{"types":"./dist/CloudflareCodeMode.d.mts","default":"./dist/CloudflareCodeMode.mjs"},"./CloudflareConfig":{"types":"./dist/CloudflareConfig.d.mts","default":"./dist/CloudflareConfig.mjs"},"./CloudflareMemory":{"types":"./dist/CloudflareMemory.d.mts","default":"./dist/CloudflareMemory.mjs"},"./CloudflareScheduling":{"types":"./dist/CloudflareScheduling.d.mts","default":"./dist/CloudflareScheduling.mjs"},"./CloudflareSubscriptions":{"types":"./dist/CloudflareSubscriptions.d.mts","default":"./dist/CloudflareSubscriptions.mjs"},"./CloudflareThreadClient":{"types":"./dist/CloudflareThreadClient.d.mts","default":"./dist/CloudflareThreadClient.mjs"},"./InteractiveBrowser":{"types":"./dist/InteractiveBrowser.d.mts","default":"./dist/InteractiveBrowser.mjs"},"./ProtectedBrowser":{"types":"./dist/ProtectedBrowser.d.mts","default":"./dist/ProtectedBrowser.mjs"},"./ThreadObject":{"types":"./dist/ThreadObject.d.mts","default":"./dist/ThreadObject.mjs"},"./WakeScheduler":{"types":"./dist/WakeScheduler.d.mts","default":"./dist/WakeScheduler.mjs"}},"description":"Cloudflare Layer assembly for Effect Agent: Durable Objects and Browser Run adapters.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/danieljvdm/effect-agent.git","directory":"packages/platform-cloudflare"},"files":["dist","src"],"type":"module","publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json"},"peerDependenciesMeta":{"@cloudflare/puppeteer":{"optional":true}}}
|