@effect-agent/platform-cloudflare 0.1.0-beta.66 → 0.1.0-beta.67

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.
@@ -340,13 +340,13 @@ declare const encodeUnknownResolutionCommand: (input: UnknownResolutionCommand,
340
340
  readonly author: string;
341
341
  readonly reason: string;
342
342
  readonly resolution: {
343
+ readonly _tag: "SafeToRetry";
344
+ } | {
343
345
  readonly _tag: "CompletedWithResult";
344
346
  readonly result: Schema.Json;
345
347
  readonly isFailure: boolean;
346
348
  } | {
347
349
  readonly _tag: "NeverHappened";
348
- } | {
349
- readonly _tag: "SafeToRetry";
350
350
  } | {
351
351
  readonly _tag: "AbortSubmission";
352
352
  };
@@ -1095,13 +1095,13 @@ declare const encodeHostResponse: (input: AbortRecorded | ApprovalRecorded | Hos
1095
1095
  readonly author: string;
1096
1096
  readonly reason: string;
1097
1097
  readonly resolution: {
1098
+ readonly _tag: "SafeToRetry";
1099
+ } | {
1098
1100
  readonly _tag: "CompletedWithResult";
1099
1101
  readonly result: Schema.Json;
1100
1102
  readonly isFailure: boolean;
1101
1103
  } | {
1102
1104
  readonly _tag: "NeverHappened";
1103
- } | {
1104
- readonly _tag: "SafeToRetry";
1105
1105
  } | {
1106
1106
  readonly _tag: "AbortSubmission";
1107
1107
  };
@@ -1118,6 +1118,13 @@ declare const encodeHostResponse: (input: AbortRecorded | ApprovalRecorded | Hos
1118
1118
  } | {
1119
1119
  readonly _tag: "HostProtocolError";
1120
1120
  readonly message: string;
1121
+ } | {
1122
+ readonly _tag: "AgentInputError";
1123
+ readonly message: string;
1124
+ } | {
1125
+ readonly _tag: "DigestError";
1126
+ readonly message: string;
1127
+ readonly cause?: Schema.Json | undefined;
1121
1128
  } | {
1122
1129
  readonly _tag: "AdmissionConflict";
1123
1130
  readonly threadId: string;
@@ -1133,6 +1140,15 @@ declare const encodeHostResponse: (input: AbortRecorded | ApprovalRecorded | Hos
1133
1140
  readonly _tag: "SettlementConflict";
1134
1141
  readonly submissionId: string;
1135
1142
  readonly existingOutcome: "aborted" | "completed" | "failed";
1143
+ } | {
1144
+ readonly _tag: "ApprovalConflict";
1145
+ readonly submissionId: string;
1146
+ readonly toolCallId: string;
1147
+ readonly existingDecision: "approved" | "denied";
1148
+ } | {
1149
+ readonly _tag: "UnknownResolutionConflict";
1150
+ readonly submissionId: string;
1151
+ readonly toolCallId: string;
1136
1152
  } | {
1137
1153
  readonly _tag: "JoinedToHost";
1138
1154
  readonly submissionId: string;
@@ -1162,22 +1178,6 @@ declare const encodeHostResponse: (input: AbortRecorded | ApprovalRecorded | Hos
1162
1178
  readonly threadId: string;
1163
1179
  readonly actualEpoch: number;
1164
1180
  readonly attemptedEpoch: number;
1165
- } | {
1166
- readonly _tag: "AgentInputError";
1167
- readonly message: string;
1168
- } | {
1169
- readonly _tag: "DigestError";
1170
- readonly message: string;
1171
- readonly cause?: Schema.Json | undefined;
1172
- } | {
1173
- readonly _tag: "ApprovalConflict";
1174
- readonly submissionId: string;
1175
- readonly toolCallId: string;
1176
- readonly existingDecision: "approved" | "denied";
1177
- } | {
1178
- readonly _tag: "UnknownResolutionConflict";
1179
- readonly submissionId: string;
1180
- readonly toolCallId: string;
1181
1181
  } | {
1182
1182
  readonly _tag: "DurableRuntimeFailpointError";
1183
1183
  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" | "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";
@@ -322,13 +322,13 @@ declare const encodeAdminResponse: (input: AdminFailed | ExplainedRecovery | Obl
322
322
  readonly author: string;
323
323
  readonly reason: string;
324
324
  readonly resolution: {
325
+ readonly _tag: "SafeToRetry";
326
+ } | {
325
327
  readonly _tag: "CompletedWithResult";
326
328
  readonly result: Schema.Json;
327
329
  readonly isFailure: boolean;
328
330
  } | {
329
331
  readonly _tag: "NeverHappened";
330
- } | {
331
- readonly _tag: "SafeToRetry";
332
332
  } | {
333
333
  readonly _tag: "AbortSubmission";
334
334
  };
@@ -668,47 +668,18 @@ declare const encodeAdminResponse: (input: AdminFailed | ExplainedRecovery | Obl
668
668
  } | {
669
669
  readonly _tag: "AdminFailed";
670
670
  readonly failure: {
671
- readonly _tag: "DurableAlarmError";
672
- readonly operation: string;
673
- readonly message: string;
674
- readonly cause?: Schema.Json | undefined;
675
- } | {
676
671
  readonly _tag: "AdmissionPolicyError";
677
672
  readonly reason: "occupied" | "refused" | "unavailable";
678
673
  readonly code: string;
679
674
  } | {
680
- readonly _tag: "OperationDenied";
681
- readonly operation: "abort" | "awaitSettlement" | "explain" | "observe" | "resolveApproval" | "resolveUnknown" | "retry" | "scanObligations" | "verify" | "wake";
682
- readonly reason: string;
683
- readonly threadId?: string | undefined;
684
- readonly submissionId?: string | undefined;
685
- } | {
686
- readonly _tag: "RetryRefused";
675
+ readonly _tag: "SettlementConflict";
687
676
  readonly submissionId: string;
688
- readonly refusal: "await-approval-decision" | "await-unknown-resolution" | "settled";
689
- readonly decisionTag: string;
690
- readonly message: string;
677
+ readonly existingOutcome: "aborted" | "completed" | "failed";
691
678
  } | {
692
679
  readonly _tag: "LedgerError";
693
680
  readonly operation: string;
694
681
  readonly message: string;
695
682
  readonly cause?: Schema.Json | undefined;
696
- } | {
697
- readonly _tag: "RunJournalError";
698
- readonly message: string;
699
- readonly cause?: Schema.Json | undefined;
700
- } | {
701
- readonly _tag: "DigestError";
702
- readonly message: string;
703
- readonly cause?: Schema.Json | undefined;
704
- } | {
705
- readonly _tag: "OwnershipLost";
706
- readonly submissionId: string;
707
- readonly actualEpoch: number;
708
- } | {
709
- readonly _tag: "SettlementConflict";
710
- readonly submissionId: string;
711
- readonly existingOutcome: "aborted" | "completed" | "failed";
712
683
  } | {
713
684
  readonly _tag: "ThreadStoreError";
714
685
  readonly operation: string;
@@ -729,6 +700,35 @@ declare const encodeAdminResponse: (input: AdminFailed | ExplainedRecovery | Obl
729
700
  readonly threadId: string;
730
701
  readonly actualEpoch: number;
731
702
  readonly attemptedEpoch: number;
703
+ } | {
704
+ readonly _tag: "DurableAlarmError";
705
+ readonly operation: string;
706
+ readonly message: string;
707
+ readonly cause?: Schema.Json | undefined;
708
+ } | {
709
+ readonly _tag: "OperationDenied";
710
+ readonly operation: "abort" | "awaitSettlement" | "explain" | "observe" | "resolveApproval" | "resolveUnknown" | "retry" | "scanObligations" | "verify" | "wake";
711
+ readonly reason: string;
712
+ readonly threadId?: string | undefined;
713
+ readonly submissionId?: string | undefined;
714
+ } | {
715
+ readonly _tag: "RetryRefused";
716
+ readonly submissionId: string;
717
+ readonly refusal: "await-approval-decision" | "await-unknown-resolution" | "settled";
718
+ readonly decisionTag: string;
719
+ readonly message: string;
720
+ } | {
721
+ readonly _tag: "RunJournalError";
722
+ readonly message: string;
723
+ readonly cause?: Schema.Json | undefined;
724
+ } | {
725
+ readonly _tag: "DigestError";
726
+ readonly message: string;
727
+ readonly cause?: Schema.Json | undefined;
728
+ } | {
729
+ readonly _tag: "OwnershipLost";
730
+ readonly submissionId: string;
731
+ readonly actualEpoch: number;
732
732
  } | {
733
733
  readonly _tag: "DurableRuntimeFailpointError";
734
734
  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" | "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";
@@ -773,4 +773,4 @@ interface Class<EventServices = never> {
773
773
  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>;
774
774
  //#endregion
775
775
  export { CloudflareDurableRuntimeOptions as C, layerConfig as D, layer as E, CloudflareDurableRuntimeInitializationError as S, ThreadPublicationOptions as T, decodeObligationThresholds as _, AdminVerifyRequest as a, make as b, Instance as c, RetryExecuted as d, ThreadObject_d_exports as f, decodeAdminVerifyRequest as g, decodeAdminResponse as h, AdminResponse as i, ObligationsScanned as l, decodeAdminExplainRequest as m, AdminFailed as n, Class as o, VerifiedIntegrity as p, AdminFailure as r, ExplainedRecovery as s, AdminExplainRequest as t, Options as u, decodeRetryCommand as v, CloudflareDurableRuntimeServices as w, CloudflareBootstrapServices as x, encodeAdminResponse as y };
776
- //# sourceMappingURL=ThreadObject-AWDa4mgQ.d.mts.map
776
+ //# sourceMappingURL=ThreadObject-DwoxhMdm.d.mts.map
@@ -1,2 +1,2 @@
1
- import { C as CloudflareDurableRuntimeOptions, D as layerConfig, E as layer, S as CloudflareDurableRuntimeInitializationError, T as ThreadPublicationOptions, _ as decodeObligationThresholds, a as AdminVerifyRequest, b as make, c as Instance, d as RetryExecuted, g as decodeAdminVerifyRequest, h as decodeAdminResponse, i as AdminResponse, l as ObligationsScanned, m as decodeAdminExplainRequest, n as AdminFailed, o as Class, p as VerifiedIntegrity, r as AdminFailure, s as ExplainedRecovery, t as AdminExplainRequest, u as Options, v as decodeRetryCommand, w as CloudflareDurableRuntimeServices, x as CloudflareBootstrapServices, y as encodeAdminResponse } from "./ThreadObject-AWDa4mgQ.mjs";
1
+ import { C as CloudflareDurableRuntimeOptions, D as layerConfig, E as layer, S as CloudflareDurableRuntimeInitializationError, T as ThreadPublicationOptions, _ as decodeObligationThresholds, a as AdminVerifyRequest, b as make, c as Instance, d as RetryExecuted, g as decodeAdminVerifyRequest, h as decodeAdminResponse, i as AdminResponse, l as ObligationsScanned, m as decodeAdminExplainRequest, n as AdminFailed, o as Class, p as VerifiedIntegrity, r as AdminFailure, s as ExplainedRecovery, t as AdminExplainRequest, u as Options, v as decodeRetryCommand, w as CloudflareDurableRuntimeServices, x as CloudflareBootstrapServices, y as encodeAdminResponse } from "./ThreadObject-DwoxhMdm.mjs";
2
2
  export { AdminExplainRequest, AdminFailed, AdminFailure, AdminResponse, AdminVerifyRequest, type CloudflareBootstrapServices as BootstrapServices, Class, ExplainedRecovery, type CloudflareDurableRuntimeInitializationError as InitializationError, Instance, ObligationsScanned, Options, type ThreadPublicationOptions as PublicationOptions, RetryExecuted, type CloudflareDurableRuntimeOptions as RuntimeOptions, type CloudflareDurableRuntimeServices as Services, VerifiedIntegrity, decodeAdminExplainRequest, decodeAdminResponse, decodeAdminVerifyRequest, decodeObligationThresholds, decodeRetryCommand, encodeAdminResponse, layer, layerConfig, make };
package/dist/index.d.mts CHANGED
@@ -7,6 +7,6 @@ import { t as CloudflareMemory_d_exports } from "./CloudflareMemory.mjs";
7
7
  import { t as CloudflareScheduling_d_exports } from "./CloudflareScheduling.mjs";
8
8
  import { t as CloudflareSubscriptions_d_exports } from "./CloudflareSubscriptions.mjs";
9
9
  import { t as CloudflareThreadClient_d_exports } from "./CloudflareThreadClient.mjs";
10
- import { f as ThreadObject_d_exports } from "./ThreadObject-AWDa4mgQ.mjs";
10
+ import { f as ThreadObject_d_exports } from "./ThreadObject-DwoxhMdm.mjs";
11
11
  import { t as WakeScheduler_d_exports } from "./WakeScheduler.mjs";
12
12
  export { Alarm_d_exports as Alarm, 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/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@effect-agent/platform-cloudflare","version":"0.1.0-beta.66","dependencies":{"@effect-agent/core":"0.1.0-beta.66","@effect-agent/engine":"0.1.0-beta.66","@effect-agent/sandbox":"0.1.0-beta.66","@effect-agent/storage-cloudflare":"0.1.0-beta.66","@effect-agent/thread":"0.1.0-beta.66","@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.66","@effect-agent/testing":"0.1.0-beta.66","@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","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json"},"peerDependenciesMeta":{"@cloudflare/puppeteer":{"optional":true}}}
1
+ {"name":"@effect-agent/platform-cloudflare","version":"0.1.0-beta.67","dependencies":{"@effect-agent/core":"0.1.0-beta.67","@effect-agent/engine":"0.1.0-beta.67","@effect-agent/sandbox":"0.1.0-beta.67","@effect-agent/storage-cloudflare":"0.1.0-beta.67","@effect-agent/thread":"0.1.0-beta.67","@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.67","@effect-agent/testing":"0.1.0-beta.67","@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","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json"},"peerDependenciesMeta":{"@cloudflare/puppeteer":{"optional":true}}}