gemi 0.171.0 → 0.172.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.
Files changed (58) hide show
  1. package/dist/ai/index.js +1 -1
  2. package/dist/app/App.d.ts +10 -0
  3. package/dist/app/App.d.ts.map +1 -1
  4. package/dist/app/index.js +1 -1
  5. package/dist/bin/gemi.js +4 -1
  6. package/dist/bin/gemi.js.map +3 -3
  7. package/dist/chunk-5rzb2c9n.js +24 -0
  8. package/dist/{chunk-376s9rbe.js.map → chunk-5rzb2c9n.js.map} +3 -3
  9. package/dist/{chunk-ys8nk9ga.js → chunk-d54afkwy.js} +1 -1
  10. package/dist/chunk-f82m70ek.js +58 -0
  11. package/dist/{chunk-eq3xexqp.js.map → chunk-f82m70ek.js.map} +3 -3
  12. package/dist/chunk-ktfc7jmg.js +4 -0
  13. package/dist/chunk-ktfc7jmg.js.map +10 -0
  14. package/dist/{chunk-3qtn3zjt.js → chunk-mm5p3tvh.js} +26 -26
  15. package/dist/{chunk-3qtn3zjt.js.map → chunk-mm5p3tvh.js.map} +6 -6
  16. package/dist/{chunk-mm45shzv.js → chunk-njem61cd.js} +1 -1
  17. package/dist/{chunk-212m5z3p.js → chunk-qv2zapxa.js} +1 -1
  18. package/dist/{chunk-2xtkh8bh.js → chunk-yem48znp.js} +1 -1
  19. package/dist/chunk-z0bzca7f.js +5 -0
  20. package/dist/{chunk-1h6g1hkg.js.map → chunk-z0bzca7f.js.map} +3 -3
  21. package/dist/{chunk-ztfkmpk5.js → chunk-zppfpg1m.js} +2 -2
  22. package/dist/{chunk-ztfkmpk5.js.map → chunk-zppfpg1m.js.map} +1 -1
  23. package/dist/client/Head.d.ts.map +1 -1
  24. package/dist/client/index.js +20 -2
  25. package/dist/client/index.js.map +1 -1
  26. package/dist/facades/Meta.d.ts +10 -0
  27. package/dist/facades/Meta.d.ts.map +1 -1
  28. package/dist/facades/index.js +1 -1
  29. package/dist/http/HttpRequest.d.ts +1 -0
  30. package/dist/http/HttpRequest.d.ts.map +1 -1
  31. package/dist/http/Metadata.d.ts +15 -0
  32. package/dist/http/Metadata.d.ts.map +1 -1
  33. package/dist/http/index.js +1 -1
  34. package/dist/http/requestContext.d.ts +1 -0
  35. package/dist/http/requestContext.d.ts.map +1 -1
  36. package/dist/i18n/index.js +1 -1
  37. package/dist/kernel/index.js +1 -1
  38. package/dist/orm/index.js +1 -1
  39. package/dist/server/devFetch.d.ts.map +1 -1
  40. package/dist/server/httpProd.d.ts.map +1 -1
  41. package/dist/server/index.js +1 -1
  42. package/dist/services/index.js +1 -1
  43. package/dist/services/router/DomainRouter.d.ts +21 -0
  44. package/dist/services/router/DomainRouter.d.ts.map +1 -1
  45. package/dist/services/router/ViewRouteDispatcher.d.ts +6 -0
  46. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  47. package/dist/services/router/config.d.ts +31 -1
  48. package/dist/services/router/config.d.ts.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/chunk-1h6g1hkg.js +0 -5
  51. package/dist/chunk-376s9rbe.js +0 -24
  52. package/dist/chunk-743ympvp.js +0 -4
  53. package/dist/chunk-743ympvp.js.map +0 -10
  54. package/dist/chunk-eq3xexqp.js +0 -58
  55. /package/dist/{chunk-ys8nk9ga.js.map → chunk-d54afkwy.js.map} +0 -0
  56. /package/dist/{chunk-mm45shzv.js.map → chunk-njem61cd.js.map} +0 -0
  57. /package/dist/{chunk-212m5z3p.js.map → chunk-qv2zapxa.js.map} +0 -0
  58. /package/dist/{chunk-2xtkh8bh.js.map → chunk-yem48znp.js.map} +0 -0
