wrangler 4.95.0 → 4.96.0

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.
@@ -832,6 +832,59 @@
832
832
  "markdownDescription": "Specifies AI Search instance bindings that are bound to this Worker environment.\nEach binding is bound directly to a single pre-existing instance within the \"default\" namespace.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
833
833
  "default": []
834
834
  },
835
+ "agent_memory": {
836
+ "type": "array",
837
+ "items": {
838
+ "type": "object",
839
+ "properties": {
840
+ "binding": {
841
+ "type": "string",
842
+ "description": "The binding name used to refer to the Agent Memory namespace in the Worker.",
843
+ "markdownDescription": "The binding name used to refer to the Agent Memory namespace in the Worker."
844
+ },
845
+ "namespace": {
846
+ "type": "string",
847
+ "description": "The user-chosen namespace name. Must exist in Cloudflare at deploy time.",
848
+ "markdownDescription": "The user-chosen namespace name. Must exist in Cloudflare at deploy time."
849
+ },
850
+ "remote": {
851
+ "type": "boolean",
852
+ "description": "Whether the Agent Memory binding should be remote in local development",
853
+ "markdownDescription": "Whether the Agent Memory binding should be remote in local development"
854
+ }
855
+ },
856
+ "required": [
857
+ "binding",
858
+ "namespace"
859
+ ],
860
+ "additionalProperties": false
861
+ },
862
+ "description": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
863
+ "markdownDescription": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
864
+ "default": []
865
+ },
866
+ "web_search": {
867
+ "type": "object",
868
+ "properties": {
869
+ "binding": {
870
+ "type": "string",
871
+ "description": "The binding name used to refer to Web Search in the Worker.",
872
+ "markdownDescription": "The binding name used to refer to Web Search in the Worker."
873
+ },
874
+ "remote": {
875
+ "type": "boolean",
876
+ "description": "Whether the Web Search binding should be remote or not in local development",
877
+ "markdownDescription": "Whether the Web Search binding should be remote or not in local development"
878
+ }
879
+ },
880
+ "required": [
881
+ "binding"
882
+ ],
883
+ "additionalProperties": false,
884
+ "description": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the binding is zero-config -- only the variable name is required, declared as a single object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
885
+ "markdownDescription": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the\nbinding is zero-config -- only the variable name is required, declared as a\nsingle object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
886
+ "default": {}
887
+ },
835
888
  "hyperdrive": {
836
889
  "type": "array",
837
890
  "items": {
@@ -1260,10 +1313,16 @@
1260
1313
  "description": "The binding name used to refer to the bound service.",
1261
1314
  "markdownDescription": "The binding name used to refer to the bound service."
1262
1315
  },
1316
+ "stream": {
1317
+ "type": "string",
1318
+ "description": "Id of the Stream to bind",
1319
+ "markdownDescription": "Id of the Stream to bind"
1320
+ },
1263
1321
  "pipeline": {
1264
1322
  "type": "string",
1265
- "description": "Name of the Pipeline to bind",
1266
- "markdownDescription": "Name of the Pipeline to bind"
1323
+ "description": "Id of the Stream to bind",
1324
+ "markdownDescription": "Id of the Stream to bind",
1325
+ "deprecated": "Use `stream` instead."
1267
1326
  },
1268
1327
  "remote": {
1269
1328
  "type": "boolean",
@@ -1272,8 +1331,7 @@
1272
1331
  }
1273
1332
  },
1274
1333
  "required": [
1275
- "binding",
1276
- "pipeline"
1334
+ "binding"
1277
1335
  ],
1278
1336
  "additionalProperties": false
1279
1337
  },
@@ -2481,6 +2539,59 @@
2481
2539
  "markdownDescription": "Specifies AI Search instance bindings that are bound to this Worker environment.\nEach binding is bound directly to a single pre-existing instance within the \"default\" namespace.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
2482
2540
  "default": []
2483
2541
  },
