@effect-agent/platform-cloudflare 0.1.0-beta.84 → 0.1.0-beta.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/Alarm.mjs +1 -1
  2. package/dist/Alarm.mjs.map +1 -1
  3. package/dist/BrowserRestCrawl.mjs +1 -1
  4. package/dist/BrowserRestCrawl.mjs.map +1 -1
  5. package/dist/CloudflareMemory.mjs +5 -5
  6. package/dist/CloudflareMemory.mjs.map +1 -1
  7. package/dist/CloudflareScheduling.mjs +2 -2
  8. package/dist/CloudflareScheduling.mjs.map +1 -1
  9. package/dist/CloudflareSubscriptions.mjs +12 -6
  10. package/dist/CloudflareSubscriptions.mjs.map +1 -1
  11. package/dist/CloudflareThreadClient.d.mts +216 -6
  12. package/dist/CloudflareThreadClient.mjs +2 -2
  13. package/dist/CloudflareThreadClient.mjs.map +1 -1
  14. package/dist/InteractiveBrowser.mjs +15 -15
  15. package/dist/InteractiveBrowser.mjs.map +1 -1
  16. package/dist/ProtectedBrowser.mjs +12 -12
  17. package/dist/ProtectedBrowser.mjs.map +1 -1
  18. package/dist/{ThreadObject-BS1gRV0V.d.mts → ThreadObject-DZMkwIBh.d.mts} +8 -12
  19. package/dist/{ThreadObject-mmWMMWdY.mjs → ThreadObject-gyx8Qq03.mjs} +5 -3
  20. package/dist/ThreadObject-gyx8Qq03.mjs.map +1 -0
  21. package/dist/ThreadObject.d.mts +1 -1
  22. package/dist/ThreadObject.mjs +1 -1
  23. package/dist/{browser-session-lifecycle-CUbVfEgP.mjs → browser-session-lifecycle-CmbQABHC.mjs} +5 -5
  24. package/dist/browser-session-lifecycle-CmbQABHC.mjs.map +1 -0
  25. package/dist/index.d.mts +1 -1
  26. package/dist/index.mjs +1 -1
  27. package/package.json +1 -1
  28. package/src/Alarm.ts +6 -6
  29. package/src/BrowserRestCrawl.ts +1 -1
  30. package/src/CloudflareMemory.ts +7 -7
  31. package/src/CloudflareScheduling.ts +2 -2
  32. package/src/CloudflareSubscriptions.ts +18 -18
  33. package/src/CloudflareThreadClient.ts +2 -2
  34. package/src/InteractiveBrowser.ts +19 -22
  35. package/src/internal/browser-session-lifecycle.ts +8 -8
  36. package/src/internal/message-delivery.ts +5 -6
  37. package/src/protected-browser/binding.ts +1 -1
  38. package/src/protected-browser/policy.ts +29 -31
  39. package/dist/ThreadObject-mmWMMWdY.mjs.map +0 -1
  40. package/dist/browser-session-lifecycle-CUbVfEgP.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-session-lifecycle-CUbVfEgP.mjs","names":[],"sources":["../src/internal/browser-session-lifecycle.ts"],"sourcesContent":["import { Context, Effect, Layer, Option, Redacted, Schema, Stream } from \"effect\";\nimport { FetchHttpClient, HttpClient, HttpClientRequest } from \"effect/unstable/http\";\n\nexport class BrowserRunCleanupError extends Schema.TaggedError<BrowserRunCleanupError>()(\n \"BrowserRunCleanupError\",\n {\n reason: Schema.Literals([\n \"configuration\",\n \"authorization\",\n \"rate-limited\",\n \"provider\",\n \"malformed\",\n \"timeout\",\n \"pending\",\n ]),\n status: Schema.optionalKey(Schema.Int),\n },\n) {}\n\nexport interface BrowserRunLifecycleOptions {\n readonly accountId: string;\n readonly apiToken: Redacted.Redacted<string>;\n}\n\nconst Identity = Schema.String.check(Schema.isUUID());\nconst Account = Schema.String.check(Schema.isPattern(/^[a-f0-9]{32}$/));\nconst Closed = Schema.Struct({ status: Schema.Literals([\"closing\", \"closed\"]) });\nconst Metadata = Schema.Struct({ sessionId: Identity, endTime: Schema.optionalKey(Schema.Finite) });\n// This exact provider response is accepted only on a fixed-origin, authenticated,\n// exact-session request. An arbitrary 404 or a listing omission is never absence.\nconst Absent = Schema.Struct({ error: Schema.Literal(\"Session not found\") });\n\nexport class BrowserRunSessionLifecycle extends Context.Service<\n BrowserRunSessionLifecycle,\n {\n readonly close: (\n sessionId: Redacted.Redacted<string>,\n ) => Effect.Effect<void, BrowserRunCleanupError>;\n }\n>()(\"@effect-agent/platform-cloudflare/BrowserRunSessionLifecycle\") {\n static layer(options: BrowserRunLifecycleOptions) {\n return Layer.effect(\n this,\n Effect.gen(function* () {\n if (\n !Schema.is(Account)(options.accountId) ||\n Redacted.value(options.apiToken).length === 0\n ) {\n return yield* new BrowserRunCleanupError({ reason: \"configuration\" });\n }\n const client = yield* HttpClient.HttpClient;\n\n const request = Effect.fn(\"BrowserRunSessionLifecycle.request\")(function* (\n method: \"GET\" | \"DELETE\",\n sessionId: string,\n ) {\n const path = method === \"DELETE\" ? \"browser\" : \"session\";\n\n const response = yield* client\n .execute(\n HttpClientRequest.make(method)(\n `https://api.cloudflare.com/client/v4/accounts/${options.accountId}/browser-rendering/devtools/${path}/${sessionId}`,\n ).pipe(HttpClientRequest.bearerToken(options.apiToken)),\n )\n .pipe(\n // workerd supports manual/follow, not error. Reject every redirect below.\n Effect.provideService(FetchHttpClient.RequestInit, { redirect: \"manual\" }),\n Effect.mapError(() => new BrowserRunCleanupError({ reason: \"provider\" })),\n );\n\n if (response.status === 401 || response.status === 403)\n return yield* new BrowserRunCleanupError({\n reason: \"authorization\",\n status: response.status,\n });\n if (response.status === 429)\n return yield* new BrowserRunCleanupError({\n reason: \"rate-limited\",\n status: response.status,\n });\n if (response.status !== 200 && response.status !== 404)\n return yield* new BrowserRunCleanupError({\n reason: \"provider\",\n status: response.status,\n });\n if (response.headers[\"content-type\"]?.split(\";\", 1)[0]?.trim() !== \"application/json\")\n return yield* new BrowserRunCleanupError({ reason: \"malformed\" });\n\n const bytes = yield* Stream.runFoldEffect(\n response.stream,\n () => new Uint8Array(),\n (body, chunk) => {\n if (body.byteLength + chunk.byteLength > 16_384)\n return Effect.fail(new BrowserRunCleanupError({ reason: \"malformed\" }));\n const combined = new Uint8Array(body.byteLength + chunk.byteLength);\n\n combined.set(body);\n combined.set(chunk, body.byteLength);\n\n return Effect.succeed(combined);\n },\n ).pipe(Effect.mapError(() => new BrowserRunCleanupError({ reason: \"malformed\" })));\n\n const body = yield* Effect.try({\n try: () => new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: false }).decode(bytes),\n catch: () => new BrowserRunCleanupError({ reason: \"malformed\" }),\n });\n\n if (response.status === 404) {\n const absent = Schema.decodeUnknownOption(Schema.fromJsonString(Absent))(body, {\n onExcessProperty: \"error\",\n });\n\n if (Option.isSome(absent)) return true;\n\n return yield* new BrowserRunCleanupError({ reason: \"malformed\" });\n }\n if (method === \"DELETE\") {\n const result = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Closed))(\n body,\n ).pipe(Effect.mapError(() => new BrowserRunCleanupError({ reason: \"malformed\" })));\n\n return result.status === \"closed\";\n }\n\n const result = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Metadata))(\n body,\n ).pipe(Effect.mapError(() => new BrowserRunCleanupError({ reason: \"malformed\" })));\n\n if (result.sessionId !== sessionId)\n return yield* new BrowserRunCleanupError({ reason: \"malformed\" });\n\n return result.endTime !== undefined && result.endTime > 0;\n });\n\n const close = Effect.fn(\"BrowserRunSessionLifecycle.close\")(\n function* (sessionId: Redacted.Redacted<string>) {\n const id = yield* Schema.decodeUnknownEffect(Identity)(Redacted.value(sessionId)).pipe(\n Effect.mapError(() => new BrowserRunCleanupError({ reason: \"configuration\" })),\n );\n\n if (yield* request(\"DELETE\", id)) return;\n for (let read = 0; read < 2; read++) {\n if (yield* request(\"GET\", id)) return;\n }\n\n return yield* new BrowserRunCleanupError({ reason: \"pending\" });\n },\n Effect.timeoutOrElse({\n duration: \"10 seconds\",\n orElse: () => Effect.fail(new BrowserRunCleanupError({ reason: \"timeout\" })),\n }),\n Effect.withTracerEnabled(false),\n );\n\n return { close };\n }),\n );\n }\n}\n"],"mappings":"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"}