package/dist/ai/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$b as $8,$c as J6,Ac as t9,Bc as r9,Cc as C8,Ec as _8,Fc as T8,Gc as A8,Hc as R8,Ic as E8,Jc as j8,Kc as k8,Lc as x8,Mc as q8,Nc as I8,Oc as w8,Pc as b8,Rc as w,Sc as $9,Tc as s,Uc as T,Vc as Z8,Wc as s0,Xc as a0,Yb as J8,Yc as t0,Zb as NQ,Zc as r0,_b as UQ,_c as e0,ad as $6,bd as Q6,cc as xJ,cd as Z6,dc as S,dd as W6,ec as A,ed as K6,fd as DJ,gc as t8,gd as X6,hc as d8,hd as AQ,ic as KJ,id as Y6,jc as o0,jd as RQ,kc as g,kd as G6,lc as Q8,ld as EJ,mc as LQ,md as B$,nc as OQ,nd as V6,oc as CQ,od as H6,pc as m,pd as EQ,qc as _Q,qd as z6,rc as oJ,rd as D6,sc as MQ,sd as B6,tc as SQ,td as z$,uc as sJ,vc as U8,wc as L8,yc as O8,zc as v}from"../chunk-2xtkh8bh.js";import{Ld as D8}from"../chunk-9aj6eavs.js";import"../chunk-gjwf07hy.js";import{$h as i0,Gh as zQ,Hi as FQ,Jh as BQ,Ki as p$,Oi as PQ,Zh as _9,_h as d0,ai as n0,bi as q}from"../chunk-ys8nk9ga.js";import{Pi as DQ,Ri as iJ,Si as nJ}from"../chunk-5n21z4n8.js";import{$i as h}from"../chunk-1h6g1hkg.js";import"../chunk-jxx9mctk.js";import"../chunk-6t1t7h05.js";import"../chunk-a9frf7ym.js";import{ck as n,dk as o,rk as SJ}from"../chunk-gwphn604.js";import"../chunk-m950vw4c.js";import"../chunk-vfvjfw5k.js";import{el as c9}from"../chunk-8b9ks729.js";import"../chunk-0q65jzhv.js";import"../chunk-9akefv1y.js";import{xl as eJ}from"../chunk-rpdekb8t.js";import"../chunk-9wcv7e1a.js";import{existsSync as wQ,readdirSync as P6,readFileSync as V8}from"fs";import{isAbsolute as bQ,join as UJ,relative as fQ,sep as vQ}from"path";var H8="prompts.json",yQ=/\{\{>\s*([\w./-]+)\s*\}\}/g,X8=/\{\{(\w+)\}\}/g,hQ=/^[\w-]+(\/[\w-]+)*$/,Y8={dir:"app/agents",shared:"prompts"},OJ={},tJ=new Map,LJ;function gQ(){if(LJ===void 0){let J=UJ(eJ(),"dist","server",H8);LJ=wQ(J)?JSON.parse(V8(J,"utf8")):null}return LJ??null}function uQ(J){return J.replace(/\r?\n$/,"")}function G8(){return OJ.cache??Bun.env.NODE_ENV==="production"}function cQ(J){if(!hQ.test(J))throw Error(`"${J}" is not a prompt name. Use letters, digits, "-" and "_", with "/" between folders.`);let $=OJ.dir??Y8.dir,Q=bQ($)?$:UJ(process.cwd(),$),Z=J.includes("/")?`${J}.md`:UJ(OJ.shared??Y8.shared,`${J}.md`);return UJ(Q,Z)}function mQ(J){let $=cQ(J),Q=G8()?tJ.get($):void 0;if(Q!==void 0)return Q;let Z=Bun.env.NODE_ENV==="production";if(Z){let K=gQ()?.[fQ(eJ(),$).split(vQ).join("/")];if(K!==void 0)return K}let W;try{W=uQ(V8($,"utf8"))}catch(K){if(K.code==="ENOENT"){let X=Z?` or in dist/server/${H8}`:"";throw Error(`The prompt "${J}" does not exist (looked for ${$}${X}).`)}throw K}if(G8())tJ.set($,W);return W}function rJ(J,$){if($.includes(J))throw Error(`The prompt "${J}" includes itself: ${[...$,J].join(" > ")}.`);return mQ(J).replace(yQ,(Q,Z)=>rJ(Z,[...$,J]))}class z8{static configure(J){OJ={...J},tJ.clear(),LJ=void 0}static render(J,$={}){return rJ(J,[]).replace(X8,(Q,Z)=>{if(!Object.hasOwn($,Z))throw Error(`The prompt "${J}" has no value for {{${Z}}}.`);return String($[Z])})}static placeholders(J){let $=[...rJ(J,[]).matchAll(X8)].map((Q)=>Q[1]);return[...new Set($)]}}class J$ extends D8{name="AgentJobDeadlineSweep";cron="* * * * *";async callback(){while(await v.sweep({limit:100})===100);}}var CJ=20;function F8(J,$){if($<=0||J.length===0)return null;let Q=(K,X)=>X.createdAt-K.createdAt||(K.id<X.id?1:-1);return["<jobs>","Background jobs that tools started in this conversation, running ones first. A running job's result replaces its tool result when it finishes. Do not start the same work again while a job for it is running.",...[...J.filter((K)=>K.state==="running").sort(Q),...J.filter((K)=>K.state!=="running").sort(Q)].slice(0,$).map((K)=>{let X=[`- ${K.id} (${K.toolName})`];if(K.state==="running")X.push(`running since ${$$(K.createdAt)}`);else if(K.state==="ok")X.push(`finished at ${$$(K.settledAt??K.updatedAt)}`);else{let G=K.error?`${K.error.code}: ${B8(K.error.message,200)}`:"failed";X.push(`failed at ${$$(K.settledAt??K.updatedAt)} (${G})`)}if(K.summary!==void 0)X.push(`summary: ${B8(JSON.stringify(K.summary),300)}`);if(K.orphaned)X.push("its tool call was lost when the turn that started it was cut short");return X.join("; ")}),"</jobs>"].join(`
2
+ import{$b as $8,$c as J6,Ac as t9,Bc as r9,Cc as C8,Ec as _8,Fc as T8,Gc as A8,Hc as R8,Ic as E8,Jc as j8,Kc as k8,Lc as x8,Mc as q8,Nc as I8,Oc as w8,Pc as b8,Rc as w,Sc as $9,Tc as s,Uc as T,Vc as Z8,Wc as s0,Xc as a0,Yb as J8,Yc as t0,Zb as NQ,Zc as r0,_b as UQ,_c as e0,ad as $6,bd as Q6,cc as xJ,cd as Z6,dc as S,dd as W6,ec as A,ed as K6,fd as DJ,gc as t8,gd as X6,hc as d8,hd as AQ,ic as KJ,id as Y6,jc as o0,jd as RQ,kc as g,kd as G6,lc as Q8,ld as EJ,mc as LQ,md as B$,nc as OQ,nd as V6,oc as CQ,od as H6,pc as m,pd as EQ,qc as _Q,qd as z6,rc as oJ,rd as D6,sc as MQ,sd as B6,tc as SQ,td as z$,uc as sJ,vc as U8,wc as L8,yc as O8,zc as v}from"../chunk-yem48znp.js";import{Ld as D8}from"../chunk-9aj6eavs.js";import"../chunk-gjwf07hy.js";import{$h as i0,Gh as zQ,Hi as FQ,Jh as BQ,Ki as p$,Oi as PQ,Zh as _9,_h as d0,ai as n0,bi as q}from"../chunk-d54afkwy.js";import{Pi as DQ,Ri as iJ,Si as nJ}from"../chunk-5n21z4n8.js";import{$i as h}from"../chunk-z0bzca7f.js";import"../chunk-jxx9mctk.js";import"../chunk-6t1t7h05.js";import"../chunk-a9frf7ym.js";import{ck as n,dk as o,rk as SJ}from"../chunk-gwphn604.js";import"../chunk-m950vw4c.js";import"../chunk-vfvjfw5k.js";import{el as c9}from"../chunk-8b9ks729.js";import"../chunk-0q65jzhv.js";import"../chunk-9akefv1y.js";import{xl as eJ}from"../chunk-rpdekb8t.js";import"../chunk-9wcv7e1a.js";import{existsSync as wQ,readdirSync as P6,readFileSync as V8}from"fs";import{isAbsolute as bQ,join as UJ,relative as fQ,sep as vQ}from"path";var H8="prompts.json",yQ=/\{\{>\s*([\w./-]+)\s*\}\}/g,X8=/\{\{(\w+)\}\}/g,hQ=/^[\w-]+(\/[\w-]+)*$/,Y8={dir:"app/agents",shared:"prompts"},OJ={},tJ=new Map,LJ;function gQ(){if(LJ===void 0){let J=UJ(eJ(),"dist","server",H8);LJ=wQ(J)?JSON.parse(V8(J,"utf8")):null}return LJ??null}function uQ(J){return J.replace(/\r?\n$/,"")}function G8(){return OJ.cache??Bun.env.NODE_ENV==="production"}function cQ(J){if(!hQ.test(J))throw Error(`"${J}" is not a prompt name. Use letters, digits, "-" and "_", with "/" between folders.`);let $=OJ.dir??Y8.dir,Q=bQ($)?$:UJ(process.cwd(),$),Z=J.includes("/")?`${J}.md`:UJ(OJ.shared??Y8.shared,`${J}.md`);return UJ(Q,Z)}function mQ(J){let $=cQ(J),Q=G8()?tJ.get($):void 0;if(Q!==void 0)return Q;let Z=Bun.env.NODE_ENV==="production";if(Z){let K=gQ()?.[fQ(eJ(),$).split(vQ).join("/")];if(K!==void 0)return K}let W;try{W=uQ(V8($,"utf8"))}catch(K){if(K.code==="ENOENT"){let X=Z?` or in dist/server/${H8}`:"";throw Error(`The prompt "${J}" does not exist (looked for ${$}${X}).`)}throw K}if(G8())tJ.set($,W);return W}function rJ(J,$){if($.includes(J))throw Error(`The prompt "${J}" includes itself: ${[...$,J].join(" > ")}.`);return mQ(J).replace(yQ,(Q,Z)=>rJ(Z,[...$,J]))}class z8{static configure(J){OJ={...J},tJ.clear(),LJ=void 0}static render(J,$={}){return rJ(J,[]).replace(X8,(Q,Z)=>{if(!Object.hasOwn($,Z))throw Error(`The prompt "${J}" has no value for {{${Z}}}.`);return String($[Z])})}static placeholders(J){let $=[...rJ(J,[]).matchAll(X8)].map((Q)=>Q[1]);return[...new Set($)]}}class J$ extends D8{name="AgentJobDeadlineSweep";cron="* * * * *";async callback(){while(await v.sweep({limit:100})===100);}}var CJ=20;function F8(J,$){if($<=0||J.length===0)return null;let Q=(K,X)=>X.createdAt-K.createdAt||(K.id<X.id?1:-1);return["<jobs>","Background jobs that tools started in this conversation, running ones first. A running job's result replaces its tool result when it finishes. Do not start the same work again while a job for it is running.",...[...J.filter((K)=>K.state==="running").sort(Q),...J.filter((K)=>K.state!=="running").sort(Q)].slice(0,$).map((K)=>{let X=[`- ${K.id} (${K.toolName})`];if(K.state==="running")X.push(`running since ${$$(K.createdAt)}`);else if(K.state==="ok")X.push(`finished at ${$$(K.settledAt??K.updatedAt)}`);else{let G=K.error?`${K.error.code}: ${B8(K.error.message,200)}`:"failed";X.push(`failed at ${$$(K.settledAt??K.updatedAt)} (${G})`)}if(K.summary!==void 0)X.push(`summary: ${B8(JSON.stringify(K.summary),300)}`);if(K.orphaned)X.push("its tool call was lost when the turn that started it was cut short");return X.join("; ")}),"</jobs>"].join(`
3
3
  `)}function $$(J){return new Date(J).toISOString().replace(/\.\d{3}Z$/,"Z")}function B8(J,$){return J.length<=$?J:`${J.slice(0,$-1)}\u2026`}class Z${table;sql;dialect;connection;constructor(J,$={}){let Q=$.table??"gemi_agent_jobs";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(Q))throw Error(`The agent jobs table name "${Q}" is not a plain identifier. Use letters, digits and underscores.`);this.table=Q,this.sql=J.sql,this.dialect=J.dialect,this.connection=J.name}async createTable(){for(let J of pQ(this.dialect,this.table))await this.sql.unsafe(J)}async transaction(J){if(this.connection===void 0||this.joinable())return J();return SJ(this.sql,()=>J(),{connection:this.connection})}async create(J){let $=this.q(),Q=this.clock($);await $`
4
4
  INSERT INTO ${this.name($)}
5
5
  (id, thread_id, run_id, tool_call_id, tool_name, owner, job, summary, state,
package/dist/app/App.d.ts CHANGED
@@ -43,6 +43,16 @@ export declare class App {
43
43
  * too, for a caller that is not one of the servers. Idempotent.
44
44
  */
45
45
  applyTrustedClientIp(req: Request): void;
46
+ /**
47
+ * How the servers serve static files to `req`'s host (#1015): whether the
48
+ * files copied out of `public/` are served, and whether a miss under
49
+ * `/assets` reaches the routes. Resolves the host only when a
50
+ * `route.domains` group sets either differently from the root.
51
+ */
52
+ staticFiles(req: Request): Promise<{
53
+ publicFiles: boolean;
54
+ assetRoutes: boolean;
55
+ }>;
46
56
  getRouteManifest(): Record<string, string[]>;
47
57
  private globallyGated;
48
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../app/App.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,SAAS,EACT,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,CAC7E,CAAC;AAEF,UAAU,SAAS;IACjB,MAAM,EAAE,UAAU,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAS;IAChB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;gBAEhC,MAAM,EAAE,SAAS;IAoBhB,WAAW;IAIjB,gBAAgB;IAOhB,oBAAoB;IAU3B;;;OAGG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQjD;;;;;;;OAOG;IACI,eAAe,IAAI,IAAI,GAAG,MAAM,EAAE;IAWzC;;;;OAIG;IACI,OAAO,IAAI,eAAe,GAAG,IAAI;IAIxC;;;;;;;;OAQG;IACI,oBAAoB,CAAC,GAAG,EAAE,OAAO;IAIjC,gBAAgB;IAQvB,OAAO,CAAC,aAAa,CAAiD;IAEtE;;;;;;;OAOG;IACU,oBAAoB,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EACzC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GACtD,OAAO,CAAC,QAAQ,CAAC;IAcP,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgD5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAOhD,4DAA4D;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAIzC,OAAO;IAIP,KAAK;CAGb;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../app/App.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,SAAS,EACT,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,CAC7E,CAAC;AAEF,UAAU,SAAS;IACjB,MAAM,EAAE,UAAU,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAS;IAChB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;gBAEhC,MAAM,EAAE,SAAS;IAoBhB,WAAW;IAIjB,gBAAgB;IAOhB,oBAAoB;IAU3B;;;OAGG;IACI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQjD;;;;;;;OAOG;IACI,eAAe,IAAI,IAAI,GAAG,MAAM,EAAE;IAWzC;;;;OAIG;IACI,OAAO,IAAI,eAAe,GAAG,IAAI;IAIxC;;;;;;;;OAQG;IACI,oBAAoB,CAAC,GAAG,EAAE,OAAO;IAIxC;;;;;OAKG;IACU,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxF,gBAAgB;IAQvB,OAAO,CAAC,aAAa,CAAiD;IAEtE;;;;;;;OAOG;IACU,oBAAoB,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EACzC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GACtD,OAAO,CAAC,QAAQ,CAAC;IAcP,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgD5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAOhD,4DAA4D;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAIzC,OAAO;IAIP,KAAK;CAGb;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC"}
package/dist/app/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ea as a}from"../chunk-743ympvp.js";import"../chunk-jd079awh.js";import"../chunk-9wcv7e1a.js";export{a as App};
2
+ import{Ea as a}from"../chunk-ktfc7jmg.js";import"../chunk-jd079awh.js";import"../chunk-9wcv7e1a.js";export{a as App};
3
3
 
4
4
  //# debugId=A7FB3B2CC8B73BFE64756E2164756E21
package/dist/bin/gemi.js CHANGED
@@ -36811,6 +36811,9 @@ class App {
36811
36811
  applyTrustedClientIp(req) {
36812
36812
  this.kernel.domains().applyClientIp(req);
36813
36813
  }
36814
+ async staticFiles(req) {
36815
+ return this.kernel.run.call(this.kernel, () => this.kernel.domains().staticFiles(req));
36816
+ }
36814
36817
  getRouteManifest() {
36815
36818
  return this.kernel.viewRoutes().routeManifest;
36816
36819
  }
@@ -42344,5 +42347,5 @@ program.command("app:route-manifest").action(async () => {
42344
42347
  });
42345
42348
  program.parse();
42346
42349
 
42347
- //# debugId=28FA09D63874A32764756E2164756E21
42350
+ //# debugId=9B84B31BF282F29E64756E2164756E21
42348
42351
  //# sourceMappingURL=gemi.js.map