2542
+ "agent_memory": {
2543
+ "type": "array",
2544
+ "items": {
2545
+ "type": "object",
2546
+ "properties": {
2547
+ "binding": {
2548
+ "type": "string",
2549
+ "description": "The binding name used to refer to the Agent Memory namespace in the Worker.",
2550
+ "markdownDescription": "The binding name used to refer to the Agent Memory namespace in the Worker."
2551
+ },
2552
+ "namespace": {
2553
+ "type": "string",
2554
+ "description": "The user-chosen namespace name. Must exist in Cloudflare at deploy time.",
2555
+ "markdownDescription": "The user-chosen namespace name. Must exist in Cloudflare at deploy time."
2556
+ },
2557
+ "remote": {
2558
+ "type": "boolean",
2559
+ "description": "Whether the Agent Memory binding should be remote in local development",
2560
+ "markdownDescription": "Whether the Agent Memory binding should be remote in local development"
2561
+ }
2562
+ },
2563
+ "required": [
2564
+ "binding",
2565
+ "namespace"
2566
+ ],
2567
+ "additionalProperties": false
2568
+ },
2569
+ "description": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
2570
+ "markdownDescription": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
2571
+ "default": []
2572
+ },
2573
+ "web_search": {
2574
+ "type": "object",
2575
+ "properties": {
2576
+ "binding": {
2577
+ "type": "string",
2578
+ "description": "The binding name used to refer to Web Search in the Worker.",
2579
+ "markdownDescription": "The binding name used to refer to Web Search in the Worker."
2580
+ },
2581
+ "remote": {
2582
+ "type": "boolean",
2583
+ "description": "Whether the Web Search binding should be remote or not in local development",
2584
+ "markdownDescription": "Whether the Web Search binding should be remote or not in local development"
2585
+ }
2586
+ },
2587
+ "required": [
2588
+ "binding"
2589
+ ],
2590
+ "additionalProperties": false,
2591
+ "description": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the binding is zero-config -- only the variable name is required, declared as a single object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
2592
+ "markdownDescription": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the\nbinding is zero-config -- only the variable name is required, declared as a\nsingle object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
2593
+ "default": {}
2594
+ },
2484
2595
  "hyperdrive": {
2485
2596
  "type": "array",
2486
2597
  "items": {
@@ -2909,10 +3020,16 @@
2909
3020
  "description": "The binding name used to refer to the bound service.",
2910
3021
  "markdownDescription": "The binding name used to refer to the bound service."
2911
3022
  },
3023
+ "stream": {
3024
+ "type": "string",
3025
+ "description": "Id of the Stream to bind",
3026
+ "markdownDescription": "Id of the Stream to bind"
3027
+ },
2912
3028
  "pipeline": {
2913
3029
  "type": "string",
2914
- "description": "Name of the Pipeline to bind",
2915
- "markdownDescription": "Name of the Pipeline to bind"
3030
+ "description": "Id of the Stream to bind",
3031
+ "markdownDescription": "Id of the Stream to bind",
3032
+ "deprecated": "Use `stream` instead."
2916
3033
  },
2917
3034
  "remote": {
2918
3035
  "type": "boolean",
@@ -2921,8 +3038,7 @@
2921
3038
  }
2922
3039
  },
2923
3040
  "required": [
2924
- "binding",
2925
- "pipeline"
3041
+ "binding"
2926
3042
  ],
2927
3043
  "additionalProperties": false
2928
3044
  },
@@ -3559,16 +3675,16 @@
3559
3675
  "additionalProperties": false,
