@kb-labs/gateway-contracts 2.94.0 → 2.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.
- package/dist/index.d.ts +924 -11
- package/dist/index.js +119 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
|
|
3
3
|
declare const UpstreamConfigSchema: z.ZodObject<{
|
|
4
|
-
|
|
4
|
+
/** Key into the transport services map — identifies which service to proxy to */
|
|
5
|
+
serviceId: z.ZodString;
|
|
5
6
|
prefix: z.ZodString;
|
|
6
7
|
/** Strip prefix before forwarding. Default: keep prefix as-is. Use "" to strip. */
|
|
7
8
|
rewritePrefix: z.ZodOptional<z.ZodString>;
|
|
@@ -11,14 +12,14 @@ declare const UpstreamConfigSchema: z.ZodObject<{
|
|
|
11
12
|
excludePaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
12
13
|
description: z.ZodOptional<z.ZodString>;
|
|
13
14
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
|
|
15
|
+
serviceId: string;
|
|
15
16
|
prefix: string;
|
|
16
17
|
rewritePrefix?: string | undefined;
|
|
17
18
|
websocket?: boolean | undefined;
|
|
18
19
|
excludePaths?: string[] | undefined;
|
|
19
20
|
description?: string | undefined;
|
|
20
21
|
}, {
|
|
21
|
-
|
|
22
|
+
serviceId: string;
|
|
22
23
|
prefix: string;
|
|
23
24
|
rewritePrefix?: string | undefined;
|
|
24
25
|
websocket?: boolean | undefined;
|
|
@@ -35,10 +36,452 @@ declare const StaticTokenEntrySchema: z.ZodObject<{
|
|
|
35
36
|
hostId: string;
|
|
36
37
|
namespaceId: string;
|
|
37
38
|
}>;
|
|
39
|
+
declare const RateLimitConfigSchema: z.ZodObject<{
|
|
40
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
45
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
tokensPerMinute?: number | undefined;
|
|
48
|
+
requestsPerMinute?: number | undefined;
|
|
49
|
+
requestsPerSecond?: number | undefined;
|
|
50
|
+
maxConcurrentRequests?: number | undefined;
|
|
51
|
+
safetyMargin?: number | undefined;
|
|
52
|
+
}, {
|
|
53
|
+
tokensPerMinute?: number | undefined;
|
|
54
|
+
requestsPerMinute?: number | undefined;
|
|
55
|
+
requestsPerSecond?: number | undefined;
|
|
56
|
+
maxConcurrentRequests?: number | undefined;
|
|
57
|
+
safetyMargin?: number | undefined;
|
|
58
|
+
}>;
|
|
59
|
+
declare const PressureRouteOverrideSchema: z.ZodObject<{
|
|
60
|
+
/** Resource id used in the broker, e.g. "gateway:route:webhooks-github". */
|
|
61
|
+
resource: z.ZodString;
|
|
62
|
+
/** Path prefix matched against request.url (first match wins). */
|
|
63
|
+
pathPrefix: z.ZodString;
|
|
64
|
+
/** HTTP methods this override applies to. Omit to match any method. */
|
|
65
|
+
methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE"]>, "many">>;
|
|
66
|
+
limits: z.ZodObject<{
|
|
67
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
69
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
72
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
tokensPerMinute?: number | undefined;
|
|
75
|
+
requestsPerMinute?: number | undefined;
|
|
76
|
+
requestsPerSecond?: number | undefined;
|
|
77
|
+
maxConcurrentRequests?: number | undefined;
|
|
78
|
+
safetyMargin?: number | undefined;
|
|
79
|
+
}, {
|
|
80
|
+
tokensPerMinute?: number | undefined;
|
|
81
|
+
requestsPerMinute?: number | undefined;
|
|
82
|
+
requestsPerSecond?: number | undefined;
|
|
83
|
+
maxConcurrentRequests?: number | undefined;
|
|
84
|
+
safetyMargin?: number | undefined;
|
|
85
|
+
}>;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
resource: string;
|
|
88
|
+
pathPrefix: string;
|
|
89
|
+
limits: {
|
|
90
|
+
tokensPerMinute?: number | undefined;
|
|
91
|
+
requestsPerMinute?: number | undefined;
|
|
92
|
+
requestsPerSecond?: number | undefined;
|
|
93
|
+
maxConcurrentRequests?: number | undefined;
|
|
94
|
+
safetyMargin?: number | undefined;
|
|
95
|
+
};
|
|
96
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
resource: string;
|
|
99
|
+
pathPrefix: string;
|
|
100
|
+
limits: {
|
|
101
|
+
tokensPerMinute?: number | undefined;
|
|
102
|
+
requestsPerMinute?: number | undefined;
|
|
103
|
+
requestsPerSecond?: number | undefined;
|
|
104
|
+
maxConcurrentRequests?: number | undefined;
|
|
105
|
+
safetyMargin?: number | undefined;
|
|
106
|
+
};
|
|
107
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
108
|
+
}>;
|
|
109
|
+
declare const PressureTenantConfigSchema: z.ZodObject<{
|
|
110
|
+
/** When true, applies per-tenant limits keyed by AuthContext.namespaceId. */
|
|
111
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
112
|
+
/** Limits applied to each tenant. Resource id = "gateway:tenant:<namespaceId>". */
|
|
113
|
+
limits: z.ZodObject<{
|
|
114
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
115
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
117
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
118
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
119
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
}, "strip", z.ZodTypeAny, {
|
|
121
|
+
tokensPerMinute?: number | undefined;
|
|
122
|
+
requestsPerMinute?: number | undefined;
|
|
123
|
+
requestsPerSecond?: number | undefined;
|
|
124
|
+
maxConcurrentRequests?: number | undefined;
|
|
125
|
+
safetyMargin?: number | undefined;
|
|
126
|
+
}, {
|
|
127
|
+
tokensPerMinute?: number | undefined;
|
|
128
|
+
requestsPerMinute?: number | undefined;
|
|
129
|
+
requestsPerSecond?: number | undefined;
|
|
130
|
+
maxConcurrentRequests?: number | undefined;
|
|
131
|
+
safetyMargin?: number | undefined;
|
|
132
|
+
}>;
|
|
133
|
+
}, "strip", z.ZodTypeAny, {
|
|
134
|
+
limits: {
|
|
135
|
+
tokensPerMinute?: number | undefined;
|
|
136
|
+
requestsPerMinute?: number | undefined;
|
|
137
|
+
requestsPerSecond?: number | undefined;
|
|
138
|
+
maxConcurrentRequests?: number | undefined;
|
|
139
|
+
safetyMargin?: number | undefined;
|
|
140
|
+
};
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
}, {
|
|
143
|
+
limits: {
|
|
144
|
+
tokensPerMinute?: number | undefined;
|
|
145
|
+
requestsPerMinute?: number | undefined;
|
|
146
|
+
requestsPerSecond?: number | undefined;
|
|
147
|
+
maxConcurrentRequests?: number | undefined;
|
|
148
|
+
safetyMargin?: number | undefined;
|
|
149
|
+
};
|
|
150
|
+
enabled?: boolean | undefined;
|
|
151
|
+
}>;
|
|
152
|
+
declare const PressureConfigSchema: z.ZodObject<{
|
|
153
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
154
|
+
/** Per-upstream limits. Resource id = "gateway:service:<name>". */
|
|
155
|
+
perService: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
156
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
157
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
158
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
159
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
160
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
161
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
162
|
+
}, "strip", z.ZodTypeAny, {
|
|
163
|
+
tokensPerMinute?: number | undefined;
|
|
164
|
+
requestsPerMinute?: number | undefined;
|
|
165
|
+
requestsPerSecond?: number | undefined;
|
|
166
|
+
maxConcurrentRequests?: number | undefined;
|
|
167
|
+
safetyMargin?: number | undefined;
|
|
168
|
+
}, {
|
|
169
|
+
tokensPerMinute?: number | undefined;
|
|
170
|
+
requestsPerMinute?: number | undefined;
|
|
171
|
+
requestsPerSecond?: number | undefined;
|
|
172
|
+
maxConcurrentRequests?: number | undefined;
|
|
173
|
+
safetyMargin?: number | undefined;
|
|
174
|
+
}>>>;
|
|
175
|
+
/** Per-path-prefix overrides (checked before service-level resolution). */
|
|
176
|
+
perRoute: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
177
|
+
/** Resource id used in the broker, e.g. "gateway:route:webhooks-github". */
|
|
178
|
+
resource: z.ZodString;
|
|
179
|
+
/** Path prefix matched against request.url (first match wins). */
|
|
180
|
+
pathPrefix: z.ZodString;
|
|
181
|
+
/** HTTP methods this override applies to. Omit to match any method. */
|
|
182
|
+
methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE"]>, "many">>;
|
|
183
|
+
limits: z.ZodObject<{
|
|
184
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
185
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
187
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
188
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
189
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
190
|
+
}, "strip", z.ZodTypeAny, {
|
|
191
|
+
tokensPerMinute?: number | undefined;
|
|
192
|
+
requestsPerMinute?: number | undefined;
|
|
193
|
+
requestsPerSecond?: number | undefined;
|
|
194
|
+
maxConcurrentRequests?: number | undefined;
|
|
195
|
+
safetyMargin?: number | undefined;
|
|
196
|
+
}, {
|
|
197
|
+
tokensPerMinute?: number | undefined;
|
|
198
|
+
requestsPerMinute?: number | undefined;
|
|
199
|
+
requestsPerSecond?: number | undefined;
|
|
200
|
+
maxConcurrentRequests?: number | undefined;
|
|
201
|
+
safetyMargin?: number | undefined;
|
|
202
|
+
}>;
|
|
203
|
+
}, "strip", z.ZodTypeAny, {
|
|
204
|
+
resource: string;
|
|
205
|
+
pathPrefix: string;
|
|
206
|
+
limits: {
|
|
207
|
+
tokensPerMinute?: number | undefined;
|
|
208
|
+
requestsPerMinute?: number | undefined;
|
|
209
|
+
requestsPerSecond?: number | undefined;
|
|
210
|
+
maxConcurrentRequests?: number | undefined;
|
|
211
|
+
safetyMargin?: number | undefined;
|
|
212
|
+
};
|
|
213
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
214
|
+
}, {
|
|
215
|
+
resource: string;
|
|
216
|
+
pathPrefix: string;
|
|
217
|
+
limits: {
|
|
218
|
+
tokensPerMinute?: number | undefined;
|
|
219
|
+
requestsPerMinute?: number | undefined;
|
|
220
|
+
requestsPerSecond?: number | undefined;
|
|
221
|
+
maxConcurrentRequests?: number | undefined;
|
|
222
|
+
safetyMargin?: number | undefined;
|
|
223
|
+
};
|
|
224
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
225
|
+
}>, "many">>;
|
|
226
|
+
/** Optional per-tenant layer (requires JWT). */
|
|
227
|
+
perTenant: z.ZodOptional<z.ZodObject<{
|
|
228
|
+
/** When true, applies per-tenant limits keyed by AuthContext.namespaceId. */
|
|
229
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
230
|
+
/** Limits applied to each tenant. Resource id = "gateway:tenant:<namespaceId>". */
|
|
231
|
+
limits: z.ZodObject<{
|
|
232
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
233
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
234
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
235
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
236
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
237
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
}, "strip", z.ZodTypeAny, {
|
|
239
|
+
tokensPerMinute?: number | undefined;
|
|
240
|
+
requestsPerMinute?: number | undefined;
|
|
241
|
+
requestsPerSecond?: number | undefined;
|
|
242
|
+
maxConcurrentRequests?: number | undefined;
|
|
243
|
+
safetyMargin?: number | undefined;
|
|
244
|
+
}, {
|
|
245
|
+
tokensPerMinute?: number | undefined;
|
|
246
|
+
requestsPerMinute?: number | undefined;
|
|
247
|
+
requestsPerSecond?: number | undefined;
|
|
248
|
+
maxConcurrentRequests?: number | undefined;
|
|
249
|
+
safetyMargin?: number | undefined;
|
|
250
|
+
}>;
|
|
251
|
+
}, "strip", z.ZodTypeAny, {
|
|
252
|
+
limits: {
|
|
253
|
+
tokensPerMinute?: number | undefined;
|
|
254
|
+
requestsPerMinute?: number | undefined;
|
|
255
|
+
requestsPerSecond?: number | undefined;
|
|
256
|
+
maxConcurrentRequests?: number | undefined;
|
|
257
|
+
safetyMargin?: number | undefined;
|
|
258
|
+
};
|
|
259
|
+
enabled: boolean;
|
|
260
|
+
}, {
|
|
261
|
+
limits: {
|
|
262
|
+
tokensPerMinute?: number | undefined;
|
|
263
|
+
requestsPerMinute?: number | undefined;
|
|
264
|
+
requestsPerSecond?: number | undefined;
|
|
265
|
+
maxConcurrentRequests?: number | undefined;
|
|
266
|
+
safetyMargin?: number | undefined;
|
|
267
|
+
};
|
|
268
|
+
enabled?: boolean | undefined;
|
|
269
|
+
}>>;
|
|
270
|
+
}, "strip", z.ZodTypeAny, {
|
|
271
|
+
enabled: boolean;
|
|
272
|
+
perService: Record<string, {
|
|
273
|
+
tokensPerMinute?: number | undefined;
|
|
274
|
+
requestsPerMinute?: number | undefined;
|
|
275
|
+
requestsPerSecond?: number | undefined;
|
|
276
|
+
maxConcurrentRequests?: number | undefined;
|
|
277
|
+
safetyMargin?: number | undefined;
|
|
278
|
+
}>;
|
|
279
|
+
perRoute: {
|
|
280
|
+
resource: string;
|
|
281
|
+
pathPrefix: string;
|
|
282
|
+
limits: {
|
|
283
|
+
tokensPerMinute?: number | undefined;
|
|
284
|
+
requestsPerMinute?: number | undefined;
|
|
285
|
+
requestsPerSecond?: number | undefined;
|
|
286
|
+
maxConcurrentRequests?: number | undefined;
|
|
287
|
+
safetyMargin?: number | undefined;
|
|
288
|
+
};
|
|
289
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
290
|
+
}[];
|
|
291
|
+
perTenant?: {
|
|
292
|
+
limits: {
|
|
293
|
+
tokensPerMinute?: number | undefined;
|
|
294
|
+
requestsPerMinute?: number | undefined;
|
|
295
|
+
requestsPerSecond?: number | undefined;
|
|
296
|
+
maxConcurrentRequests?: number | undefined;
|
|
297
|
+
safetyMargin?: number | undefined;
|
|
298
|
+
};
|
|
299
|
+
enabled: boolean;
|
|
300
|
+
} | undefined;
|
|
301
|
+
}, {
|
|
302
|
+
enabled?: boolean | undefined;
|
|
303
|
+
perService?: Record<string, {
|
|
304
|
+
tokensPerMinute?: number | undefined;
|
|
305
|
+
requestsPerMinute?: number | undefined;
|
|
306
|
+
requestsPerSecond?: number | undefined;
|
|
307
|
+
maxConcurrentRequests?: number | undefined;
|
|
308
|
+
safetyMargin?: number | undefined;
|
|
309
|
+
}> | undefined;
|
|
310
|
+
perRoute?: {
|
|
311
|
+
resource: string;
|
|
312
|
+
pathPrefix: string;
|
|
313
|
+
limits: {
|
|
314
|
+
tokensPerMinute?: number | undefined;
|
|
315
|
+
requestsPerMinute?: number | undefined;
|
|
316
|
+
requestsPerSecond?: number | undefined;
|
|
317
|
+
maxConcurrentRequests?: number | undefined;
|
|
318
|
+
safetyMargin?: number | undefined;
|
|
319
|
+
};
|
|
320
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
321
|
+
}[] | undefined;
|
|
322
|
+
perTenant?: {
|
|
323
|
+
limits: {
|
|
324
|
+
tokensPerMinute?: number | undefined;
|
|
325
|
+
requestsPerMinute?: number | undefined;
|
|
326
|
+
requestsPerSecond?: number | undefined;
|
|
327
|
+
maxConcurrentRequests?: number | undefined;
|
|
328
|
+
safetyMargin?: number | undefined;
|
|
329
|
+
};
|
|
330
|
+
enabled?: boolean | undefined;
|
|
331
|
+
} | undefined;
|
|
332
|
+
}>;
|
|
333
|
+
declare const AuthConfigSchema: z.ZodObject<{
|
|
334
|
+
/**
|
|
335
|
+
* Whether authentication is enforced. Default true (cloud/team).
|
|
336
|
+
* When false (solo/local mode) the gateway runs every request as a local
|
|
337
|
+
* admin and Studio opens without login. The startup guardrail refuses to
|
|
338
|
+
* start with auth disabled on a non-loopback bind (B-023).
|
|
339
|
+
*/
|
|
340
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
341
|
+
/** Whether to set Secure flag on session cookies. Set false in dev only. */
|
|
342
|
+
cookieSecure: z.ZodDefault<z.ZodBoolean>;
|
|
343
|
+
/** Access token TTL in seconds. Default 15 min. */
|
|
344
|
+
sessionAccessTtlSec: z.ZodDefault<z.ZodNumber>;
|
|
345
|
+
/** Refresh token TTL in seconds. Default 30 days. */
|
|
346
|
+
sessionRefreshTtlSec: z.ZodDefault<z.ZodNumber>;
|
|
347
|
+
/** Grace window for refresh token reuse detection (CD-5). */
|
|
348
|
+
refreshGraceWindowSec: z.ZodDefault<z.ZodNumber>;
|
|
349
|
+
/** bcrypt cost factor for password hashing. */
|
|
350
|
+
bcryptCost: z.ZodDefault<z.ZodNumber>;
|
|
351
|
+
passwordPolicy: z.ZodDefault<z.ZodObject<{
|
|
352
|
+
minLength: z.ZodDefault<z.ZodNumber>;
|
|
353
|
+
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
354
|
+
/** When true, new passwords are checked against the HaveIBeenPwned API. */
|
|
355
|
+
hibpEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
356
|
+
}, "strip", z.ZodTypeAny, {
|
|
357
|
+
minLength: number;
|
|
358
|
+
maxLength: number;
|
|
359
|
+
hibpEnabled: boolean;
|
|
360
|
+
}, {
|
|
361
|
+
minLength?: number | undefined;
|
|
362
|
+
maxLength?: number | undefined;
|
|
363
|
+
hibpEnabled?: boolean | undefined;
|
|
364
|
+
}>>;
|
|
365
|
+
rateLimit: z.ZodDefault<z.ZodObject<{
|
|
366
|
+
/** Max failed login attempts per IP per minute before 429. */
|
|
367
|
+
loginPerIpPerMinute: z.ZodDefault<z.ZodNumber>;
|
|
368
|
+
/** Max failed login attempts for a single email per minute (across all IPs). */
|
|
369
|
+
loginPerEmailPerMinute: z.ZodDefault<z.ZodNumber>;
|
|
370
|
+
/** Max activation attempts per IP per hour. */
|
|
371
|
+
activatePerIpPerHour: z.ZodDefault<z.ZodNumber>;
|
|
372
|
+
}, "strip", z.ZodTypeAny, {
|
|
373
|
+
loginPerIpPerMinute: number;
|
|
374
|
+
loginPerEmailPerMinute: number;
|
|
375
|
+
activatePerIpPerHour: number;
|
|
376
|
+
}, {
|
|
377
|
+
loginPerIpPerMinute?: number | undefined;
|
|
378
|
+
loginPerEmailPerMinute?: number | undefined;
|
|
379
|
+
activatePerIpPerHour?: number | undefined;
|
|
380
|
+
}>>;
|
|
381
|
+
/** Invite link TTL in milliseconds. Default 7 days. */
|
|
382
|
+
inviteTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
383
|
+
/** Bootstrap admin account seeding. Credentials come from env vars. */
|
|
384
|
+
bootstrap: z.ZodOptional<z.ZodObject<{
|
|
385
|
+
/** Tenant ID for the bootstrap admin account (used in subdomain routing). */
|
|
386
|
+
tenantId: z.ZodString;
|
|
387
|
+
/** Admin email — also readable from env GATEWAY_BOOTSTRAP_ADMIN_EMAIL. */
|
|
388
|
+
adminEmail: z.ZodOptional<z.ZodString>;
|
|
389
|
+
}, "strip", z.ZodTypeAny, {
|
|
390
|
+
tenantId: string;
|
|
391
|
+
adminEmail?: string | undefined;
|
|
392
|
+
}, {
|
|
393
|
+
tenantId: string;
|
|
394
|
+
adminEmail?: string | undefined;
|
|
395
|
+
}>>;
|
|
396
|
+
/**
|
|
397
|
+
* Identity providers to load, keyed by instance id (ADR-0020 DD-4).
|
|
398
|
+
*
|
|
399
|
+
* Each entry carries a discriminating `type` (built-in `email-password`
|
|
400
|
+
* / `oidc`, or a package name for third-party providers). Everything
|
|
401
|
+
* else passes through so each provider validates its own slice with its
|
|
402
|
+
* own zod schema. Omitting `providers` registers the built-in
|
|
403
|
+
* `email-password` provider as the default (DD-3).
|
|
404
|
+
*/
|
|
405
|
+
providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
406
|
+
type: z.ZodString;
|
|
407
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
408
|
+
type: z.ZodString;
|
|
409
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
410
|
+
type: z.ZodString;
|
|
411
|
+
}, z.ZodTypeAny, "passthrough">>>>;
|
|
412
|
+
}, "strip", z.ZodTypeAny, {
|
|
413
|
+
enabled: boolean;
|
|
414
|
+
cookieSecure: boolean;
|
|
415
|
+
sessionAccessTtlSec: number;
|
|
416
|
+
sessionRefreshTtlSec: number;
|
|
417
|
+
refreshGraceWindowSec: number;
|
|
418
|
+
bcryptCost: number;
|
|
419
|
+
passwordPolicy: {
|
|
420
|
+
minLength: number;
|
|
421
|
+
maxLength: number;
|
|
422
|
+
hibpEnabled: boolean;
|
|
423
|
+
};
|
|
424
|
+
rateLimit: {
|
|
425
|
+
loginPerIpPerMinute: number;
|
|
426
|
+
loginPerEmailPerMinute: number;
|
|
427
|
+
activatePerIpPerHour: number;
|
|
428
|
+
};
|
|
429
|
+
inviteTtlMs: number;
|
|
430
|
+
bootstrap?: {
|
|
431
|
+
tenantId: string;
|
|
432
|
+
adminEmail?: string | undefined;
|
|
433
|
+
} | undefined;
|
|
434
|
+
providers?: Record<string, z.objectOutputType<{
|
|
435
|
+
type: z.ZodString;
|
|
436
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
437
|
+
}, {
|
|
438
|
+
enabled?: boolean | undefined;
|
|
439
|
+
cookieSecure?: boolean | undefined;
|
|
440
|
+
sessionAccessTtlSec?: number | undefined;
|
|
441
|
+
sessionRefreshTtlSec?: number | undefined;
|
|
442
|
+
refreshGraceWindowSec?: number | undefined;
|
|
443
|
+
bcryptCost?: number | undefined;
|
|
444
|
+
passwordPolicy?: {
|
|
445
|
+
minLength?: number | undefined;
|
|
446
|
+
maxLength?: number | undefined;
|
|
447
|
+
hibpEnabled?: boolean | undefined;
|
|
448
|
+
} | undefined;
|
|
449
|
+
rateLimit?: {
|
|
450
|
+
loginPerIpPerMinute?: number | undefined;
|
|
451
|
+
loginPerEmailPerMinute?: number | undefined;
|
|
452
|
+
activatePerIpPerHour?: number | undefined;
|
|
453
|
+
} | undefined;
|
|
454
|
+
inviteTtlMs?: number | undefined;
|
|
455
|
+
bootstrap?: {
|
|
456
|
+
tenantId: string;
|
|
457
|
+
adminEmail?: string | undefined;
|
|
458
|
+
} | undefined;
|
|
459
|
+
providers?: Record<string, z.objectInputType<{
|
|
460
|
+
type: z.ZodString;
|
|
461
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
462
|
+
}>;
|
|
463
|
+
declare const TenantsConfigSchema: z.ZodObject<{
|
|
464
|
+
/**
|
|
465
|
+
* Subdomain pattern used to resolve tenant from the Host header.
|
|
466
|
+
* Use `{tenant}` as placeholder. E.g. `"{tenant}.kblabs.ru"`.
|
|
467
|
+
*/
|
|
468
|
+
pattern: z.ZodDefault<z.ZodString>;
|
|
469
|
+
}, "strip", z.ZodTypeAny, {
|
|
470
|
+
pattern: string;
|
|
471
|
+
}, {
|
|
472
|
+
pattern?: string | undefined;
|
|
473
|
+
}>;
|
|
38
474
|
declare const GatewayConfigSchema: z.ZodObject<{
|
|
39
475
|
port: z.ZodDefault<z.ZodNumber>;
|
|
476
|
+
/**
|
|
477
|
+
* Bind host. Defaults to '0.0.0.0' (deployed platform) when omitted — the
|
|
478
|
+
* fallback is applied in code. Solo/local installs set '127.0.0.1' so a
|
|
479
|
+
* no-auth Studio is never reachable off the machine.
|
|
480
|
+
*/
|
|
481
|
+
host: z.ZodOptional<z.ZodString>;
|
|
40
482
|
upstreams: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
41
|
-
|
|
483
|
+
/** Key into the transport services map — identifies which service to proxy to */
|
|
484
|
+
serviceId: z.ZodString;
|
|
42
485
|
prefix: z.ZodString;
|
|
43
486
|
/** Strip prefix before forwarding. Default: keep prefix as-is. Use "" to strip. */
|
|
44
487
|
rewritePrefix: z.ZodOptional<z.ZodString>;
|
|
@@ -48,14 +491,14 @@ declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
48
491
|
excludePaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
49
492
|
description: z.ZodOptional<z.ZodString>;
|
|
50
493
|
}, "strip", z.ZodTypeAny, {
|
|
51
|
-
|
|
494
|
+
serviceId: string;
|
|
52
495
|
prefix: string;
|
|
53
496
|
rewritePrefix?: string | undefined;
|
|
54
497
|
websocket?: boolean | undefined;
|
|
55
498
|
excludePaths?: string[] | undefined;
|
|
56
499
|
description?: string | undefined;
|
|
57
500
|
}, {
|
|
58
|
-
|
|
501
|
+
serviceId: string;
|
|
59
502
|
prefix: string;
|
|
60
503
|
rewritePrefix?: string | undefined;
|
|
61
504
|
websocket?: boolean | undefined;
|
|
@@ -73,10 +516,335 @@ declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
73
516
|
hostId: string;
|
|
74
517
|
namespaceId: string;
|
|
75
518
|
}>>>;
|
|
519
|
+
/** HTTP pressure control (rate limiting via ResourceBroker). */
|
|
520
|
+
pressure: z.ZodOptional<z.ZodObject<{
|
|
521
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
522
|
+
/** Per-upstream limits. Resource id = "gateway:service:<name>". */
|
|
523
|
+
perService: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
524
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
525
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
526
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
527
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
528
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
529
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
530
|
+
}, "strip", z.ZodTypeAny, {
|
|
531
|
+
tokensPerMinute?: number | undefined;
|
|
532
|
+
requestsPerMinute?: number | undefined;
|
|
533
|
+
requestsPerSecond?: number | undefined;
|
|
534
|
+
maxConcurrentRequests?: number | undefined;
|
|
535
|
+
safetyMargin?: number | undefined;
|
|
536
|
+
}, {
|
|
537
|
+
tokensPerMinute?: number | undefined;
|
|
538
|
+
requestsPerMinute?: number | undefined;
|
|
539
|
+
requestsPerSecond?: number | undefined;
|
|
540
|
+
maxConcurrentRequests?: number | undefined;
|
|
541
|
+
safetyMargin?: number | undefined;
|
|
542
|
+
}>>>;
|
|
543
|
+
/** Per-path-prefix overrides (checked before service-level resolution). */
|
|
544
|
+
perRoute: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
545
|
+
/** Resource id used in the broker, e.g. "gateway:route:webhooks-github". */
|
|
546
|
+
resource: z.ZodString;
|
|
547
|
+
/** Path prefix matched against request.url (first match wins). */
|
|
548
|
+
pathPrefix: z.ZodString;
|
|
549
|
+
/** HTTP methods this override applies to. Omit to match any method. */
|
|
550
|
+
methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE"]>, "many">>;
|
|
551
|
+
limits: z.ZodObject<{
|
|
552
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
553
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
554
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
555
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
556
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
557
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
558
|
+
}, "strip", z.ZodTypeAny, {
|
|
559
|
+
tokensPerMinute?: number | undefined;
|
|
560
|
+
requestsPerMinute?: number | undefined;
|
|
561
|
+
requestsPerSecond?: number | undefined;
|
|
562
|
+
maxConcurrentRequests?: number | undefined;
|
|
563
|
+
safetyMargin?: number | undefined;
|
|
564
|
+
}, {
|
|
565
|
+
tokensPerMinute?: number | undefined;
|
|
566
|
+
requestsPerMinute?: number | undefined;
|
|
567
|
+
requestsPerSecond?: number | undefined;
|
|
568
|
+
maxConcurrentRequests?: number | undefined;
|
|
569
|
+
safetyMargin?: number | undefined;
|
|
570
|
+
}>;
|
|
571
|
+
}, "strip", z.ZodTypeAny, {
|
|
572
|
+
resource: string;
|
|
573
|
+
pathPrefix: string;
|
|
574
|
+
limits: {
|
|
575
|
+
tokensPerMinute?: number | undefined;
|
|
576
|
+
requestsPerMinute?: number | undefined;
|
|
577
|
+
requestsPerSecond?: number | undefined;
|
|
578
|
+
maxConcurrentRequests?: number | undefined;
|
|
579
|
+
safetyMargin?: number | undefined;
|
|
580
|
+
};
|
|
581
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
582
|
+
}, {
|
|
583
|
+
resource: string;
|
|
584
|
+
pathPrefix: string;
|
|
585
|
+
limits: {
|
|
586
|
+
tokensPerMinute?: number | undefined;
|
|
587
|
+
requestsPerMinute?: number | undefined;
|
|
588
|
+
requestsPerSecond?: number | undefined;
|
|
589
|
+
maxConcurrentRequests?: number | undefined;
|
|
590
|
+
safetyMargin?: number | undefined;
|
|
591
|
+
};
|
|
592
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
593
|
+
}>, "many">>;
|
|
594
|
+
/** Optional per-tenant layer (requires JWT). */
|
|
595
|
+
perTenant: z.ZodOptional<z.ZodObject<{
|
|
596
|
+
/** When true, applies per-tenant limits keyed by AuthContext.namespaceId. */
|
|
597
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
598
|
+
/** Limits applied to each tenant. Resource id = "gateway:tenant:<namespaceId>". */
|
|
599
|
+
limits: z.ZodObject<{
|
|
600
|
+
tokensPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
601
|
+
requestsPerMinute: z.ZodOptional<z.ZodNumber>;
|
|
602
|
+
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
|
|
603
|
+
maxConcurrentRequests: z.ZodOptional<z.ZodNumber>;
|
|
604
|
+
/** 0..1, default 0.9 in core. Set to 1 to disable the safety cushion. */
|
|
605
|
+
safetyMargin: z.ZodOptional<z.ZodNumber>;
|
|
606
|
+
}, "strip", z.ZodTypeAny, {
|
|
607
|
+
tokensPerMinute?: number | undefined;
|
|
608
|
+
requestsPerMinute?: number | undefined;
|
|
609
|
+
requestsPerSecond?: number | undefined;
|
|
610
|
+
maxConcurrentRequests?: number | undefined;
|
|
611
|
+
safetyMargin?: number | undefined;
|
|
612
|
+
}, {
|
|
613
|
+
tokensPerMinute?: number | undefined;
|
|
614
|
+
requestsPerMinute?: number | undefined;
|
|
615
|
+
requestsPerSecond?: number | undefined;
|
|
616
|
+
maxConcurrentRequests?: number | undefined;
|
|
617
|
+
safetyMargin?: number | undefined;
|
|
618
|
+
}>;
|
|
619
|
+
}, "strip", z.ZodTypeAny, {
|
|
620
|
+
limits: {
|
|
621
|
+
tokensPerMinute?: number | undefined;
|
|
622
|
+
requestsPerMinute?: number | undefined;
|
|
623
|
+
requestsPerSecond?: number | undefined;
|
|
624
|
+
maxConcurrentRequests?: number | undefined;
|
|
625
|
+
safetyMargin?: number | undefined;
|
|
626
|
+
};
|
|
627
|
+
enabled: boolean;
|
|
628
|
+
}, {
|
|
629
|
+
limits: {
|
|
630
|
+
tokensPerMinute?: number | undefined;
|
|
631
|
+
requestsPerMinute?: number | undefined;
|
|
632
|
+
requestsPerSecond?: number | undefined;
|
|
633
|
+
maxConcurrentRequests?: number | undefined;
|
|
634
|
+
safetyMargin?: number | undefined;
|
|
635
|
+
};
|
|
636
|
+
enabled?: boolean | undefined;
|
|
637
|
+
}>>;
|
|
638
|
+
}, "strip", z.ZodTypeAny, {
|
|
639
|
+
enabled: boolean;
|
|
640
|
+
perService: Record<string, {
|
|
641
|
+
tokensPerMinute?: number | undefined;
|
|
642
|
+
requestsPerMinute?: number | undefined;
|
|
643
|
+
requestsPerSecond?: number | undefined;
|
|
644
|
+
maxConcurrentRequests?: number | undefined;
|
|
645
|
+
safetyMargin?: number | undefined;
|
|
646
|
+
}>;
|
|
647
|
+
perRoute: {
|
|
648
|
+
resource: string;
|
|
649
|
+
pathPrefix: string;
|
|
650
|
+
limits: {
|
|
651
|
+
tokensPerMinute?: number | undefined;
|
|
652
|
+
requestsPerMinute?: number | undefined;
|
|
653
|
+
requestsPerSecond?: number | undefined;
|
|
654
|
+
maxConcurrentRequests?: number | undefined;
|
|
655
|
+
safetyMargin?: number | undefined;
|
|
656
|
+
};
|
|
657
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
658
|
+
}[];
|
|
659
|
+
perTenant?: {
|
|
660
|
+
limits: {
|
|
661
|
+
tokensPerMinute?: number | undefined;
|
|
662
|
+
requestsPerMinute?: number | undefined;
|
|
663
|
+
requestsPerSecond?: number | undefined;
|
|
664
|
+
maxConcurrentRequests?: number | undefined;
|
|
665
|
+
safetyMargin?: number | undefined;
|
|
666
|
+
};
|
|
667
|
+
enabled: boolean;
|
|
668
|
+
} | undefined;
|
|
669
|
+
}, {
|
|
670
|
+
enabled?: boolean | undefined;
|
|
671
|
+
perService?: Record<string, {
|
|
672
|
+
tokensPerMinute?: number | undefined;
|
|
673
|
+
requestsPerMinute?: number | undefined;
|
|
674
|
+
requestsPerSecond?: number | undefined;
|
|
675
|
+
maxConcurrentRequests?: number | undefined;
|
|
676
|
+
safetyMargin?: number | undefined;
|
|
677
|
+
}> | undefined;
|
|
678
|
+
perRoute?: {
|
|
679
|
+
resource: string;
|
|
680
|
+
pathPrefix: string;
|
|
681
|
+
limits: {
|
|
682
|
+
tokensPerMinute?: number | undefined;
|
|
683
|
+
requestsPerMinute?: number | undefined;
|
|
684
|
+
requestsPerSecond?: number | undefined;
|
|
685
|
+
maxConcurrentRequests?: number | undefined;
|
|
686
|
+
safetyMargin?: number | undefined;
|
|
687
|
+
};
|
|
688
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
689
|
+
}[] | undefined;
|
|
690
|
+
perTenant?: {
|
|
691
|
+
limits: {
|
|
692
|
+
tokensPerMinute?: number | undefined;
|
|
693
|
+
requestsPerMinute?: number | undefined;
|
|
694
|
+
requestsPerSecond?: number | undefined;
|
|
695
|
+
maxConcurrentRequests?: number | undefined;
|
|
696
|
+
safetyMargin?: number | undefined;
|
|
697
|
+
};
|
|
698
|
+
enabled?: boolean | undefined;
|
|
699
|
+
} | undefined;
|
|
700
|
+
}>>;
|
|
701
|
+
/** User auth configuration (ADR-0020). */
|
|
702
|
+
auth: z.ZodOptional<z.ZodObject<{
|
|
703
|
+
/**
|
|
704
|
+
* Whether authentication is enforced. Default true (cloud/team).
|
|
705
|
+
* When false (solo/local mode) the gateway runs every request as a local
|
|
706
|
+
* admin and Studio opens without login. The startup guardrail refuses to
|
|
707
|
+
* start with auth disabled on a non-loopback bind (B-023).
|
|
708
|
+
*/
|
|
709
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
710
|
+
/** Whether to set Secure flag on session cookies. Set false in dev only. */
|
|
711
|
+
cookieSecure: z.ZodDefault<z.ZodBoolean>;
|
|
712
|
+
/** Access token TTL in seconds. Default 15 min. */
|
|
713
|
+
sessionAccessTtlSec: z.ZodDefault<z.ZodNumber>;
|
|
714
|
+
/** Refresh token TTL in seconds. Default 30 days. */
|
|
715
|
+
sessionRefreshTtlSec: z.ZodDefault<z.ZodNumber>;
|
|
716
|
+
/** Grace window for refresh token reuse detection (CD-5). */
|
|
717
|
+
refreshGraceWindowSec: z.ZodDefault<z.ZodNumber>;
|
|
718
|
+
/** bcrypt cost factor for password hashing. */
|
|
719
|
+
bcryptCost: z.ZodDefault<z.ZodNumber>;
|
|
720
|
+
passwordPolicy: z.ZodDefault<z.ZodObject<{
|
|
721
|
+
minLength: z.ZodDefault<z.ZodNumber>;
|
|
722
|
+
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
723
|
+
/** When true, new passwords are checked against the HaveIBeenPwned API. */
|
|
724
|
+
hibpEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
725
|
+
}, "strip", z.ZodTypeAny, {
|
|
726
|
+
minLength: number;
|
|
727
|
+
maxLength: number;
|
|
728
|
+
hibpEnabled: boolean;
|
|
729
|
+
}, {
|
|
730
|
+
minLength?: number | undefined;
|
|
731
|
+
maxLength?: number | undefined;
|
|
732
|
+
hibpEnabled?: boolean | undefined;
|
|
733
|
+
}>>;
|
|
734
|
+
rateLimit: z.ZodDefault<z.ZodObject<{
|
|
735
|
+
/** Max failed login attempts per IP per minute before 429. */
|
|
736
|
+
loginPerIpPerMinute: z.ZodDefault<z.ZodNumber>;
|
|
737
|
+
/** Max failed login attempts for a single email per minute (across all IPs). */
|
|
738
|
+
loginPerEmailPerMinute: z.ZodDefault<z.ZodNumber>;
|
|
739
|
+
/** Max activation attempts per IP per hour. */
|
|
740
|
+
activatePerIpPerHour: z.ZodDefault<z.ZodNumber>;
|
|
741
|
+
}, "strip", z.ZodTypeAny, {
|
|
742
|
+
loginPerIpPerMinute: number;
|
|
743
|
+
loginPerEmailPerMinute: number;
|
|
744
|
+
activatePerIpPerHour: number;
|
|
745
|
+
}, {
|
|
746
|
+
loginPerIpPerMinute?: number | undefined;
|
|
747
|
+
loginPerEmailPerMinute?: number | undefined;
|
|
748
|
+
activatePerIpPerHour?: number | undefined;
|
|
749
|
+
}>>;
|
|
750
|
+
/** Invite link TTL in milliseconds. Default 7 days. */
|
|
751
|
+
inviteTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
752
|
+
/** Bootstrap admin account seeding. Credentials come from env vars. */
|
|
753
|
+
bootstrap: z.ZodOptional<z.ZodObject<{
|
|
754
|
+
/** Tenant ID for the bootstrap admin account (used in subdomain routing). */
|
|
755
|
+
tenantId: z.ZodString;
|
|
756
|
+
/** Admin email — also readable from env GATEWAY_BOOTSTRAP_ADMIN_EMAIL. */
|
|
757
|
+
adminEmail: z.ZodOptional<z.ZodString>;
|
|
758
|
+
}, "strip", z.ZodTypeAny, {
|
|
759
|
+
tenantId: string;
|
|
760
|
+
adminEmail?: string | undefined;
|
|
761
|
+
}, {
|
|
762
|
+
tenantId: string;
|
|
763
|
+
adminEmail?: string | undefined;
|
|
764
|
+
}>>;
|
|
765
|
+
/**
|
|
766
|
+
* Identity providers to load, keyed by instance id (ADR-0020 DD-4).
|
|
767
|
+
*
|
|
768
|
+
* Each entry carries a discriminating `type` (built-in `email-password`
|
|
769
|
+
* / `oidc`, or a package name for third-party providers). Everything
|
|
770
|
+
* else passes through so each provider validates its own slice with its
|
|
771
|
+
* own zod schema. Omitting `providers` registers the built-in
|
|
772
|
+
* `email-password` provider as the default (DD-3).
|
|
773
|
+
*/
|
|
774
|
+
providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
775
|
+
type: z.ZodString;
|
|
776
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
777
|
+
type: z.ZodString;
|
|
778
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
779
|
+
type: z.ZodString;
|
|
780
|
+
}, z.ZodTypeAny, "passthrough">>>>;
|
|
781
|
+
}, "strip", z.ZodTypeAny, {
|
|
782
|
+
enabled: boolean;
|
|
783
|
+
cookieSecure: boolean;
|
|
784
|
+
sessionAccessTtlSec: number;
|
|
785
|
+
sessionRefreshTtlSec: number;
|
|
786
|
+
refreshGraceWindowSec: number;
|
|
787
|
+
bcryptCost: number;
|
|
788
|
+
passwordPolicy: {
|
|
789
|
+
minLength: number;
|
|
790
|
+
maxLength: number;
|
|
791
|
+
hibpEnabled: boolean;
|
|
792
|
+
};
|
|
793
|
+
rateLimit: {
|
|
794
|
+
loginPerIpPerMinute: number;
|
|
795
|
+
loginPerEmailPerMinute: number;
|
|
796
|
+
activatePerIpPerHour: number;
|
|
797
|
+
};
|
|
798
|
+
inviteTtlMs: number;
|
|
799
|
+
bootstrap?: {
|
|
800
|
+
tenantId: string;
|
|
801
|
+
adminEmail?: string | undefined;
|
|
802
|
+
} | undefined;
|
|
803
|
+
providers?: Record<string, z.objectOutputType<{
|
|
804
|
+
type: z.ZodString;
|
|
805
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
806
|
+
}, {
|
|
807
|
+
enabled?: boolean | undefined;
|
|
808
|
+
cookieSecure?: boolean | undefined;
|
|
809
|
+
sessionAccessTtlSec?: number | undefined;
|
|
810
|
+
sessionRefreshTtlSec?: number | undefined;
|
|
811
|
+
refreshGraceWindowSec?: number | undefined;
|
|
812
|
+
bcryptCost?: number | undefined;
|
|
813
|
+
passwordPolicy?: {
|
|
814
|
+
minLength?: number | undefined;
|
|
815
|
+
maxLength?: number | undefined;
|
|
816
|
+
hibpEnabled?: boolean | undefined;
|
|
817
|
+
} | undefined;
|
|
818
|
+
rateLimit?: {
|
|
819
|
+
loginPerIpPerMinute?: number | undefined;
|
|
820
|
+
loginPerEmailPerMinute?: number | undefined;
|
|
821
|
+
activatePerIpPerHour?: number | undefined;
|
|
822
|
+
} | undefined;
|
|
823
|
+
inviteTtlMs?: number | undefined;
|
|
824
|
+
bootstrap?: {
|
|
825
|
+
tenantId: string;
|
|
826
|
+
adminEmail?: string | undefined;
|
|
827
|
+
} | undefined;
|
|
828
|
+
providers?: Record<string, z.objectInputType<{
|
|
829
|
+
type: z.ZodString;
|
|
830
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
831
|
+
}>>;
|
|
832
|
+
/** Tenant routing configuration. */
|
|
833
|
+
tenants: z.ZodOptional<z.ZodObject<{
|
|
834
|
+
/**
|
|
835
|
+
* Subdomain pattern used to resolve tenant from the Host header.
|
|
836
|
+
* Use `{tenant}` as placeholder. E.g. `"{tenant}.kblabs.ru"`.
|
|
837
|
+
*/
|
|
838
|
+
pattern: z.ZodDefault<z.ZodString>;
|
|
839
|
+
}, "strip", z.ZodTypeAny, {
|
|
840
|
+
pattern: string;
|
|
841
|
+
}, {
|
|
842
|
+
pattern?: string | undefined;
|
|
843
|
+
}>>;
|
|
76
844
|
}, "strip", z.ZodTypeAny, {
|
|
77
845
|
port: number;
|
|
78
846
|
upstreams: Record<string, {
|
|
79
|
-
|
|
847
|
+
serviceId: string;
|
|
80
848
|
prefix: string;
|
|
81
849
|
rewritePrefix?: string | undefined;
|
|
82
850
|
websocket?: boolean | undefined;
|
|
@@ -87,10 +855,73 @@ declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
87
855
|
hostId: string;
|
|
88
856
|
namespaceId: string;
|
|
89
857
|
}>;
|
|
858
|
+
host?: string | undefined;
|
|
859
|
+
pressure?: {
|
|
860
|
+
enabled: boolean;
|
|
861
|
+
perService: Record<string, {
|
|
862
|
+
tokensPerMinute?: number | undefined;
|
|
863
|
+
requestsPerMinute?: number | undefined;
|
|
864
|
+
requestsPerSecond?: number | undefined;
|
|
865
|
+
maxConcurrentRequests?: number | undefined;
|
|
866
|
+
safetyMargin?: number | undefined;
|
|
867
|
+
}>;
|
|
868
|
+
perRoute: {
|
|
869
|
+
resource: string;
|
|
870
|
+
pathPrefix: string;
|
|
871
|
+
limits: {
|
|
872
|
+
tokensPerMinute?: number | undefined;
|
|
873
|
+
requestsPerMinute?: number | undefined;
|
|
874
|
+
requestsPerSecond?: number | undefined;
|
|
875
|
+
maxConcurrentRequests?: number | undefined;
|
|
876
|
+
safetyMargin?: number | undefined;
|
|
877
|
+
};
|
|
878
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
879
|
+
}[];
|
|
880
|
+
perTenant?: {
|
|
881
|
+
limits: {
|
|
882
|
+
tokensPerMinute?: number | undefined;
|
|
883
|
+
requestsPerMinute?: number | undefined;
|
|
884
|
+
requestsPerSecond?: number | undefined;
|
|
885
|
+
maxConcurrentRequests?: number | undefined;
|
|
886
|
+
safetyMargin?: number | undefined;
|
|
887
|
+
};
|
|
888
|
+
enabled: boolean;
|
|
889
|
+
} | undefined;
|
|
890
|
+
} | undefined;
|
|
891
|
+
auth?: {
|
|
892
|
+
enabled: boolean;
|
|
893
|
+
cookieSecure: boolean;
|
|
894
|
+
sessionAccessTtlSec: number;
|
|
895
|
+
sessionRefreshTtlSec: number;
|
|
896
|
+
refreshGraceWindowSec: number;
|
|
897
|
+
bcryptCost: number;
|
|
898
|
+
passwordPolicy: {
|
|
899
|
+
minLength: number;
|
|
900
|
+
maxLength: number;
|
|
901
|
+
hibpEnabled: boolean;
|
|
902
|
+
};
|
|
903
|
+
rateLimit: {
|
|
904
|
+
loginPerIpPerMinute: number;
|
|
905
|
+
loginPerEmailPerMinute: number;
|
|
906
|
+
activatePerIpPerHour: number;
|
|
907
|
+
};
|
|
908
|
+
inviteTtlMs: number;
|
|
909
|
+
bootstrap?: {
|
|
910
|
+
tenantId: string;
|
|
911
|
+
adminEmail?: string | undefined;
|
|
912
|
+
} | undefined;
|
|
913
|
+
providers?: Record<string, z.objectOutputType<{
|
|
914
|
+
type: z.ZodString;
|
|
915
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
916
|
+
} | undefined;
|
|
917
|
+
tenants?: {
|
|
918
|
+
pattern: string;
|
|
919
|
+
} | undefined;
|
|
90
920
|
}, {
|
|
91
921
|
port?: number | undefined;
|
|
922
|
+
host?: string | undefined;
|
|
92
923
|
upstreams?: Record<string, {
|
|
93
|
-
|
|
924
|
+
serviceId: string;
|
|
94
925
|
prefix: string;
|
|
95
926
|
rewritePrefix?: string | undefined;
|
|
96
927
|
websocket?: boolean | undefined;
|
|
@@ -101,8 +932,75 @@ declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
101
932
|
hostId: string;
|
|
102
933
|
namespaceId: string;
|
|
103
934
|
}> | undefined;
|
|
935
|
+
pressure?: {
|
|
936
|
+
enabled?: boolean | undefined;
|
|
937
|
+
perService?: Record<string, {
|
|
938
|
+
tokensPerMinute?: number | undefined;
|
|
939
|
+
requestsPerMinute?: number | undefined;
|
|
940
|
+
requestsPerSecond?: number | undefined;
|
|
941
|
+
maxConcurrentRequests?: number | undefined;
|
|
942
|
+
safetyMargin?: number | undefined;
|
|
943
|
+
}> | undefined;
|
|
944
|
+
perRoute?: {
|
|
945
|
+
resource: string;
|
|
946
|
+
pathPrefix: string;
|
|
947
|
+
limits: {
|
|
948
|
+
tokensPerMinute?: number | undefined;
|
|
949
|
+
requestsPerMinute?: number | undefined;
|
|
950
|
+
requestsPerSecond?: number | undefined;
|
|
951
|
+
maxConcurrentRequests?: number | undefined;
|
|
952
|
+
safetyMargin?: number | undefined;
|
|
953
|
+
};
|
|
954
|
+
methods?: ("GET" | "POST" | "PUT" | "PATCH" | "DELETE")[] | undefined;
|
|
955
|
+
}[] | undefined;
|
|
956
|
+
perTenant?: {
|
|
957
|
+
limits: {
|
|
958
|
+
tokensPerMinute?: number | undefined;
|
|
959
|
+
requestsPerMinute?: number | undefined;
|
|
960
|
+
requestsPerSecond?: number | undefined;
|
|
961
|
+
maxConcurrentRequests?: number | undefined;
|
|
962
|
+
safetyMargin?: number | undefined;
|
|
963
|
+
};
|
|
964
|
+
enabled?: boolean | undefined;
|
|
965
|
+
} | undefined;
|
|
966
|
+
} | undefined;
|
|
967
|
+
auth?: {
|
|
968
|
+
enabled?: boolean | undefined;
|
|
969
|
+
cookieSecure?: boolean | undefined;
|
|
970
|
+
sessionAccessTtlSec?: number | undefined;
|
|
971
|
+
sessionRefreshTtlSec?: number | undefined;
|
|
972
|
+
refreshGraceWindowSec?: number | undefined;
|
|
973
|
+
bcryptCost?: number | undefined;
|
|
974
|
+
passwordPolicy?: {
|
|
975
|
+
minLength?: number | undefined;
|
|
976
|
+
maxLength?: number | undefined;
|
|
977
|
+
hibpEnabled?: boolean | undefined;
|
|
978
|
+
} | undefined;
|
|
979
|
+
rateLimit?: {
|
|
980
|
+
loginPerIpPerMinute?: number | undefined;
|
|
981
|
+
loginPerEmailPerMinute?: number | undefined;
|
|
982
|
+
activatePerIpPerHour?: number | undefined;
|
|
983
|
+
} | undefined;
|
|
984
|
+
inviteTtlMs?: number | undefined;
|
|
985
|
+
bootstrap?: {
|
|
986
|
+
tenantId: string;
|
|
987
|
+
adminEmail?: string | undefined;
|
|
988
|
+
} | undefined;
|
|
989
|
+
providers?: Record<string, z.objectInputType<{
|
|
990
|
+
type: z.ZodString;
|
|
991
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
992
|
+
} | undefined;
|
|
993
|
+
tenants?: {
|
|
994
|
+
pattern?: string | undefined;
|
|
995
|
+
} | undefined;
|
|
104
996
|
}>;
|
|
997
|
+
type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;
|
|
998
|
+
type PressureRouteOverride = z.infer<typeof PressureRouteOverrideSchema>;
|
|
999
|
+
type PressureTenantConfig = z.infer<typeof PressureTenantConfigSchema>;
|
|
1000
|
+
type PressureConfig = z.infer<typeof PressureConfigSchema>;
|
|
105
1001
|
type UpstreamConfig = z.infer<typeof UpstreamConfigSchema>;
|
|
1002
|
+
type AuthConfig = z.infer<typeof AuthConfigSchema>;
|
|
1003
|
+
type TenantsConfig = z.infer<typeof TenantsConfigSchema>;
|
|
106
1004
|
type GatewayConfig = z.infer<typeof GatewayConfigSchema>;
|
|
107
1005
|
|
|
108
1006
|
declare const HostCapabilitySchema: z.ZodEnum<["filesystem", "git", "editor-context", "execution"]>;
|
|
@@ -280,14 +1178,22 @@ declare const RegisterRequestSchema: z.ZodObject<{
|
|
|
280
1178
|
* Generated by the agent; the server stores it for encrypting call payloads.
|
|
281
1179
|
*/
|
|
282
1180
|
publicKey: z.ZodOptional<z.ZodString>;
|
|
1181
|
+
/** Unique author handle for the marketplace (e.g. "kirill"). Lowercase letters, digits, hyphens. */
|
|
1182
|
+
handle: z.ZodOptional<z.ZodString>;
|
|
1183
|
+
/** Contact email for the author. */
|
|
1184
|
+
email: z.ZodOptional<z.ZodString>;
|
|
283
1185
|
}, "strip", z.ZodTypeAny, {
|
|
284
1186
|
capabilities: string[];
|
|
285
1187
|
name: string;
|
|
286
1188
|
publicKey?: string | undefined;
|
|
1189
|
+
handle?: string | undefined;
|
|
1190
|
+
email?: string | undefined;
|
|
287
1191
|
}, {
|
|
288
1192
|
name: string;
|
|
289
1193
|
capabilities?: string[] | undefined;
|
|
290
1194
|
publicKey?: string | undefined;
|
|
1195
|
+
handle?: string | undefined;
|
|
1196
|
+
email?: string | undefined;
|
|
291
1197
|
}>;
|
|
292
1198
|
declare const RegisterResponseSchema: z.ZodObject<{
|
|
293
1199
|
clientId: z.ZodString;
|
|
@@ -295,16 +1201,19 @@ declare const RegisterResponseSchema: z.ZodObject<{
|
|
|
295
1201
|
hostId: z.ZodString;
|
|
296
1202
|
/** Server-assigned namespace — use this in subsequent API calls. */
|
|
297
1203
|
namespaceId: z.ZodString;
|
|
1204
|
+
handle: z.ZodOptional<z.ZodString>;
|
|
298
1205
|
}, "strip", z.ZodTypeAny, {
|
|
299
1206
|
hostId: string;
|
|
300
1207
|
namespaceId: string;
|
|
301
1208
|
clientId: string;
|
|
302
1209
|
clientSecret: string;
|
|
1210
|
+
handle?: string | undefined;
|
|
303
1211
|
}, {
|
|
304
1212
|
hostId: string;
|
|
305
1213
|
namespaceId: string;
|
|
306
1214
|
clientId: string;
|
|
307
1215
|
clientSecret: string;
|
|
1216
|
+
handle?: string | undefined;
|
|
308
1217
|
}>;
|
|
309
1218
|
declare const TokenRequestSchema: z.ZodObject<{
|
|
310
1219
|
clientId: z.ZodString;
|
|
@@ -346,6 +1255,8 @@ declare const JwtPayloadSchema: z.ZodObject<{
|
|
|
346
1255
|
namespaceId: z.ZodString;
|
|
347
1256
|
tier: z.ZodEnum<["free", "pro", "enterprise"]>;
|
|
348
1257
|
type: z.ZodEnum<["user", "cli", "machine"]>;
|
|
1258
|
+
/** Permissions embedded in the token at issuance time. */
|
|
1259
|
+
permissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
349
1260
|
iat: z.ZodNumber;
|
|
350
1261
|
exp: z.ZodNumber;
|
|
351
1262
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -355,6 +1266,7 @@ declare const JwtPayloadSchema: z.ZodObject<{
|
|
|
355
1266
|
sub: string;
|
|
356
1267
|
iat: number;
|
|
357
1268
|
exp: number;
|
|
1269
|
+
permissions?: string[] | undefined;
|
|
358
1270
|
}, {
|
|
359
1271
|
type: "user" | "cli" | "machine";
|
|
360
1272
|
namespaceId: string;
|
|
@@ -362,6 +1274,7 @@ declare const JwtPayloadSchema: z.ZodObject<{
|
|
|
362
1274
|
sub: string;
|
|
363
1275
|
iat: number;
|
|
364
1276
|
exp: number;
|
|
1277
|
+
permissions?: string[] | undefined;
|
|
365
1278
|
}>;
|
|
366
1279
|
type RegisterRequest = z.infer<typeof RegisterRequestSchema>;
|
|
367
1280
|
type RegisterResponse = z.infer<typeof RegisterResponseSchema>;
|
|
@@ -711,20 +1624,20 @@ declare const ExecutionArtifactSchema: z.ZodObject<{
|
|
|
711
1624
|
url: z.ZodString;
|
|
712
1625
|
sizeBytes: z.ZodOptional<z.ZodNumber>;
|
|
713
1626
|
}, "strip", z.ZodTypeAny, {
|
|
714
|
-
url: string;
|
|
715
1627
|
type: "execution:artifact";
|
|
716
1628
|
requestId: string;
|
|
717
1629
|
executionId: string;
|
|
718
1630
|
name: string;
|
|
719
1631
|
mime: string;
|
|
1632
|
+
url: string;
|
|
720
1633
|
sizeBytes?: number | undefined;
|
|
721
1634
|
}, {
|
|
722
|
-
url: string;
|
|
723
1635
|
type: "execution:artifact";
|
|
724
1636
|
requestId: string;
|
|
725
1637
|
executionId: string;
|
|
726
1638
|
name: string;
|
|
727
1639
|
mime: string;
|
|
1640
|
+
url: string;
|
|
728
1641
|
sizeBytes?: number | undefined;
|
|
729
1642
|
}>;
|
|
730
1643
|
declare const ExecutionErrorEventSchema: z.ZodObject<{
|
|
@@ -1643,4 +2556,4 @@ interface PlatformCallResponse {
|
|
|
1643
2556
|
durationMs: number;
|
|
1644
2557
|
}
|
|
1645
2558
|
|
|
1646
|
-
export { type AckMessage, AckMessageSchema, type AdapterCallContext, AdapterCallContextSchema, type AdapterCallMessage, AdapterCallMessageSchema, type AdapterCancelMessage, AdapterCancelMessageSchema, type AdapterChunkMessage, AdapterChunkMessageSchema, type AdapterErrorMessage, AdapterErrorMessageSchema, type AdapterName, AdapterNameSchema, type AdapterResponseMessage, AdapterResponseMessageSchema, type AuthContext, AuthContextSchema, type BulkRedirectMessage, BulkRedirectMessageSchema, CLIENT_PROTOCOL_VERSION, type CallMessage, CallMessageSchema, type CancelMessage, CancelMessageSchema, type ChatCompletionChoice, type ChatCompletionChunk, type ChatCompletionChunkDelta, type ChatCompletionRequest, ChatCompletionRequestSchema, type ChatCompletionResponse, type ChatCompletionUsage, ChatMessageSchema, ChatToolSchema, type ChunkMessage, ChunkMessageSchema, type ClientCancel, ClientCancelSchema, type ClientConnected, ClientConnectedSchema, type ClientError, ClientErrorSchema, type ClientHello, ClientHelloSchema, type ClientInboundMessage, type ClientOutboundMessage, type ClientSubscribe, ClientSubscribeSchema, type ClientUnsubscribe, ClientUnsubscribeSchema, type ConnectedMessage, ConnectedMessageSchema, type ErrorMessage, ErrorMessageSchema, type ExecuteRequest, ExecuteRequestSchema, type ExecutionArtifactMessage, ExecutionArtifactSchema, type ExecutionCancelledMessage, ExecutionCancelledSchema, type ExecutionDoneMessage, ExecutionDoneSchema, type ExecutionErrorEventMessage, ExecutionErrorEventSchema, type ExecutionEventMessage, type ExecutionOutputMessage, ExecutionOutputSchema, type ExecutionProgressMessage, ExecutionProgressSchema, type ExecutionRetryMessage, ExecutionRetrySchema, type GatewayConfig, GatewayConfigSchema, type HeartbeatMessage, HeartbeatMessageSchema, type HelloMessage, HelloMessageSchema, type HostCapability, HostCapabilitySchema, type HostDescriptor, HostDescriptorSchema, type HostRegisterResponse, HostRegisterResponseSchema, type HostRegistration, HostRegistrationSchema, type HostStatus, HostStatusSchema, type HostType, HostTypeSchema, type IHostStore, type InboundMessage, type JwtPayload, JwtPayloadSchema, LLMTierSchema, type NegotiateMessage, NegotiateMessageSchema, type OutboundMessage, type PlatformCallRequest, PlatformCallRequestSchema, type PlatformCallResponse, type PluginInfo, PluginInfoSchema, type RefreshRequest, RefreshRequestSchema, type RegisterRequest, RegisterRequestSchema, type RegisterResponse, RegisterResponseSchema, type ResultMessage, ResultMessageSchema, SUPPORTED_PROTOCOL_VERSIONS, type SerializedError, SerializedErrorSchema, StaticTokenEntrySchema, type SubscribeMessage, SubscribeMessageSchema, type TelemetryEvent, TelemetryEventSchema, type TelemetryIngestRequest, TelemetryIngestRequestSchema, type TelemetryIngestResponse, type TokenRequest, TokenRequestSchema, type TokenResponse, TokenResponseSchema, type TokenType, TokenTypeSchema, type TraceContext, TraceContextSchema, type UnsubscribeMessage, UnsubscribeMessageSchema, type UpstreamConfig, UpstreamConfigSchema, type WorkspaceInfo, WorkspaceInfoSchema };
|
|
2559
|
+
export { type AckMessage, AckMessageSchema, type AdapterCallContext, AdapterCallContextSchema, type AdapterCallMessage, AdapterCallMessageSchema, type AdapterCancelMessage, AdapterCancelMessageSchema, type AdapterChunkMessage, AdapterChunkMessageSchema, type AdapterErrorMessage, AdapterErrorMessageSchema, type AdapterName, AdapterNameSchema, type AdapterResponseMessage, AdapterResponseMessageSchema, type AuthConfig, AuthConfigSchema, type AuthContext, AuthContextSchema, type BulkRedirectMessage, BulkRedirectMessageSchema, CLIENT_PROTOCOL_VERSION, type CallMessage, CallMessageSchema, type CancelMessage, CancelMessageSchema, type ChatCompletionChoice, type ChatCompletionChunk, type ChatCompletionChunkDelta, type ChatCompletionRequest, ChatCompletionRequestSchema, type ChatCompletionResponse, type ChatCompletionUsage, ChatMessageSchema, ChatToolSchema, type ChunkMessage, ChunkMessageSchema, type ClientCancel, ClientCancelSchema, type ClientConnected, ClientConnectedSchema, type ClientError, ClientErrorSchema, type ClientHello, ClientHelloSchema, type ClientInboundMessage, type ClientOutboundMessage, type ClientSubscribe, ClientSubscribeSchema, type ClientUnsubscribe, ClientUnsubscribeSchema, type ConnectedMessage, ConnectedMessageSchema, type ErrorMessage, ErrorMessageSchema, type ExecuteRequest, ExecuteRequestSchema, type ExecutionArtifactMessage, ExecutionArtifactSchema, type ExecutionCancelledMessage, ExecutionCancelledSchema, type ExecutionDoneMessage, ExecutionDoneSchema, type ExecutionErrorEventMessage, ExecutionErrorEventSchema, type ExecutionEventMessage, type ExecutionOutputMessage, ExecutionOutputSchema, type ExecutionProgressMessage, ExecutionProgressSchema, type ExecutionRetryMessage, ExecutionRetrySchema, type GatewayConfig, GatewayConfigSchema, type HeartbeatMessage, HeartbeatMessageSchema, type HelloMessage, HelloMessageSchema, type HostCapability, HostCapabilitySchema, type HostDescriptor, HostDescriptorSchema, type HostRegisterResponse, HostRegisterResponseSchema, type HostRegistration, HostRegistrationSchema, type HostStatus, HostStatusSchema, type HostType, HostTypeSchema, type IHostStore, type InboundMessage, type JwtPayload, JwtPayloadSchema, LLMTierSchema, type NegotiateMessage, NegotiateMessageSchema, type OutboundMessage, type PlatformCallRequest, PlatformCallRequestSchema, type PlatformCallResponse, type PluginInfo, PluginInfoSchema, type PressureConfig, PressureConfigSchema, type PressureRouteOverride, PressureRouteOverrideSchema, type PressureTenantConfig, PressureTenantConfigSchema, type RateLimitConfig, RateLimitConfigSchema, type RefreshRequest, RefreshRequestSchema, type RegisterRequest, RegisterRequestSchema, type RegisterResponse, RegisterResponseSchema, type ResultMessage, ResultMessageSchema, SUPPORTED_PROTOCOL_VERSIONS, type SerializedError, SerializedErrorSchema, StaticTokenEntrySchema, type SubscribeMessage, SubscribeMessageSchema, type TelemetryEvent, TelemetryEventSchema, type TelemetryIngestRequest, TelemetryIngestRequestSchema, type TelemetryIngestResponse, type TenantsConfig, TenantsConfigSchema, type TokenRequest, TokenRequestSchema, type TokenResponse, TokenResponseSchema, type TokenType, TokenTypeSchema, type TraceContext, TraceContextSchema, type UnsubscribeMessage, UnsubscribeMessageSchema, type UpstreamConfig, UpstreamConfigSchema, type WorkspaceInfo, WorkspaceInfoSchema };
|