@lunora/bindings 1.0.0-alpha.90 → 1.0.0-alpha.92

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.
@@ -0,0 +1,741 @@
1
+ /**
2
+ * Structural types for Cloudflare AI Search (formerly AutoRAG) — the
3
+ * `ai_search_namespaces` binding `ctx.aiSearch` passes through unwrapped.
4
+ *
5
+ * Mirrored structurally, like every other `@lunora/bindings` subpath, rather than
6
+ * aliased from `@cloudflare/workers-types`: `AiSearchNamespace` only ships in
7
+ * workers-types 4.20260331.1+, and an alias resolved against an older (or
8
+ * absent) install would silently degrade to `any` under `skipLibCheck`. The
9
+ * mirror follows workers-types 5.20260929.1; a type test pins that the real
10
+ * binding still satisfies it, so drift fails CI instead of the consumer.
11
+ */
12
+ /** A single message in a conversation-style search or chat request. */
13
+ interface AiSearchMessage {
14
+ content: string | null;
15
+ role: "assistant" | "developer" | "system" | "tool" | "user";
16
+ }
17
+ /** A scalar a metadata filter compares against. */
18
+ type AiSearchFilterValue = boolean | number | string;
19
+ /**
20
+ * Vectorize metadata filter applied to the retrieval: per field, an implicit
21
+ * `$eq` value, or an operator object (`$eq`/`$ne`/`$lt`/`$lte`/`$gt`/`$gte`,
22
+ * `$in`/`$nin`).
23
+ */
24
+ interface AiSearchFilter {
25
+ [field: string]: AiSearchFilterValue | {
26
+ $eq?: AiSearchFilterValue | null;
27
+ $gt?: AiSearchFilterValue | null;
28
+ $gte?: AiSearchFilterValue | null;
29
+ $lt?: AiSearchFilterValue | null;
30
+ $lte?: AiSearchFilterValue | null;
31
+ $ne?: AiSearchFilterValue | null;
32
+ } | {
33
+ $in?: AiSearchFilterValue[];
34
+ $nin?: AiSearchFilterValue[];
35
+ } | null;
36
+ }
37
+ /** `ai_search_options` — retrieval, query rewrite, reranking and cache sub-options. */
38
+ interface AiSearchOptions {
39
+ [key: string]: unknown;
40
+ cache?: {
41
+ cache_threshold?: "anything_goes" | "close_enough" | "flexible_friend" | "super_strict_match";
42
+ enabled?: boolean;
43
+ };
44
+ query_rewrite?: {
45
+ [key: string]: unknown;
46
+ enabled?: boolean;
47
+ model?: string;
48
+ rewrite_prompt?: string;
49
+ };
50
+ reranking?: {
51
+ [key: string]: unknown;
52
+ enabled?: boolean;
53
+ match_threshold?: number;
54
+ model?: string;
55
+ };
56
+ retrieval?: {
57
+ [key: string]: unknown;
58
+ /** Boost results by metadata field values. Max 3 entries. */
59
+ boost_by?: {
60
+ direction?: "asc" | "desc" | "exists" | "not_exists";
61
+ field: string;
62
+ }[];
63
+ /** Number of surrounding chunks to include for context (0-3). Default 0. */
64
+ context_expansion?: number;
65
+ /** Vectorize metadata filters applied to the search. */
66
+ filters?: AiSearchFilter;
67
+ fusion_method?: "max" | "rrf";
68
+ keyword_match_mode?: "and" | "or";
69
+ /** Minimum similarity score (0-1) for a result to be included. Default 0.4. */
70
+ match_threshold?: number;
71
+ /** Maximum number of results to return (1-50). Default 10. */
72
+ max_num_results?: number;
73
+ metadata_only?: boolean;
74
+ retrieval_type?: "hybrid" | "keyword" | "vector";
75
+ /** If true (default), return empty results on retrieval failure instead of throwing. */
76
+ return_on_failure?: boolean;
77
+ };
78
+ }
79
+ /** Single-instance search: exactly one of `query` or `messages`. */
80
+ type AiSearchSearchRequest = {
81
+ ai_search_options?: AiSearchOptions;
82
+ messages: AiSearchMessage[];
83
+ query?: never;
84
+ } | {
85
+ ai_search_options?: AiSearchOptions;
86
+ messages?: never;
87
+ query: string;
88
+ };
89
+ interface AiSearchChatCompletionsRequest {
90
+ [key: string]: unknown;
91
+ ai_search_options?: AiSearchOptions;
92
+ messages: AiSearchMessage[];
93
+ model?: string;
94
+ stream?: boolean;
95
+ }
96
+ /** One retrieved chunk. */
97
+ interface AiSearchChunk {
98
+ id: string;
99
+ item: {
100
+ key: string;
101
+ metadata?: Record<string, unknown>;
102
+ timestamp?: number;
103
+ };
104
+ /** Match score (0-1). */
105
+ score: number;
106
+ scoring_details?: {
107
+ [key: string]: unknown;
108
+ fusion_method?: "max" | "rrf";
109
+ keyword_rank?: number;
110
+ keyword_score?: number;
111
+ reranking_score?: number;
112
+ vector_rank?: number;
113
+ vector_score?: number;
114
+ };
115
+ text: string;
116
+ type: string;
117
+ }
118
+ interface AiSearchSearchResponse {
119
+ chunks: AiSearchChunk[];
120
+ search_query: string;
121
+ }
122
+ interface AiSearchChatCompletionsResponse {
123
+ [key: string]: unknown;
124
+ choices: {
125
+ [key: string]: unknown;
126
+ index?: number;
127
+ message: {
128
+ [key: string]: unknown;
129
+ content: string | null;
130
+ role: "assistant" | "developer" | "system" | "tool" | "user";
131
+ };
132
+ }[];
133
+ chunks: AiSearchChunk[];
134
+ id?: string;
135
+ model?: string;
136
+ object?: string;
137
+ }
138
+ /** `ai_search_options` for a namespace-level (multi-instance) request — requires `instance_ids` (1-10). */
139
+ type AiSearchMultiSearchOptions = AiSearchOptions & {
140
+ instance_ids: string[];
141
+ };
142
+ type AiSearchMultiSearchRequest = {
143
+ ai_search_options: AiSearchMultiSearchOptions;
144
+ messages: AiSearchMessage[];
145
+ query?: never;
146
+ } | {
147
+ ai_search_options: AiSearchMultiSearchOptions;
148
+ messages?: never;
149
+ query: string;
150
+ };
151
+ /** A chunk tagged with the instance it came from. */
152
+ type AiSearchMultiSearchChunk = AiSearchChunk & {
153
+ instance_id: string;
154
+ };
155
+ /** A per-instance failure in a multi-instance call (the others still answer). */
156
+ interface AiSearchMultiSearchError {
157
+ instance_id: string;
158
+ message: string;
159
+ }
160
+ interface AiSearchMultiSearchResponse {
161
+ chunks: AiSearchMultiSearchChunk[];
162
+ errors?: AiSearchMultiSearchError[];
163
+ search_query: string;
164
+ }
165
+ type AiSearchMultiChatCompletionsRequest = Omit<AiSearchChatCompletionsRequest, "ai_search_options"> & {
166
+ ai_search_options: AiSearchMultiSearchOptions;
167
+ };
168
+ type AiSearchMultiChatCompletionsResponse = Omit<AiSearchChatCompletionsResponse, "chunks"> & {
169
+ chunks: AiSearchMultiSearchChunk[];
170
+ errors?: AiSearchMultiSearchError[];
171
+ };
172
+ /** Pagination envelope shared by the page-based list responses. */
173
+ interface AiSearchResultInfo {
174
+ count: number;
175
+ page: number;
176
+ per_page: number;
177
+ total_count: number;
178
+ }
179
+ /**
180
+ * Instance configuration (`create` / `update`). Only `id` is required; omit
181
+ * `type` and `source` for built-in storage. Open-ended like Cloudflare's own
182
+ * type, so the remaining knobs (models, chunking, caching, custom metadata) pass
183
+ * through without being re-listed here.
184
+ */
185
+ interface AiSearchConfig {
186
+ [key: string]: unknown;
187
+ /** Instance ID (1-32 chars, `^[a-z0-9_]+(?:-[a-z0-9_]+)*$`). */
188
+ id: string;
189
+ metadata?: Record<string, unknown>;
190
+ namespace?: string;
191
+ /** Source URL (required for the `web-crawler` type). */
192
+ source?: string;
193
+ type?: string;
194
+ }
195
+ /** Instance metadata (`info()`, `list()`, `update()`). */
196
+ interface AiSearchInstanceInfo {
197
+ [key: string]: unknown;
198
+ created_at?: string;
199
+ id: string;
200
+ metadata?: Record<string, unknown>;
201
+ modified_at?: string;
202
+ namespace?: string;
203
+ paused?: boolean;
204
+ source?: string;
205
+ status?: string;
206
+ type?: string;
207
+ }
208
+ interface AiSearchListInstancesParams {
209
+ order_by?: "created_at";
210
+ order_by_direction?: "asc" | "desc";
211
+ page?: number;
212
+ per_page?: number;
213
+ /** Search instances by ID. */
214
+ search?: string;
215
+ }
216
+ interface AiSearchListResponse {
217
+ result: AiSearchInstanceInfo[];
218
+ result_info?: AiSearchResultInfo;
219
+ }
220
+ interface AiSearchStatsResponse {
221
+ completed?: number;
222
+ engine?: {
223
+ r2?: {
224
+ metadataSizeBytes: number;
225
+ objectCount: number;
226
+ payloadSizeBytes: number;
227
+ };
228
+ vectorize?: {
229
+ dimensions: number;
230
+ vectorsCount: number;
231
+ };
232
+ };
233
+ error?: number;
234
+ last_activity?: string;
235
+ outdated?: number;
236
+ queued?: number;
237
+ running?: number;
238
+ skipped?: number;
239
+ }
240
+ /** One indexed item (a file in the instance's source). */
241
+ interface AiSearchItemInfo {
242
+ [key: string]: unknown;
243
+ chunks_count?: number | null;
244
+ created_at?: string;
245
+ error?: string;
246
+ id: string;
247
+ key: string;
248
+ metadata?: Record<string, unknown>;
249
+ status: "completed" | "error" | "outdated" | "queued" | "running" | "skipped";
250
+ }
251
+ interface AiSearchListItemsParams {
252
+ item_id?: string;
253
+ key?: string;
254
+ /** JSON-encoded Vectorize filter for metadata filtering. */
255
+ metadata_filter?: string;
256
+ page?: number;
257
+ per_page?: number;
258
+ search?: string;
259
+ sort_by?: "modified_at" | "status";
260
+ source?: string;
261
+ status?: "completed" | "error" | "outdated" | "queued" | "running" | "skipped";
262
+ }
263
+ interface AiSearchListItemsResponse {
264
+ result: AiSearchItemInfo[];
265
+ result_info?: AiSearchResultInfo;
266
+ }
267
+ interface AiSearchUploadItemOptions {
268
+ metadata?: Record<string, unknown>;
269
+ }
270
+ /** One item: `info`, `download`, `sync` (re-index), `logs`, `chunks`. */
271
+ interface AiSearchItem {
272
+ chunks: (params?: {
273
+ limit?: number;
274
+ offset?: number;
275
+ }) => Promise<{
276
+ result: {
277
+ end_byte: number;
278
+ id: string;
279
+ item?: {
280
+ key: string;
281
+ metadata?: Record<string, unknown>;
282
+ timestamp?: number;
283
+ };
284
+ start_byte: number;
285
+ text: string;
286
+ }[];
287
+ result_info: {
288
+ count: number;
289
+ limit: number;
290
+ offset: number;
291
+ total: number;
292
+ };
293
+ }>;
294
+ download: () => Promise<{
295
+ body: ReadableStream;
296
+ contentType: string;
297
+ filename: string;
298
+ size: number;
299
+ }>;
300
+ info: () => Promise<AiSearchItemInfo>;
301
+ logs: (params?: {
302
+ cursor?: string;
303
+ limit?: number;
304
+ }) => Promise<{
305
+ result: {
306
+ action: string;
307
+ chunkCount?: number;
308
+ errorType?: string;
309
+ fileKey?: string;
310
+ message: string;
311
+ processingTimeMs?: number;
312
+ timestamp: string;
313
+ }[];
314
+ result_info: {
315
+ count: number;
316
+ cursor: string | null;
317
+ per_page: number;
318
+ truncated: boolean;
319
+ };
320
+ }>;
321
+ sync: () => Promise<AiSearchItemInfo>;
322
+ }
323
+ /** An instance's items: `list`, `upload` (an upsert), `uploadAndPoll`, `get`, `delete`. */
324
+ interface AiSearchItems {
325
+ delete: (itemId: string) => Promise<void>;
326
+ get: (itemId: string) => AiSearchItem;
327
+ list: (params?: AiSearchListItemsParams) => Promise<AiSearchListItemsResponse>;
328
+ upload: (name: string, content: Blob | ReadableStream | string, options?: AiSearchUploadItemOptions) => Promise<AiSearchItemInfo>;
329
+ uploadAndPoll: (name: string, content: Blob | ReadableStream | string, options?: AiSearchUploadItemOptions & {
330
+ pollIntervalMs?: number;
331
+ timeoutMs?: number;
332
+ }) => Promise<AiSearchItemInfo>;
333
+ }
334
+ interface AiSearchJobInfo {
335
+ description?: string;
336
+ end_reason?: string;
337
+ ended_at?: string;
338
+ id: string;
339
+ last_seen_at?: string;
340
+ source: "schedule" | "user";
341
+ started_at?: string;
342
+ }
343
+ /** One indexing job: `info`, `logs`, `cancel`. */
344
+ interface AiSearchJob {
345
+ cancel: () => Promise<AiSearchJobInfo>;
346
+ info: () => Promise<AiSearchJobInfo>;
347
+ logs: (params?: {
348
+ page?: number;
349
+ per_page?: number;
350
+ }) => Promise<{
351
+ result: {
352
+ created_at: number;
353
+ id: number;
354
+ message: string;
355
+ message_type: number;
356
+ }[];
357
+ result_info?: AiSearchResultInfo;
358
+ }>;
359
+ }
360
+ /** An instance's indexing jobs: `list`, `create`, `get`. */
361
+ interface AiSearchJobs {
362
+ create: (params?: {
363
+ description?: string;
364
+ }) => Promise<AiSearchJobInfo>;
365
+ get: (jobId: string) => AiSearchJob;
366
+ list: (params?: {
367
+ page?: number;
368
+ per_page?: number;
369
+ }) => Promise<{
370
+ result: AiSearchJobInfo[];
371
+ result_info?: AiSearchResultInfo;
372
+ }>;
373
+ }
374
+ /**
375
+ * One AI Search instance — what `ctx.aiSearch.get(name)` returns: `search`,
376
+ * `chatCompletions` (streaming with `stream: true`), `update`, `info`, `stats`,
377
+ * plus the `items` and `jobs` collections.
378
+ */
379
+ interface AiSearchInstance {
380
+ chatCompletions: {
381
+ (params: AiSearchChatCompletionsRequest & {
382
+ stream: true;
383
+ }): Promise<ReadableStream>;
384
+ (params: AiSearchChatCompletionsRequest): Promise<AiSearchChatCompletionsResponse>;
385
+ };
386
+ info: () => Promise<AiSearchInstanceInfo>;
387
+ readonly items: AiSearchItems;
388
+ readonly jobs: AiSearchJobs;
389
+ search: (params: AiSearchSearchRequest) => Promise<AiSearchSearchResponse>;
390
+ stats: () => Promise<AiSearchStatsResponse>;
391
+ update: (config: Partial<AiSearchConfig>) => Promise<AiSearchInstanceInfo>;
392
+ }
393
+ /**
394
+ * The AI Search namespace binding (`ai_search_namespaces` in wrangler) —
395
+ * `get(name)` an instance, `list` / `create` / `delete` instances, or run a
396
+ * multi-instance `search` / `chatCompletions` over up to 10 `instance_ids`.
397
+ */
398
+ interface AiSearch {
399
+ chatCompletions: {
400
+ (params: AiSearchMultiChatCompletionsRequest & {
401
+ stream: true;
402
+ }): Promise<ReadableStream>;
403
+ (params: AiSearchMultiChatCompletionsRequest): Promise<AiSearchMultiChatCompletionsResponse>;
404
+ };
405
+ create: (config: AiSearchConfig) => Promise<AiSearchInstance>;
406
+ delete: (name: string) => Promise<void>;
407
+ get: (name: string) => AiSearchInstance;
408
+ list: (params?: AiSearchListInstancesParams) => Promise<AiSearchListResponse>;
409
+ search: (params: AiSearchMultiSearchRequest) => Promise<AiSearchMultiSearchResponse>;
410
+ }
411
+ export type {
412
+ /**
413
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
414
+ *
415
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
416
+ * passed through unwrapped, so there is no facade to construct. The subpath
417
+ * gives the generated `ActionCtx` a module specifier to name the binding
418
+ * through, instead of an ambient global an app whose tsconfig does not load
419
+ * `@cloudflare/workers-types` would not see.
420
+ */
421
+ AiSearch,
422
+ /**
423
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
424
+ *
425
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
426
+ * passed through unwrapped, so there is no facade to construct. The subpath
427
+ * gives the generated `ActionCtx` a module specifier to name the binding
428
+ * through, instead of an ambient global an app whose tsconfig does not load
429
+ * `@cloudflare/workers-types` would not see.
430
+ */
431
+ AiSearchChatCompletionsRequest,
432
+ /**
433
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
434
+ *
435
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
436
+ * passed through unwrapped, so there is no facade to construct. The subpath
437
+ * gives the generated `ActionCtx` a module specifier to name the binding
438
+ * through, instead of an ambient global an app whose tsconfig does not load
439
+ * `@cloudflare/workers-types` would not see.
440
+ */
441
+ AiSearchChatCompletionsResponse,
442
+ /**
443
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
444
+ *
445
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
446
+ * passed through unwrapped, so there is no facade to construct. The subpath
447
+ * gives the generated `ActionCtx` a module specifier to name the binding
448
+ * through, instead of an ambient global an app whose tsconfig does not load
449
+ * `@cloudflare/workers-types` would not see.
450
+ */
451
+ AiSearchChunk,
452
+ /**
453
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
454
+ *
455
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
456
+ * passed through unwrapped, so there is no facade to construct. The subpath
457
+ * gives the generated `ActionCtx` a module specifier to name the binding
458
+ * through, instead of an ambient global an app whose tsconfig does not load
459
+ * `@cloudflare/workers-types` would not see.
460
+ */
461
+ AiSearchConfig,
462
+ /**
463
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
464
+ *
465
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
466
+ * passed through unwrapped, so there is no facade to construct. The subpath
467
+ * gives the generated `ActionCtx` a module specifier to name the binding
468
+ * through, instead of an ambient global an app whose tsconfig does not load
469
+ * `@cloudflare/workers-types` would not see.
470
+ */
471
+ AiSearchFilter,
472
+ /**
473
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
474
+ *
475
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
476
+ * passed through unwrapped, so there is no facade to construct. The subpath
477
+ * gives the generated `ActionCtx` a module specifier to name the binding
478
+ * through, instead of an ambient global an app whose tsconfig does not load
479
+ * `@cloudflare/workers-types` would not see.
480
+ */
481
+ AiSearchFilterValue,
482
+ /**
483
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
484
+ *
485
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
486
+ * passed through unwrapped, so there is no facade to construct. The subpath
487
+ * gives the generated `ActionCtx` a module specifier to name the binding
488
+ * through, instead of an ambient global an app whose tsconfig does not load
489
+ * `@cloudflare/workers-types` would not see.
490
+ */
491
+ AiSearchInstance,
492
+ /**
493
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
494
+ *
495
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
496
+ * passed through unwrapped, so there is no facade to construct. The subpath
497
+ * gives the generated `ActionCtx` a module specifier to name the binding
498
+ * through, instead of an ambient global an app whose tsconfig does not load
499
+ * `@cloudflare/workers-types` would not see.
500
+ */
501
+ AiSearchInstanceInfo,
502
+ /**
503
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
504
+ *
505
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
506
+ * passed through unwrapped, so there is no facade to construct. The subpath
507
+ * gives the generated `ActionCtx` a module specifier to name the binding
508
+ * through, instead of an ambient global an app whose tsconfig does not load
509
+ * `@cloudflare/workers-types` would not see.
510
+ */
511
+ AiSearchItem,
512
+ /**
513
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
514
+ *
515
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
516
+ * passed through unwrapped, so there is no facade to construct. The subpath
517
+ * gives the generated `ActionCtx` a module specifier to name the binding
518
+ * through, instead of an ambient global an app whose tsconfig does not load
519
+ * `@cloudflare/workers-types` would not see.
520
+ */
521
+ AiSearchItemInfo,
522
+ /**
523
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
524
+ *
525
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
526
+ * passed through unwrapped, so there is no facade to construct. The subpath
527
+ * gives the generated `ActionCtx` a module specifier to name the binding
528
+ * through, instead of an ambient global an app whose tsconfig does not load
529
+ * `@cloudflare/workers-types` would not see.
530
+ */
531
+ AiSearchItems,
532
+ /**
533
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
534
+ *
535
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
536
+ * passed through unwrapped, so there is no facade to construct. The subpath
537
+ * gives the generated `ActionCtx` a module specifier to name the binding
538
+ * through, instead of an ambient global an app whose tsconfig does not load
539
+ * `@cloudflare/workers-types` would not see.
540
+ */
541
+ AiSearchJob,
542
+ /**
543
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
544
+ *
545
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
546
+ * passed through unwrapped, so there is no facade to construct. The subpath
547
+ * gives the generated `ActionCtx` a module specifier to name the binding
548
+ * through, instead of an ambient global an app whose tsconfig does not load
549
+ * `@cloudflare/workers-types` would not see.
550
+ */
551
+ AiSearchJobInfo,
552
+ /**
553
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
554
+ *
555
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
556
+ * passed through unwrapped, so there is no facade to construct. The subpath
557
+ * gives the generated `ActionCtx` a module specifier to name the binding
558
+ * through, instead of an ambient global an app whose tsconfig does not load
559
+ * `@cloudflare/workers-types` would not see.
560
+ */
561
+ AiSearchJobs,
562
+ /**
563
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
564
+ *
565
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
566
+ * passed through unwrapped, so there is no facade to construct. The subpath
567
+ * gives the generated `ActionCtx` a module specifier to name the binding
568
+ * through, instead of an ambient global an app whose tsconfig does not load
569
+ * `@cloudflare/workers-types` would not see.
570
+ */
571
+ AiSearchListInstancesParams,
572
+ /**
573
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
574
+ *
575
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
576
+ * passed through unwrapped, so there is no facade to construct. The subpath
577
+ * gives the generated `ActionCtx` a module specifier to name the binding
578
+ * through, instead of an ambient global an app whose tsconfig does not load
579
+ * `@cloudflare/workers-types` would not see.
580
+ */
581
+ AiSearchListItemsParams,
582
+ /**
583
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
584
+ *
585
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
586
+ * passed through unwrapped, so there is no facade to construct. The subpath
587
+ * gives the generated `ActionCtx` a module specifier to name the binding
588
+ * through, instead of an ambient global an app whose tsconfig does not load
589
+ * `@cloudflare/workers-types` would not see.
590
+ */
591
+ AiSearchListItemsResponse,
592
+ /**
593
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
594
+ *
595
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
596
+ * passed through unwrapped, so there is no facade to construct. The subpath
597
+ * gives the generated `ActionCtx` a module specifier to name the binding
598
+ * through, instead of an ambient global an app whose tsconfig does not load
599
+ * `@cloudflare/workers-types` would not see.
600
+ */
601
+ AiSearchListResponse,
602
+ /**
603
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
604
+ *
605
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
606
+ * passed through unwrapped, so there is no facade to construct. The subpath
607
+ * gives the generated `ActionCtx` a module specifier to name the binding
608
+ * through, instead of an ambient global an app whose tsconfig does not load
609
+ * `@cloudflare/workers-types` would not see.
610
+ */
611
+ AiSearchMessage,
612
+ /**
613
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
614
+ *
615
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
616
+ * passed through unwrapped, so there is no facade to construct. The subpath
617
+ * gives the generated `ActionCtx` a module specifier to name the binding
618
+ * through, instead of an ambient global an app whose tsconfig does not load
619
+ * `@cloudflare/workers-types` would not see.
620
+ */
621
+ AiSearchMultiChatCompletionsRequest,
622
+ /**
623
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
624
+ *
625
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
626
+ * passed through unwrapped, so there is no facade to construct. The subpath
627
+ * gives the generated `ActionCtx` a module specifier to name the binding
628
+ * through, instead of an ambient global an app whose tsconfig does not load
629
+ * `@cloudflare/workers-types` would not see.
630
+ */
631
+ AiSearchMultiChatCompletionsResponse,
632
+ /**
633
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
634
+ *
635
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
636
+ * passed through unwrapped, so there is no facade to construct. The subpath
637
+ * gives the generated `ActionCtx` a module specifier to name the binding
638
+ * through, instead of an ambient global an app whose tsconfig does not load
639
+ * `@cloudflare/workers-types` would not see.
640
+ */
641
+ AiSearchMultiSearchChunk,
642
+ /**
643
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
644
+ *
645
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
646
+ * passed through unwrapped, so there is no facade to construct. The subpath
647
+ * gives the generated `ActionCtx` a module specifier to name the binding
648
+ * through, instead of an ambient global an app whose tsconfig does not load
649
+ * `@cloudflare/workers-types` would not see.
650
+ */
651
+ AiSearchMultiSearchError,
652
+ /**
653
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
654
+ *
655
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
656
+ * passed through unwrapped, so there is no facade to construct. The subpath
657
+ * gives the generated `ActionCtx` a module specifier to name the binding
658
+ * through, instead of an ambient global an app whose tsconfig does not load
659
+ * `@cloudflare/workers-types` would not see.
660
+ */
661
+ AiSearchMultiSearchOptions,
662
+ /**
663
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
664
+ *
665
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
666
+ * passed through unwrapped, so there is no facade to construct. The subpath
667
+ * gives the generated `ActionCtx` a module specifier to name the binding
668
+ * through, instead of an ambient global an app whose tsconfig does not load
669
+ * `@cloudflare/workers-types` would not see.
670
+ */
671
+ AiSearchMultiSearchRequest,
672
+ /**
673
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
674
+ *
675
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
676
+ * passed through unwrapped, so there is no facade to construct. The subpath
677
+ * gives the generated `ActionCtx` a module specifier to name the binding
678
+ * through, instead of an ambient global an app whose tsconfig does not load
679
+ * `@cloudflare/workers-types` would not see.
680
+ */
681
+ AiSearchMultiSearchResponse,
682
+ /**
683
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
684
+ *
685
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
686
+ * passed through unwrapped, so there is no facade to construct. The subpath
687
+ * gives the generated `ActionCtx` a module specifier to name the binding
688
+ * through, instead of an ambient global an app whose tsconfig does not load
689
+ * `@cloudflare/workers-types` would not see.
690
+ */
691
+ AiSearchOptions,
692
+ /**
693
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
694
+ *
695
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
696
+ * passed through unwrapped, so there is no facade to construct. The subpath
697
+ * gives the generated `ActionCtx` a module specifier to name the binding
698
+ * through, instead of an ambient global an app whose tsconfig does not load
699
+ * `@cloudflare/workers-types` would not see.
700
+ */
701
+ AiSearchResultInfo,
702
+ /**
703
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
704
+ *
705
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
706
+ * passed through unwrapped, so there is no facade to construct. The subpath
707
+ * gives the generated `ActionCtx` a module specifier to name the binding
708
+ * through, instead of an ambient global an app whose tsconfig does not load
709
+ * `@cloudflare/workers-types` would not see.
710
+ */
711
+ AiSearchSearchRequest,
712
+ /**
713
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
714
+ *
715
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
716
+ * passed through unwrapped, so there is no facade to construct. The subpath
717
+ * gives the generated `ActionCtx` a module specifier to name the binding
718
+ * through, instead of an ambient global an app whose tsconfig does not load
719
+ * `@cloudflare/workers-types` would not see.
720
+ */
721
+ AiSearchSearchResponse,
722
+ /**
723
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
724
+ *
725
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
726
+ * passed through unwrapped, so there is no facade to construct. The subpath
727
+ * gives the generated `ActionCtx` a module specifier to name the binding
728
+ * through, instead of an ambient global an app whose tsconfig does not load
729
+ * `@cloudflare/workers-types` would not see.
730
+ */
731
+ AiSearchStatsResponse,
732
+ /**
733
+ * `ctx.aiSearch` — Cloudflare AI Search (formerly AutoRAG), typed.
734
+ *
735
+ * Types only, by design: `ctx.aiSearch` IS the `ai_search_namespaces` binding,
736
+ * passed through unwrapped, so there is no facade to construct. The subpath
737
+ * gives the generated `ActionCtx` a module specifier to name the binding
738
+ * through, instead of an ambient global an app whose tsconfig does not load
739
+ * `@cloudflare/workers-types` would not see.
740
+ */
741
+ AiSearchUploadItemOptions };