3560
3676
  "properties": {
3561
3677
  "logpush": {
3562
- "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-477942004818536"
3678
+ "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-491392004818536"
3563
3679
  },
3564
3680
  "observability": {
3565
- "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-477942004818536"
3681
+ "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-491392004818536"
3566
3682
  },
3567
3683
  "limits": {
3568
- "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-477942004818536"
3684
+ "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-491392004818536"
3569
3685
  },
3570
3686
  "cache": {
3571
- "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-477942004818536"
3687
+ "$ref": "#/definitions/interface-769040647-8080-17950-769040647-0-491392004818536"
3572
3688
  },
3573
3689
  "define": {
3574
3690
  "type": "object",
@@ -4031,6 +4147,59 @@
4031
4147
  "markdownDescription": "Specifies AI Search instance bindings that are bound to this Worker environment.\nEach binding is bound directly to a single pre-existing instance within the \"default\" namespace.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
4032
4148
  "default": []
4033
4149
  },
4150
+ "agent_memory": {
4151
+ "type": "array",
4152
+ "items": {
4153
+ "type": "object",
4154
+ "properties": {
4155
+ "binding": {
4156
+ "type": "string",
4157
+ "description": "The binding name used to refer to the Agent Memory namespace in the Worker.",
4158
+ "markdownDescription": "The binding name used to refer to the Agent Memory namespace in the Worker."
4159
+ },
4160
+ "namespace": {
4161
+ "type": "string",
4162
+ "description": "The user-chosen namespace name. Must exist in Cloudflare at deploy time.",
4163
+ "markdownDescription": "The user-chosen namespace name. Must exist in Cloudflare at deploy time."
4164
+ },
4165
+ "remote": {
4166
+ "type": "boolean",
4167
+ "description": "Whether the Agent Memory binding should be remote in local development",
4168
+ "markdownDescription": "Whether the Agent Memory binding should be remote in local development"
4169
+ }
4170
+ },
4171
+ "required": [
4172
+ "binding",
4173
+ "namespace"
4174
+ ],
4175
+ "additionalProperties": false
4176
+ },
4177
+ "description": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
4178
+ "markdownDescription": "Specifies Agent Memory namespace bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
4179
+ "default": []
4180
+ },
4181
+ "web_search": {
4182
+ "type": "object",
4183
+ "properties": {
4184
+ "binding": {
4185
+ "type": "string",
4186
+ "description": "The binding name used to refer to Web Search in the Worker.",
4187
+ "markdownDescription": "The binding name used to refer to Web Search in the Worker."
4188
+ },
4189
+ "remote": {
4190
+ "type": "boolean",
4191
+ "description": "Whether the Web Search binding should be remote or not in local development",
4192
+ "markdownDescription": "Whether the Web Search binding should be remote or not in local development"
4193
+ }
4194
+ },
4195
+ "required": [
4196
+ "binding"
4197
+ ],
4198
+ "additionalProperties": false,
4199
+ "description": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the binding is zero-config -- only the variable name is required, declared as a single object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
4200
+ "markdownDescription": "Cloudflare Web Search binding. There is exactly one shared web corpus, so the\nbinding is zero-config -- only the variable name is required, declared as a\nsingle object (not an array).\n\nNOTE: This field is not automatically inherited from the top level environment,\nand so must be specified in every named environment.",
4201
+ "default": {}
4202
+ },
4034
4203
  "hyperdrive": {
4035
4204
  "type": "array",
4036
4205
  "items": {
@@ -4459,10 +4628,16 @@
4459
4628
  "description": "The binding name used to refer to the bound service.",
4460
4629
  "markdownDescription": "The binding name used to refer to the bound service."
4461
4630
  },
4631
+ "stream": {
4632
+ "type": "string",
4633
+ "description": "Id of the Stream to bind",
4634
+ "markdownDescription": "Id of the Stream to bind"
4635
+ },
4462
4636
  "pipeline": {
4463
4637
  "type": "string",
4464
- "description": "Name of the Pipeline to bind",
4465
- "markdownDescription": "Name of the Pipeline to bind"
4638
+ "description": "Id of the Stream to bind",
4639
+ "markdownDescription": "Id of the Stream to bind",
4640
+ "deprecated": "Use `stream` instead."
4466
4641
  },
4467
4642
  "remote": {
4468
4643
  "type": "boolean",
@@ -4471,8 +4646,7 @@
4471
4646
  }
4472
4647
  },
4473
4648
  "required": [
4474
- "binding",
4475
- "pipeline"
4649
+ "binding"
4476
4650
  ],
4477
4651
  "additionalProperties": false
4478
4652
  },
@@ -4767,7 +4941,7 @@
4767
4941
  "description": "Configuration for Worker Previews.\n\nThis defines the settings used when creating Preview deployments. Previews are branches of your Worker's main instance used to test features during feature development outside of production.\n\nThe `previews` block contains any intentionally divergent configuration intended solely for Previews, including:\n- All non-inheritable properties (environment variables and bindings like KV, D1, R2, etc.)\n- Select inheritable properties: `logpush`, `observability`, `limits`, `cache`",
4768
4942
  "markdownDescription": "Configuration for Worker Previews.\n\nThis defines the settings used when creating Preview deployments.\nPreviews are branches of your Worker's main instance used to test features\nduring feature development outside of production.\n\nThe `previews` block contains any intentionally divergent configuration intended solely for Previews, including:\n- All non-inheritable properties (environment variables and bindings like KV, D1, R2, etc.)\n- Select inheritable properties: `logpush`, `observability`, `limits`, `cache`"
4769
4943
  },
