gemi 0.103.0 → 0.104.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.
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{h as N,j as q}from"./chunk-tcce63wk.js";import{ia as E,ja as w}from"./chunk-53we503k.js";import"./chunk-zq5m4scz.js";import"./chunk-9a8qz3s7.js";import"./chunk-gvkydx8r.js";import"./chunk-8z37k28d.js";import"./chunk-pfjr510h.js";import{Cf as _}from"./chunk-j9deswmn.js";import{Yg as y}from"./chunk-3m93v7bt.js";import"./chunk-1xzdexbq.js";import{join as KJ}from"path";import{createServer as QJ}from"vite";import{join as u}from"path";import{IncomingMessage as v,ServerResponse as l}from"http";import{Socket as d}from"net";function c(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
2
+ import{h as N,j as q}from"./chunk-ag8mk3p3.js";import{ia as E,ja as w}from"./chunk-53we503k.js";import"./chunk-zq5m4scz.js";import"./chunk-9a8qz3s7.js";import"./chunk-gvkydx8r.js";import"./chunk-8z37k28d.js";import"./chunk-pfjr510h.js";import{Cf as _}from"./chunk-j9deswmn.js";import{Yg as y}from"./chunk-3m93v7bt.js";import"./chunk-1xzdexbq.js";import{join as KJ}from"path";import{createServer as QJ}from"vite";import{join as u}from"path";import{IncomingMessage as v,ServerResponse as l}from"http";import{Socket as d}from"net";function c(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
3
3
  `).split(`
4
4
  `).map((K)=>K.trim()).filter((K)=>K.length>0).join(`
5
5
  `).trim()}function F(J){return`
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Mc as c,Nc as d,Oc as f,Pc as g,Qc as i,Rc as j,Sc as k,Tc as l,Uc as m,gd as n,hd as o,id as p,nc as a}from"../chunk-g8qp01t6.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{mf as b,uf as e,wf as h}from"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";export{g as Url,e as Storage,k as Redis,a as Redirect,l as RateLimiter,f as Query,i as Meta,h as Log,m as Lock,d as Lang,n as Features,b as Facade,p as DB,j as Cookie,o as ConnectionQueries,c as Auth};
2
+ import{Mc as c,Nc as d,Oc as f,Pc as g,Qc as i,Rc as j,Sc as k,Tc as l,Uc as m,gd as n,hd as o,id as p,nc as a}from"../chunk-mp3sxvcv.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{mf as b,uf as e,wf as h}from"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";export{g as Url,e as Storage,k as Redis,a as Redirect,l as RateLimiter,f as Query,i as Meta,h as Log,m as Lock,d as Lang,n as Features,b as Facade,p as DB,j as Cookie,o as ConnectionQueries,c as Auth};
3
3
 
4
4
  //# debugId=471B2B242ADD0B6764756E2164756E21
@@ -1,6 +1,7 @@
1
1
  import type { ToolContext } from "../ai/Agent";
2
2
  import type { AnySchema, Infer, Schema } from "../ai/Schema";
3
3
  import type { UrlParser } from "../client/types";
4
+ import type { Prettify } from "../utils/type";
4
5
  import type { McpCallContext, McpCredentials } from "../services/mcp/McpRegistry";
5
6
  import type { ApiRouterHandler } from "./ApiRouter";
6
7
  import type { HttpRequest } from "./HttpRequest";
@@ -57,15 +58,23 @@ export type McpParamBinder = (req: HttpRequest<any, any>, call: McpCallContext)
57
58
  * Built with `McpRouter.param`, which is what types `bind`'s `value` from
58
59
  * `input`. See `McpModelParamOptions`.
59
60
  */
60
- export declare class McpModelParam<V = unknown> {
61
- /** The key in the tool's input schema, or `undefined` for the param's own name. */
62
- readonly as: string | undefined;
61
+ export declare class McpModelParam<V = unknown, As extends string | undefined = string | undefined> {
62
+ /**
63
+ * The key in the tool's input schema, or `undefined` for the param's own
64
+ * name. Kept as a literal in the type, which is what names the field in
65
+ * the tool's typed input (`McpToolInput`, #771).
66
+ */
67
+ readonly as: As;
63
68
  readonly input: AnySchema;
64
69
  readonly bind: McpModelParamResolver<V>;
65
70
  readonly __internal_brand = "McpModelParam";
66
71
  constructor(
67
- /** The key in the tool's input schema, or `undefined` for the param's own name. */
68
- as: string | undefined, input: AnySchema, bind: McpModelParamResolver<V>);
72
+ /**
73
+ * The key in the tool's input schema, or `undefined` for the param's own
74
+ * name. Kept as a literal in the type, which is what names the field in
75
+ * the tool's typed input (`McpToolInput`, #771).
76
+ */
77
+ as: As, input: AnySchema, bind: McpModelParamResolver<V>);
69
78
  }
70
79
  /**
71
80
  * Turns what the model sent for a model-facing param into the url segment.
@@ -81,13 +90,13 @@ export declare class McpModelParam<V = unknown> {
81
90
  */
82
91
  export type McpModelParamResolver<V> = (value: V, req: HttpRequest<any, any>, call: McpCallContext) => string | number | Promise<string | number>;
83
92
  /** What `McpRouter.param` takes. */
84
- export type McpModelParamOptions<S extends AnySchema> = {
93
+ export type McpModelParamOptions<S extends AnySchema, As extends string | undefined = string | undefined> = {
85
94
  /**
86
95
  * The field's name in the tool's input schema. Defaults to the param's own
87
96
  * name. It is never sent to the route, in the body or the query: it only
88
97
  * reaches `bind`, and `call.input`.
89
98
  */
90
- as?: string;
99
+ as?: As;
91
100
  /**
92
101
  * The field's schema, as the model sees it. Describe it here — it is the
93
102
  * only thing the model reads about the field:
@@ -118,8 +127,16 @@ type BodyOf<H> = H extends ApiRouterHandler<infer T, any, any> ? T : never;
118
127
  * What the route answers on success, as `useQuery` reads it. The registry
119
128
  * hands `result` the parsed JSON, so a `Date` in a handler's return arrives as
120
129
  * the string it was serialised to.
130
+ *
131
+ * Read off the return type alone. Matching `ApiRouterHandler<any, infer O,
132
+ * any, any>` instead goes through its `__error?: [Error]` parameter, which
133
+ * `strictFunctionTypes` checks contravariantly: `[any]` is not assignable to a
134
+ * route's `[never]`, so under `strict: true` no route matched and every
135
+ * `result` got `unknown` (#769). The RPC entry's return is already
136
+ * `ResponseData`, so an `HttpResponse` in it is unwrapped by the time it gets
137
+ * here. See `McpRouter.strict.test.ts`.
121
138
  */
122
- export type DataOf<H> = H extends ApiRouterHandler<any, infer O, any, any> ? Awaited<O> : unknown;
139
+ export type DataOf<H> = H extends (...args: any[]) => infer O ? Awaited<O> : unknown;
123
140
  /**
124
141
  * A body there is nothing to check against: a handler that never names its
125
142
  * request (`async list() {}` infers `unknown`), or one typed `any`. The meta
@@ -165,40 +182,54 @@ type InputCheck<I, B> = IsLoose<B> extends true ? unknown : I extends AnySchema
165
182
  } : unknown;
166
183
  type ParamsOf<K> = UrlParser<`${K & string}`>;
167
184
  /** One path param's declaration: bound, the model's raw segment, or the model's in its own terms. */
168
- export type McpParamDeclaration = McpParamBinder | "input" | McpModelParam<any>;
185
+ export type McpParamDeclaration = McpParamBinder | "input" | McpModelParam<any, any>;
169
186
  /**
170
187
  * Every path param is bound, `"input"` or a `this.param(...)`, and there is no
171
188
  * default: a param left for the model by omission is exactly the
172
189
  * tenant-isolation bug this field exists to prevent, so omitting one is a
173
190
  * compile error.
174
191
  */
175
- type ParamsMeta<K> = string extends keyof ParamsOf<K> ? {
192
+ type ParamsMeta<K, P> = string extends keyof ParamsOf<K> ? {
176
193
  params?: never;
177
194
  } : [keyof ParamsOf<K>] extends [never] ? {
178
195
  params?: never;
179
196
  } : {
180
- params: {
181
- [P in keyof ParamsOf<K>]-?: McpParamDeclaration;
182
- };
197
+ params: P & NoInfer<ParamsCheck<K, P>>;
198
+ };
199
+ /**
200
+ * `params` is inferred as `P`, so the tool's input type can tell `"input"` and
201
+ * `this.param(...)` apart from a binder (#771), and checked here: every param
202
+ * of the url declared, and nothing else.
203
+ */
204
+ type ParamsCheck<K, P> = {
205
+ [X in keyof ParamsOf<K>]-?: McpParamDeclaration;
206
+ } & {
207
+ [X in Exclude<keyof P, keyof ParamsOf<K>>]: never;
183
208
  };
184
209
  /**
185
210
  * Required for every binary field, and refused on a route that has none. For
186
211
  * a loose body the fields cannot be known, so any are accepted.
187
212
  */
188
- type FilesMeta<B> = IsLoose<B> extends true ? {
189
- files?: Record<string, McpFileBinder | "input">;
213
+ type FilesMeta<B, F> = IsLoose<B> extends true ? {
214
+ files?: F;
190
215
  } : [BinaryKeys<B>] extends [never] ? {
191
216
  files?: never;
192
217
  } : {
193
- files: {
194
- [F in BinaryKeys<B>]: McpFileBinder | "input";
195
- };
218
+ files: F & NoInfer<{
219
+ [X in BinaryKeys<B>]: McpFileBinder | "input";
220
+ } & {
221
+ [X in Exclude<keyof F, BinaryKeys<B>>]: never;
222
+ }>;
196
223
  };
197
- type MetaBase = {
224
+ type MetaBase<T> = {
198
225
  /** The only prose the model gets about this tool. */
199
226
  description: string;
200
- /** For `list`'s filter. Nothing in v1 filters, but the descriptor keeps them. */
201
- tags?: readonly string[];
227
+ /**
228
+ * For `McpRegistry.descriptors`' and `toAgentTools`' filter. Kept as
229
+ * literals in the type, so a typed `toAgentTools` filtered by tag answers
230
+ * only the tools carrying it (#771).
231
+ */
232
+ tags?: T;
202
233
  /**
203
234
  * Asks the user before an in-process agent runs this tool, as
204
235
  * `AgentTool.requiresApproval` does. Never set from the verb: a DELETE of a
@@ -256,7 +287,7 @@ type ResultReturn<O> = O extends AnySchema ? Infer<O> | Promise<Infer<O>> : unkn
256
287
  * it would have to be inferred from a context-sensitive function, and any
257
288
  * check that mentioned it beside `output` fixed it to its default first.
258
289
  */
259
- type ResultMeta<H, O> = {
290
+ type ResultMeta<H, O, RR> = {
260
291
  /**
261
292
  * Trims or reshapes the route's 2xx JSON before the model sees it.
262
293
  * Routes are written for a UI and answer whole records; a model needs a
@@ -270,7 +301,7 @@ type ResultMeta<H, O> = {
270
301
  * route wrote it. A throw is the server's failure, logged, and the model
271
302
  * is told only that the tool failed.
272
303
  */
273
- result: (data: DataOf<H>, call: McpResultContext) => ResultReturn<O>;
304
+ result: (data: DataOf<H>, call: McpResultContext) => [O] extends [undefined] ? RR : ResultReturn<O>;
274
305
  /**
275
306
  * The shape of what `result` returns. The return is parsed with it,
276
307
  * which drops every field it does not declare. It is the descriptor's
@@ -290,7 +321,26 @@ type ResultMeta<H, O> = {
290
321
  */
291
322
  output?: O & NoInfer<OutputCheck<O, DataOf<H>>>;
292
323
  };
293
- export type McpRouteMeta<H, K, I, O = undefined> = MetaBase & InputMeta<BodyOf<H>, I> & ParamsMeta<K> & FilesMeta<BodyOf<H>> & ResultMeta<H, O>;
324
+ export type McpRouteMeta<H, K, I, O = undefined, P = {}, F = {}, T = readonly string[], RR = never> = MetaBase<T> & InputMeta<BodyOf<H>, I> & ParamsMeta<K, P> & FilesMeta<BodyOf<H>, F> & ResultMeta<H, O, RR>;
325
+ /**
326
+ * What the model sends a tool, as the registry builds its `inputSchema`: the
327
+ * `input` schema's fields, a string for every `"input"` path param (optional
328
+ * when the url makes it optional) and every `"input"` file field, and the
329
+ * model-facing field of every `this.param(...)`, under its `as` or the param's
330
+ * own name. Bound params and files are not in it.
331
+ */
332
+ export type McpToolInput<I, K, P, F> = Prettify<([I] extends [undefined] ? {} : I extends AnySchema ? Infer<I> : {}) & {
333
+ [X in keyof ParamsOf<K> as X extends keyof P ? P[X] extends "input" ? X : never : never]: string;
334
+ } & {
335
+ -readonly [X in keyof P as P[X] extends McpModelParam<any, infer As> ? As extends undefined ? X : As : never]-?: P[X] extends McpModelParam<infer V, any> ? V : never;
336
+ } & {
337
+ -readonly [X in keyof F as F[X] extends "input" ? X : never]-?: string;
338
+ }>;
339
+ /**
340
+ * What a tool answers: what `output` describes when it is set, else what
341
+ * `result` returns when there is one, else the route's own answer.
342
+ */
343
+ export type McpToolOutput<H, O, RR> = [O] extends [undefined] ? [RR] extends [never] ? DataOf<H> : Awaited<RR> : O extends AnySchema ? Infer<O> : unknown;
294
344
  /** The runtime shape of a meta, generics erased. */
295
345
  export type McpRouteMetaRuntime = {
296
346
  description: string;
@@ -307,11 +357,20 @@ export type McpRouteMetaRuntime = {
307
357
  * data; the registry turns it into a tool descriptor once it can see the
308
358
  * route table.
309
359
  */
310
- export declare class McpRouteDeclaration<M extends McpMethod = McpMethod, K extends string = string> {
360
+ export declare class McpRouteDeclaration<M extends McpMethod = McpMethod, K extends string = string, Input = unknown, Output = unknown, Tags extends readonly string[] = readonly string[]> {
311
361
  readonly method: M;
312
362
  readonly url: K;
313
363
  readonly meta: McpRouteMetaRuntime;
314
364
  readonly __internal_brand = "McpRoute";
365
+ /**
366
+ * Types only, never set: the tool's input, output and tags, which
367
+ * `toAgentTools` reads off a typed router to type its `AgentTool`s (#771).
368
+ */
369
+ readonly __tool?: {
370
+ input: Input;
371
+ output: Output;
372
+ tags: Tags;
373
+ };
315
374
  constructor(method: M, url: K, meta: McpRouteMetaRuntime);
316
375
  }
317
376
  /**
@@ -394,8 +453,8 @@ export declare class McpRouter<R = McpRoutes> {
394
453
  * The result is plain data and can be shared by several tools: declare it as
395
454
  * a field above `routes` and use it in each.
396
455
  */
397
- param<S extends AnySchema>(options: McpModelParamOptions<S>): McpModelParam<Infer<S>>;
398
- fromApiRoute<M extends McpMethod, K extends keyof RoutesOf<R>[M] & string, I extends AnySchema | undefined = undefined, O extends AnySchema | undefined = undefined>(method: M, url: K, meta: McpRouteMeta<RoutesOf<R>[M][K], K, I, O>): McpRouteDeclaration<M, K>;
456
+ param<S extends AnySchema, const As extends string | undefined = undefined>(options: McpModelParamOptions<S, As>): McpModelParam<Infer<S>, As>;
457
+ fromApiRoute<M extends McpMethod, K extends keyof RoutesOf<R>[M] & string, I extends AnySchema | undefined = undefined, O extends AnySchema | undefined = undefined, const P extends Record<string, McpParamDeclaration> = {}, const F extends Record<string, McpFileBinder | "input"> = {}, const T extends readonly string[] = readonly [], RR = never>(method: M, url: K, meta: McpRouteMeta<RoutesOf<R>[M][K], K, I, O, P, F, T, RR>): McpRouteDeclaration<M, K, McpToolInput<I, K, P, F>, McpToolOutput<RoutesOf<R>[M][K], O, RR>, T>;
399
458
  }
400
459
  export {};
401
460
  //# sourceMappingURL=McpRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpRouter.d.ts","sourceRoot":"","sources":["../../http/McpRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpRouter.d.ts","sourceRoot":"","sources":["../../http/McpRouter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { Controller, ResourceController } from "./Controller";
2
2
  export { ApiRouter, type CreateRPC } from "./ApiRouter";
3
- export { McpRouter, McpRouteDeclaration, type McpFileBinder, type McpMethod, McpModelParam, type McpModelParamOptions, type McpModelParamResolver, type McpParamBinder, type McpParamDeclaration, type McpRouteMeta, type McpRoutes, } from "./McpRouter";
3
+ export { McpRouter, McpRouteDeclaration, type McpFileBinder, type McpMethod, McpModelParam, type McpModelParamOptions, type McpModelParamResolver, type McpParamBinder, type McpParamDeclaration, type McpRouteMeta, type McpRoutes, type McpToolInput, type McpToolOutput, } from "./McpRouter";
4
4
  export { createFileResponse, ViewRouter, type CreateViewRPC, type FileOutput, type ViewHandler, } from "./ViewRouter";
5
5
  export { toMiddlewareList, type MiddlewareInput } from "./middlewareList";
6
6
  export { createStreamResponse, createUnsatisfiableResponse, type StreamOutput, type StreamDescriptor, type StreamReadResult, } from "./createStreamResponse";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,UAAU,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ac as H,Bc as I,Gd as J,Hd as K,Id as L,Jd as M,Kd as N,Ld as O,gc as n,hc as o,ic as p,jc as v,kc as w,lc as x,mc as y,oc as z,pc as A,qc as B,rc as C,sc as D,tc as E,uc as F,zc as G}from"../chunk-g8qp01t6.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{Ne as a,Oe as b,Pe as d,Te as e,Ue as f,Ve as g,We as h,Xe as i,Ye as j,bf as k,cf as l,gf as m,hf as q,if as r,jf as s,kf as t,lf as u}from"../chunk-3cxbvrts.js";import{Af as c}from"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";export{g as toRangeHeaderValue,n as toMiddlewareList,f as resolveRange,e as parseRangeHeader,h as parseContentRange,F as middlewareConfigDefaults,A as httpError,d as getCookies,j as formatUnsatisfiedContentRange,i as formatContentRange,E as defineMiddlewareConfig,o as createUnsatisfiableResponse,p as createStreamResponse,B as createFileResponse,I as clientIp,C as ViewRouter,k as ValidationError,b as ResourceController,c as RequestBreakerError,H as RateLimitMiddleware,G as RateLimitExceededError,s as RangeNotSatisfiableError,N as PoliciesServiceProvider,O as Policies,D as Middleware,y as McpRouter,x as McpRouteDeclaration,w as McpModelParam,l as InvalidValidationRuleError,r as InsufficientPermissionsError,z as HttpResponse,m as HttpRequest,t as FileNotFoundError,L as CorsMiddleware,a as Controller,K as CacheMiddleware,M as CSRFMiddleware,q as AuthorizationError,J as AuthenticationMiddleware,u as AuthenticationError,v as ApiRouter};
2
+ import{Ac as H,Bc as I,Gd as J,Hd as K,Id as L,Jd as M,Kd as N,Ld as O,gc as n,hc as o,ic as p,jc as v,kc as w,lc as x,mc as y,oc as z,pc as A,qc as B,rc as C,sc as D,tc as E,uc as F,zc as G}from"../chunk-mp3sxvcv.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{Ne as a,Oe as b,Pe as d,Te as e,Ue as f,Ve as g,We as h,Xe as i,Ye as j,bf as k,cf as l,gf as m,hf as q,if as r,jf as s,kf as t,lf as u}from"../chunk-3cxbvrts.js";import{Af as c}from"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";export{g as toRangeHeaderValue,n as toMiddlewareList,f as resolveRange,e as parseRangeHeader,h as parseContentRange,F as middlewareConfigDefaults,A as httpError,d as getCookies,j as formatUnsatisfiedContentRange,i as formatContentRange,E as defineMiddlewareConfig,o as createUnsatisfiableResponse,p as createStreamResponse,B as createFileResponse,I as clientIp,C as ViewRouter,k as ValidationError,b as ResourceController,c as RequestBreakerError,H as RateLimitMiddleware,G as RateLimitExceededError,s as RangeNotSatisfiableError,N as PoliciesServiceProvider,O as Policies,D as Middleware,y as McpRouter,x as McpRouteDeclaration,w as McpModelParam,l as InvalidValidationRuleError,r as InsufficientPermissionsError,z as HttpResponse,m as HttpRequest,t as FileNotFoundError,L as CorsMiddleware,a as Controller,K as CacheMiddleware,M as CSRFMiddleware,q as AuthorizationError,J as AuthenticationMiddleware,u as AuthenticationError,v as ApiRouter};
3
3
 
4
4
  //# debugId=4F2BECB707D07B5C64756E2164756E21
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{aa as w}from"../chunk-sedwjgvf.js";import"../chunk-9a8qz3s7.js";import{Wa as b}from"../chunk-f2n21fef.js";import{dc as R,ec as S}from"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{Nc as j}from"../chunk-g8qp01t6.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import{Eg as X,Fg as E,Gg as V,Hg as L}from"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";import{createElement as J,Fragment as M,isValidElement as U}from"react";function $(q,B){let G=Object.values(B).some((z)=>typeof z==="function"&&U(z(""))),Q=/{{([^{}]+?)(?::([^{}\[\]]+?))?(?:\[(.*?)\])?}}/g;if(!G)return q.replace(Q,(W,O,_,Z)=>{let C=O.includes(":")?O.split(":")[0]:O,H=B[C];if(H===void 0)return W;if(typeof H==="function"){let K=H(Z!==void 0?Z:"");if(U(K))throw Error("JSX returned in string context");return String(K)}if(_)switch(_.toLowerCase()){case"number":return Number(H).toString();case"string":return String(H);case"boolean":return Boolean(H).toString();default:return String(H)}return String(H)});else{let z=[],W=0,O=null;while((O=Q.exec(q))!==null){let[_,Z,C,H]=O,F=O.index,K=Z.includes(":")?Z.split(":")[0]:Z;if(F>W)z.push(q.substring(W,F));let Y=B[K];if(Y===void 0)z.push(_);else if(typeof Y==="function"){let A=Y(H!==void 0?H:"");z.push(A)}else if(C)switch(C.toLowerCase()){case"number":z.push(Number(Y).toString());break;case"string":z.push(String(Y));break;case"boolean":z.push(Boolean(Y).toString());break;default:z.push(String(Y))}else z.push(String(Y));W=F+_.length}if(W<q.length)z.push(q.substring(W));return J(M,{},...z)}}class P{name;dictionary;constructor(q,B){this.name=q;this.dictionary=B}reference(q){if(typeof window<"u")throw Error("Cannot use reference in the browser");if(!this.dictionary?.[q])throw Error(`Translation not found for ${String(q)}`);return this.dictionary[q]}render(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B[0]};if(typeof window<"u")throw Error("Cannot use render in the browser");if(!this.dictionary?.[q]?.[G])throw Error(`Translation not found for ${String(q)} in ${String(G)}`);return $(this.dictionary[q][G],Q??{})}static create(q,B){return new P(q,B)}static text(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B?.[0]};if(!q?.[G])throw Error(`Translation not found for ${String(G)}`);return $(q[G],Q??{})}}async function N(q,B,...G){let{locale:Q=j.locale(),params:z}={params:{},...G[0]},O=(await q.load(String(Q)))[B];if(typeof O!=="string")throw Error(`Translation not found for "${B}" in "${String(Q)}" (dictionary ${q.id})`);return $(O,z??{})}export{S as translationConfigDefaults,N as translate,E as isValidTimeZone,R as defineTranslationConfig,w as defineDictionary,V as createFormatter,L as Translator,b as TranslationServiceProvider,P as Dictionary,X as DEFAULT_TIME_ZONE};
2
+ import{aa as w}from"../chunk-sedwjgvf.js";import"../chunk-9a8qz3s7.js";import{Wa as b}from"../chunk-f2n21fef.js";import{dc as R,ec as S}from"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{Nc as j}from"../chunk-mp3sxvcv.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import{Eg as X,Fg as E,Gg as V,Hg as L}from"../chunk-4f7n1r02.js";import"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";import{createElement as J,Fragment as M,isValidElement as U}from"react";function $(q,B){let G=Object.values(B).some((z)=>typeof z==="function"&&U(z(""))),Q=/{{([^{}]+?)(?::([^{}\[\]]+?))?(?:\[(.*?)\])?}}/g;if(!G)return q.replace(Q,(W,O,_,Z)=>{let C=O.includes(":")?O.split(":")[0]:O,H=B[C];if(H===void 0)return W;if(typeof H==="function"){let K=H(Z!==void 0?Z:"");if(U(K))throw Error("JSX returned in string context");return String(K)}if(_)switch(_.toLowerCase()){case"number":return Number(H).toString();case"string":return String(H);case"boolean":return Boolean(H).toString();default:return String(H)}return String(H)});else{let z=[],W=0,O=null;while((O=Q.exec(q))!==null){let[_,Z,C,H]=O,F=O.index,K=Z.includes(":")?Z.split(":")[0]:Z;if(F>W)z.push(q.substring(W,F));let Y=B[K];if(Y===void 0)z.push(_);else if(typeof Y==="function"){let A=Y(H!==void 0?H:"");z.push(A)}else if(C)switch(C.toLowerCase()){case"number":z.push(Number(Y).toString());break;case"string":z.push(String(Y));break;case"boolean":z.push(Boolean(Y).toString());break;default:z.push(String(Y))}else z.push(String(Y));W=F+_.length}if(W<q.length)z.push(q.substring(W));return J(M,{},...z)}}class P{name;dictionary;constructor(q,B){this.name=q;this.dictionary=B}reference(q){if(typeof window<"u")throw Error("Cannot use reference in the browser");if(!this.dictionary?.[q])throw Error(`Translation not found for ${String(q)}`);return this.dictionary[q]}render(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B[0]};if(typeof window<"u")throw Error("Cannot use render in the browser");if(!this.dictionary?.[q]?.[G])throw Error(`Translation not found for ${String(q)} in ${String(G)}`);return $(this.dictionary[q][G],Q??{})}static create(q,B){return new P(q,B)}static text(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B?.[0]};if(!q?.[G])throw Error(`Translation not found for ${String(G)}`);return $(q[G],Q??{})}}async function N(q,B,...G){let{locale:Q=j.locale(),params:z}={params:{},...G[0]},O=(await q.load(String(Q)))[B];if(typeof O!=="string")throw Error(`Translation not found for "${B}" in "${String(Q)}" (dictionary ${q.id})`);return $(O,z??{})}export{S as translationConfigDefaults,N as translate,E as isValidTimeZone,R as defineTranslationConfig,w as defineDictionary,V as createFormatter,L as Translator,b as TranslationServiceProvider,P as Dictionary,X as DEFAULT_TIME_ZONE};
3
3
 
4
4
  //# debugId=6EBD0BD09D520AA564756E2164756E21
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{ya as y}from"../chunk-jfnhzza6.js";import{Va as i}from"../chunk-bsq80942.js";import{Wa as g}from"../chunk-f2n21fef.js";import{$a as e,Za as T,_a as D,ab as A,bb as w,fb as P,gb as S,ib as h,jb as R,kb as u,lb as l,ob as v,pb as d,sb as c,vb as p,yb as n}from"../chunk-3e73zaft.js";import"../chunk-wc46df4w.js";import"../chunk-b1dqx3b9.js";import{_b as r}from"../chunk-18aqqrev.js";import"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{Ad as C,Bd as m,Cd as Q,Dd as t,Ed as o,Gc as Zj,Hc as $j,Kc as Gj,Lc as Hj,od as x,td as I,ud as E,xd as K,yd as M,zd as s}from"../chunk-g8qp01t6.js";import{Pd as a}from"../chunk-b0jpvp5t.js";import{ae as V,fe as f}from"../chunk-22k4b395.js";import{gf as F}from"../chunk-3cxbvrts.js";import{zf as B}from"../chunk-j9deswmn.js";import{Ff as L}from"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-zhk3z9zk.js";import"../chunk-4f7n1r02.js";import{Ig as _,Kg as N,Lg as b}from"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-yxh4xs3k.js";import"../chunk-ma5rmcbe.js";import{Yg as q}from"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";function Jj(j){let X=j.headers.get("Cache-Control")?.toLowerCase()??"";return/(^|[\s,])(public|s-maxage)\b/.test(X)}var Wj=new Set,Xj={refusal:null,apply:(j)=>j,carried:null};async function k(j){let X=b(x);if(X.config.global.length===0)return Xj;let{pathname:Z}=new URL(j.url),W=q(Z),z=new F(j,{},W?"api":"view","");return await L.run(z,async()=>{let $=L.getStore(),{headers:H,cookies:zj}=$,Y=(J)=>{if(!Jj(J))return Q(J,H,zj);let G=new Headers(H);return G.delete("Set-Cookie"),Q(J,G,Wj)};try{return await X.runGlobalMiddleware(),{refusal:null,apply:Y,carried:{user:$.user}}}catch(J){let G=!W&&Z.endsWith(".json");if(J?.kind===B){let O=W?m(J.payload.api):G?M(J.payload.viewData??J.payload.api):K(J.payload.view);return{refusal:Y(O),apply:Y,carried:null}}if(V(J)&&(W||G))return{refusal:Y(C()),apply:Y,carried:null};if(f(J)){console.error(J);let O=W||G?I():K(E());return{refusal:Y(O),apply:Y,carried:null}}throw J}finally{$.destroy()}})}var U=[l,d,y,P,n,A,S,v,R,D,h,p,u,g,c,w];class jj{config={};providers=[];services=[];serviceInstances=[];serviceTokens=new Set;servicesBooted=!1;models=[];app=new N;boot(){if(this.models.length>0)i(...this.models);else Yj();this.app.config.merge(this.config),N.setInstance(this.app),this.app.registerMany([...U,...this.providers]),this.registerServices()}registerServices(){let j=this.serviceTokens;this.serviceInstances=[],this.serviceTokens=new Set,this.servicesBooted=!1;let X=new Map;for(let Z of this.services){let W=typeof Z==="function"?new Z:Z,z=W.constructor;if(!z.token)throw Error(`Service [${z.name}] is listed in \`services\` but does not declare a \`static token\`.`);let $=X.get(z.token);if($)throw Error(`Services [${$}] and [${z.name}] both declare the token "${z.token}". Tokens are the container's keys, so they must be unique.`);X.set(z.token,z.name);let H=z;if(!j.has(z.token)&&this.app.bound(H))throw Error(`Service [${z.name}] declares the token "${z.token}", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`);this.app.instance(H,W),this.serviceInstances.push(W),this.serviceTokens.add(z.token)}}async waitForBoot(){await this.app.boot(),await this.bootServices(),e(this.app)}async bootServices(){if(this.servicesBooted)return;for(let j of this.serviceInstances)await j.boot();this.servicesBooted=!0}shutdown(j){return this.run(()=>this.app.shutdown(j))}run(j){return _.run(this.app,j)}resolve(j){return this.app.make(j)}apiRoutes(){return this.app.make(t)}viewRoutes(){return this.app.make(s)}domains(){return this.app.make(o)}queue(){return this.app.make(r)}globalMiddleware(j){return k(j)}destroy(){if(this.app.resolved(T))this.app.make(T).stop();if(this.app.flush(),N.getInstance()===this.app)N.setInstance(void 0);_.disable()}}function Yj(){if(Bun.env.NODE_ENV==="production")return;let j=a();if(j.length===0)return;console.warn(`[gemi] ${j.length} model${j.length===1?" is":"s are"} registered, but Kernel.models is empty.
2
+ import{ya as y}from"../chunk-jfnhzza6.js";import{Va as i}from"../chunk-bsq80942.js";import{Wa as g}from"../chunk-f2n21fef.js";import{$a as e,Za as T,_a as D,ab as A,bb as w,fb as P,gb as S,ib as h,jb as R,kb as u,lb as l,ob as v,pb as d,sb as c,vb as p,yb as n}from"../chunk-7y2y8rxx.js";import"../chunk-wc46df4w.js";import"../chunk-b1dqx3b9.js";import{_b as r}from"../chunk-18aqqrev.js";import"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{Ad as C,Bd as m,Cd as Q,Dd as t,Ed as o,Gc as Zj,Hc as $j,Kc as Gj,Lc as Hj,od as x,td as I,ud as E,xd as K,yd as M,zd as s}from"../chunk-mp3sxvcv.js";import{Pd as a}from"../chunk-b0jpvp5t.js";import{ae as V,fe as f}from"../chunk-22k4b395.js";import{gf as F}from"../chunk-3cxbvrts.js";import{zf as B}from"../chunk-j9deswmn.js";import{Ff as L}from"../chunk-ayss2f8c.js";import"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import"../chunk-zhk3z9zk.js";import"../chunk-4f7n1r02.js";import{Ig as _,Kg as N,Lg as b}from"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-yxh4xs3k.js";import"../chunk-ma5rmcbe.js";import{Yg as q}from"../chunk-3m93v7bt.js";import"../chunk-1xzdexbq.js";function Jj(j){let X=j.headers.get("Cache-Control")?.toLowerCase()??"";return/(^|[\s,])(public|s-maxage)\b/.test(X)}var Wj=new Set,Xj={refusal:null,apply:(j)=>j,carried:null};async function k(j){let X=b(x);if(X.config.global.length===0)return Xj;let{pathname:Z}=new URL(j.url),W=q(Z),z=new F(j,{},W?"api":"view","");return await L.run(z,async()=>{let $=L.getStore(),{headers:H,cookies:zj}=$,Y=(J)=>{if(!Jj(J))return Q(J,H,zj);let G=new Headers(H);return G.delete("Set-Cookie"),Q(J,G,Wj)};try{return await X.runGlobalMiddleware(),{refusal:null,apply:Y,carried:{user:$.user}}}catch(J){let G=!W&&Z.endsWith(".json");if(J?.kind===B){let O=W?m(J.payload.api):G?M(J.payload.viewData??J.payload.api):K(J.payload.view);return{refusal:Y(O),apply:Y,carried:null}}if(V(J)&&(W||G))return{refusal:Y(C()),apply:Y,carried:null};if(f(J)){console.error(J);let O=W||G?I():K(E());return{refusal:Y(O),apply:Y,carried:null}}throw J}finally{$.destroy()}})}var U=[l,d,y,P,n,A,S,v,R,D,h,p,u,g,c,w];class jj{config={};providers=[];services=[];serviceInstances=[];serviceTokens=new Set;servicesBooted=!1;models=[];app=new N;boot(){if(this.models.length>0)i(...this.models);else Yj();this.app.config.merge(this.config),N.setInstance(this.app),this.app.registerMany([...U,...this.providers]),this.registerServices()}registerServices(){let j=this.serviceTokens;this.serviceInstances=[],this.serviceTokens=new Set,this.servicesBooted=!1;let X=new Map;for(let Z of this.services){let W=typeof Z==="function"?new Z:Z,z=W.constructor;if(!z.token)throw Error(`Service [${z.name}] is listed in \`services\` but does not declare a \`static token\`.`);let $=X.get(z.token);if($)throw Error(`Services [${$}] and [${z.name}] both declare the token "${z.token}". Tokens are the container's keys, so they must be unique.`);X.set(z.token,z.name);let H=z;if(!j.has(z.token)&&this.app.bound(H))throw Error(`Service [${z.name}] declares the token "${z.token}", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`);this.app.instance(H,W),this.serviceInstances.push(W),this.serviceTokens.add(z.token)}}async waitForBoot(){await this.app.boot(),await this.bootServices(),e(this.app)}async bootServices(){if(this.servicesBooted)return;for(let j of this.serviceInstances)await j.boot();this.servicesBooted=!0}shutdown(j){return this.run(()=>this.app.shutdown(j))}run(j){return _.run(this.app,j)}resolve(j){return this.app.make(j)}apiRoutes(){return this.app.make(t)}viewRoutes(){return this.app.make(s)}domains(){return this.app.make(o)}queue(){return this.app.make(r)}globalMiddleware(j){return k(j)}destroy(){if(this.app.resolved(T))this.app.make(T).stop();if(this.app.flush(),N.getInstance()===this.app)N.setInstance(void 0);_.disable()}}function Yj(){if(Bun.env.NODE_ENV==="production")return;let j=a();if(j.length===0)return;console.warn(`[gemi] ${j.length} model${j.length===1?" is":"s are"} registered, but Kernel.models is empty.
3
3
  Nested relation reads resolve a model by name, so a policy on a subclass that does not own its
4
4
  `+" name is skipped inside every include \u2014 scoped at the root, "+`unscoped in an include, with nothing
5
5
  to notice it. Declaring the modules registers each class under its own name and audits the set:
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{wa as I}from"../chunk-8z37k28d.js";import{xa as A}from"../chunk-pfjr510h.js";import{Og as b,Qg as V,Rg as H,Sg as O,Tg as W}from"../chunk-yxh4xs3k.js";import{Xg as k}from"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import{ch as $}from"../chunk-1xzdexbq.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new A({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=O(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)W(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-j3y6cs0z.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-spgpvz77.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=H({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
2
+ import{wa as I}from"../chunk-8z37k28d.js";import{xa as A}from"../chunk-pfjr510h.js";import{Og as b,Qg as V,Rg as H,Sg as O,Tg as W}from"../chunk-yxh4xs3k.js";import{Xg as k}from"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import{ch as $}from"../chunk-1xzdexbq.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new A({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=O(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)W(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-2p1wc6g8.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-sryxt8df.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=H({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
3
3
 
4
4
  //# debugId=E55F2138497D7FCE64756E2164756E21
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ya as dW}from"../chunk-zytmxty5.js";import{Za as i6,_a as DW,ab as FW,bb as UW,cb as SW,db as fW,eb as RW,fb as kW,gb as _W,hb as U,ib as CW,jb as vW,kb as bW,lb as IW,mb as TW,nb as qW,ob as hW,pb as PW,qb as wW,rb as AW,sb as yW,tb as VW,ub as gW,vb as cW,wb as EW,xb as mW,yb as uW}from"../chunk-3e73zaft.js";import"../chunk-wc46df4w.js";import{Eb as YW,Fb as JW,Gb as ZW,Hb as GW,Ib as $W,Jb as QW,Kb as KW,Lb as XW,Mb as zW,Nb as BW,Ob as xW,Pb as MW,Qb as jW,Rb as NW,Sb as LW}from"../chunk-b1dqx3b9.js";import{Tb as n6,Ub as o6,Vb as s6,Wb as a6,Xb as t6,Yb as r6,Zb as e6,_b as WW}from"../chunk-18aqqrev.js";import{dc as OW,ec as HW}from"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{$c as f6,Cc as s4,Dc as a4,Dd as c6,Ec as g1,Fc as $6,Fd as E6,Ic as Q6,Jc as K6,Vc as D6,Wc as F6,Xc as O6,Yc as H6,Zc as U6,_c as S6,ad as d4,bd as R6,cd as k6,dd as _6,ed as C6,fd as v6,jd as b6,kd as I6,ld as T6,md as q6,nc as b0,nd as h6,od as P6,pd as w6,qd as A6,rd as y6,sd as V6,tc as e0,uc as W6,vc as Y6,wc as J6,xc as Z6,yc as G6,zd as g6}from"../chunk-g8qp01t6.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{Ue as V1,Ve as A1,We as Y1,jf as g,kf as w,of as J1,pf as L1,qf as X6,rf as z6,sf as B6,tf as x6,vf as M6,xf as D1}from"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import{Gf as j6,Hf as N6,If as L6}from"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import{Ag as p6,Cg as l6,xg as m6,yg as u6,zg as d6}from"../chunk-zhk3z9zk.js";import"../chunk-4f7n1r02.js";import{Lg as c}from"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-yxh4xs3k.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import{ch as l4}from"../chunk-1xzdexbq.js";import{Buffer as p4}from"buffer";class n4 extends J1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-214av8am.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Y}={}){Y?.throwIfAborted();let J,Z,G,$=process.env.BUCKET_NAME;if(W instanceof Blob)J=W,G=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,Z=W.type;else J=W.body,G=W.name,$=W.bucket??$,Z=W.contentType||(J instanceof Blob||J instanceof File?J.type:void 0);Z=Z||void 0;let Q=J instanceof p4?J:J instanceof Blob||J instanceof File?p4.from(await J.arrayBuffer()):"",{sdk:K,client:z}=await this.connect();return Y?.throwIfAborted(),await z.send(new K.PutObjectCommand({Bucket:$,Key:G,Body:Q,ContentType:Z}),{abortSignal:Y}),G}async delete(W){let Y=typeof W==="string"?W:W.name,J=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Y)throw Error("Object name has to be specified");let{sdk:Z,client:G}=await this.connect();try{await G.send(new Z.DeleteObjectCommand({Bucket:J,Key:Y}))}catch($){if($?.name==="NoSuchKey"||$?.$metadata?.httpStatusCode===404)return;throw $}}async list(W){let{sdk:Y,client:J}=await this.connect();return await J.send(new Y.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Y}={}){Y?.throwIfAborted();let J=process.env.BUCKET_NAME,Z;if(typeof W==="string")Z=W;else J=W.bucket??J,Z=W.name;if(!Z)throw Error("Object name has to be specified");let{sdk:G,client:$}=await this.connect();Y?.throwIfAborted();let Q=await $.send(new G.GetObjectCommand({Bucket:J,Key:Z}),{abortSignal:Y}),K=L1(Q.Body.transformToWebStream(),Y);return Y?.throwIfAborted(),new Response(K,{headers:{"Content-Type":Q.ContentType,"Content-Length":Q.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":Q.LastModified?.toUTCString()||"",ETag:Q.ETag||""}})}async read(W){let Y=typeof W==="string"?{name:W}:W,J=Y.bucket??process.env.BUCKET_NAME,{name:Z,range:G=null}=Y;if(!Z)throw Error("Object name has to be specified");let{sdk:$,client:Q}=await this.connect(),K;try{K=await Q.send(new $.GetObjectCommand({Bucket:J,Key:Z,Range:G?A1(G):void 0}))}catch(M){if(M?.name==="InvalidRange"||M?.$metadata?.httpStatusCode===416)throw new g(await this.size({name:Z,bucket:J}));if(M?.name==="NoSuchKey"||M?.$metadata?.httpStatusCode===404)throw new w(Z);throw M}let z=Y1(K.ContentRange),X=Boolean(z)&&K.$metadata?.httpStatusCode===206,x=z?.total??K.ContentLength??0;return{body:K.Body.transformToWebStream(),start:z?.start??0,end:z?.end??x-1,total:x,partial:X,type:K.ContentType??"application/octet-stream",etag:K.ETag||void 0,lastModified:K.LastModified,name:Z}}async size(W){let Y=typeof W==="string"?W:W.name,J=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:Z,client:G}=await this.connect();try{return(await G.send(new Z.HeadObjectCommand({Bucket:J,Key:Y}))).ContentLength??0}catch($){if($?.name==="NotFound"||$?.$metadata?.httpStatusCode===404)throw new w(Y);throw $}}}import{Buffer as i4}from"buffer";import{Readable as q0}from"stream";function y1(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function h0(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class o4 extends J1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Y=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Y)return W.BlobServiceClient.fromConnectionString(Y);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Y){if(!W)throw Error("Object name has to be specified");let J=Y??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient(J).getBlockBlobClient(W)}async put(W,{signal:Y}={}){Y?.throwIfAborted();let J,Z,G,$;if(W instanceof Blob)J=W,G=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,Z=W.type;else J=W.body,G=W.name,$=W.bucket,Z=W.contentType??(J instanceof Blob||J instanceof File?J.type:void 0);let Q=J instanceof i4?J:i4.from(await J.arrayBuffer()),K=await this.blob(G,$);return Y?.throwIfAborted(),await K.uploadData(Q,{blobHTTPHeaders:Z?{blobContentType:Z}:void 0,abortSignal:Y}),G}async list(W){let Y=this.config.container??process.env.BUCKET_NAME,Z=(await this.serviceClient()).getContainerClient(Y),G=[];for await(let $ of Z.listBlobsFlat({prefix:W}))G.push($.name);return G}async fetch(W,{signal:Y}={}){Y?.throwIfAborted();let J=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Y);return new Response(J.body,{headers:{"Content-Type":J.type,"Content-Length":String(J.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":J.lastModified?.toUTCString()??"",ETag:J.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Y){let{name:J,bucket:Z,range:G=null}=W,$=await this.blob(J,Z);Y?.throwIfAborted();let Q,K,z=G?.kind==="suffix"||G?.kind==="offset"&&G.end===null&&G.start===0;if(G&&z){let b=await this.size({name:J,bucket:Z}),W1=V1(G,b);if(!W1)throw new g(b);Q=W1.start,K=W1.length}else if(G?.kind==="offset")Q=G.start,K=G.end===null?void 0:G.end-G.start+1;let X;try{X=await $.download(Q,K,Y?{abortSignal:Y}:void 0)}catch(b){if(h0(b))throw new g(await this.size({name:J,bucket:Z}));if(y1(b))throw new w(J);throw b}let x=Y1(X.contentRange),M=Boolean(x),R=x?.total??X.contentLength??0,v=await P0(X);if(v instanceof ReadableStream)v=L1(v,Y);return Y?.throwIfAborted(),{body:v,start:x?.start??0,end:x?.end??R-1,total:R,partial:M,type:X.contentType??"application/octet-stream",etag:X.etag||void 0,lastModified:X.lastModified,name:J}}async size(W){let Y=typeof W==="string"?W:W.name,J=typeof W==="string"?void 0:W.bucket,Z=await this.blob(Y,J);try{return(await Z.getProperties()).contentLength??0}catch(G){if(y1(G))throw new w(Y);throw G}}async delete(W){let Y=typeof W==="string"?W:W.name,J=typeof W==="string"?void 0:W.bucket,Z=await this.blob(Y,J);try{await Z.delete()}catch(G){if(y1(G))return;throw G}}}async function P0(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return q0.toWeb(W.readableStreamBody);return null}var w0=`
2
+ import{Ya as dW}from"../chunk-zytmxty5.js";import{Za as i6,_a as DW,ab as FW,bb as UW,cb as SW,db as fW,eb as RW,fb as kW,gb as _W,hb as U,ib as CW,jb as vW,kb as bW,lb as IW,mb as TW,nb as qW,ob as hW,pb as PW,qb as wW,rb as AW,sb as yW,tb as VW,ub as gW,vb as cW,wb as EW,xb as mW,yb as uW}from"../chunk-7y2y8rxx.js";import"../chunk-wc46df4w.js";import{Eb as YW,Fb as JW,Gb as ZW,Hb as GW,Ib as $W,Jb as QW,Kb as KW,Lb as XW,Mb as zW,Nb as BW,Ob as xW,Pb as MW,Qb as jW,Rb as NW,Sb as LW}from"../chunk-b1dqx3b9.js";import{Tb as n6,Ub as o6,Vb as s6,Wb as a6,Xb as t6,Yb as r6,Zb as e6,_b as WW}from"../chunk-18aqqrev.js";import{dc as OW,ec as HW}from"../chunk-zm00crsx.js";import"../chunk-7kedxtbp.js";import{$c as f6,Cc as s4,Dc as a4,Dd as c6,Ec as g1,Fc as $6,Fd as E6,Ic as Q6,Jc as K6,Vc as D6,Wc as F6,Xc as O6,Yc as H6,Zc as U6,_c as S6,ad as d4,bd as R6,cd as k6,dd as _6,ed as C6,fd as v6,jd as b6,kd as I6,ld as T6,md as q6,nc as b0,nd as h6,od as P6,pd as w6,qd as A6,rd as y6,sd as V6,tc as e0,uc as W6,vc as Y6,wc as J6,xc as Z6,yc as G6,zd as g6}from"../chunk-mp3sxvcv.js";import"../chunk-b0jpvp5t.js";import"../chunk-22k4b395.js";import{Ue as V1,Ve as A1,We as Y1,jf as g,kf as w,of as J1,pf as L1,qf as X6,rf as z6,sf as B6,tf as x6,vf as M6,xf as D1}from"../chunk-3cxbvrts.js";import"../chunk-j9deswmn.js";import"../chunk-ayss2f8c.js";import{Gf as j6,Hf as N6,If as L6}from"../chunk-5dwtmkk8.js";import"../chunk-xxkk60aw.js";import"../chunk-fcsq613t.js";import"../chunk-v4exgqbp.js";import"../chunk-st0d3ndv.js";import{Ag as p6,Cg as l6,xg as m6,yg as u6,zg as d6}from"../chunk-zhk3z9zk.js";import"../chunk-4f7n1r02.js";import{Lg as c}from"../chunk-xnggfm0s.js";import"../chunk-0fney17e.js";import"../chunk-yxh4xs3k.js";import"../chunk-ma5rmcbe.js";import"../chunk-3m93v7bt.js";import{ch as l4}from"../chunk-1xzdexbq.js";import{Buffer as p4}from"buffer";class n4 extends J1{client;config;constructor(...W){super();this.config=W}async connect(){let W=await import("../chunk-214av8am.js");return this.client??=new W.S3Client(...this.config),{sdk:W,client:this.client}}async put(W,{signal:Y}={}){Y?.throwIfAborted();let J,Z,G,$=process.env.BUCKET_NAME;if(W instanceof Blob)J=W,G=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,Z=W.type;else J=W.body,G=W.name,$=W.bucket??$,Z=W.contentType||(J instanceof Blob||J instanceof File?J.type:void 0);Z=Z||void 0;let Q=J instanceof p4?J:J instanceof Blob||J instanceof File?p4.from(await J.arrayBuffer()):"",{sdk:K,client:z}=await this.connect();return Y?.throwIfAborted(),await z.send(new K.PutObjectCommand({Bucket:$,Key:G,Body:Q,ContentType:Z}),{abortSignal:Y}),G}async delete(W){let Y=typeof W==="string"?W:W.name,J=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME;if(!Y)throw Error("Object name has to be specified");let{sdk:Z,client:G}=await this.connect();try{await G.send(new Z.DeleteObjectCommand({Bucket:J,Key:Y}))}catch($){if($?.name==="NoSuchKey"||$?.$metadata?.httpStatusCode===404)return;throw $}}async list(W){let{sdk:Y,client:J}=await this.connect();return await J.send(new Y.ListObjectsV2Command({Bucket:process.env.BUCKET_NAME,Prefix:W}))}async fetch(W,{signal:Y}={}){Y?.throwIfAborted();let J=process.env.BUCKET_NAME,Z;if(typeof W==="string")Z=W;else J=W.bucket??J,Z=W.name;if(!Z)throw Error("Object name has to be specified");let{sdk:G,client:$}=await this.connect();Y?.throwIfAborted();let Q=await $.send(new G.GetObjectCommand({Bucket:J,Key:Z}),{abortSignal:Y}),K=L1(Q.Body.transformToWebStream(),Y);return Y?.throwIfAborted(),new Response(K,{headers:{"Content-Type":Q.ContentType,"Content-Length":Q.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":Q.LastModified?.toUTCString()||"",ETag:Q.ETag||""}})}async read(W){let Y=typeof W==="string"?{name:W}:W,J=Y.bucket??process.env.BUCKET_NAME,{name:Z,range:G=null}=Y;if(!Z)throw Error("Object name has to be specified");let{sdk:$,client:Q}=await this.connect(),K;try{K=await Q.send(new $.GetObjectCommand({Bucket:J,Key:Z,Range:G?A1(G):void 0}))}catch(M){if(M?.name==="InvalidRange"||M?.$metadata?.httpStatusCode===416)throw new g(await this.size({name:Z,bucket:J}));if(M?.name==="NoSuchKey"||M?.$metadata?.httpStatusCode===404)throw new w(Z);throw M}let z=Y1(K.ContentRange),X=Boolean(z)&&K.$metadata?.httpStatusCode===206,x=z?.total??K.ContentLength??0;return{body:K.Body.transformToWebStream(),start:z?.start??0,end:z?.end??x-1,total:x,partial:X,type:K.ContentType??"application/octet-stream",etag:K.ETag||void 0,lastModified:K.LastModified,name:Z}}async size(W){let Y=typeof W==="string"?W:W.name,J=(typeof W==="string"?void 0:W.bucket)??process.env.BUCKET_NAME,{sdk:Z,client:G}=await this.connect();try{return(await G.send(new Z.HeadObjectCommand({Bucket:J,Key:Y}))).ContentLength??0}catch($){if($?.name==="NotFound"||$?.$metadata?.httpStatusCode===404)throw new w(Y);throw $}}}import{Buffer as i4}from"buffer";import{Readable as q0}from"stream";function y1(W){return W?.statusCode===404||W?.details?.errorCode==="BlobNotFound"||W?.code==="BlobNotFound"}function h0(W){return W?.statusCode===416||W?.details?.errorCode==="InvalidRange"||W?.code==="InvalidRange"}class o4 extends J1{config;serviceClientPromise=null;constructor(W={}){super();this.config=W}async serviceClient(){if(this.config.serviceClient)return this.config.serviceClient;return this.serviceClientPromise??=(async()=>{let W;try{W=await import("@azure/storage-blob")}catch{throw Error("AzureBlobDriver requires the '@azure/storage-blob' package. Install it with `bun add @azure/storage-blob`, or pass a pre-built `serviceClient`.")}let Y=this.config.connectionString??process.env.AZURE_STORAGE_CONNECTION_STRING;if(this.config.url)return new W.BlobServiceClient(this.config.url,this.config.credential);if(Y)return W.BlobServiceClient.fromConnectionString(Y);throw Error("AzureBlobDriver needs a connection string (AZURE_STORAGE_CONNECTION_STRING), a `url`, or a `serviceClient`.")})(),this.serviceClientPromise}async blob(W,Y){if(!W)throw Error("Object name has to be specified");let J=Y??this.config.container??process.env.BUCKET_NAME;if(!J)throw Error("AzureBlobDriver needs a container name, from `bucket`, the `container` config, or BUCKET_NAME.");return(await this.serviceClient()).getContainerClient(J).getBlockBlobClient(W)}async put(W,{signal:Y}={}){Y?.throwIfAborted();let J,Z,G,$;if(W instanceof Blob)J=W,G=`${Bun.randomUUIDv7()}.${W.type.split("/")[1].split(";")[0]}`,Z=W.type;else J=W.body,G=W.name,$=W.bucket,Z=W.contentType??(J instanceof Blob||J instanceof File?J.type:void 0);let Q=J instanceof i4?J:i4.from(await J.arrayBuffer()),K=await this.blob(G,$);return Y?.throwIfAborted(),await K.uploadData(Q,{blobHTTPHeaders:Z?{blobContentType:Z}:void 0,abortSignal:Y}),G}async list(W){let Y=this.config.container??process.env.BUCKET_NAME,Z=(await this.serviceClient()).getContainerClient(Y),G=[];for await(let $ of Z.listBlobsFlat({prefix:W}))G.push($.name);return G}async fetch(W,{signal:Y}={}){Y?.throwIfAborted();let J=await this.download(typeof W==="string"?{name:W}:{name:W.name,bucket:W.bucket},Y);return new Response(J.body,{headers:{"Content-Type":J.type,"Content-Length":String(J.total),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":J.lastModified?.toUTCString()??"",ETag:J.etag??""}})}async read(W){return this.download(typeof W==="string"?{name:W}:W)}async download(W,Y){let{name:J,bucket:Z,range:G=null}=W,$=await this.blob(J,Z);Y?.throwIfAborted();let Q,K,z=G?.kind==="suffix"||G?.kind==="offset"&&G.end===null&&G.start===0;if(G&&z){let b=await this.size({name:J,bucket:Z}),W1=V1(G,b);if(!W1)throw new g(b);Q=W1.start,K=W1.length}else if(G?.kind==="offset")Q=G.start,K=G.end===null?void 0:G.end-G.start+1;let X;try{X=await $.download(Q,K,Y?{abortSignal:Y}:void 0)}catch(b){if(h0(b))throw new g(await this.size({name:J,bucket:Z}));if(y1(b))throw new w(J);throw b}let x=Y1(X.contentRange),M=Boolean(x),R=x?.total??X.contentLength??0,v=await P0(X);if(v instanceof ReadableStream)v=L1(v,Y);return Y?.throwIfAborted(),{body:v,start:x?.start??0,end:x?.end??R-1,total:R,partial:M,type:X.contentType??"application/octet-stream",etag:X.etag||void 0,lastModified:X.lastModified,name:J}}async size(W){let Y=typeof W==="string"?W:W.name,J=typeof W==="string"?void 0:W.bucket,Z=await this.blob(Y,J);try{return(await Z.getProperties()).contentLength??0}catch(G){if(y1(G))throw new w(Y);throw G}}async delete(W){let Y=typeof W==="string"?W:W.name,J=typeof W==="string"?void 0:W.bucket,Z=await this.blob(Y,J);try{await Z.delete()}catch(G){if(y1(G))return;throw G}}}async function P0(W){if(W.blobBody)return await W.blobBody;if(W.readableStreamBody)return q0.toWeb(W.readableStreamBody);return null}var w0=`
3
3
  local currentKey = KEYS[1]
4
4
  local previousKey = KEYS[2]
5
5
  local limit = tonumber(ARGV[1])
@@ -144,10 +144,17 @@ export declare class McpToolError extends ToolError {
144
144
  * `exec`, which is the handler alone — no auth, no policies, no rate limit —
145
145
  * and is the shorter path for exactly that reason.
146
146
  */
147
- export declare class McpRegistry {
147
+ export declare class McpRegistry<R extends McpRouter<any> = McpRouter<any>> {
148
148
  private readonly router;
149
149
  private readonly dispatcher;
150
150
  static token: string;
151
+ /**
152
+ * Types only, never set: the app's router, which a typed `toAgentTools`
153
+ * reads its tools' names, inputs and outputs from (#771). The container
154
+ * answers an untyped registry; name the router where the tools are built:
155
+ * `app(McpRegistry) as McpRegistry<SiteMcpRouter>`.
156
+ */
157
+ readonly __router?: R;
151
158
  private readonly plans;
152
159
  constructor(router: McpRouter<any>, dispatcher: Pick<ApiRouteDispatcher, "flatRoutes" | "dispatchAs" | "getRouteHandlerAndParams">);
153
160
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"McpRegistry.d.ts","sourceRoot":"","sources":["../../../services/mcp/McpRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpRegistry.d.ts","sourceRoot":"","sources":["../../../services/mcp/McpRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type AnyAgentTool, type ToolEntry } from "../../ai/Agent";
1
+ import { AgentTool, ToolNamespace, type AnyAgentTool, type ToolEntry, type ToolShapesOf } from "../../ai/Agent";
2
+ import type { McpRouteDeclaration, McpRouter } from "../../http/McpRouter";
2
3
  import type { McpRegistry, McpToolFilter } from "./McpRegistry";
3
4
  /** One namespace `toAgentTools` groups a tag's tools into. */
4
5
  export type McpToolNamespaceOptions = {
@@ -30,6 +31,38 @@ export type ToAgentToolsOptions = {
30
31
  */
31
32
  namespaces?: Record<string, McpToolNamespaceOptions>;
32
33
  };
34
+ type RoutesOf<R> = R extends {
35
+ routes: infer T;
36
+ } ? T : never;
37
+ /** Whether a filter's field narrows by literals, rather than by `string`s. */
38
+ type LiteralsOf<L> = L extends readonly (infer X)[] ? (string extends X ? never : X) : never;
39
+ /** Whether the tool `N`, declared as `D`, passes the filter `F`. */
40
+ type Passes<N, D, F> = (F extends {
41
+ names: readonly string[];
42
+ } ? [LiteralsOf<F["names"]>] extends [never] ? true : N extends LiteralsOf<F["names"]> ? true : false : true) extends true ? F extends {
43
+ tags: readonly string[];
44
+ } ? [LiteralsOf<F["tags"]>] extends [never] ? true : D extends McpRouteDeclaration<any, any, any, any, infer T> ? string extends T[number] ? true : [Extract<T[number], LiteralsOf<F["tags"]>>] extends [never] ? false : true : true : true : false;
45
+ /**
46
+ * The tools of the router `R` that pass the filter `F`, as `toAgentTools`
47
+ * builds them: named by their `routes` key, with the input the model sends and
48
+ * the output the tool answers. An untyped router (`McpRouter<any>`, what the
49
+ * container answers) gives `AnyAgentTool`, as before.
50
+ */
51
+ export type McpAgentTool<R extends McpRouter<any>, F = {}> = string extends keyof RoutesOf<R> ? AnyAgentTool : {
52
+ [N in keyof RoutesOf<R> & string]: Passes<N, RoutesOf<R>[N], F> extends true ? RoutesOf<R>[N] extends McpRouteDeclaration<any, any, infer I, infer O, any> ? AgentTool<N, I, O, never> : never : never;
53
+ }[keyof RoutesOf<R> & string];
54
+ /**
55
+ * The client's shapes of the router's tools, as `ToolShapesOf` gives them for
56
+ * an agent holding `toAgentTools(registry, { filter: F })`. For a chat built
57
+ * on its tools alone; an agent mixing them with its own tools gets them from
58
+ * `ToolShapesOf<typeof agent.tools>`.
59
+ */
60
+ export type McpToolShapesOf<R extends McpRouter<any>, F = {}> = ToolShapesOf<McpAgentTool<R, F>[]>;
61
+ /** What the grouped call answers: namespaces of the tools, and the bare ones. */
62
+ type McpToolEntry<R extends McpRouter<any>, F> = string extends keyof RoutesOf<R> ? ToolEntry : ToolNamespace<string, readonly McpAgentTool<R, F>[]> | McpAgentTool<R, F>;
63
+ type FilterOf<O> = O extends {
64
+ filter: infer F;
65
+ } ? F : {};
33
66
  /**
34
67
  * The registry's tools as `AgentTool`s, for an agent running in this server —
35
68
  * v1's only projection.
@@ -72,14 +105,34 @@ export type ToAgentToolsOptions = {
72
105
  * The second argument is read as options when it has `filter`, `deferred` or
73
106
  * `namespaces`, and as a filter otherwise, so `toAgentTools(registry, filter)`
74
107
  * is unchanged.
108
+ *
109
+ * Typed (#771): given the app's router type, the tools keep their names,
110
+ * inputs and outputs, so the client's `ToolShapesOf<typeof agent.tools>` types
111
+ * their parts. A literal `filter` narrows them as it narrows the tools:
112
+ *
113
+ * ```ts
114
+ * const registry = app(McpRegistry) as McpRegistry<SiteMcpRouter>;
115
+ * toAgentTools(registry, { filter: { tags: ["collections"] } });
116
+ * // AgentTool<"listCollections", { page: string | null }, { name: string }[]> | …
117
+ * ```
118
+ *
119
+ * `toAgentTools<SiteMcpRouter>(app(McpRegistry), …)` types them too, but an
120
+ * explicit type argument leaves the filter uninferred: every tool of the
121
+ * router is in the type. An untyped registry answers `AnyAgentTool`s, as
122
+ * before.
75
123
  */
76
- export declare function toAgentTools(registry: McpRegistry, filter?: McpToolFilter): AnyAgentTool[];
77
- export declare function toAgentTools(registry: McpRegistry, options: ToAgentToolsOptions & {
124
+ export declare function toAgentTools<R extends McpRouter<any> = McpRouter<any>, const F extends McpToolFilter = {}>(registry: McpRegistry<R> | McpRegistry, filter?: F): McpAgentTool<R, F>[];
125
+ export declare function toAgentTools<R extends McpRouter<any> = McpRouter<any>, const O extends ToAgentToolsOptions & {
78
126
  namespaces: Record<string, McpToolNamespaceOptions>;
79
- }): ToolEntry[];
80
- export declare function toAgentTools(registry: McpRegistry, options: ToAgentToolsOptions & {
127
+ } = ToAgentToolsOptions & {
128
+ namespaces: Record<string, McpToolNamespaceOptions>;
129
+ }>(registry: McpRegistry<R> | McpRegistry, options: O): McpToolEntry<R, FilterOf<O>>[];
130
+ export declare function toAgentTools<R extends McpRouter<any> = McpRouter<any>, const O extends ToAgentToolsOptions & {
131
+ namespaces?: undefined;
132
+ } = ToAgentToolsOptions & {
81
133
  namespaces?: undefined;
82
- }): AnyAgentTool[];
134
+ }>(registry: McpRegistry<R> | McpRegistry, options: O): McpAgentTool<R, FilterOf<O>>[];
83
135
  /** Options whose `namespaces` is not known statically: either shape. */
84
- export declare function toAgentTools(registry: McpRegistry, options: ToAgentToolsOptions): ToolEntry[];
136
+ export declare function toAgentTools<R extends McpRouter<any> = McpRouter<any>>(registry: McpRegistry<R> | McpRegistry, options: ToAgentToolsOptions): McpToolEntry<R, FilterOf<ToAgentToolsOptions>>[];
137
+ export {};
85
138
  //# sourceMappingURL=toAgentTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toAgentTools.d.ts","sourceRoot":"","sources":["../../../services/mcp/toAgentTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,KAAK,EAAE,WAAW,EAAqB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnF,8DAA8D;AAC9D,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACtD,CAAC;AAKF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE,CAAC;AAC5F,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CAAE,GACrF,SAAS,EAAE,CAAC;AACf,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,SAAS,CAAA;CAAE,GACxD,YAAY,EAAE,CAAC;AAClB,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"toAgentTools.d.ts","sourceRoot":"","sources":["../../../services/mcp/toAgentTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemi",
3
- "version": "0.103.0",
3
+ "version": "0.104.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "Enes Tufekci <enes@gemijs.dev>",