4770
- "interface-769040647-8080-17950-769040647-0-477942004818536": {
4944
+ "interface-769040647-8080-17950-769040647-0-491392004818536": {
4771
4945
  "type": "object",
4772
4946
  "properties": {
4773
4947
  "name": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.95.0",
3
+ "version": "4.96.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "assembly",
@@ -53,18 +53,17 @@
53
53
  "blake3-wasm": "2.1.5",
54
54
  "esbuild": "0.27.3",
55
55
  "path-to-regexp": "6.3.0",
56
- "rosie-skills": "^0.6.3",
57
56
  "unenv": "2.0.0-rc.24",
58
- "workerd": "1.20260526.1",
57
+ "workerd": "1.20260529.1",
59
58
  "@cloudflare/kv-asset-handler": "0.5.0",
60
59
  "@cloudflare/unenv-preset": "2.16.1",
61
- "miniflare": "4.20260526.0"
60
+ "miniflare": "4.20260529.0"
62
61
  },
63
62
  "devDependencies": {
64
63
  "@aws-sdk/client-s3": "^3.721.0",
65
64
  "@bomb.sh/tab": "^0.0.12",
66
65
  "@cloudflare/types": "6.18.4",
67
- "@cloudflare/workers-types": "^4.20260526.1",
66
+ "@cloudflare/workers-types": "^4.20260529.1",
68
67
  "@cspotcode/source-map-support": "0.8.1",
69
68
  "@netlify/build-info": "^10.5.1",
70
69
  "@sentry/node": "^7.86.0",
@@ -126,6 +125,7 @@
126
125
  "qr": "^0.6.0",
127
126
  "recast": "0.23.11",
128
127
  "resolve": "^1.22.8",
128
+ "rosie-skills": "^0.8.1",
129
129
  "semiver": "^1.1.0",
130
130
  "shell-quote": "^1.8.1",
131
131
  "signal-exit": "^3.0.7",
@@ -139,25 +139,24 @@
139
139
  "tsup": "8.3.0",
140
140
  "typescript": "~5.8.3",
141
141
  "undici": "7.24.8",
142
- "update-check": "^1.5.4",
143
142
  "vitest": "4.1.0",
144
143
  "vitest-websocket-mock": "^0.4.0",
145
144
  "ws": "8.20.1",
146
145
  "xxhash-wasm": "^1.0.1",
147
146
  "yaml": "^2.8.1",
148
147
  "yargs": "^17.7.2",
149
- "@cloudflare/cli-shared-helpers": "0.1.4",
150
- "@cloudflare/codemod": "1.1.0",
148
+ "@cloudflare/cli-shared-helpers": "0.1.5",
151
149
  "@cloudflare/containers-shared": "0.15.1",
150
+ "@cloudflare/codemod": "1.1.0",
152
151
  "@cloudflare/deploy-helpers": "0.1.0",
153
- "@cloudflare/pages-shared": "^0.13.140",
152
+ "@cloudflare/pages-shared": "^0.13.141",
154
153
  "@cloudflare/workers-shared": "0.19.6",
155
154
  "@cloudflare/workers-tsconfig": "0.0.0",
156
- "@cloudflare/workers-utils": "0.21.1",
157
- "@cloudflare/workflows-shared": "0.11.0"
155
+ "@cloudflare/workers-utils": "0.22.0",
156
+ "@cloudflare/workflows-shared": "0.11.1"
158
157
  },
159
158
  "peerDependencies": {
160
- "@cloudflare/workers-types": "^4.20260526.1"
159
+ "@cloudflare/workers-types": "^4.20260529.1"
161
160
  },
162
161
  "peerDependenciesMeta": {
163
162
  "@cloudflare/workers-types": {
@@ -93,14 +93,12 @@ describe("isRoutingRuleMatch", () => {
93
93
  it("should throw an error if pathname or routing rule params are missing", () => {
94
94
  // MISSING PATHNAME
95
95
  expect(() =>
96
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
97
- // @ts-ignore: sanity check
96
+ // @ts-expect-error -- Intentionally testing invalid types
98
97
  isRoutingRuleMatch(undefined, "/*")
99
98
  ).toThrow("Pathname is undefined.");
100
99
 
101
100
  expect(() =>
102
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
103
- // @ts-ignore: sanity check
101
+ // @ts-expect-error -- Intentionally testing invalid types
104
102
  isRoutingRuleMatch(null, "/*")
105
103
  ).toThrow("Pathname is undefined.");
106
104
 
@@ -110,14 +108,12 @@ describe("isRoutingRuleMatch", () => {
110
108
 
111
109
  // MISSING ROUTING RULE
112
110
  expect(() =>
113
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
114
- // @ts-ignore: sanity check
111
+ // @ts-expect-error -- Intentionally testing invalid types
115
112
  isRoutingRuleMatch("/foo", undefined)
116
113
  ).toThrow("Routing rule is undefined.");
117
114
 
118
115
  expect(() =>
119
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
120
- // @ts-ignore: sanity check
116
+ // @ts-expect-error -- Intentionally testing invalid types
121
117
  isRoutingRuleMatch("/foo", null)
122
118
  ).toThrow("Routing rule is undefined.");
123
119
 
@@ -1,11 +1,9 @@
1
- // @ts-ignore entry point will get replaced
2
1
  import worker from "__ENTRY_POINT__";
3
2
  import { isRoutingRuleMatch } from "./pages-dev-util";
4
3
 
5
- // @ts-ignore entry point will get replaced
6
4
  export * from "__ENTRY_POINT__";
7
5
 
8
- // @ts-ignore routes are injected
6
+ // @ts-expect-error -- routes are injected
9
7
  const routes = __ROUTES__;
10
8
 
11
9
  export default <ExportedHandler<{ ASSETS: Fetcher }>>{
@@ -85,7 +85,6 @@ interface Unstable_DevOptions {
85
85
  forceLocal?: boolean;
86
86
  liveReload?: boolean;
87
87
  showInteractiveDevSession?: boolean;
88
- testMode?: boolean;
89
88
  testScheduled?: boolean;
90
89
  watch?: boolean;
91
90
  fileBasedRegistry?: boolean;
@@ -1805,6 +1804,40 @@ interface EnvironmentNonInheritable {
1805
1804
  /** Whether the AI Search instance binding should be remote in local development */
1806
1805
  remote?: boolean;
1807
1806
  }[];
1807
+ /**
1808
+ * Specifies Agent Memory namespace bindings that are bound to this Worker environment.
1809
+ *
1810
+ * NOTE: This field is not automatically inherited from the top level environment,
1811
+ * and so must be specified in every named environment.
1812
+ *
1813
+ * @default []
1814
+ * @nonInheritable
1815
+ */
1816
+ agent_memory: {
1817
+ /** The binding name used to refer to the Agent Memory namespace in the Worker. */
1818
+ binding: string;
1819
+ /** The user-chosen namespace name. Must exist in Cloudflare at deploy time. */
1820
+ namespace: string;
1821
+ /** Whether the Agent Memory binding should be remote in local development */
1822
+ remote?: boolean;
1823
+ }[];
1824
+ /**
1825
+ * Cloudflare Web Search binding. There is exactly one shared web corpus, so the
1826
+ * binding is zero-config -- only the variable name is required, declared as a
1827
+ * single object (not an array).
1828
+ *
1829
+ * NOTE: This field is not automatically inherited from the top level environment,
1830
+ * and so must be specified in every named environment.
1831
+ *
1832
+ * @default {}
1833
+ * @nonInheritable
1834
+ */
1835
+ web_search: {
1836
+ /** The binding name used to refer to Web Search in the Worker. */
1837
+ binding: string;
1838
+ /** Whether the Web Search binding should be remote or not in local development */
1839
+ remote?: boolean;
1840
+ } | undefined;
1808
1841
  /**
1809
1842
  * Specifies Hyperdrive configs that are bound to this Worker environment.
1810
1843
  *
@@ -2066,8 +2099,13 @@ interface EnvironmentNonInheritable {
2066
2099
  pipelines: {
2067
2100
  /** The binding name used to refer to the bound service. */
2068
2101
  binding: string;
2069
- /** Name of the Pipeline to bind */
2070
- pipeline: string;
2102
+ /** Id of the Stream to bind */
2103
+ stream?: string;
2104
+ /**
2105
+ * Id of the Stream to bind
2106
+ * @deprecated Use `stream` instead.
2107
+ */
2108
+ pipeline?: string;
2071
2109
  /** Whether the pipeline should be remote or not in local development */
2072
2110
  remote?: boolean;
2073
2111
  }[];
@@ -3079,6 +3117,8 @@ type Teams =
3079
3117
  | "Product: Queues"
3080
3118
  | "Product: AI"
3081
3119
  | "Product: AI Search"
3120
+ | "Product: Agent Memory"
3121
+ | "Product: Web Search"
3082
3122
  | "Product: Hyperdrive"
3083
3123
  | "Product: Pipelines"
3084
3124
  | "Product: Vectorize"