@fugood/buttress-server-poc 2.23.0-beta.2 → 2.23.0-beta.4

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/bin/start.mjs CHANGED
@@ -3,6 +3,16 @@ import fs from 'node:fs'
3
3
  import path from 'node:path'
4
4
  import os from 'node:os'
5
5
  import TOML from '@iarna/toml'
6
+ import { createRequire } from 'node:module'
7
+
8
+ const require = createRequire(import.meta.url)
9
+ const pkg = require('../package.json')
10
+
11
+ // Handle --version/-v flag
12
+ if (process.argv.includes('--version') || process.argv.includes('-v')) {
13
+ console.log(pkg.version)
14
+ process.exit(0)
15
+ }
6
16
 
7
17
  const serverModule =
8
18
  process.env.NODE_ENV === 'development'
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{createRequire as e}from"node:module";import*as t from"@trpc/server";import*as r from"@huggingface/gguf";import*as n from"@fugood/llama.node";import*as o from"zod";var a,i,s,l,c,u,d={136:t=>{t.exports=e(import.meta.url)("node:url")},173:(e,t,r)=>{r.a(e,(async(e,n)=>{try{r.d(t,{UD:()=>x,Ux:()=>c.Ux,YO:()=>c.YO,Zy:()=>c.Zy,aE:()=>w,bR:()=>c.bR,sA:()=>E});var o=r(333),a=r(249),i=r(427),s=r(971),l=r(838),c=r(508),u=e([c]);c=(u.then?(await u)():u)[0];const d=new TextDecoder,f=o.initTRPC.context().create(),p=s.z.record(s.z.any()).optional(),m=s.z.object({id:s.z.string()}),y=s.z.object({id:s.z.string(),property:s.z.any().optional()}),h=s.z.object({type:s.z.string(),config:p}),v=(e,t)=>{const r=e.getReader();let n=!0;return(async()=>{try{for(;n;){const{value:e,done:o}=await r.read();if(o||!n)break;if(e){const r=d.decode(e,{stream:!0});t.next(r)}}t.complete()}catch(e){t.error(e)}finally{r.cancel().catch((()=>{}))}})(),()=>{n=!1,r.cancel().catch((()=>{}))}},b=(e={},t={})=>{const r=Array.isArray(e)?[...e]:{...e};return Object.entries(t||{}).forEach((([e,t])=>{t&&"object"==typeof t&&!Array.isArray(t)?r[e]=b(r[e]||{},t):r[e]=t})),r},_=e=>e&&"object"==typeof e?JSON.parse(JSON.stringify(e)):null,g=(e,t)=>{const r=_(e)||{},n=_(t)||{};return b(r,n)},w=(e=l,{defaultConfig:t}={})=>{const r=_(t)||{},n=Array.isArray(r.generators)?r.generators:[],{server:o,generators:a,...s}=r,c=e=>b(JSON.parse(JSON.stringify(s)),e||{});return f.router({startGenerator:f.procedure.input(h).mutation((async({input:t})=>{console.log("[Server] Start Generator:",t);const{type:r,config:o}=t,a=_(o),i=((e,t)=>{if(n.length>0){const r=n.filter((t=>t?.type===e));if(r.length>0&&t){const e=r.find((e=>e.model?.repo_id===t));if(e)return c(e)}}return Object.keys(s).length>0?c({}):null})(r,e.getModelIdentifier(r,a)),l=g(i,o);if(0===Object.keys(l).length)throw new Error("Buttress server missing generator configuration");return l.backend=l.backend||{},l.backend.type||(l.backend.type=r),e.startGenerator(r,l)})),finalizeGenerator:f.procedure.input(m).mutation((async({input:t})=>(console.log("[Server] Finalize Generator:",t),e.finalizeGenerator(t.id)))),ggmlLlm:f.router({initContext:f.procedure.input(y).subscription((({input:t})=>(0,i.sH)((r=>{console.log("[Server] Init Context:",t);let n=!0;return(async()=>{try{const o={...t.property,onProgress:e=>{n&&r.next({progress:e})}};await new Promise((e=>setTimeout(e)));const a=await e.ggmlLlm.initContext(t.id,o);n&&(r.next({result:a}),r.complete())}catch(e){n&&r.error(e)}})(),()=>{n=!1}})))),completion:f.procedure.input(y).subscription((({input:t})=>(0,i.sH)((r=>{console.log("[Server] Completion:",t);let n=()=>{};return(async()=>{try{const o=await e.ggmlLlm.completion(t.id,t.property);if(!o)return void r.complete();n=v(o,r)}catch(e){r.error(e)}})(),()=>n()})))),tokenize:f.procedure.input(y).query((async({input:t})=>(console.log("[Server] Tokenize:",t),e.ggmlLlm.tokenize(t.id,t.property)))),detokenize:f.procedure.input(y).mutation((async({input:t})=>(console.log("[Server] Detokenize:",t),e.ggmlLlm.detokenize(t.id,t.property)))),applyChatTemplate:f.procedure.input(y).query((async({input:t})=>(console.log("[Server] Apply Chat Template:",t),e.ggmlLlm.applyChatTemplate(t.id,t.property)))),releaseContext:f.procedure.input(y).mutation((async({input:t})=>(console.log("[Server] Release Context:",t),e.ggmlLlm.releaseContext(t.id,t.property))))})})},E=({backend:e=l,router:t,createContext:r=(()=>({})),defaultConfig:n}={})=>{const o=t||w(e,{defaultConfig:n});return{server:(0,a.qv)({router:o,createContext:r,basePath:"/trpc/"}),router:o,backend:e}},x=async({port:e=2080,backend:t,router:r,createContext:n,defaultConfig:o}={})=>{const{server:a,router:i}=E({backend:t,router:r,createContext:n,defaultConfig:o});return await new Promise((t=>a.listen(e,t))),{server:a,router:i,port:e}};n()}catch(e){n(e)}}))},249:(t,r,n)=>{n.d(r,{qv:()=>Et});const o={PARSE_ERROR:-32700,BAD_REQUEST:-32600,INTERNAL_SERVER_ERROR:-32603,NOT_IMPLEMENTED:-32603,BAD_GATEWAY:-32603,SERVICE_UNAVAILABLE:-32603,GATEWAY_TIMEOUT:-32603,UNAUTHORIZED:-32001,PAYMENT_REQUIRED:-32002,FORBIDDEN:-32003,NOT_FOUND:-32004,METHOD_NOT_SUPPORTED:-32005,TIMEOUT:-32008,CONFLICT:-32009,PRECONDITION_FAILED:-32012,PAYLOAD_TOO_LARGE:-32013,UNSUPPORTED_MEDIA_TYPE:-32015,UNPROCESSABLE_CONTENT:-32022,PRECONDITION_REQUIRED:-32028,TOO_MANY_REQUESTS:-32029,CLIENT_CLOSED_REQUEST:-32099},a={[-32700]:"PARSE_ERROR",[-32600]:"BAD_REQUEST",[-32603]:"INTERNAL_SERVER_ERROR",[-32001]:"UNAUTHORIZED",[-32002]:"PAYMENT_REQUIRED",[-32003]:"FORBIDDEN",[-32004]:"NOT_FOUND",[-32005]:"METHOD_NOT_SUPPORTED",[-32008]:"TIMEOUT",[-32009]:"CONFLICT",[-32012]:"PRECONDITION_FAILED",[-32013]:"PAYLOAD_TOO_LARGE",[-32015]:"UNSUPPORTED_MEDIA_TYPE",[-32022]:"UNPROCESSABLE_CONTENT",[-32028]:"PRECONDITION_REQUIRED",[-32029]:"TOO_MANY_REQUESTS",[-32099]:"CLIENT_CLOSED_REQUEST"};o.BAD_GATEWAY,o.SERVICE_UNAVAILABLE,o.GATEWAY_TIMEOUT,o.INTERNAL_SERVER_ERROR;function i(e){return!!e&&!Array.isArray(e)&&"object"==typeof e}const s="function"==typeof Symbol&&!!Symbol.asyncIterator;function l(e){return s&&i(e)&&Symbol.asyncIterator in e}const c=e=>e();function u(e){return e}var d=Object.create,f=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,y=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,v=(e,t)=>function(){return t||(0,e[m(e)[0]])((t={exports:{}}).exports,t),t.exports},b=(e,t,r)=>(r=null!=e?d(y(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var o,a=m(t),i=0,s=a.length;i<s;i++)o=a[i],h.call(e,o)||o===r||f(e,o,{get:(e=>t[e]).bind(null,o),enumerable:!(n=p(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:f(r,"default",{value:e,enumerable:!0}),e));const _={PARSE_ERROR:400,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_SUPPORTED:405,TIMEOUT:408,CONFLICT:409,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,UNSUPPORTED_MEDIA_TYPE:415,UNPROCESSABLE_CONTENT:422,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504};function g(e){var t;return null!==(t=_[e])&&void 0!==t?t:500}function w(e){return g(e.code)}var E=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(e,t){function r(e){return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t.exports.__esModule=!0,t.exports.default=t.exports,r(e)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),x=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(e,t){var r=E().default;t.exports=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},t.exports.__esModule=!0,t.exports.default=t.exports}}),O=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(e,t){var r=E().default,n=x();t.exports=function(e){var t=n(e,"string");return"symbol"==r(t)?t:t+""},t.exports.__esModule=!0,t.exports.default=t.exports}}),S=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(e,t){var r=O();t.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},t.exports.__esModule=!0,t.exports.default=t.exports}}),T=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(e,t){var r=S();function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}t.exports=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?n(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e},t.exports.__esModule=!0,t.exports.default=t.exports}}),k=b(T(),1);function P(e){const{path:t,error:r,config:n}=e,{code:a}=e.error,i={message:r.message,code:o[a],data:{code:a,httpStatus:w(r)}};return n.isDev&&"string"==typeof e.error.stack&&(i.data.stack=e.error.stack),"string"==typeof t&&(i.data.path=t),n.errorFormatter((0,k.default)((0,k.default)({},e),{},{shape:i}))}var R=b(S(),1),A=class extends Error{};function j(e){if(e instanceof N)return e;if(e instanceof Error&&"TRPCError"===e.name)return e;const t=new N({code:"INTERNAL_SERVER_ERROR",cause:e});return e instanceof Error&&e.stack&&(t.stack=e.stack),t}var N=class extends Error{constructor(e){var t,r,n;const o=function(e){if(e instanceof Error)return e;const t=typeof e;return"undefined"!==t&&"function"!==t&&null!==e?"object"!==t?new Error(String(e)):i(e)?Object.assign(new A,e):void 0:void 0}(e.cause);super(null!==(t=null!==(r=e.message)&&void 0!==r?r:null==o?void 0:o.message)&&void 0!==t?t:e.code,{cause:o}),(0,R.default)(this,"cause",void 0),(0,R.default)(this,"code",void 0),this.code=e.code,this.name="TRPCError",null!==(n=this.cause)&&void 0!==n||(this.cause=o)}},M=b(T(),1);function C(e,t){return"error"in t?(0,M.default)((0,M.default)({},t),{},{error:e.transformer.output.serialize(t.error)}):"data"in t.result?(0,M.default)((0,M.default)({},t),{},{result:(0,M.default)((0,M.default)({},t.result),{},{data:e.transformer.output.serialize(t.result.data)})}):t}function q(e,t){return Array.isArray(t)?t.map((t=>C(e,t))):C(e,t)}Error;b(T(),1);async function D(e,t){const{_def:r}=e;let n=r.procedures[t];for(;!n;){const e=Object.keys(r.lazy).find((e=>t.startsWith(e)));if(!e)return null;const o=r.lazy[e];await o.load(),n=r.procedures[t]}return n}const I=Symbol();function U(e){return Array.isArray(e)&&e[2]===I}var z=n(427);function L(e){let t;try{t=JSON.parse(e)}catch(e){throw new N({code:"PARSE_ERROR",message:"Not JSON-parsable query params",cause:e})}return function(e){try{if(null===e)return null;if(!i(e))throw new Error("Expected object");const t=Object.entries(e).filter((([e,t])=>"string"!=typeof t));if(t.length>0)throw new Error(`Expected connectionParams to be string values. Got ${t.map((([e,t])=>`${e}: ${typeof t}`)).join(", ")}`);return e}catch(e){throw new N({code:"PARSE_ERROR",message:"Invalid connection params shape",cause:e})}}(t)}var $=b(T(),1);function B(e){let t=null;const r=Symbol.for("@trpc/server/http/memo");let n=r;return{read:async()=>{var o;return n!==r||(null!==(o=t)&&void 0!==o||(t=e().catch((e=>{if(e instanceof N)throw e;throw new N({code:"BAD_REQUEST",message:e instanceof Error?e.message:"Invalid input",cause:e})}))),n=await t,t=null),n},result:()=>n!==r?n:void 0}}const G={isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("application/json"))},async parse(e){var t;const{req:r}=e,n="1"===e.searchParams.get("batch"),o=n?e.path.split(","):[e.path],a=B((async()=>{let t;if("GET"===r.method){const r=e.searchParams.get("input");r&&(t=JSON.parse(r))}else t=await r.json();if(void 0===t)return{};if(!n)return{0:e.router._def._config.transformer.input.deserialize(t)};if(!i(t))throw new N({code:"BAD_REQUEST",message:'"input" needs to be an object when doing a batch call'});const a={};for(const r of o.keys()){const n=t[r];void 0!==n&&(a[r]=e.router._def._config.transformer.input.deserialize(n))}return a})),s=await Promise.all(o.map((async(t,r)=>{const n=await D(e.router,t);return{path:t,procedure:n,getRawInput:async()=>{let t=(await a.read())[r];if("subscription"===(null==n?void 0:n._def.type)){var o,s;const r=null!==(o=null!==(s=e.headers.get("last-event-id"))&&void 0!==s?s:e.searchParams.get("lastEventId"))&&void 0!==o?o:e.searchParams.get("Last-Event-Id");if(r)if(i(t))t=(0,$.default)((0,$.default)({},t),{},{lastEventId:r});else{var l;null!==(l=t)&&void 0!==l||(t={lastEventId:r})}}return t},result:()=>{var e;return null===(e=a.result())||void 0===e?void 0:e[r]}}}))),l=new Set(s.map((e=>{var t;return null===(t=e.procedure)||void 0===t?void 0:t._def.type})).filter(Boolean));if(l.size>1)throw new N({code:"BAD_REQUEST",message:`Cannot mix procedure types in call: ${Array.from(l).join(", ")}`});const c=null!==(t=l.values().next().value)&&void 0!==t?t:"unknown",u=e.searchParams.get("connectionParams");return{isBatchCall:n,accept:r.headers.get("trpc-accept"),calls:s,type:c,connectionParams:null===u?null:L(u),signal:r.signal,url:e.url}}},F=[G,{isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("multipart/form-data"))},async parse(e){const{req:t}=e;if("POST"!==t.method)throw new N({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for multipart/form-data requests"});const r=B((async()=>await t.formData())),n=await D(e.router,e.path);return{accept:null,calls:[{path:e.path,getRawInput:r.read,result:r.result,procedure:n}],isBatchCall:!1,type:"mutation",connectionParams:null,signal:t.signal,url:e.url}}},{isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("application/octet-stream"))},async parse(e){const{req:t}=e;if("POST"!==t.method)throw new N({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for application/octet-stream requests"});const r=B((async()=>t.body));return{calls:[{path:e.path,getRawInput:r.read,result:r.result,procedure:await D(e.router,e.path)}],isBatchCall:!1,accept:null,type:"mutation",connectionParams:null,signal:t.signal,url:e.url}}}];async function J(e){const t=function(e){const t=F.find((t=>t.isMatch(e)));if(t)return t;if(!t&&"GET"===e.method)return G;throw new N({code:"UNSUPPORTED_MEDIA_TYPE",message:e.headers.has("content-type")?`Unsupported content-type "${e.headers.get("content-type")}`:"Missing content-type header"})}(e.req);return await t.parse(e)}function Y(e){return i(e)&&"AbortError"===e.name}function H(e="AbortError"){throw new DOMException(e,"AbortError")}function Q(e){return"[object Object]"===Object.prototype.toString.call(e)}var V=b(S(),1);let W;const Z=new WeakMap,K=()=>{};W=Symbol.toStringTag;var X,ee,te,re,ne=class e{constructor(e){(0,V.default)(this,"promise",void 0),(0,V.default)(this,"subscribers",[]),(0,V.default)(this,"settlement",null),(0,V.default)(this,W,"Unpromise"),this.promise="function"==typeof e?new Promise(e):e;const t=this.promise.then((e=>{const{subscribers:t}=this;this.subscribers=null,this.settlement={status:"fulfilled",value:e},null==t||t.forEach((({resolve:t})=>{t(e)}))}));"catch"in t&&t.catch((e=>{const{subscribers:t}=this;this.subscribers=null,this.settlement={status:"rejected",reason:e},null==t||t.forEach((({reject:t})=>{t(e)}))}))}subscribe(){let e,t;const{settlement:r}=this;if(null===r){if(null===this.subscribers)throw new Error("Unpromise settled but still has subscribers");const r=function(){let e,t;const r=new Promise(((r,n)=>{e=r,t=n}));return{promise:r,resolve:e,reject:t}}();this.subscribers=(n=this.subscribers,o=r,[...n,o]),e=r.promise,t=()=>{null!==this.subscribers&&(this.subscribers=function(e,t){const r=e.indexOf(t);return-1!==r?function(e,t){return[...e.slice(0,t),...e.slice(t+1)]}(e,r):e}(this.subscribers,r))}}else{const{status:n}=r;e="fulfilled"===n?Promise.resolve(r.value):Promise.reject(r.reason),t=K}var n,o;return Object.assign(e,{unsubscribe:t})}then(e,t){const r=this.subscribe(),{unsubscribe:n}=r;return Object.assign(r.then(e,t),{unsubscribe:n})}catch(e){const t=this.subscribe(),{unsubscribe:r}=t;return Object.assign(t.catch(e),{unsubscribe:r})}finally(e){const t=this.subscribe(),{unsubscribe:r}=t;return Object.assign(t.finally(e),{unsubscribe:r})}static proxy(t){const r=e.getSubscribablePromise(t);return void 0!==r?r:e.createSubscribablePromise(t)}static createSubscribablePromise(t){const r=new e(t);return Z.set(t,r),Z.set(r,r),r}static getSubscribablePromise(e){return Z.get(e)}static resolve(t){const r="object"==typeof t&&null!==t&&"then"in t&&"function"==typeof t.then?t:Promise.resolve(t);return e.proxy(r).subscribe()}static async any(t){const r=(Array.isArray(t)?t:[...t]).map(e.resolve);try{return await Promise.any(r)}finally{r.forEach((({unsubscribe:e})=>{e()}))}}static async race(t){const r=(Array.isArray(t)?t:[...t]).map(e.resolve);try{return await Promise.race(r)}finally{r.forEach((({unsubscribe:e})=>{e()}))}}static async raceReferences(e){const t=e.map(oe);try{return await Promise.race(t)}finally{for(const e of t)e.unsubscribe()}}};function oe(e){return ne.proxy(e).then((()=>[e]))}function ae(e,t){const r=e,n=r[Symbol.dispose];return r[Symbol.dispose]=()=>{t(),null==n||n()},r}function ie(e,t){const r=e,n=r[Symbol.asyncDispose];return r[Symbol.asyncDispose]=async()=>{await t(),await(null==n?void 0:n())},r}null!==(ee=(X=Symbol).dispose)&&void 0!==ee||(X.dispose=Symbol()),null!==(re=(te=Symbol).asyncDispose)&&void 0!==re||(te.asyncDispose=Symbol());const se=Symbol();function le(e){let t=null;return ae({start(){if(t)throw new Error("Timer already started");return new Promise((r=>{t=setTimeout((()=>r(se)),e)}))}},(()=>{t&&clearTimeout(t)}))}var ce=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(e,t){t.exports=function(){var e="function"==typeof SuppressedError?SuppressedError:function(e,t){var r=Error();return r.name="SuppressedError",r.error=e,r.suppressed=t,r},t={},r=[];function n(e,t){if(null!=t){if(Object(t)!==t)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(e)var n=t[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(void 0===n&&(n=t[Symbol.dispose||Symbol.for("Symbol.dispose")],e))var o=n;if("function"!=typeof n)throw new TypeError("Object is not disposable.");o&&(n=function(){try{o.call(t)}catch(e){return Promise.reject(e)}}),r.push({v:t,d:n,a:e})}else e&&r.push({d:t,a:e});return t}return{e:t,u:n.bind(null,!1),a:n.bind(null,!0),d:function(){var n,o=this.e,a=0;function i(){for(;n=r.pop();)try{if(!n.a&&1===a)return a=0,r.push(n),Promise.resolve().then(i);if(n.d){var e=n.d.call(n.v);if(n.a)return a|=2,Promise.resolve(e).then(i,s)}else a|=1}catch(e){return s(e)}if(1===a)return o!==t?Promise.reject(o):Promise.resolve();if(o!==t)throw o}function s(r){return o=o!==t?new e(r,o):r,i()}return i()}}},t.exports.__esModule=!0,t.exports.default=t.exports}}),ue=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(e,t){t.exports=function(e,t){this.v=e,this.k=t},t.exports.__esModule=!0,t.exports.default=t.exports}}),de=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(e,t){var r=ue();t.exports=function(e){return new r(e,0)},t.exports.__esModule=!0,t.exports.default=t.exports}}),fe=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(e,t){var r=ue();function n(e){var t,n;function o(t,n){try{var i=e[t](n),s=i.value,l=s instanceof r;Promise.resolve(l?s.v:s).then((function(r){if(l){var n="return"===t?"return":"next";if(!s.k||r.done)return o(n,r);r=e[n](r).value}a(i.done?"return":"normal",r)}),(function(e){o("throw",e)}))}catch(e){a("throw",e)}}function a(e,r){switch(e){case"return":t.resolve({value:r,done:!0});break;case"throw":t.reject(r);break;default:t.resolve({value:r,done:!1})}(t=t.next)?o(t.key,t.arg):n=null}this._invoke=function(e,r){return new Promise((function(a,i){var s={key:e,arg:r,resolve:a,reject:i,next:null};n?n=n.next=s:(t=n=s,o(e,r))}))},"function"!=typeof e.return&&(this.return=void 0)}n.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},n.prototype.next=function(e){return this._invoke("next",e)},n.prototype.throw=function(e){return this._invoke("throw",e)},n.prototype.return=function(e){return this._invoke("return",e)},t.exports=function(e){return function(){return new n(e.apply(this,arguments))}},t.exports.__esModule=!0,t.exports.default=t.exports}}),pe=b(ce(),1),me=b(de(),1),ye=b(fe(),1);function he(e){const t=e[Symbol.asyncIterator]();return t[Symbol.asyncDispose]?t:ie(t,(async()=>{var e;await(null===(e=t.return)||void 0===e?void 0:e.call(t))}))}function ve(){return(ve=(0,ye.default)((function*(e,t){try{var r=(0,pe.default)();const n=r.a(he(e)),o=r.u(le(t.maxDurationMs)).start();let a;for(;;){if(a=yield(0,me.default)(ne.race([n.next(),o])),a===se&&H(),a.done)return a;yield a.value,a=null}}catch(e){r.e=e}finally{yield(0,me.default)(r.d())}}))).apply(this,arguments)}function be(){return(be=(0,ye.default)((function*(e,t){try{var r=(0,pe.default)();const n=r.a(he(e));let o;const a=r.u(le(t.gracePeriodMs));let i=t.count,s=new Promise((()=>{}));for(;;){if(o=yield(0,me.default)(ne.race([n.next(),s])),o===se&&H(),o.done)return o.value;yield o.value,0==--i&&(s=a.start()),o=null}}catch(e){r.e=e}finally{yield(0,me.default)(r.d())}}))).apply(this,arguments)}function _e(){let e,t;return{promise:new Promise(((r,n)=>{e=r,t=n})),resolve:e,reject:t}}var ge=b(ce(),1),we=b(de(),1),Ee=b(fe(),1);function xe(){let e="idle",t=_e();const r=[],n=new Set,o=[];function a(r){if("pending"!==e)return;const a=function(e,t){const r=e[Symbol.asyncIterator]();let n="idle";function o(){n="done",t=()=>{}}return{pull:function(){"idle"===n&&(n="pending",r.next().then((e=>{if(e.done)return n="done",t({status:"return",value:e.value}),void o();n="idle",t({status:"yield",value:e.value})})).catch((e=>{t({status:"error",error:e}),o()})))},destroy:async()=>{var e;o(),await(null===(e=r.return)||void 0===e?void 0:e.call(r))}}}(r,(r=>{if("pending"===e){switch(r.status){case"yield":o.push([a,r]);break;case"return":n.delete(a);break;case"error":o.push([a,r]),n.delete(a)}t.resolve()}}));n.add(a),a.pull()}return{add(t){switch(e){case"idle":r.push(t);break;case"pending":a(t)}},[Symbol.asyncIterator]:()=>(0,Ee.default)((function*(){try{var i=(0,ge.default)();if("idle"!==e)throw new Error("Cannot iterate twice");e="pending";i.a(ie({},(async()=>{e="done";const r=[];if(await Promise.all(Array.from(n.values()).map((async e=>{try{await e.destroy()}catch(e){r.push(e)}}))),o.length=0,n.clear(),t.resolve(),r.length>0)throw new AggregateError(r)})));for(;r.length>0;)a(r.shift());for(;n.size>0;){for(yield(0,we.default)(t.promise);o.length>0;){const[e,t]=o.shift();switch(t.status){case"yield":yield t.value,e.pull();break;case"error":throw t.error}}t=_e()}}catch(e){i.e=e}finally{yield(0,we.default)(i.d())}}))()}}function Oe(e){const t=e[Symbol.asyncIterator]();return new ReadableStream({async cancel(){var e;await(null===(e=t.return)||void 0===e?void 0:e.call(t))},async pull(e){const r=await t.next();r.done?e.close():e.enqueue(r.value)}})}var Se=b(ce(),1),Te=b(de(),1),ke=b(fe(),1);const Pe=Symbol("ping");function Re(e,t){return Ae.apply(this,arguments)}function Ae(){return(Ae=(0,ke.default)((function*(e,t){try{var r=(0,Se.default)();const o=r.a(he(e));let a,i=o.next();for(;;)try{var n=(0,Se.default)();const e=n.u(le(t));if(a=yield(0,Te.default)(ne.race([i,e.start()])),a===se){yield Pe;continue}if(a.done)return a.value;i=o.next(),yield a.value,a=null}catch(e){n.e=e}finally{n.d()}}catch(e){r.e=e}finally{yield(0,Te.default)(r.d())}}))).apply(this,arguments)}var je=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(e,t){function r(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return(r=function(e){this.s=e,this.n=e.next}).prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new r(e)}t.exports=function(e){var t,n,o,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,o=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(o&&null!=(t=e[o]))return new r(t.call(e));n="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")},t.exports.__esModule=!0,t.exports.default=t.exports}}),Ne=b(de(),1),Me=b(fe(),1),Ce=b(ce(),1),qe=b(je(),1);const De=0,Ie=1,Ue=0,ze=1,Le=0,$e=1,Be=2;function Ge(e){return(i(e)||"function"==typeof e)&&"function"==typeof(null==e?void 0:e.then)&&"function"==typeof(null==e?void 0:e.catch)}var Fe=class extends Error{constructor(e){super("Max depth reached at path: "+e.join(".")),this.path=e}};function Je(){return Je=(0,Me.default)((function*(e){const{data:t}=e;let r=0;const n=0,o=xe();function a(e){const t=r++,n=e(t);return o.add(n),t}function i(t,r){return a(function(){var n=(0,Me.default)((function*(n){const o=c(r);o&&(t.catch((t=>{var n;null===(n=e.onError)||void 0===n||n.call(e,{error:t,path:r})})),t=Promise.reject(o));try{const e=yield(0,Ne.default)(t);yield[n,Ue,d(e,r)]}catch(t){var a,i;null===(a=e.onError)||void 0===a||a.call(e,{error:t,path:r}),yield[n,ze,null===(i=e.formatError)||void 0===i?void 0:i.call(e,{error:t,path:r})]}}));return function(e){return n.apply(this,arguments)}}())}function s(t,r){return a(function(){var n=(0,Me.default)((function*(n){try{var o=(0,Ce.default)();const s=c(r);if(s)throw s;const l=o.a(he(t));try{for(;;){const e=yield(0,Ne.default)(l.next());if(e.done){yield[n,Le,d(e.value,r)];break}yield[n,$e,d(e.value,r)]}}catch(t){var a,i;null===(a=e.onError)||void 0===a||a.call(e,{error:t,path:r}),yield[n,Be,null===(i=e.formatError)||void 0===i?void 0:i.call(e,{error:t,path:r})]}}catch(e){o.e=e}finally{yield(0,Ne.default)(o.d())}}));return function(e){return n.apply(this,arguments)}}())}function c(t){return e.maxDepth&&t.length>e.maxDepth?new Fe(t):null}function u(t,r){if(Ge(t))return[De,i(t,r)];if(l(t)){if(e.maxDepth&&r.length>=e.maxDepth)throw new Error("Max depth reached");return[Ie,s(t,r)]}return null}function d(e,t){if(void 0===e)return[[]];const r=u(e,t);if(r)return[[n],[null,...r]];if(!1===Q(o=e)||void 0!==(a=o.constructor)&&(!1===Q(i=a.prototype)||!1===i.hasOwnProperty("isPrototypeOf")))return[[e]];var o,a,i;const s={},l=[];for(const[r,o]of Object.entries(e)){const e=u(o,[...t,r]);e?(s[r]=n,l.push([r,...e])):s[r]=o}return[[s],...l]}const f={};for(const[e,r]of Object.entries(t))f[e]=d(r,[e]);yield f;let p=o;e.pingMs&&(p=Re(o,e.pingMs));var m,y=!1,h=!1;try{for(var v,b=(0,qe.default)(p);y=!(v=yield(0,Ne.default)(b.next())).done;y=!1){const e=v.value;yield e}}catch(e){h=!0,m=e}finally{try{y&&null!=b.return&&(yield(0,Ne.default)(b.return()))}finally{if(h)throw m}}})),Je.apply(this,arguments)}function Ye(e){let t=Oe(function(e){return Je.apply(this,arguments)}(e));const{serialize:r}=e;return r&&(t=t.pipeThrough(new TransformStream({transform(e,t){e===Pe?t.enqueue(Pe):t.enqueue(r(e))}}))),t.pipeThrough(new TransformStream({transform(e,t){e===Pe?t.enqueue(" "):t.enqueue(JSON.stringify(e)+"\n")}})).pipeThrough(new TextEncoderStream)}Error;var He=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js"(e,t){var r=ue();t.exports=function(e){var t={},n=!1;function o(t,o){return n=!0,o=new Promise((function(r){r(e[t](o))})),{done:!1,value:new r(o,1)}}return t["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},t.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(t.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(t.return=function(e){return n?(n=!1,e):o("return",e)}),t},t.exports.__esModule=!0,t.exports.default=t.exports}}),Qe=b(je(),1),Ve=b(de(),1),We=b(fe(),1),Ze=b(He(),1);b(ce(),1);const Ke="ping",Xe="serialized-error",et="connected",tt="return";function rt(e){var t,r,n,o,a;const{serialize:i=u}=e,s={enabled:null!==(t=null===(r=e.ping)||void 0===r?void 0:r.enabled)&&void 0!==t&&t,intervalMs:null!==(n=null===(o=e.ping)||void 0===o?void 0:o.intervalMs)&&void 0!==n?n:1e3},l=null!==(a=e.client)&&void 0!==a?a:{};if(s.enabled&&l.reconnectAfterInactivityMs&&s.intervalMs>l.reconnectAfterInactivityMs)throw new Error(`Ping interval must be less than client reconnect interval to prevent unnecessary reconnection - ping.intervalMs: ${s.intervalMs} client.reconnectAfterInactivityMs: ${l.reconnectAfterInactivityMs}`);function c(){return c=(0,We.default)((function*(){yield{event:et,data:JSON.stringify(l)};let t,r,n=e.data;e.emitAndEndImmediately&&(n=function(e,t){return be.apply(this,arguments)}(n,{count:1,gracePeriodMs:1})),e.maxDurationMs&&e.maxDurationMs>0&&e.maxDurationMs!==1/0&&(n=function(e,t){return ve.apply(this,arguments)}(n,{maxDurationMs:e.maxDurationMs})),s.enabled&&s.intervalMs!==1/0&&s.intervalMs>0&&(n=Re(n,s.intervalMs));var o,a=!1,c=!1;try{for(var u,d=(0,Qe.default)(n);a=!(u=yield(0,Ve.default)(d.next())).done;a=!1)t=u.value,t!==Pe?(r=U(t)?{id:t[0],data:t[1]}:{data:t},r.data=JSON.stringify(i(r.data)),yield r,t=null,r=null):yield{event:Ke,data:""}}catch(e){c=!0,o=e}finally{try{a&&null!=d.return&&(yield(0,Ve.default)(d.return()))}finally{if(c)throw o}}})),c.apply(this,arguments)}function d(){return d=(0,We.default)((function*(){try{yield*(0,Ze.default)((0,Qe.default)(function(){return c.apply(this,arguments)}())),yield{event:tt,data:""}}catch(n){var t,r;if(Y(n))return;const o=j(n),a=null!==(t=null===(r=e.formatError)||void 0===r?void 0:r.call(e,{error:o}))&&void 0!==t?t:null;yield{event:Xe,data:JSON.stringify(i(a))}}})),d.apply(this,arguments)}const f=Oe(function(){return d.apply(this,arguments)}());return f.pipeThrough(new TransformStream({transform(e,t){"event"in e&&t.enqueue(`event: ${e.event}\n`),"data"in e&&t.enqueue(`data: ${e.data}\n`),"id"in e&&t.enqueue(`id: ${e.id}\n`),"comment"in e&&t.enqueue(`: ${e.comment}\n`),t.enqueue("\n\n")}})).pipeThrough(new TextEncoderStream)}const nt={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform","X-Accel-Buffering":"no",Connection:"keep-alive"};var ot=b(fe(),1),at=b(T(),1);function it(e){return c((0,ot.default)((function*(){throw e})))}const st={mutation:["POST"],query:["GET"],subscription:["GET"]},lt={mutation:["POST"],query:["GET","POST"],subscription:["GET","POST"]};function ct(e){var t,r,n;const{ctx:o,info:s,responseMeta:l,untransformedJSON:c,errors:u=[],headers:d}=e;let f=c?function(e){const t=Array.isArray(e)?e:[e],r=new Set(t.map((e=>{var t;return"error"in e&&i(e.error.data)?"number"==typeof(null===(t=e.error.data)||void 0===t?void 0:t.httpStatus)?e.error.data.httpStatus:g(a[e.error.code]):200})));return 1!==r.size?207:r.values().next().value}(c):200;const p=!c,m=p?[]:Array.isArray(c)?c:[c],y=null!==(t=null==l?void 0:l({ctx:o,info:s,paths:null==s?void 0:s.calls.map((e=>e.path)),data:m,errors:u,eagerGeneration:p,type:null!==(r=null==s||null===(n=s.calls.find((e=>{var t;return null===(t=e.procedure)||void 0===t?void 0:t._def.type})))||void 0===n||null===(n=n.procedure)||void 0===n?void 0:n._def.type)&&void 0!==r?r:"unknown"}))&&void 0!==t?t:{};if(y.headers)if(y.headers instanceof Headers)for(const[e,t]of y.headers.entries())d.append(e,t);else for(const[e,t]of Object.entries(y.headers))if(Array.isArray(t))for(const r of t)d.append(e,r);else"string"==typeof t&&d.set(e,t);return y.status&&(f=y.status),{status:f}}function ut(e){return!!i(e)&&(!!l(e)||(Object.values(e).some(Ge)||Object.values(e).some(l)))}async function dt(e){var t,r,n,o,a,i;const{router:s,req:u}=e,d=new Headers([["vary","trpc-accept"]]),f=s._def._config,p=new URL(u.url);if("HEAD"===u.method)return new Response(null,{status:204});const m=null===(t=null!==(r=e.allowBatching)&&void 0!==r?r:null===(n=e.batching)||void 0===n?void 0:n.enabled)||void 0===t||t,y=null!==(o=e.allowMethodOverride)&&void 0!==o&&o&&"POST"===u.method,h=await c((async()=>{try{return[void 0,await J({req:u,path:decodeURIComponent(e.path),router:s,searchParams:p.searchParams,headers:e.req.headers,url:p})]}catch(e){return[j(e),void 0]}})),v=c((()=>{let t;return{valueOrUndefined:()=>{if(t)return t[1]},value:()=>{const[e,r]=t;if(e)throw e;return r},create:async r=>{if(t)throw new Error("This should only be called once - report a bug in tRPC");try{const n=await e.createContext({info:r});t=[void 0,n]}catch(e){t=[j(e),void 0]}}}})),b=y?lt:st,_="application/jsonl"===u.headers.get("trpc-accept"),g=null===(a=null===(i=f.sse)||void 0===i?void 0:i.enabled)||void 0===a||a;try{const[t,r]=h;if(t)throw t;if(r.isBatchCall&&!m)throw new N({code:"BAD_REQUEST",message:"Batching is not enabled on the server"});if(_&&!r.isBatchCall)throw new N({message:"Streaming requests must be batched (you can do a batch of 1)",code:"BAD_REQUEST"});await v.create(r);const n=r.calls.map((async t=>{const n=t.procedure;try{if(e.error)throw e.error;if(!n)throw new N({code:"NOT_FOUND",message:`No procedure found on path "${t.path}"`});if(!b[n._def.type].includes(u.method))throw new N({code:"METHOD_NOT_SUPPORTED",message:`Unsupported ${u.method}-request to ${n._def.type} procedure at path "${t.path}"`});if("subscription"===n._def.type&&r.isBatchCall)throw new N({code:"BAD_REQUEST",message:"Cannot batch subscription calls"});return[void 0,{data:await n({path:t.path,getRawInput:t.getRawInput,ctx:v.value(),type:n._def.type,signal:e.req.signal})}]}catch(r){var o,a,i;const n=j(r),s=t.result();return null===(o=e.onError)||void 0===o||o.call(e,{error:n,path:t.path,input:s,ctx:v.valueOrUndefined(),type:null!==(a=null===(i=t.procedure)||void 0===i?void 0:i._def.type)&&void 0!==a?a:"unknown",req:e.req}),[n,void 0]}}));if(!r.isBatchCall){const[t]=r.calls,[o,a]=await n[0];switch(r.type){case"unknown":case"mutation":case"query":{if(d.set("content-type","application/json"),ut(null==a?void 0:a.data))throw new N({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"});const n=o?{error:P({config:f,ctx:v.valueOrUndefined(),error:o,input:t.result(),path:t.path,type:r.type})}:{result:{data:a.data}},i=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:o?[o]:[],headers:d,untransformedJSON:[n]});return new Response(JSON.stringify(q(f,n)),{status:i.status,headers:d})}case"subscription":{const n=c((()=>{if(o)return it(o);if(!g)return it(new N({code:"METHOD_NOT_SUPPORTED",message:'Missing experimental flag "sseSubscriptions"'}));if(!(0,z.AT)(a.data)&&!l(a.data))return it(new N({message:`Subscription ${t.path} did not return an observable or a AsyncGenerator`,code:"INTERNAL_SERVER_ERROR"}));return(0,z.AT)(a.data)?(0,z.di)(a.data,e.req.signal):a.data})),i=rt((0,at.default)((0,at.default)({},f.sse),{},{data:n,serialize:e=>f.transformer.output.serialize(e),formatError(r){var n,o,a;const i=j(r.error),s=null==t?void 0:t.result(),l=null==t?void 0:t.path,c=null!==(n=null==t||null===(o=t.procedure)||void 0===o?void 0:o._def.type)&&void 0!==n?n:"unknown";null===(a=e.onError)||void 0===a||a.call(e,{error:i,path:l,input:s,ctx:v.valueOrUndefined(),req:e.req,type:c});return P({config:f,ctx:v.valueOrUndefined(),error:i,input:s,path:l,type:c})}}));for(const[e,t]of Object.entries(nt))d.set(e,t);const s=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:[],headers:d,untransformedJSON:null});return new Response(i,{headers:d,status:s.status})}}}if("application/jsonl"===r.accept){d.set("content-type","application/json"),d.set("transfer-encoding","chunked");const t=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:[],headers:d,untransformedJSON:null}),o=Ye((0,at.default)((0,at.default)({},f.jsonl),{},{maxDepth:1/0,data:n.map((async t=>{const[n,o]=await t,a=r.calls[0];var i,s;if(n)return{error:P({config:f,ctx:v.valueOrUndefined(),error:n,input:a.result(),path:a.path,type:null!==(i=null===(s=a.procedure)||void 0===s?void 0:s._def.type)&&void 0!==i?i:"unknown"})};const l=(0,z.AT)(o.data)?(0,z.di)(o.data,e.req.signal):Promise.resolve(o.data);return{result:Promise.resolve({data:l})}})),serialize:e=>f.transformer.output.serialize(e),onError:t=>{var n,o;null===(n=e.onError)||void 0===n||n.call(e,{error:j(t),path:void 0,input:void 0,ctx:v.valueOrUndefined(),req:e.req,type:null!==(o=null==r?void 0:r.type)&&void 0!==o?o:"unknown"})},formatError(e){var t,n;const o=null==r?void 0:r.calls[e.path[0]],a=j(e.error),i=null==o?void 0:o.result(),s=null==o?void 0:o.path,l=null!==(t=null==o||null===(n=o.procedure)||void 0===n?void 0:n._def.type)&&void 0!==t?t:"unknown";return P({config:f,ctx:v.valueOrUndefined(),error:a,input:i,path:s,type:l})}}));return new Response(o,{headers:d,status:t.status})}d.set("content-type","application/json");const o=(await Promise.all(n)).map((e=>{const[t,r]=e;return t?e:ut(r.data)?[new N({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"}),void 0]:e})),a=o.map((([e,t],n)=>{const o=r.calls[n];var a,i;return e?{error:P({config:f,ctx:v.valueOrUndefined(),error:e,input:o.result(),path:o.path,type:null!==(a=null===(i=o.procedure)||void 0===i?void 0:i._def.type)&&void 0!==a?a:"unknown"})}:{result:{data:t.data}}})),i=o.map((([e])=>e)).filter(Boolean),s=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,untransformedJSON:a,errors:i,headers:d});return new Response(JSON.stringify(q(f,a)),{status:s.status,headers:d})}catch(t){var w;const[r,n]=h,o=v.valueOrUndefined(),{error:a,untransformedJSON:i,body:s}=function(e,t){const{router:r,req:n,onError:o}=t.opts,a=j(e);null==o||o({error:a,path:t.path,input:t.input,ctx:t.ctx,type:t.type,req:n});const i={error:P({config:r._def._config,error:a,type:t.type,path:t.path,input:t.input,ctx:t.ctx})},s=q(r._def._config,i);return{error:a,untransformedJSON:i,body:JSON.stringify(s)}}(t,{opts:e,ctx:v.valueOrUndefined(),type:null!==(w=null==n?void 0:n.type)&&void 0!==w?w:"unknown"}),l=ct({ctx:o,info:n,responseMeta:e.responseMeta,untransformedJSON:i,errors:[a],headers:d});return new Response(s,{status:l.status,headers:d})}}function ft(e){try{var t,r;const n=e.headers[":scheme"]&&"https"===e.headers[":scheme"]||e.socket&&"encrypted"in e.socket&&e.socket.encrypted?"https:":"http:",o=null!==(t=null!==(r=e.headers.host)&&void 0!==r?r:e.headers[":authority"])&&void 0!==t?t:"localhost";return new URL(e.url,`${n}//${o}`)}catch(e){throw new N({code:"BAD_REQUEST",message:"Invalid URL",cause:e})}}function pt(e){const t=new Headers;for(const r in e){const n=e[r];if("string"!=typeof r||!r.startsWith(":"))if(Array.isArray(n))for(const e of n)t.append(r,e);else null!=n&&t.append(r,n)}return t}function mt(e,t,r){const n=new AbortController,o=()=>{t.off("close",o),e.off("aborted",o),n.abort()};t.once("close",o),e.once("aborted",o);const a=ft(e),i={headers:pt(e.headers),method:e.method,signal:n.signal};"GET"!==e.method&&"HEAD"!==e.method&&(i.body=function(e,t){if("body"in e){if(void 0===e.body)return;return"string"==typeof e.body?e.body:JSON.stringify(e.body)}let r=0,n=!1;return new ReadableStream({start(o){const a=s=>{r+=s.length,!t.maxBodySize||r<=t.maxBodySize?o.enqueue(new Uint8Array(s.buffer,s.byteOffset,s.byteLength)):(o.error(new N({code:"PAYLOAD_TOO_LARGE"})),n=!0,e.off("data",a),e.off("end",i))},i=()=>{n||(n=!0,e.off("data",a),e.off("end",i),o.close())};e.on("data",a),e.on("end",i)},cancel(){e.destroy()}})}(e,r),i.duplex="half");return new Request(a,i)}async function yt(e){const{res:t}=e;try{const r=new WritableStream({async write(e){var r;await async function(e,t){!1===e.write(t)&&await new Promise(((t,r)=>{const n=e=>{r(e),a()},o=()=>{t(),a()},a=()=>{e.off("error",n),e.off("drain",o)};e.once("error",n),e.once("drain",o)}))}(t,e),null===(r=t.flush)||void 0===r||r.call(t)}});await e.body.pipeTo(r,{signal:e.signal})}catch(e){if(Y(e))return;throw e}}var ht=b(T(),1);function vt(e){return t=>{var r;const{res:n,req:o}=e,a=j(t),i=P({config:e.router._def._config,error:a,type:"unknown",path:void 0,input:void 0,ctx:void 0});null===(r=e.onError)||void 0===r||r.call(e,{req:o,error:a,type:"unknown",path:void 0,input:void 0,ctx:void 0});const s=q(e.router._def._config,{error:i});n.statusCode=i.data.httpStatus,n.end(JSON.stringify(s))}}async function bt(e){return new Promise((t=>{var r;const n=null!==(r=e.middleware)&&void 0!==r?r:(e,t,r)=>r();return e.res.once("finish",(()=>{t()})),n(e.req,e.res,(t=>{c((async()=>{var r;const n=mt(e.req,e.res,{maxBodySize:null!==(r=e.maxBodySize)&&void 0!==r?r:null}),o=await dt((0,ht.default)((0,ht.default)({},e),{},{req:n,error:t?j(t):null,createContext:async t=>{var r;return await(null===(r=e.createContext)||void 0===r?void 0:r.call(e,(0,ht.default)((0,ht.default)({},e),t)))},onError(t){var r;null==e||null===(r=e.onError)||void 0===r||r.call(e,(0,ht.default)((0,ht.default)({},t),{},{req:e.req}))}}));await async function(e){const{response:t,rawResponse:r}=e;200===r.statusCode&&(r.statusCode=t.status);for(const[e,n]of t.headers)r.setHeader(e,n);try{t.body&&await yt({res:r,signal:e.request.signal,body:t.body})}catch(e){throw r.headersSent||(r.statusCode=500),e}finally{r.end()}}({request:n,response:o,rawResponse:e.res})})).catch(vt(e))}))}))}const _t=e(import.meta.url)("http");var gt=b(T(),1);function wt(e){var t;const r=(null!==(t=e.basePath)&&void 0!==t?t:"/").length;return(t,n)=>{let o="";c((async()=>{const a=ft(t);o=a.pathname.slice(r),await bt((0,gt.default)((0,gt.default)({},e),{},{req:t,res:n,path:o}))})).catch(vt((0,gt.default)({req:t,res:n,path:o},e)))}}function Et(e){return _t.createServer(function(e){return wt(e)}(e))}},333:(e,r,n)=>{e.exports=(e=>{var t={};return n.d(t,e),t})({initTRPC:()=>t.initTRPC})},427:(e,t,r)=>{function n(e){return"object"==typeof e&&null!==e&&"subscribe"in e}function o(e){const t={subscribe(t){let r=null,n=!1,o=!1,a=!1;function i(){null!==r?o||(o=!0,"function"==typeof r?r():r&&r.unsubscribe()):a=!0}return r=e({next(e){var r;n||null===(r=t.next)||void 0===r||r.call(t,e)},error(e){var r;n||(n=!0,null===(r=t.error)||void 0===r||r.call(t,e),i())},complete(){var e;n||(n=!0,null===(e=t.complete)||void 0===e||e.call(t),i())}}),a&&i(),{unsubscribe:i}},pipe:(...e)=>e.reduce(a,t)};return t}function a(e,t){return t(e)}function i(e,t){const r=function(e,t){let r=null;const n=()=>{null==r||r.unsubscribe(),r=null,t.removeEventListener("abort",n)};return new ReadableStream({start(o){r=e.subscribe({next(e){o.enqueue({ok:!0,value:e})},error(e){o.enqueue({ok:!1,error:e}),o.close()},complete(){o.close()}}),t.aborted?n():t.addEventListener("abort",n,{once:!0})},cancel(){n()}})}(e,t),n=r.getReader(),o={async next(){const e=await n.read();if(e.done)return{value:void 0,done:!0};const{value:t}=e;if(!t.ok)throw t.error;return{value:t.value,done:!1}},return:async()=>(await n.cancel(),{value:void 0,done:!0})};return{[Symbol.asyncIterator]:()=>o}}r.d(t,{AT:()=>n,di:()=>i,sH:()=>o})},455:t=>{t.exports=e(import.meta.url)("node:fs/promises")},508:(e,t,r)=>{r.a(e,(async(e,n)=>{try{r.d(t,{Ux:()=>d,YO:()=>c,Zy:()=>f,bR:()=>m});var o=r(455),a=r(136),i=r(760);const e=(0,a.fileURLToPath)("file:///Users/jhen/workspace/mybigday-bricks/buttress/buttress-server-poc/src/version-check.js"),s=i.dirname(e),l=JSON.parse(await(0,o.readFile)(i.join(s,"../package.json"),"utf8")),{version:c,name:u}=l,d=async()=>{const e=`https://registry.npmjs.org/${u}/latest`;try{const t=new AbortController,r=setTimeout((()=>t.abort()),3e3),n=await fetch(e,{headers:{Accept:"application/json"},signal:t.signal});if(clearTimeout(r),!n.ok)return null;return(await n.json()).version||null}catch{return null}},f=(e,t)=>{if(!t)return!1;const r=e.split(/[.-]/),n=t.split(/[.-]/);for(let e=0;e<Math.max(r.length,n.length);e+=1){const t=parseInt(r[e])||0,o=parseInt(n[e])||0;if(o>t)return!0;if(o<t)return!1}return!1},p=e=>{console.log(""),console.log("╭─────────────────────────────────────────────────╮"),console.log("│ Update available! %s → %s",c.padEnd(12),e.padEnd(12),"│"),console.log("│ │"),console.log("│ Run to upgrade: │"),console.log("│ npm install -g %s │",u.padEnd(27)),console.log("╰─────────────────────────────────────────────────╯"),console.log("")},m=async()=>{try{const e=await d();e&&f(c,e)&&p(e)}catch(e){}};n()}catch(e){n(e)}}),1)},760:t=>{t.exports=e(import.meta.url)("node:path")},838:(t,o,a)=>{a.r(o),a.d(o,{finalizeGenerator:()=>F,getModelIdentifier:()=>Y,ggmlLlm:()=>J,startGenerator:()=>G});var i=a(760);const s=e(import.meta.url)("node:os");var l=a(455);const c=e(import.meta.url)("node:crypto");const u=(e=>{var t={};return a.d(t,e),t})({gguf:()=>r.gguf});const d=(e=>{var t={};return a.d(t,e),t})({getBackendDevicesInfo:()=>n.getBackendDevicesInfo,isLibVariantAvailable:()=>n.isLibVariantAvailable,loadModel:()=>n.loadModel}),f=e(import.meta.url)("node:stream/web");var p=a.t(f,2);const m="undefined"!=typeof globalThis&&globalThis.ReadableStream&&globalThis.WritableStream?{ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream}:p,{ReadableStream:y,WritableStream:h}=m,v=new TextEncoder,b=(e={},t={})=>(Object.entries(t||{}).forEach((([t,r])=>{r&&"object"==typeof r&&!Array.isArray(r)?(e[t]&&"object"==typeof e[t]||(e[t]={}),b(e[t],r)):e[t]=r})),e),_="https://huggingface.co",g="https://huggingface.co/api",w=i.join(s.homedir(),".buttress","models"),E=["mxfp4","q8_0","q6_k","q6","q5_k_m","q5_k_s","q5_k","q5_1","q5_0","q4_k_m","q4_k_s","q4_k","q4_1","q4_0","q3","q2"],x={f16:2,f32:4,q8_0:1,q6_k:.75,q5_k:.625,q5_k_m:.625,q5_k_s:.625,q5_1:.625,q5_0:.625,q4_k:.5,q4_k_m:.5,q4_k_s:.5,q4_1:.5,q4_0:.5,iq4_nl:.5},O={backend:{type:"ggml-llm",variant:null,variant_preference:["cuda","vulkan","default"],gpu_memory_fraction:.85,cpu_memory_fraction:.5},model:{repo_id:null,revision:"main",filename:null,url:null,quantization:null,preferred_quantizations:[],n_ctx:null,n_gpu_layers:"auto",n_parallel:4,n_batch:2048,flash_attn:"auto",cache_k_type:"f16",cache_v_type:"f16",ctx_shift:!1,kv_unified:!1,swa_full:!1,allow_local_file:!1,local_path:null,api_base:g,base_url:_},runtime:{cache_dir:w,prefer_variants:[],huggingface_token:process.env.HUGGINGFACE_TOKEN||null,http_headers:{}}},S=(e,t=[])=>e||0===e?Array.isArray(e)?e.filter((e=>null!=e)):[e]:[...t],T=e=>{if(!e)return null;const t=String(e).toLowerCase();return["cuda","vulkan","default"].includes(t)?t:null},k=(e={})=>{const t=JSON.parse(JSON.stringify(O));if(b(t,e),t.backend.variant=T(t.backend.variant),t.backend.variant_preference=Array.from(new Set(S(t.backend.variant_preference).map(T).filter(Boolean))),0===t.backend.variant_preference.length&&(t.backend.variant_preference=["cuda","vulkan","default"]),t.runtime.prefer_variants=Array.from(new Set(S(t.runtime.prefer_variants).map(T).filter(Boolean))),t.model.preferred_quantizations=Array.from(new Set(S(t.model.preferred_quantizations||t.model.quantizations).map((e=>e?String(e).toLowerCase():null)).filter(Boolean))),t.model.quantization){const e=String(t.model.quantization).toLowerCase();t.model.preferred_quantizations.includes(e)||t.model.preferred_quantizations.unshift(e)}return t.model.n_parallel=Math.max(1,Number(t.model.n_parallel)||4),t.model.n_batch=Math.max(1,Number(t.model.n_batch)||512),t.model.base_url=t.model.base_url||_,t.model.api_base=t.model.api_base||g,t.runtime.cache_dir=t.runtime.cache_dir?i.resolve(t.runtime.cache_dir):w,t},P=e=>{const t=e?String(e).toLowerCase():"f16";return x[t]||2},R=e=>{const t=e.toLowerCase();return E.find((e=>t.includes(e)))||null},A=async(e,t={})=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");const r=await fetch(e,{...t,method:"HEAD"});if(!r.ok)throw new Error(`Failed to fetch headers for ${e}: ${r.status} ${r.statusText}`);return r},j=async(e,t,r,n,o)=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");await(async e=>{await(0,l.mkdir)(e,{recursive:!0})})(i.dirname(r));const a=await fetch(e,{headers:t});if(!a.ok||!a.body)throw new Error(`Failed to download ${e}: ${a.status} ${a.statusText}`);const s=await(0,l.open)(r,"w"),c=Number(a.headers.get("content-length"))||n||0;let u=0,d=.05;try{await a.body.pipeTo(new h({async write(e){if(await s.write(e),u+=e.byteLength,"function"==typeof o&&c>0){const e=Math.min(1,u/c);for(;e>=d;)o(d),d+=.05}},async close(){await s.close(),"function"==typeof o&&o(1)},async abort(e){throw await s.close().catch((()=>{})),await(0,l.unlink)(r).catch((()=>{})),e}}))}catch(e){throw await s.close().catch((()=>{})),await(0,l.unlink)(r).catch((()=>{})),e}if(n){const e=await(0,l.stat)(r);if(e.size!==n)throw await(0,l.unlink)(r).catch((()=>{})),new Error(`Downloaded file size mismatch, expected ${n} got ${e.size}`)}},N=async e=>{const t=e.model.repo_id||e.model.repository||e.model.model;if(!t)throw new Error("`model.repo_id` is required in Buttress backend config");const r=e.model.revision||"main",n={...e.runtime.http_headers||{}};if(e.runtime.huggingface_token&&(n.Authorization=`Bearer ${e.runtime.huggingface_token}`),e.model.url){const o=await A(e.model.url,{headers:n}),a=Number(o.headers.get("content-length"))||null;return{repoId:t,revision:r,filename:e.model.filename||e.model.url.split("/").pop(),url:e.model.url,size:a,headers:n}}let{filename:o}=e.model,a=e.model.quantization&&String(e.model.quantization).toLowerCase();const i=await(async(e,t={})=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");const r=await fetch(e,t);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Failed to fetch ${e}: ${r.status} ${r.statusText} ${t}`.trim())}return r.json()})(`${e.model.api_base}/models/${t}?revision=${r}`,{headers:n}),s=(i?.siblings||i?.files||[]).map((e=>e.rfilename||e.path||e.filename)).filter((e=>"string"==typeof e&&e.endsWith(".gguf")));if(0===s.length)throw new Error(`No GGUF artifacts found in repo ${t}`);const l=e.model.preferred_quantizations.length>0?e.model.preferred_quantizations:E;if(o)a||(a=R(o));else{const e=(()=>{const e=l.find((e=>s.find((t=>t.toLowerCase().includes(e)))));if(e)return{filename:s.find((t=>t.toLowerCase().includes(e))),quantization:e};return null})()||{filename:s[0],quantization:null},{filename:t,quantization:r}=e;o=t,a=r||R(o)}const c=`${e.model.base_url.replace(/\/+$/,"")}/${t}/resolve/${r}/${o}`,u=await A(c,{headers:n});return{repoId:t,revision:r,filename:o,url:c,size:Number(u.headers.get("content-length"))||null,quantization:a,headers:n}},M=async e=>{const t=(e=>{const t=[];return e.backend.variant&&t.push(e.backend.variant),e.runtime.prefer_variants.length>0&&t.push(...e.runtime.prefer_variants),t.push(...e.backend.variant_preference),t.push("default"),Array.from(new Set(t.map(T).filter(Boolean)))})(e),r=await Promise.all(t.map((async e=>{try{if(!await(0,d.isLibVariantAvailable)(e))return{variant:e,devices:[],ok:!1,error:new Error(`Variant ${e} not available on this platform`)};const t=await(0,d.getBackendDevicesInfo)(e),r={variant:e,devices:Array.isArray(t)?t:[],ok:!0};return r.hasGpu=r.devices.some((e=>String(e.type||"").toLowerCase().includes("gpu"))),r.totalMemory=r.devices.filter((e=>"number"==typeof e.maxMemorySize)).reduce(((e,t)=>Math.max(e,t.maxMemorySize||0)),0),r}catch(t){return{variant:e,devices:[],ok:!1,error:t}}}))),n=r.filter((e=>e.ok));if(0===n.length)throw new Error(`Unable to initialize any backend variant (${t.join(", ")}). Errors: ${r.map((e=>`${e.variant}: ${e.error?e.error.message||e.error:"ok"}`)).join("; ")}`);return{selected:n.find((e=>e.hasGpu))||n.find((e=>"default"===e.variant))||n[0],attempts:r.flat()}},C=async e=>{const t=await M(e),r=await N(e),n=await(async(e,t)=>{const r=!/^https?:/i.test(e),{metadata:n}=await(0,u.gguf)(e,{fetch,additionalFetchHeaders:t,allowLocalFile:r});return n})(r.url,r.headers),o=n["general.architecture"],a=n[`${o}.context_length`]||n["llama.context_length"],c=n[`${o}.block_count`]||n["llama.block_count"],d=n[`${o}.embedding_length`]||n["llama.embedding_length"],f=Number.isFinite(Number(c))?Number(c):0,p=Number.isFinite(Number(d))?Number(d):0,m=n["general.quantization_version"]||null,y=n["general.file_type"]||null,h=e.model.n_ctx?Number(e.model.n_ctx):null;let v=h||a||4096;const b=[],_=[];let g=!0;if(h&&a&&h>a){g=!1;const e=`Requested context length (${h}) exceeds model training context (${a})`;b.push(e),_.push(e),v=a}h&&!a&&b.push("Model metadata missing training context length, using requested value");const w={k:e.model.cache_k_type,v:e.model.cache_v_type},E=r.size>0?r.size:0,x=f&&p?f*p*(P(w.k)+P(w.v)):0,O=t.selected.totalMemory||0,S=O*(e.backend.gpu_memory_fraction||1),T=null!=e.backend.cpu_memory_fraction?Math.min(1,Math.max(0,Number(e.backend.cpu_memory_fraction))):.5,k=Math.max(0,s.totalmem()*T),R=t.selected.hasGpu?S:k;let A=null;if(!h&&x>0&&R>E){const e=R-E,t=Math.floor(e/x);t>0&&(A=t)}if(!h&&A){const e=a?Math.min(A,a):A;e<v&&b.push(`Context length capped to ${e} by memory limits`),v=Math.max(32,e)}a&&v>a&&(v=a);const j=a||h||v,C=Math.floor(A??j);console.log(`[buttress] Memory-limited context length: ${C}`);const q=((e,t,r,n={})=>{if(!e||!t||!r)return 0;const o=P(n.k),a=P(n.v),i=e*r*t;return Math.round(i*(o+a))})(f,p,v,w),D=E+q,I=!!t.selected.hasGpu&&(D>0&&D<=S),U=f?E/(f+1):E;let z,L=0;t.selected.hasGpu&&U>0&&(L=Math.min(f+1,Math.max(0,Math.floor(S/U)))),console.log(`[buttress] Auto GPU layer capacity (${t.selected.variant}): ${L}/${f+1}`),z="auto"===e.model.n_gpu_layers||null==e.model.n_gpu_layers?L:Math.max(0,Math.min(Number(e.model.n_gpu_layers)||0,f+1));const $=(()=>{const r=e.model.flash_attn&&String(e.model.flash_attn).toLowerCase();return"on"===r||"off"===r?r:t.selected.hasGpu?"auto":"off"})(),B=e.runtime.cache_dir,G=((e,t)=>{if(e.model.local_path)return i.resolve(e.model.local_path);const r=t.repoId.split("/"),n=i.join(e.runtime.cache_dir,...r,t.revision);return i.join(n,t.filename)})(e,r),F=await(async(e,t)=>{try{const r=await(0,l.stat)(e);return!t||r.size===t}catch(e){return!1}})(G,r.size),J={ok:g,backend:"ggml-llm",warnings:b,errors:_,model:{repoId:r.repoId,revision:r.revision,filename:r.filename,quantization:r.quantization,url:r.url,sizeBytes:r.size,metadata:{architecture:o,n_ctx_train:a,n_layer:f,n_embd:p,quantization_version:m,file_type:y}},runtime:{variant:t.selected.variant,n_ctx:v,requested_ctx:h,n_gpu_layers:z,n_parallel:e.model.n_parallel,n_batch:e.model.n_batch,flash_attn_type:$,cache_type_k:w.k,cache_type_v:w.v,ctx_shift:e.model.ctx_shift,kv_unified:e.model.kv_unified,swa_full:e.model.swa_full,estimated_max_n_ctx:C,auto_gpu_layers:L},resources:{modelBytes:E,kvCacheBytes:q,totalEstimatedBytes:D,gpuCapacityBytes:O,gpuUsableBytes:S,fitsInGpu:I,cpuUsableBytes:k},devices:{selected:t.selected,attempts:t.attempts},download:{cacheDir:B,localPath:G,exists:F},timestamp:(new Date).toISOString()};return{config:e,info:J,artifact:r,metadata:{arch:o,nCtxTrain:a,nLayer:f,nEmbd:p},devices:t,cacheTypes:w,localPath:G,localExists:F}},q=(e,t)=>`event: ${e}\ndata: ${null==t?"":JSON.stringify(t)}\n\n`,D=(e,t)=>{let r;return new y({async start(n){try{const o=await e.parallel.completion(t,((e,t)=>{t&&n.enqueue(v.encode(q("token",{requestId:e,...t})))})),{requestId:a}=o;r=o.stop;const i=await o.promise;console.log("[Completion] Result:",i),n.enqueue(v.encode(q("result",{requestId:a,...i}))),n.close()}catch(e){n.enqueue(v.encode(q("error",{message:e?.message||String(e)}))),n.error(e)}},cancel(){r&&r()}})},I=e=>{const t={model:e.plan.localPath,runtime:e.plan.info.runtime};return(0,c.createHash)("sha256").update(JSON.stringify(t)).digest("hex").slice(0,24)},U=async(e,t)=>{const r=I(e);let n=e.contexts.get(r);if(n)return n.refCount+=1,await n.ready,"function"==typeof t&&t(1),n;n={key:r,refCount:1},n.ready=(async()=>{const r=await(async(e,t,r)=>{const{config:n,localPath:o}=e;if(e.localExists&&!t.has(o))return e.info.download.exists=!0,"function"==typeof r&&r(.5),o;if(n.model.local_path&&!n.model.allow_local_file)throw new Error("Local model path provided but `model.allow_local_file` is not enabled");const a=o;t.has(a)||t.set(a,(async()=>{await j(e.artifact.url,e.artifact.headers,o,e.artifact.size,(e=>{if(e>=0&&Number.isFinite(e)){const t=Math.round(100*e);console.log(`Downloading model: ${Math.min(100,t)}%`),"function"==typeof r&&r(.5*e)}})),e.localExists=!0,e.info.download.exists=!0})());try{await t.get(a)}finally{t.delete(a)}return o})(e.plan,e.downloads,t);"function"==typeof t&&t(.5);const o={model:r,n_ctx:e.plan.info.runtime.n_ctx,n_gpu_layers:e.plan.info.runtime.n_gpu_layers,n_parallel:e.plan.info.runtime.n_parallel,n_batch:e.plan.info.runtime.n_batch,flash_attn_type:e.plan.info.runtime.flash_attn_type,ctx_shift:e.plan.info.runtime.ctx_shift,kv_unified:e.plan.info.runtime.kv_unified,swa_full:e.plan.info.runtime.swa_full,lib_variant:e.plan.info.runtime.variant};let a;"off"!==e.plan.info.runtime.flash_attn_type&&(o.cache_type_k=e.plan.info.runtime.cache_type_k,o.cache_type_v=e.plan.info.runtime.cache_type_v),console.log("[Context] Load Options:",o);try{if(a=await(0,d.loadModel)(o,(e=>{"function"==typeof t&&(t(.5+.25*e),e%5==0&&console.log("[Context] Load Model Progress:",e))})),e.plan.info.runtime.n_parallel){if(!await a.parallel.enable({n_parallel:e.plan.info.runtime.n_parallel,n_batch:e.plan.info.runtime.n_batch}))throw new Error("Failed to enable parallel decoding mode for context")}return"function"==typeof t&&t(1),n.context=a,n.modelInfo=a.getModelInfo(),n}catch(e){if(a)try{a.release()}catch(e){}throw e}})(),e.contexts.set(r,n);try{return await n.ready,n}catch(t){throw e.contexts.delete(r),t}},z=async(e,t,r=!1)=>{if(r)t.refCount=0;else if(t.refCount=Math.max(0,t.refCount-1),t.refCount>0)return!1;e.contexts.delete(t.key);try{t.context?.parallel?.disable?.()}catch(e){}return await(t.context?.release?.()),!0};const L=e=>{const t=k(e);return t.model.repo_id||t.model.repository||t.model.model||null},$=new Map,B=e=>{const t=(e=>{const t=$.get(e);if(!t)throw new Error(`Unknown generator id "${e}"`);return t})(e);if("ggml-llm"!==t.type)throw new Error(`Generator "${e}" does not support GGML LLM backend`);return t.instance};async function G(e,t){if("ggml-llm"!==e)throw new Error("Currently only GGML LLM backend is supported");const r=L(t);if(!r)throw new Error("Buttress generator config missing repo identifier");const n=`${e}:${r}`,o=$.get(n);if(o)return o.refCount+=1,{id:o.id,info:o.instance.info};const a=await async function(e,t){const r=await C(k(t)),n={id:e,type:"ggml-llm",config:t,plan:r,info:r.info,contexts:new Map,downloads:new Map};return{id:e,type:"ggml-llm",info:r.info,initContext:async(e={})=>{const{onProgress:t}=e,r=await U(n,t);return{modelInfo:r.modelInfo?{...r.modelInfo}:null,runtime:{...n.plan.info.runtime},download:{...n.plan.info.download}}},completion:async(e={})=>{const{options:t={}}=e,r=I(n),o=n.contexts.get(r);if(!o)throw new Error(`Context "${r}" not initialized`);return await o.ready,D(o.context,t)},tokenize:async(e={})=>{const{text:t="",params:r={}}=e,o=I(n),a=n.contexts.get(o);if(!a)throw new Error(`Context "${o}" not initialized`);await a.ready;const i=await a.context.tokenize(t,r);if(!i)return{tokens:[]};const s=Array.from(i.tokens??[]).map((e=>Number(e)));return{...i,tokens:s}},detokenize:async(e={})=>{const{tokens:t=[]}=e,r=I(n),o=n.contexts.get(r);if(!o)throw new Error(`Context "${r}" not initialized`);await o.ready;const a=t.map((e=>Number(e)));return o.context.detokenize(a)},applyChatTemplate:async(e={})=>{const{messages:t=[],template:r,params:o}=e,a=I(n),i=n.contexts.get(a);if(!i)throw new Error(`Context "${a}" not initialized`);return await i.ready,i.context.getFormattedChat(t,r,o)},releaseContext:async(e={})=>{const t=I(n),r=n.contexts.get(t);return!!r&&z(n,r,Boolean(e.force))},finalize:async()=>{const e=Array.from(n.contexts.values()).map((e=>z(n,e,!0)));await Promise.allSettled(e)}}}(n,t),i={id:n,type:a.type,instance:a,refCount:1};return $.set(n,i),{id:n,info:a.info}}async function F(e){const t=$.get(e);return!!t&&(t.refCount-=1,t.refCount<=0&&(await t.instance.finalize(),$.delete(e)),!0)}const J={initContext:async(e,t)=>B(e).initContext(t),completion:async(e,t)=>B(e).completion(t),tokenize:async(e,t)=>B(e).tokenize(t),detokenize:async(e,t)=>B(e).detokenize(t),applyChatTemplate:async(e,t)=>B(e).applyChatTemplate(t),releaseContext:async(e,t)=>B(e).releaseContext(t)};function Y(e,t){return"ggml-llm"===e?L(t):null}},971:(e,t,r)=>{e.exports=(e=>{var t={};return r.d(t,e),t})({z:()=>o.z})}},f={};function p(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return d[e](r,r.exports,p),r.exports}a="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",i="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",s="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",l=e=>{e&&e.d<1&&(e.d=1,e.forEach((e=>e.r--)),e.forEach((e=>e.r--?e.r++:e())))},p.a=(e,t,r)=>{var n;r&&((n=[]).d=-1);var o,c,u,d=new Set,f=e.exports,p=new Promise(((e,t)=>{u=t,c=e}));p[i]=f,p[a]=e=>(n&&e(n),d.forEach(e),p.catch((e=>{}))),e.exports=p,t((e=>{var t;o=(e=>e.map((e=>{if(null!==e&&"object"==typeof e){if(e[a])return e;if(e.then){var t=[];t.d=0,e.then((e=>{r[i]=e,l(t)}),(e=>{r[s]=e,l(t)}));var r={};return r[a]=e=>e(t),r}}var n={};return n[a]=e=>{},n[i]=e,n})))(e);var r=()=>o.map((e=>{if(e[s])throw e[s];return e[i]})),c=new Promise((e=>{(t=()=>e(r)).r=0;var i=e=>e!==n&&!d.has(e)&&(d.add(e),e&&!e.d&&(t.r++,e.push(t)));o.map((e=>e[a](i)))}));return t.r?c:r()}),(e=>(e?u(p[s]=e):c(f),l(n)))),n&&n.d<0&&(n.d=0)},u=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);p.r(r);var n={};c=c||[null,u({}),u([]),u(u)];for(var o=2&t&&e;"object"==typeof o&&!~c.indexOf(o);o=u(o))Object.getOwnPropertyNames(o).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,p.d(r,n),r},p.d=(e,t)=>{for(var r in t)p.o(t,r)&&!p.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},p.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m=p(173);const y=(m=await m).bR,h=m.Ux,v=m.Zy,b=m.aE,_=m.sA,g=m.YO,w=m.UD;export{y as checkAndNotifyUpdates,h as checkForUpdates,v as compareVersions,b as createRouter,_ as createServer,g as currentVersion,w as startServer};
1
+ import{createRequire as e}from"node:module";import*as t from"@trpc/server";import*as r from"@fugood/llama.node";import*as n from"@huggingface/gguf";import*as o from"zod";var a,i,s,l,c,u,d={136:t=>{t.exports=e(import.meta.url)("node:url")},173:(e,t,r)=>{r.a(e,(async(e,n)=>{try{r.d(t,{UD:()=>O,Ux:()=>c.Ux,YO:()=>c.YO,Zy:()=>c.Zy,aE:()=>E,bR:()=>c.bR,sA:()=>x});var o=r(333),a=r(249),i=r(427),s=r(971),l=r(696),c=r(508),u=e([c]);c=(u.then?(await u)():u)[0];const d=new TextDecoder,p=o.initTRPC.context().create(),f=s.z.record(s.z.any()).optional(),m=s.z.object({id:s.z.string()}),y=s.z.object({id:s.z.string(),property:s.z.any().optional()}),h=s.z.object({type:s.z.string(),config:f}),v=s.z.object({type:s.z.string().optional().default("ggml-llm"),config:f,currentClientCapabilities:s.z.record(s.z.any()).optional(),options:s.z.record(s.z.any()).optional()}).optional(),b=(e,t)=>{const r=e.getReader();let n=!0;return(async()=>{try{for(;n;){const{value:e,done:o}=await r.read();if(o||!n)break;if(e){const r=d.decode(e,{stream:!0});t.next(r)}}t.complete()}catch(e){t.error(e)}finally{r.cancel().catch((()=>{}))}})(),()=>{n=!1,r.cancel().catch((()=>{}))}},g=(e={},t={})=>{const r=Array.isArray(e)?[...e]:{...e};return Object.entries(t||{}).forEach((([e,t])=>{t&&"object"==typeof t&&!Array.isArray(t)?r[e]=g(r[e]||{},t):r[e]=t})),r},_=e=>e&&"object"==typeof e?JSON.parse(JSON.stringify(e)):null,w=(e,t)=>{const r=_(e)||{},n=_(t)||{};return g(r,n)},E=(e=l,{defaultConfig:t}={})=>{const r=_(t)||{},n=Array.isArray(r.generators)?r.generators:[],{server:o,generators:a,...s}=r,c=e=>g(JSON.parse(JSON.stringify(s)),e||{}),u=(e,t)=>{if(n.length>0){const r=n.filter((t=>t?.type===e));if(r.length>0&&t){const e=r.find((e=>e.model?.repo_id===t));if(e)return c(e)}}return Object.keys(s).length>0?c({}):null};return p.router({getCapabilities:p.procedure.input(v).query((async({input:t})=>{console.log("[Server] Get Capabilities:",t);const r=t||{type:"ggml-llm"},{type:n="ggml-llm",config:o,currentClientCapabilities:a=null,options:i={}}=r,s=_(o),l=e.getModelIdentifier(n,s),c=u(n,l),d=w(c,o);if(0===Object.keys(d).length)throw new Error("Buttress server missing generator configuration");return d.backend=d.backend||{},d.backend.type||(d.backend.type=n),e.getCapabilities(n,a,{...i,config:d})})),startGenerator:p.procedure.input(h).mutation((async({input:t})=>{console.log("[Server] Start Generator:",t);const{type:r,config:n}=t,o=_(n),a=e.getModelIdentifier(r,o),i=u(r,a),s=w(i,n);if(0===Object.keys(s).length)throw new Error("Buttress server missing generator configuration");return s.backend=s.backend||{},s.backend.type||(s.backend.type=r),e.startGenerator(r,s)})),finalizeGenerator:p.procedure.input(m).mutation((async({input:t})=>(console.log("[Server] Finalize Generator:",t),e.finalizeGenerator(t.id)))),ggmlLlm:p.router({initContext:p.procedure.input(y).subscription((({input:t})=>(0,i.sH)((r=>{console.log("[Server] Init Context:",t);let n=!0;return(async()=>{try{const o={...t.property,onProgress:e=>{n&&r.next({progress:e})}};await new Promise((e=>setTimeout(e)));const a=await e.ggmlLlm.initContext(t.id,o);n&&(r.next({result:a}),r.complete())}catch(e){n&&r.error(e)}})(),()=>{n=!1}})))),completion:p.procedure.input(y).subscription((({input:t})=>(0,i.sH)((r=>{console.log("[Server] Completion:",t);let n=()=>{};return(async()=>{try{const o=await e.ggmlLlm.completion(t.id,t.property);if(!o)return void r.complete();n=b(o,r)}catch(e){r.error(e)}})(),()=>n()})))),tokenize:p.procedure.input(y).query((async({input:t})=>(console.log("[Server] Tokenize:",t),e.ggmlLlm.tokenize(t.id,t.property)))),detokenize:p.procedure.input(y).mutation((async({input:t})=>(console.log("[Server] Detokenize:",t),e.ggmlLlm.detokenize(t.id,t.property)))),applyChatTemplate:p.procedure.input(y).query((async({input:t})=>(console.log("[Server] Apply Chat Template:",t),e.ggmlLlm.applyChatTemplate(t.id,t.property)))),releaseContext:p.procedure.input(y).mutation((async({input:t})=>(console.log("[Server] Release Context:",t),e.ggmlLlm.releaseContext(t.id,t.property))))})})},x=({backend:e=l,router:t,createContext:r=(()=>({})),defaultConfig:n}={})=>{const o=t||E(e,{defaultConfig:n});return{server:(0,a.qv)({router:o,createContext:r,basePath:"/trpc/"}),router:o,backend:e}},O=async({port:e=2080,backend:t,router:r,createContext:n,defaultConfig:o}={})=>{const{server:a,router:i}=x({backend:t,router:r,createContext:n,defaultConfig:o});return await new Promise((t=>a.listen(e,t))),{server:a,router:i,port:e}};n()}catch(e){n(e)}}))},249:(t,r,n)=>{n.d(r,{qv:()=>Et});const o={PARSE_ERROR:-32700,BAD_REQUEST:-32600,INTERNAL_SERVER_ERROR:-32603,NOT_IMPLEMENTED:-32603,BAD_GATEWAY:-32603,SERVICE_UNAVAILABLE:-32603,GATEWAY_TIMEOUT:-32603,UNAUTHORIZED:-32001,PAYMENT_REQUIRED:-32002,FORBIDDEN:-32003,NOT_FOUND:-32004,METHOD_NOT_SUPPORTED:-32005,TIMEOUT:-32008,CONFLICT:-32009,PRECONDITION_FAILED:-32012,PAYLOAD_TOO_LARGE:-32013,UNSUPPORTED_MEDIA_TYPE:-32015,UNPROCESSABLE_CONTENT:-32022,PRECONDITION_REQUIRED:-32028,TOO_MANY_REQUESTS:-32029,CLIENT_CLOSED_REQUEST:-32099},a={[-32700]:"PARSE_ERROR",[-32600]:"BAD_REQUEST",[-32603]:"INTERNAL_SERVER_ERROR",[-32001]:"UNAUTHORIZED",[-32002]:"PAYMENT_REQUIRED",[-32003]:"FORBIDDEN",[-32004]:"NOT_FOUND",[-32005]:"METHOD_NOT_SUPPORTED",[-32008]:"TIMEOUT",[-32009]:"CONFLICT",[-32012]:"PRECONDITION_FAILED",[-32013]:"PAYLOAD_TOO_LARGE",[-32015]:"UNSUPPORTED_MEDIA_TYPE",[-32022]:"UNPROCESSABLE_CONTENT",[-32028]:"PRECONDITION_REQUIRED",[-32029]:"TOO_MANY_REQUESTS",[-32099]:"CLIENT_CLOSED_REQUEST"};o.BAD_GATEWAY,o.SERVICE_UNAVAILABLE,o.GATEWAY_TIMEOUT,o.INTERNAL_SERVER_ERROR;function i(e){return!!e&&!Array.isArray(e)&&"object"==typeof e}const s="function"==typeof Symbol&&!!Symbol.asyncIterator;function l(e){return s&&i(e)&&Symbol.asyncIterator in e}const c=e=>e();function u(e){return e}var d=Object.create,p=Object.defineProperty,f=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,y=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,v=(e,t)=>function(){return t||(0,e[m(e)[0]])((t={exports:{}}).exports,t),t.exports},b=(e,t,r)=>(r=null!=e?d(y(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var o,a=m(t),i=0,s=a.length;i<s;i++)o=a[i],h.call(e,o)||o===r||p(e,o,{get:(e=>t[e]).bind(null,o),enumerable:!(n=f(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:p(r,"default",{value:e,enumerable:!0}),e));const g={PARSE_ERROR:400,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_SUPPORTED:405,TIMEOUT:408,CONFLICT:409,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,UNSUPPORTED_MEDIA_TYPE:415,UNPROCESSABLE_CONTENT:422,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504};function _(e){var t;return null!==(t=g[e])&&void 0!==t?t:500}function w(e){return _(e.code)}var E=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(e,t){function r(e){return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t.exports.__esModule=!0,t.exports.default=t.exports,r(e)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}}),x=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(e,t){var r=E().default;t.exports=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},t.exports.__esModule=!0,t.exports.default=t.exports}}),O=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(e,t){var r=E().default,n=x();t.exports=function(e){var t=n(e,"string");return"symbol"==r(t)?t:t+""},t.exports.__esModule=!0,t.exports.default=t.exports}}),S=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(e,t){var r=O();t.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},t.exports.__esModule=!0,t.exports.default=t.exports}}),k=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(e,t){var r=S();function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}t.exports=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?n(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e},t.exports.__esModule=!0,t.exports.default=t.exports}}),T=b(k(),1);function M(e){const{path:t,error:r,config:n}=e,{code:a}=e.error,i={message:r.message,code:o[a],data:{code:a,httpStatus:w(r)}};return n.isDev&&"string"==typeof e.error.stack&&(i.data.stack=e.error.stack),"string"==typeof t&&(i.data.path=t),n.errorFormatter((0,T.default)((0,T.default)({},e),{},{shape:i}))}var P=b(S(),1),R=class extends Error{};function A(e){if(e instanceof N)return e;if(e instanceof Error&&"TRPCError"===e.name)return e;const t=new N({code:"INTERNAL_SERVER_ERROR",cause:e});return e instanceof Error&&e.stack&&(t.stack=e.stack),t}var N=class extends Error{constructor(e){var t,r,n;const o=function(e){if(e instanceof Error)return e;const t=typeof e;return"undefined"!==t&&"function"!==t&&null!==e?"object"!==t?new Error(String(e)):i(e)?Object.assign(new R,e):void 0:void 0}(e.cause);super(null!==(t=null!==(r=e.message)&&void 0!==r?r:null==o?void 0:o.message)&&void 0!==t?t:e.code,{cause:o}),(0,P.default)(this,"cause",void 0),(0,P.default)(this,"code",void 0),this.code=e.code,this.name="TRPCError",null!==(n=this.cause)&&void 0!==n||(this.cause=o)}},C=b(k(),1);function j(e,t){return"error"in t?(0,C.default)((0,C.default)({},t),{},{error:e.transformer.output.serialize(t.error)}):"data"in t.result?(0,C.default)((0,C.default)({},t),{},{result:(0,C.default)((0,C.default)({},t.result),{},{data:e.transformer.output.serialize(t.result.data)})}):t}function I(e,t){return Array.isArray(t)?t.map((t=>j(e,t))):j(e,t)}Error;b(k(),1);async function q(e,t){const{_def:r}=e;let n=r.procedures[t];for(;!n;){const e=Object.keys(r.lazy).find((e=>t.startsWith(e)));if(!e)return null;const o=r.lazy[e];await o.load(),n=r.procedures[t]}return n}const D=Symbol();function U(e){return Array.isArray(e)&&e[2]===D}var B=n(427);function z(e){let t;try{t=JSON.parse(e)}catch(e){throw new N({code:"PARSE_ERROR",message:"Not JSON-parsable query params",cause:e})}return function(e){try{if(null===e)return null;if(!i(e))throw new Error("Expected object");const t=Object.entries(e).filter((([e,t])=>"string"!=typeof t));if(t.length>0)throw new Error(`Expected connectionParams to be string values. Got ${t.map((([e,t])=>`${e}: ${typeof t}`)).join(", ")}`);return e}catch(e){throw new N({code:"PARSE_ERROR",message:"Invalid connection params shape",cause:e})}}(t)}var L=b(k(),1);function $(e){let t=null;const r=Symbol.for("@trpc/server/http/memo");let n=r;return{read:async()=>{var o;return n!==r||(null!==(o=t)&&void 0!==o||(t=e().catch((e=>{if(e instanceof N)throw e;throw new N({code:"BAD_REQUEST",message:e instanceof Error?e.message:"Invalid input",cause:e})}))),n=await t,t=null),n},result:()=>n!==r?n:void 0}}const G={isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("application/json"))},async parse(e){var t;const{req:r}=e,n="1"===e.searchParams.get("batch"),o=n?e.path.split(","):[e.path],a=$((async()=>{let t;if("GET"===r.method){const r=e.searchParams.get("input");r&&(t=JSON.parse(r))}else t=await r.json();if(void 0===t)return{};if(!n)return{0:e.router._def._config.transformer.input.deserialize(t)};if(!i(t))throw new N({code:"BAD_REQUEST",message:'"input" needs to be an object when doing a batch call'});const a={};for(const r of o.keys()){const n=t[r];void 0!==n&&(a[r]=e.router._def._config.transformer.input.deserialize(n))}return a})),s=await Promise.all(o.map((async(t,r)=>{const n=await q(e.router,t);return{path:t,procedure:n,getRawInput:async()=>{let t=(await a.read())[r];if("subscription"===(null==n?void 0:n._def.type)){var o,s;const r=null!==(o=null!==(s=e.headers.get("last-event-id"))&&void 0!==s?s:e.searchParams.get("lastEventId"))&&void 0!==o?o:e.searchParams.get("Last-Event-Id");if(r)if(i(t))t=(0,L.default)((0,L.default)({},t),{},{lastEventId:r});else{var l;null!==(l=t)&&void 0!==l||(t={lastEventId:r})}}return t},result:()=>{var e;return null===(e=a.result())||void 0===e?void 0:e[r]}}}))),l=new Set(s.map((e=>{var t;return null===(t=e.procedure)||void 0===t?void 0:t._def.type})).filter(Boolean));if(l.size>1)throw new N({code:"BAD_REQUEST",message:`Cannot mix procedure types in call: ${Array.from(l).join(", ")}`});const c=null!==(t=l.values().next().value)&&void 0!==t?t:"unknown",u=e.searchParams.get("connectionParams");return{isBatchCall:n,accept:r.headers.get("trpc-accept"),calls:s,type:c,connectionParams:null===u?null:z(u),signal:r.signal,url:e.url}}},F=[G,{isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("multipart/form-data"))},async parse(e){const{req:t}=e;if("POST"!==t.method)throw new N({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for multipart/form-data requests"});const r=$((async()=>await t.formData())),n=await q(e.router,e.path);return{accept:null,calls:[{path:e.path,getRawInput:r.read,result:r.result,procedure:n}],isBatchCall:!1,type:"mutation",connectionParams:null,signal:t.signal,url:e.url}}},{isMatch(e){var t;return!!(null===(t=e.headers.get("content-type"))||void 0===t?void 0:t.startsWith("application/octet-stream"))},async parse(e){const{req:t}=e;if("POST"!==t.method)throw new N({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for application/octet-stream requests"});const r=$((async()=>t.body));return{calls:[{path:e.path,getRawInput:r.read,result:r.result,procedure:await q(e.router,e.path)}],isBatchCall:!1,accept:null,type:"mutation",connectionParams:null,signal:t.signal,url:e.url}}}];async function J(e){const t=function(e){const t=F.find((t=>t.isMatch(e)));if(t)return t;if(!t&&"GET"===e.method)return G;throw new N({code:"UNSUPPORTED_MEDIA_TYPE",message:e.headers.has("content-type")?`Unsupported content-type "${e.headers.get("content-type")}`:"Missing content-type header"})}(e.req);return await t.parse(e)}function V(e){return i(e)&&"AbortError"===e.name}function Y(e="AbortError"){throw new DOMException(e,"AbortError")}function H(e){return"[object Object]"===Object.prototype.toString.call(e)}var Q=b(S(),1);let W;const Z=new WeakMap,K=()=>{};W=Symbol.toStringTag;var X,ee,te,re,ne=class e{constructor(e){(0,Q.default)(this,"promise",void 0),(0,Q.default)(this,"subscribers",[]),(0,Q.default)(this,"settlement",null),(0,Q.default)(this,W,"Unpromise"),this.promise="function"==typeof e?new Promise(e):e;const t=this.promise.then((e=>{const{subscribers:t}=this;this.subscribers=null,this.settlement={status:"fulfilled",value:e},null==t||t.forEach((({resolve:t})=>{t(e)}))}));"catch"in t&&t.catch((e=>{const{subscribers:t}=this;this.subscribers=null,this.settlement={status:"rejected",reason:e},null==t||t.forEach((({reject:t})=>{t(e)}))}))}subscribe(){let e,t;const{settlement:r}=this;if(null===r){if(null===this.subscribers)throw new Error("Unpromise settled but still has subscribers");const r=function(){let e,t;const r=new Promise(((r,n)=>{e=r,t=n}));return{promise:r,resolve:e,reject:t}}();this.subscribers=(n=this.subscribers,o=r,[...n,o]),e=r.promise,t=()=>{null!==this.subscribers&&(this.subscribers=function(e,t){const r=e.indexOf(t);return-1!==r?function(e,t){return[...e.slice(0,t),...e.slice(t+1)]}(e,r):e}(this.subscribers,r))}}else{const{status:n}=r;e="fulfilled"===n?Promise.resolve(r.value):Promise.reject(r.reason),t=K}var n,o;return Object.assign(e,{unsubscribe:t})}then(e,t){const r=this.subscribe(),{unsubscribe:n}=r;return Object.assign(r.then(e,t),{unsubscribe:n})}catch(e){const t=this.subscribe(),{unsubscribe:r}=t;return Object.assign(t.catch(e),{unsubscribe:r})}finally(e){const t=this.subscribe(),{unsubscribe:r}=t;return Object.assign(t.finally(e),{unsubscribe:r})}static proxy(t){const r=e.getSubscribablePromise(t);return void 0!==r?r:e.createSubscribablePromise(t)}static createSubscribablePromise(t){const r=new e(t);return Z.set(t,r),Z.set(r,r),r}static getSubscribablePromise(e){return Z.get(e)}static resolve(t){const r="object"==typeof t&&null!==t&&"then"in t&&"function"==typeof t.then?t:Promise.resolve(t);return e.proxy(r).subscribe()}static async any(t){const r=(Array.isArray(t)?t:[...t]).map(e.resolve);try{return await Promise.any(r)}finally{r.forEach((({unsubscribe:e})=>{e()}))}}static async race(t){const r=(Array.isArray(t)?t:[...t]).map(e.resolve);try{return await Promise.race(r)}finally{r.forEach((({unsubscribe:e})=>{e()}))}}static async raceReferences(e){const t=e.map(oe);try{return await Promise.race(t)}finally{for(const e of t)e.unsubscribe()}}};function oe(e){return ne.proxy(e).then((()=>[e]))}function ae(e,t){const r=e,n=r[Symbol.dispose];return r[Symbol.dispose]=()=>{t(),null==n||n()},r}function ie(e,t){const r=e,n=r[Symbol.asyncDispose];return r[Symbol.asyncDispose]=async()=>{await t(),await(null==n?void 0:n())},r}null!==(ee=(X=Symbol).dispose)&&void 0!==ee||(X.dispose=Symbol()),null!==(re=(te=Symbol).asyncDispose)&&void 0!==re||(te.asyncDispose=Symbol());const se=Symbol();function le(e){let t=null;return ae({start(){if(t)throw new Error("Timer already started");return new Promise((r=>{t=setTimeout((()=>r(se)),e)}))}},(()=>{t&&clearTimeout(t)}))}var ce=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(e,t){t.exports=function(){var e="function"==typeof SuppressedError?SuppressedError:function(e,t){var r=Error();return r.name="SuppressedError",r.error=e,r.suppressed=t,r},t={},r=[];function n(e,t){if(null!=t){if(Object(t)!==t)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(e)var n=t[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(void 0===n&&(n=t[Symbol.dispose||Symbol.for("Symbol.dispose")],e))var o=n;if("function"!=typeof n)throw new TypeError("Object is not disposable.");o&&(n=function(){try{o.call(t)}catch(e){return Promise.reject(e)}}),r.push({v:t,d:n,a:e})}else e&&r.push({d:t,a:e});return t}return{e:t,u:n.bind(null,!1),a:n.bind(null,!0),d:function(){var n,o=this.e,a=0;function i(){for(;n=r.pop();)try{if(!n.a&&1===a)return a=0,r.push(n),Promise.resolve().then(i);if(n.d){var e=n.d.call(n.v);if(n.a)return a|=2,Promise.resolve(e).then(i,s)}else a|=1}catch(e){return s(e)}if(1===a)return o!==t?Promise.reject(o):Promise.resolve();if(o!==t)throw o}function s(r){return o=o!==t?new e(r,o):r,i()}return i()}}},t.exports.__esModule=!0,t.exports.default=t.exports}}),ue=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(e,t){t.exports=function(e,t){this.v=e,this.k=t},t.exports.__esModule=!0,t.exports.default=t.exports}}),de=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(e,t){var r=ue();t.exports=function(e){return new r(e,0)},t.exports.__esModule=!0,t.exports.default=t.exports}}),pe=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(e,t){var r=ue();function n(e){var t,n;function o(t,n){try{var i=e[t](n),s=i.value,l=s instanceof r;Promise.resolve(l?s.v:s).then((function(r){if(l){var n="return"===t?"return":"next";if(!s.k||r.done)return o(n,r);r=e[n](r).value}a(i.done?"return":"normal",r)}),(function(e){o("throw",e)}))}catch(e){a("throw",e)}}function a(e,r){switch(e){case"return":t.resolve({value:r,done:!0});break;case"throw":t.reject(r);break;default:t.resolve({value:r,done:!1})}(t=t.next)?o(t.key,t.arg):n=null}this._invoke=function(e,r){return new Promise((function(a,i){var s={key:e,arg:r,resolve:a,reject:i,next:null};n?n=n.next=s:(t=n=s,o(e,r))}))},"function"!=typeof e.return&&(this.return=void 0)}n.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},n.prototype.next=function(e){return this._invoke("next",e)},n.prototype.throw=function(e){return this._invoke("throw",e)},n.prototype.return=function(e){return this._invoke("return",e)},t.exports=function(e){return function(){return new n(e.apply(this,arguments))}},t.exports.__esModule=!0,t.exports.default=t.exports}}),fe=b(ce(),1),me=b(de(),1),ye=b(pe(),1);function he(e){const t=e[Symbol.asyncIterator]();return t[Symbol.asyncDispose]?t:ie(t,(async()=>{var e;await(null===(e=t.return)||void 0===e?void 0:e.call(t))}))}function ve(){return(ve=(0,ye.default)((function*(e,t){try{var r=(0,fe.default)();const n=r.a(he(e)),o=r.u(le(t.maxDurationMs)).start();let a;for(;;){if(a=yield(0,me.default)(ne.race([n.next(),o])),a===se&&Y(),a.done)return a;yield a.value,a=null}}catch(e){r.e=e}finally{yield(0,me.default)(r.d())}}))).apply(this,arguments)}function be(){return(be=(0,ye.default)((function*(e,t){try{var r=(0,fe.default)();const n=r.a(he(e));let o;const a=r.u(le(t.gracePeriodMs));let i=t.count,s=new Promise((()=>{}));for(;;){if(o=yield(0,me.default)(ne.race([n.next(),s])),o===se&&Y(),o.done)return o.value;yield o.value,0==--i&&(s=a.start()),o=null}}catch(e){r.e=e}finally{yield(0,me.default)(r.d())}}))).apply(this,arguments)}function ge(){let e,t;return{promise:new Promise(((r,n)=>{e=r,t=n})),resolve:e,reject:t}}var _e=b(ce(),1),we=b(de(),1),Ee=b(pe(),1);function xe(){let e="idle",t=ge();const r=[],n=new Set,o=[];function a(r){if("pending"!==e)return;const a=function(e,t){const r=e[Symbol.asyncIterator]();let n="idle";function o(){n="done",t=()=>{}}return{pull:function(){"idle"===n&&(n="pending",r.next().then((e=>{if(e.done)return n="done",t({status:"return",value:e.value}),void o();n="idle",t({status:"yield",value:e.value})})).catch((e=>{t({status:"error",error:e}),o()})))},destroy:async()=>{var e;o(),await(null===(e=r.return)||void 0===e?void 0:e.call(r))}}}(r,(r=>{if("pending"===e){switch(r.status){case"yield":o.push([a,r]);break;case"return":n.delete(a);break;case"error":o.push([a,r]),n.delete(a)}t.resolve()}}));n.add(a),a.pull()}return{add(t){switch(e){case"idle":r.push(t);break;case"pending":a(t)}},[Symbol.asyncIterator]:()=>(0,Ee.default)((function*(){try{var i=(0,_e.default)();if("idle"!==e)throw new Error("Cannot iterate twice");e="pending";i.a(ie({},(async()=>{e="done";const r=[];if(await Promise.all(Array.from(n.values()).map((async e=>{try{await e.destroy()}catch(e){r.push(e)}}))),o.length=0,n.clear(),t.resolve(),r.length>0)throw new AggregateError(r)})));for(;r.length>0;)a(r.shift());for(;n.size>0;){for(yield(0,we.default)(t.promise);o.length>0;){const[e,t]=o.shift();switch(t.status){case"yield":yield t.value,e.pull();break;case"error":throw t.error}}t=ge()}}catch(e){i.e=e}finally{yield(0,we.default)(i.d())}}))()}}function Oe(e){const t=e[Symbol.asyncIterator]();return new ReadableStream({async cancel(){var e;await(null===(e=t.return)||void 0===e?void 0:e.call(t))},async pull(e){const r=await t.next();r.done?e.close():e.enqueue(r.value)}})}var Se=b(ce(),1),ke=b(de(),1),Te=b(pe(),1);const Me=Symbol("ping");function Pe(e,t){return Re.apply(this,arguments)}function Re(){return(Re=(0,Te.default)((function*(e,t){try{var r=(0,Se.default)();const o=r.a(he(e));let a,i=o.next();for(;;)try{var n=(0,Se.default)();const e=n.u(le(t));if(a=yield(0,ke.default)(ne.race([i,e.start()])),a===se){yield Me;continue}if(a.done)return a.value;i=o.next(),yield a.value,a=null}catch(e){n.e=e}finally{n.d()}}catch(e){r.e=e}finally{yield(0,ke.default)(r.d())}}))).apply(this,arguments)}var Ae=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(e,t){function r(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return(r=function(e){this.s=e,this.n=e.next}).prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new r(e)}t.exports=function(e){var t,n,o,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,o=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(o&&null!=(t=e[o]))return new r(t.call(e));n="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")},t.exports.__esModule=!0,t.exports.default=t.exports}}),Ne=b(de(),1),Ce=b(pe(),1),je=b(ce(),1),Ie=b(Ae(),1);const qe=0,De=1,Ue=0,Be=1,ze=0,Le=1,$e=2;function Ge(e){return(i(e)||"function"==typeof e)&&"function"==typeof(null==e?void 0:e.then)&&"function"==typeof(null==e?void 0:e.catch)}var Fe=class extends Error{constructor(e){super("Max depth reached at path: "+e.join(".")),this.path=e}};function Je(){return Je=(0,Ce.default)((function*(e){const{data:t}=e;let r=0;const n=0,o=xe();function a(e){const t=r++,n=e(t);return o.add(n),t}function i(t,r){return a(function(){var n=(0,Ce.default)((function*(n){const o=c(r);o&&(t.catch((t=>{var n;null===(n=e.onError)||void 0===n||n.call(e,{error:t,path:r})})),t=Promise.reject(o));try{const e=yield(0,Ne.default)(t);yield[n,Ue,d(e,r)]}catch(t){var a,i;null===(a=e.onError)||void 0===a||a.call(e,{error:t,path:r}),yield[n,Be,null===(i=e.formatError)||void 0===i?void 0:i.call(e,{error:t,path:r})]}}));return function(e){return n.apply(this,arguments)}}())}function s(t,r){return a(function(){var n=(0,Ce.default)((function*(n){try{var o=(0,je.default)();const s=c(r);if(s)throw s;const l=o.a(he(t));try{for(;;){const e=yield(0,Ne.default)(l.next());if(e.done){yield[n,ze,d(e.value,r)];break}yield[n,Le,d(e.value,r)]}}catch(t){var a,i;null===(a=e.onError)||void 0===a||a.call(e,{error:t,path:r}),yield[n,$e,null===(i=e.formatError)||void 0===i?void 0:i.call(e,{error:t,path:r})]}}catch(e){o.e=e}finally{yield(0,Ne.default)(o.d())}}));return function(e){return n.apply(this,arguments)}}())}function c(t){return e.maxDepth&&t.length>e.maxDepth?new Fe(t):null}function u(t,r){if(Ge(t))return[qe,i(t,r)];if(l(t)){if(e.maxDepth&&r.length>=e.maxDepth)throw new Error("Max depth reached");return[De,s(t,r)]}return null}function d(e,t){if(void 0===e)return[[]];const r=u(e,t);if(r)return[[n],[null,...r]];if(!1===H(o=e)||void 0!==(a=o.constructor)&&(!1===H(i=a.prototype)||!1===i.hasOwnProperty("isPrototypeOf")))return[[e]];var o,a,i;const s={},l=[];for(const[r,o]of Object.entries(e)){const e=u(o,[...t,r]);e?(s[r]=n,l.push([r,...e])):s[r]=o}return[[s],...l]}const p={};for(const[e,r]of Object.entries(t))p[e]=d(r,[e]);yield p;let f=o;e.pingMs&&(f=Pe(o,e.pingMs));var m,y=!1,h=!1;try{for(var v,b=(0,Ie.default)(f);y=!(v=yield(0,Ne.default)(b.next())).done;y=!1){const e=v.value;yield e}}catch(e){h=!0,m=e}finally{try{y&&null!=b.return&&(yield(0,Ne.default)(b.return()))}finally{if(h)throw m}}})),Je.apply(this,arguments)}function Ve(e){let t=Oe(function(e){return Je.apply(this,arguments)}(e));const{serialize:r}=e;return r&&(t=t.pipeThrough(new TransformStream({transform(e,t){e===Me?t.enqueue(Me):t.enqueue(r(e))}}))),t.pipeThrough(new TransformStream({transform(e,t){e===Me?t.enqueue(" "):t.enqueue(JSON.stringify(e)+"\n")}})).pipeThrough(new TextEncoderStream)}Error;var Ye=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js"(e,t){var r=ue();t.exports=function(e){var t={},n=!1;function o(t,o){return n=!0,o=new Promise((function(r){r(e[t](o))})),{done:!1,value:new r(o,1)}}return t["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},t.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(t.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(t.return=function(e){return n?(n=!1,e):o("return",e)}),t},t.exports.__esModule=!0,t.exports.default=t.exports}}),He=b(Ae(),1),Qe=b(de(),1),We=b(pe(),1),Ze=b(Ye(),1);b(ce(),1);const Ke="ping",Xe="serialized-error",et="connected",tt="return";function rt(e){var t,r,n,o,a;const{serialize:i=u}=e,s={enabled:null!==(t=null===(r=e.ping)||void 0===r?void 0:r.enabled)&&void 0!==t&&t,intervalMs:null!==(n=null===(o=e.ping)||void 0===o?void 0:o.intervalMs)&&void 0!==n?n:1e3},l=null!==(a=e.client)&&void 0!==a?a:{};if(s.enabled&&l.reconnectAfterInactivityMs&&s.intervalMs>l.reconnectAfterInactivityMs)throw new Error(`Ping interval must be less than client reconnect interval to prevent unnecessary reconnection - ping.intervalMs: ${s.intervalMs} client.reconnectAfterInactivityMs: ${l.reconnectAfterInactivityMs}`);function c(){return c=(0,We.default)((function*(){yield{event:et,data:JSON.stringify(l)};let t,r,n=e.data;e.emitAndEndImmediately&&(n=function(e,t){return be.apply(this,arguments)}(n,{count:1,gracePeriodMs:1})),e.maxDurationMs&&e.maxDurationMs>0&&e.maxDurationMs!==1/0&&(n=function(e,t){return ve.apply(this,arguments)}(n,{maxDurationMs:e.maxDurationMs})),s.enabled&&s.intervalMs!==1/0&&s.intervalMs>0&&(n=Pe(n,s.intervalMs));var o,a=!1,c=!1;try{for(var u,d=(0,He.default)(n);a=!(u=yield(0,Qe.default)(d.next())).done;a=!1)t=u.value,t!==Me?(r=U(t)?{id:t[0],data:t[1]}:{data:t},r.data=JSON.stringify(i(r.data)),yield r,t=null,r=null):yield{event:Ke,data:""}}catch(e){c=!0,o=e}finally{try{a&&null!=d.return&&(yield(0,Qe.default)(d.return()))}finally{if(c)throw o}}})),c.apply(this,arguments)}function d(){return d=(0,We.default)((function*(){try{yield*(0,Ze.default)((0,He.default)(function(){return c.apply(this,arguments)}())),yield{event:tt,data:""}}catch(n){var t,r;if(V(n))return;const o=A(n),a=null!==(t=null===(r=e.formatError)||void 0===r?void 0:r.call(e,{error:o}))&&void 0!==t?t:null;yield{event:Xe,data:JSON.stringify(i(a))}}})),d.apply(this,arguments)}const p=Oe(function(){return d.apply(this,arguments)}());return p.pipeThrough(new TransformStream({transform(e,t){"event"in e&&t.enqueue(`event: ${e.event}\n`),"data"in e&&t.enqueue(`data: ${e.data}\n`),"id"in e&&t.enqueue(`id: ${e.id}\n`),"comment"in e&&t.enqueue(`: ${e.comment}\n`),t.enqueue("\n\n")}})).pipeThrough(new TextEncoderStream)}const nt={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform","X-Accel-Buffering":"no",Connection:"keep-alive"};var ot=b(pe(),1),at=b(k(),1);function it(e){return c((0,ot.default)((function*(){throw e})))}const st={mutation:["POST"],query:["GET"],subscription:["GET"]},lt={mutation:["POST"],query:["GET","POST"],subscription:["GET","POST"]};function ct(e){var t,r,n;const{ctx:o,info:s,responseMeta:l,untransformedJSON:c,errors:u=[],headers:d}=e;let p=c?function(e){const t=Array.isArray(e)?e:[e],r=new Set(t.map((e=>{var t;return"error"in e&&i(e.error.data)?"number"==typeof(null===(t=e.error.data)||void 0===t?void 0:t.httpStatus)?e.error.data.httpStatus:_(a[e.error.code]):200})));return 1!==r.size?207:r.values().next().value}(c):200;const f=!c,m=f?[]:Array.isArray(c)?c:[c],y=null!==(t=null==l?void 0:l({ctx:o,info:s,paths:null==s?void 0:s.calls.map((e=>e.path)),data:m,errors:u,eagerGeneration:f,type:null!==(r=null==s||null===(n=s.calls.find((e=>{var t;return null===(t=e.procedure)||void 0===t?void 0:t._def.type})))||void 0===n||null===(n=n.procedure)||void 0===n?void 0:n._def.type)&&void 0!==r?r:"unknown"}))&&void 0!==t?t:{};if(y.headers)if(y.headers instanceof Headers)for(const[e,t]of y.headers.entries())d.append(e,t);else for(const[e,t]of Object.entries(y.headers))if(Array.isArray(t))for(const r of t)d.append(e,r);else"string"==typeof t&&d.set(e,t);return y.status&&(p=y.status),{status:p}}function ut(e){return!!i(e)&&(!!l(e)||(Object.values(e).some(Ge)||Object.values(e).some(l)))}async function dt(e){var t,r,n,o,a,i;const{router:s,req:u}=e,d=new Headers([["vary","trpc-accept"]]),p=s._def._config,f=new URL(u.url);if("HEAD"===u.method)return new Response(null,{status:204});const m=null===(t=null!==(r=e.allowBatching)&&void 0!==r?r:null===(n=e.batching)||void 0===n?void 0:n.enabled)||void 0===t||t,y=null!==(o=e.allowMethodOverride)&&void 0!==o&&o&&"POST"===u.method,h=await c((async()=>{try{return[void 0,await J({req:u,path:decodeURIComponent(e.path),router:s,searchParams:f.searchParams,headers:e.req.headers,url:f})]}catch(e){return[A(e),void 0]}})),v=c((()=>{let t;return{valueOrUndefined:()=>{if(t)return t[1]},value:()=>{const[e,r]=t;if(e)throw e;return r},create:async r=>{if(t)throw new Error("This should only be called once - report a bug in tRPC");try{const n=await e.createContext({info:r});t=[void 0,n]}catch(e){t=[A(e),void 0]}}}})),b=y?lt:st,g="application/jsonl"===u.headers.get("trpc-accept"),_=null===(a=null===(i=p.sse)||void 0===i?void 0:i.enabled)||void 0===a||a;try{const[t,r]=h;if(t)throw t;if(r.isBatchCall&&!m)throw new N({code:"BAD_REQUEST",message:"Batching is not enabled on the server"});if(g&&!r.isBatchCall)throw new N({message:"Streaming requests must be batched (you can do a batch of 1)",code:"BAD_REQUEST"});await v.create(r);const n=r.calls.map((async t=>{const n=t.procedure;try{if(e.error)throw e.error;if(!n)throw new N({code:"NOT_FOUND",message:`No procedure found on path "${t.path}"`});if(!b[n._def.type].includes(u.method))throw new N({code:"METHOD_NOT_SUPPORTED",message:`Unsupported ${u.method}-request to ${n._def.type} procedure at path "${t.path}"`});if("subscription"===n._def.type&&r.isBatchCall)throw new N({code:"BAD_REQUEST",message:"Cannot batch subscription calls"});return[void 0,{data:await n({path:t.path,getRawInput:t.getRawInput,ctx:v.value(),type:n._def.type,signal:e.req.signal})}]}catch(r){var o,a,i;const n=A(r),s=t.result();return null===(o=e.onError)||void 0===o||o.call(e,{error:n,path:t.path,input:s,ctx:v.valueOrUndefined(),type:null!==(a=null===(i=t.procedure)||void 0===i?void 0:i._def.type)&&void 0!==a?a:"unknown",req:e.req}),[n,void 0]}}));if(!r.isBatchCall){const[t]=r.calls,[o,a]=await n[0];switch(r.type){case"unknown":case"mutation":case"query":{if(d.set("content-type","application/json"),ut(null==a?void 0:a.data))throw new N({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"});const n=o?{error:M({config:p,ctx:v.valueOrUndefined(),error:o,input:t.result(),path:t.path,type:r.type})}:{result:{data:a.data}},i=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:o?[o]:[],headers:d,untransformedJSON:[n]});return new Response(JSON.stringify(I(p,n)),{status:i.status,headers:d})}case"subscription":{const n=c((()=>{if(o)return it(o);if(!_)return it(new N({code:"METHOD_NOT_SUPPORTED",message:'Missing experimental flag "sseSubscriptions"'}));if(!(0,B.AT)(a.data)&&!l(a.data))return it(new N({message:`Subscription ${t.path} did not return an observable or a AsyncGenerator`,code:"INTERNAL_SERVER_ERROR"}));return(0,B.AT)(a.data)?(0,B.di)(a.data,e.req.signal):a.data})),i=rt((0,at.default)((0,at.default)({},p.sse),{},{data:n,serialize:e=>p.transformer.output.serialize(e),formatError(r){var n,o,a;const i=A(r.error),s=null==t?void 0:t.result(),l=null==t?void 0:t.path,c=null!==(n=null==t||null===(o=t.procedure)||void 0===o?void 0:o._def.type)&&void 0!==n?n:"unknown";null===(a=e.onError)||void 0===a||a.call(e,{error:i,path:l,input:s,ctx:v.valueOrUndefined(),req:e.req,type:c});return M({config:p,ctx:v.valueOrUndefined(),error:i,input:s,path:l,type:c})}}));for(const[e,t]of Object.entries(nt))d.set(e,t);const s=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:[],headers:d,untransformedJSON:null});return new Response(i,{headers:d,status:s.status})}}}if("application/jsonl"===r.accept){d.set("content-type","application/json"),d.set("transfer-encoding","chunked");const t=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,errors:[],headers:d,untransformedJSON:null}),o=Ve((0,at.default)((0,at.default)({},p.jsonl),{},{maxDepth:1/0,data:n.map((async t=>{const[n,o]=await t,a=r.calls[0];var i,s;if(n)return{error:M({config:p,ctx:v.valueOrUndefined(),error:n,input:a.result(),path:a.path,type:null!==(i=null===(s=a.procedure)||void 0===s?void 0:s._def.type)&&void 0!==i?i:"unknown"})};const l=(0,B.AT)(o.data)?(0,B.di)(o.data,e.req.signal):Promise.resolve(o.data);return{result:Promise.resolve({data:l})}})),serialize:e=>p.transformer.output.serialize(e),onError:t=>{var n,o;null===(n=e.onError)||void 0===n||n.call(e,{error:A(t),path:void 0,input:void 0,ctx:v.valueOrUndefined(),req:e.req,type:null!==(o=null==r?void 0:r.type)&&void 0!==o?o:"unknown"})},formatError(e){var t,n;const o=null==r?void 0:r.calls[e.path[0]],a=A(e.error),i=null==o?void 0:o.result(),s=null==o?void 0:o.path,l=null!==(t=null==o||null===(n=o.procedure)||void 0===n?void 0:n._def.type)&&void 0!==t?t:"unknown";return M({config:p,ctx:v.valueOrUndefined(),error:a,input:i,path:s,type:l})}}));return new Response(o,{headers:d,status:t.status})}d.set("content-type","application/json");const o=(await Promise.all(n)).map((e=>{const[t,r]=e;return t?e:ut(r.data)?[new N({code:"UNSUPPORTED_MEDIA_TYPE",message:"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink"}),void 0]:e})),a=o.map((([e,t],n)=>{const o=r.calls[n];var a,i;return e?{error:M({config:p,ctx:v.valueOrUndefined(),error:e,input:o.result(),path:o.path,type:null!==(a=null===(i=o.procedure)||void 0===i?void 0:i._def.type)&&void 0!==a?a:"unknown"})}:{result:{data:t.data}}})),i=o.map((([e])=>e)).filter(Boolean),s=ct({ctx:v.valueOrUndefined(),info:r,responseMeta:e.responseMeta,untransformedJSON:a,errors:i,headers:d});return new Response(JSON.stringify(I(p,a)),{status:s.status,headers:d})}catch(t){var w;const[r,n]=h,o=v.valueOrUndefined(),{error:a,untransformedJSON:i,body:s}=function(e,t){const{router:r,req:n,onError:o}=t.opts,a=A(e);null==o||o({error:a,path:t.path,input:t.input,ctx:t.ctx,type:t.type,req:n});const i={error:M({config:r._def._config,error:a,type:t.type,path:t.path,input:t.input,ctx:t.ctx})},s=I(r._def._config,i);return{error:a,untransformedJSON:i,body:JSON.stringify(s)}}(t,{opts:e,ctx:v.valueOrUndefined(),type:null!==(w=null==n?void 0:n.type)&&void 0!==w?w:"unknown"}),l=ct({ctx:o,info:n,responseMeta:e.responseMeta,untransformedJSON:i,errors:[a],headers:d});return new Response(s,{status:l.status,headers:d})}}function pt(e){try{var t,r;const n=e.headers[":scheme"]&&"https"===e.headers[":scheme"]||e.socket&&"encrypted"in e.socket&&e.socket.encrypted?"https:":"http:",o=null!==(t=null!==(r=e.headers.host)&&void 0!==r?r:e.headers[":authority"])&&void 0!==t?t:"localhost";return new URL(e.url,`${n}//${o}`)}catch(e){throw new N({code:"BAD_REQUEST",message:"Invalid URL",cause:e})}}function ft(e){const t=new Headers;for(const r in e){const n=e[r];if("string"!=typeof r||!r.startsWith(":"))if(Array.isArray(n))for(const e of n)t.append(r,e);else null!=n&&t.append(r,n)}return t}function mt(e,t,r){const n=new AbortController,o=()=>{t.off("close",o),e.off("aborted",o),n.abort()};t.once("close",o),e.once("aborted",o);const a=pt(e),i={headers:ft(e.headers),method:e.method,signal:n.signal};"GET"!==e.method&&"HEAD"!==e.method&&(i.body=function(e,t){if("body"in e){if(void 0===e.body)return;return"string"==typeof e.body?e.body:JSON.stringify(e.body)}let r=0,n=!1;return new ReadableStream({start(o){const a=s=>{r+=s.length,!t.maxBodySize||r<=t.maxBodySize?o.enqueue(new Uint8Array(s.buffer,s.byteOffset,s.byteLength)):(o.error(new N({code:"PAYLOAD_TOO_LARGE"})),n=!0,e.off("data",a),e.off("end",i))},i=()=>{n||(n=!0,e.off("data",a),e.off("end",i),o.close())};e.on("data",a),e.on("end",i)},cancel(){e.destroy()}})}(e,r),i.duplex="half");return new Request(a,i)}async function yt(e){const{res:t}=e;try{const r=new WritableStream({async write(e){var r;await async function(e,t){!1===e.write(t)&&await new Promise(((t,r)=>{const n=e=>{r(e),a()},o=()=>{t(),a()},a=()=>{e.off("error",n),e.off("drain",o)};e.once("error",n),e.once("drain",o)}))}(t,e),null===(r=t.flush)||void 0===r||r.call(t)}});await e.body.pipeTo(r,{signal:e.signal})}catch(e){if(V(e))return;throw e}}var ht=b(k(),1);function vt(e){return t=>{var r;const{res:n,req:o}=e,a=A(t),i=M({config:e.router._def._config,error:a,type:"unknown",path:void 0,input:void 0,ctx:void 0});null===(r=e.onError)||void 0===r||r.call(e,{req:o,error:a,type:"unknown",path:void 0,input:void 0,ctx:void 0});const s=I(e.router._def._config,{error:i});n.statusCode=i.data.httpStatus,n.end(JSON.stringify(s))}}async function bt(e){return new Promise((t=>{var r;const n=null!==(r=e.middleware)&&void 0!==r?r:(e,t,r)=>r();return e.res.once("finish",(()=>{t()})),n(e.req,e.res,(t=>{c((async()=>{var r;const n=mt(e.req,e.res,{maxBodySize:null!==(r=e.maxBodySize)&&void 0!==r?r:null}),o=await dt((0,ht.default)((0,ht.default)({},e),{},{req:n,error:t?A(t):null,createContext:async t=>{var r;return await(null===(r=e.createContext)||void 0===r?void 0:r.call(e,(0,ht.default)((0,ht.default)({},e),t)))},onError(t){var r;null==e||null===(r=e.onError)||void 0===r||r.call(e,(0,ht.default)((0,ht.default)({},t),{},{req:e.req}))}}));await async function(e){const{response:t,rawResponse:r}=e;200===r.statusCode&&(r.statusCode=t.status);for(const[e,n]of t.headers)r.setHeader(e,n);try{t.body&&await yt({res:r,signal:e.request.signal,body:t.body})}catch(e){throw r.headersSent||(r.statusCode=500),e}finally{r.end()}}({request:n,response:o,rawResponse:e.res})})).catch(vt(e))}))}))}const gt=e(import.meta.url)("http");var _t=b(k(),1);function wt(e){var t;const r=(null!==(t=e.basePath)&&void 0!==t?t:"/").length;return(t,n)=>{let o="";c((async()=>{const a=pt(t);o=a.pathname.slice(r),await bt((0,_t.default)((0,_t.default)({},e),{},{req:t,res:n,path:o}))})).catch(vt((0,_t.default)({req:t,res:n,path:o},e)))}}function Et(e){return gt.createServer(function(e){return wt(e)}(e))}},333:(e,r,n)=>{e.exports=(e=>{var t={};return n.d(t,e),t})({initTRPC:()=>t.initTRPC})},427:(e,t,r)=>{function n(e){return"object"==typeof e&&null!==e&&"subscribe"in e}function o(e){const t={subscribe(t){let r=null,n=!1,o=!1,a=!1;function i(){null!==r?o||(o=!0,"function"==typeof r?r():r&&r.unsubscribe()):a=!0}return r=e({next(e){var r;n||null===(r=t.next)||void 0===r||r.call(t,e)},error(e){var r;n||(n=!0,null===(r=t.error)||void 0===r||r.call(t,e),i())},complete(){var e;n||(n=!0,null===(e=t.complete)||void 0===e||e.call(t),i())}}),a&&i(),{unsubscribe:i}},pipe:(...e)=>e.reduce(a,t)};return t}function a(e,t){return t(e)}function i(e,t){const r=function(e,t){let r=null;const n=()=>{null==r||r.unsubscribe(),r=null,t.removeEventListener("abort",n)};return new ReadableStream({start(o){r=e.subscribe({next(e){o.enqueue({ok:!0,value:e})},error(e){o.enqueue({ok:!1,error:e}),o.close()},complete(){o.close()}}),t.aborted?n():t.addEventListener("abort",n,{once:!0})},cancel(){n()}})}(e,t),n=r.getReader(),o={async next(){const e=await n.read();if(e.done)return{value:void 0,done:!0};const{value:t}=e;if(!t.ok)throw t.error;return{value:t.value,done:!1}},return:async()=>(await n.cancel(),{value:void 0,done:!0})};return{[Symbol.asyncIterator]:()=>o}}r.d(t,{AT:()=>n,di:()=>i,sH:()=>o})},455:t=>{t.exports=e(import.meta.url)("node:fs/promises")},508:(e,t,r)=>{r.a(e,(async(e,n)=>{try{r.d(t,{Ux:()=>d,YO:()=>c,Zy:()=>p,bR:()=>m});var o=r(455),a=r(136),i=r(760);const e=(0,a.fileURLToPath)("file:///Users/jhen/workspace/mybigday-bricks/buttress/buttress-server-poc/src/version-check.js"),s=i.dirname(e),l=JSON.parse(await(0,o.readFile)(i.join(s,"../package.json"),"utf8")),{version:c,name:u}=l,d=async()=>{const e=`https://registry.npmjs.org/${u}/latest`;try{const t=new AbortController,r=setTimeout((()=>t.abort()),3e3),n=await fetch(e,{headers:{Accept:"application/json"},signal:t.signal});if(clearTimeout(r),!n.ok)return null;return(await n.json()).version||null}catch{return null}},p=(e,t)=>{if(!t)return!1;const r=e.split(/[.-]/),n=t.split(/[.-]/);for(let e=0;e<Math.max(r.length,n.length);e+=1){const t=parseInt(r[e])||0,o=parseInt(n[e])||0;if(o>t)return!0;if(o<t)return!1}return!1},f=e=>{console.log(""),console.log("╭─────────────────────────────────────────────────╮"),console.log("│ Update available! %s → %s",c.padEnd(12),e.padEnd(12),"│"),console.log("│ │"),console.log("│ Run to upgrade: │"),console.log("│ npm install -g %s │",u.padEnd(27)),console.log("╰─────────────────────────────────────────────────╯"),console.log("")},m=async()=>{try{const e=await d();e&&p(c,e)&&f(e)}catch(e){}};n()}catch(e){n(e)}}),1)},696:(t,o,a)=>{a.r(o),a.d(o,{finalizeGenerator:()=>ce,getCapabilities:()=>de,getModelIdentifier:()=>fe,ggmlLlm:()=>pe,startGenerator:()=>le});const i=e(import.meta.url)("node:os"),s=(e,t,r)=>Math.min(Math.max(e,t),r),l=e=>e?40:0,c=(e=0)=>{if(!e)return 0;return s(e/12884901888*20,0,20)},u=(e=0)=>{if(!e)return 0;return s(e/34359738368*10,0,10)},d=e=>e?10:0,p=(e="default",t=null)=>{const r=String(e).toLowerCase();if(!r)return 0;if(r.includes("cuda"))return 20;if(r.includes("vulkan"))return 10;if(r.includes("default")){return"darwin"===t||"ios"===t?15:5}return 0},f=({platform:e,variant:t,hasGpu:r,gpuUsableBytes:n=0,cpuUsableBytes:o=0,ok:a=!0}={})=>{if(!a)return 0;const i=l(r)+p(t,e)+c(n),s=u(o),f=d(a);return Math.min(100,Math.round(i+s+f))},m=["cuda","vulkan","default"],y=e=>e||0===e?Array.isArray(e)?e.filter((e=>null!=e)):[e]:[],h=e=>e&&String(e).trim().toLowerCase()||null,v=(e={})=>{const t=String(e.type||e.deviceType||e.kind||"").toLowerCase();return!!t.includes("gpu")||(!!t.includes("cuda")||(!!t.includes("metal")||!!t.includes("vulkan")))},b=({platform:e,totalMemoryInBytes:t,variant:r,devices:n,gpuMemoryFraction:o,cpuMemoryFraction:a,ok:i,error:s})=>{const m=(e=>Array.isArray(e)?e.map((e=>({...e}))):[])(n),y=m.some(v),h=m.filter((e=>v(e)&&Number.isFinite(Number(e.maxMemorySize)))).reduce(((e,t)=>Math.max(e,Number(t.maxMemorySize)||0)),0),b=t,g=y?Math.floor(h*o):0,_=b?Math.floor(b*a):0,w={platform:e,variant:r,hasGpu:y,gpuUsableBytes:g,cpuUsableBytes:_,ok:i},E=f(w),x=i?(({platform:e,variant:t,hasGpu:r,gpuUsableBytes:n=0,cpuUsableBytes:o=0,ok:a=!0}={})=>({gpuPresence:l(r),variant:p(t,e),gpuMemory:c(n),cpuMemory:u(o),availability:d(a)}))(w):null;return{platform:e,ok:i,variant:r,hasGpu:y,devices:m,gpuTotalBytes:h,gpuUsableBytes:g,cpuTotalBytes:b,cpuUsableBytes:_,score:E,breakdown:x,error:s,timestamp:(new Date).toISOString()}},g="ggml-llm",_=new Map([[g,async({platform:e,variant:t=null,preferVariants:r=[],variantPreference:n=[],gpuMemoryFraction:o=.85,cpuMemoryFraction:a=.5,includeBreakdown:i=!1,totalMemoryInBytes:s,dependencies:l={}}={})=>{const{getBackendDevicesInfo:c,isLibVariantAvailable:u}=l;if("function"!=typeof c||"function"!=typeof u)throw new TypeError("GGML capability detection requires getBackendDevicesInfo and isLibVariantAvailable functions");const d=(({variant:e,preferVariants:t=[],variantPreference:r=[]}={})=>{const n=[];e&&n.push(e),n.push(...y(t)),n.push(...y(r)),n.push(...m);const o=n.map(h).filter(Boolean);return Array.from(new Set(o))})({variant:t,preferVariants:r,variantPreference:n}),p=[];for(const t of d)try{if(!await u(t))throw new Error(`Variant ${t} not available on this platform`);const r=await c(t);p.push(b({platform:e,totalMemoryInBytes:s,variant:t,devices:r,gpuMemoryFraction:o,cpuMemoryFraction:a,ok:!0}))}catch(r){const n=r instanceof Error?r.message:String(r);p.push(b({platform:e,totalMemoryInBytes:s,variant:t,devices:[],gpuMemoryFraction:o,cpuMemoryFraction:a,ok:!1,error:n}))}const f=p.filter((e=>e.ok)),v=f.find((e=>e.hasGpu))||f.find((e=>"default"===e.variant))||f[0]||null,g={ok:Boolean(v),selected:v?{...v,breakdown:i?v.breakdown:void 0}:null,attempts:p};return!i&&g.selected&&delete g.selected.breakdown,g}]]),w=async({platform:e,totalMemoryInBytes:t,backend:r=g,dependencies:n,modelBytes:o=null,kvCacheBytes:a=null,...i}={})=>{const s=_.get(r);if(!s)throw new Error(`No capability detector registered for backend "${r}"`);const l=await s({...i,dependencies:n,totalMemoryInBytes:t,platform:e});if(!l||!o&&!a)return l;const c=e=>{if(!e)return e;const t=(({device:e,modelBytes:t=0,kvCacheBytes:r=0}={})=>{if(!e)return{totalRequiredBytes:t+r,fitsInGpu:!1,fitsInCpu:!1,limiting:"unknown-device"};const n=Math.max(0,Number(t)||0)+Math.max(0,Number(r)||0),o=e.hasGpu&&n>0&&n<=e.gpuUsableBytes,a=n>0&&n<=e.cpuUsableBytes;let i="ok";return!o&&e.hasGpu&&(i="gpu-memory"),a||(i=o?"cpu-memory":"insufficient-memory"),{totalRequiredBytes:n,fitsInGpu:o,fitsInCpu:a,limiting:i}})({device:e,modelBytes:o||0,kvCacheBytes:a||0});return{...e,fit:t}};return{...l,attempts:Array.isArray(l.attempts)?l.attempts.map(c):l.attempts,selected:c(l.selected)}},E={f16:2,f32:4,q8_0:1,q6_k:.75,q5_k:.625,q5_k_m:.625,q5_k_s:.625,q5_1:.625,q5_0:.625,q4_k:.5,q4_k_m:.5,q4_k_s:.5,q4_1:.5,q4_0:.5,iq4_nl:.5},x=e=>{const t=e?String(e).toLowerCase():"f16";return E[t]||E.f16},O=(e,t,r,n={})=>{if(!e||!t||!r)return 0;const o=x(n.k),a=x(n.v),i=Number(e)*Number(r)*Number(t);return Math.round(i*(o+a))};const S=(e=>{var t={};return a.d(t,e),t})({getBackendDevicesInfo:()=>r.getBackendDevicesInfo,isLibVariantAvailable:()=>r.isLibVariantAvailable,loadModel:()=>r.loadModel});var k=a(760),T=a(455);const M=e(import.meta.url)("node:crypto");const P=(e=>{var t={};return a.d(t,e),t})({gguf:()=>n.gguf}),R=e(import.meta.url)("node:stream/web");var A=a.t(R,2);const N="undefined"!=typeof globalThis&&globalThis.ReadableStream&&globalThis.WritableStream?{ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream}:A,{ReadableStream:C,WritableStream:j}=N,I=new TextEncoder,q=(e={},t={})=>(Object.entries(t||{}).forEach((([t,r])=>{r&&"object"==typeof r&&!Array.isArray(r)?(e[t]&&"object"==typeof e[t]||(e[t]={}),q(e[t],r)):e[t]=r})),e),D="https://huggingface.co",U="https://huggingface.co/api",B=k.join(i.homedir(),".buttress","models"),z=["mxfp4","q8_0","q6_k","q6","q5_k_m","q5_k_s","q5_k","q5_1","q5_0","q4_k_m","q4_k_s","q4_k","q4_1","q4_0","q3","q2"],L={backend:{type:"ggml-llm",variant:null,variant_preference:["cuda","vulkan","default"],gpu_memory_fraction:.85,cpu_memory_fraction:.5},model:{repo_id:null,revision:"main",filename:null,url:null,quantization:null,preferred_quantizations:[],n_ctx:null,n_gpu_layers:"auto",n_parallel:4,n_batch:2048,flash_attn:"auto",cache_k_type:"f16",cache_v_type:"f16",ctx_shift:!1,kv_unified:!1,swa_full:!1,allow_local_file:!1,local_path:null,api_base:U,base_url:D},runtime:{cache_dir:B,prefer_variants:[],huggingface_token:process.env.HUGGINGFACE_TOKEN||null,http_headers:{}}},$=(e,t=[])=>e||0===e?Array.isArray(e)?e.filter((e=>null!=e)):[e]:[...t],G=e=>{if(!e)return null;const t=String(e).toLowerCase();return["cuda","vulkan","default"].includes(t)?t:null},F=(e={})=>{const t=JSON.parse(JSON.stringify(L));if(q(t,e),t.backend.variant=G(t.backend.variant),t.backend.variant_preference=Array.from(new Set($(t.backend.variant_preference).map(G).filter(Boolean))),0===t.backend.variant_preference.length&&(t.backend.variant_preference=["cuda","vulkan","default"]),t.runtime.prefer_variants=Array.from(new Set($(t.runtime.prefer_variants).map(G).filter(Boolean))),t.model.preferred_quantizations=Array.from(new Set($(t.model.preferred_quantizations||t.model.quantizations).map((e=>e?String(e).toLowerCase():null)).filter(Boolean))),t.model.quantization){const e=String(t.model.quantization).toLowerCase();t.model.preferred_quantizations.includes(e)||t.model.preferred_quantizations.unshift(e)}return t.model.n_parallel=Math.max(1,Number(t.model.n_parallel)||4),t.model.n_batch=Math.max(1,Number(t.model.n_batch)||512),t.model.base_url=t.model.base_url||D,t.model.api_base=t.model.api_base||U,t.runtime.cache_dir=t.runtime.cache_dir?k.resolve(t.runtime.cache_dir):B,t},J=e=>{const t=e.toLowerCase();return z.find((e=>t.includes(e)))||null},V=new Map,Y=new Map,H=async(e,t={})=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");const r=await fetch(e,{...t,method:"HEAD"});if(!r.ok)throw new Error(`Failed to fetch headers for ${e}: ${r.status} ${r.statusText}`);return r},Q=async(e,t)=>{const r=JSON.stringify({url:e,headers:t});if(Y.has(r))return Y.get(r);const n=!/^https?:/i.test(e),{metadata:o}=await(0,P.gguf)(e,{fetch,additionalFetchHeaders:t,allowLocalFile:n});return Y.set(r,o),o},W=async(e,t,r,n,o)=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");await(async e=>{await(0,T.mkdir)(e,{recursive:!0})})(k.dirname(r));const a=await fetch(e,{headers:t});if(!a.ok||!a.body)throw new Error(`Failed to download ${e}: ${a.status} ${a.statusText}`);const i=await(0,T.open)(r,"w"),s=Number(a.headers.get("content-length"))||n||0;let l=0,c=.05;try{await a.body.pipeTo(new j({async write(e){if(await i.write(e),l+=e.byteLength,"function"==typeof o&&s>0){const e=Math.min(1,l/s);for(;e>=c;)o(c),c+=.05}},async close(){await i.close(),"function"==typeof o&&o(1)},async abort(e){throw await i.close().catch((()=>{})),await(0,T.unlink)(r).catch((()=>{})),e}}))}catch(e){throw await i.close().catch((()=>{})),await(0,T.unlink)(r).catch((()=>{})),e}if(n){const e=await(0,T.stat)(r);if(e.size!==n)throw await(0,T.unlink)(r).catch((()=>{})),new Error(`Downloaded file size mismatch, expected ${n} got ${e.size}`)}},Z=async e=>{const t=e.model.repo_id||e.model.repository||e.model.model;if(!t)throw new Error("`model.repo_id` is required in Buttress backend config");const r=e.model.revision||"main",n=JSON.stringify({repoId:t,revision:r,filename:e.model.filename,url:e.model.url,quantization:e.model.quantization,preferred_quantizations:e.model.preferred_quantizations});if(V.has(n))return V.get(n);const o={...e.runtime.http_headers||{}};if(e.runtime.huggingface_token&&(o.Authorization=`Bearer ${e.runtime.huggingface_token}`),e.model.url){const a=await H(e.model.url,{headers:o}),i=Number(a.headers.get("content-length"))||null,s={repoId:t,revision:r,filename:e.model.filename||e.model.url.split("/").pop(),url:e.model.url,size:i,headers:o};return V.set(n,s),s}let{filename:a}=e.model,i=e.model.quantization&&String(e.model.quantization).toLowerCase();const s=await(async(e,t={})=>{if("function"!=typeof fetch)throw new Error("Global fetch is not available in this runtime");const r=await fetch(e,t);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Failed to fetch ${e}: ${r.status} ${r.statusText} ${t}`.trim())}return r.json()})(`${e.model.api_base}/models/${t}?revision=${r}`,{headers:o}),l=(s?.siblings||s?.files||[]).map((e=>e.rfilename||e.path||e.filename)).filter((e=>"string"==typeof e&&e.endsWith(".gguf")));if(0===l.length)throw new Error(`No GGUF artifacts found in repo ${t}`);const c=e.model.preferred_quantizations.length>0?e.model.preferred_quantizations:z;if(a)i||(i=J(a));else{const e=(()=>{const e=c.find((e=>l.find((t=>t.toLowerCase().includes(e)))));if(e)return{filename:l.find((t=>t.toLowerCase().includes(e))),quantization:e};return null})()||{filename:l[0],quantization:null},{filename:t,quantization:r}=e;a=t,i=r||J(a)}const u=`${e.model.base_url.replace(/\/+$/,"")}/${t}/resolve/${r}/${a}`,d=await H(u,{headers:o}),p={repoId:t,revision:r,filename:a,url:u,size:Number(d.headers.get("content-length"))||null,quantization:i,headers:o};return V.set(n,p),p},K=async(e,{modelBytes:t=null,kvCacheBytes:r=null}={})=>{const n=(e=>{const t=[];return e.backend.variant&&t.push(e.backend.variant),e.runtime.prefer_variants.length>0&&t.push(...e.runtime.prefer_variants),t.push(...e.backend.variant_preference),t.push("default"),Array.from(new Set(t.map(G).filter(Boolean)))})(e),[o,...a]=n,s=null!=e.backend?.gpu_memory_fraction?Math.min(1,Math.max(0,Number(e.backend.gpu_memory_fraction))):L.backend.gpu_memory_fraction||1,l=null!=e.backend?.cpu_memory_fraction?Math.min(1,Math.max(0,Number(e.backend.cpu_memory_fraction))):.5,c=await w({platform:process.platform,totalMemoryInBytes:i.totalmem(),backend:"ggml-llm",variant:o||null,preferVariants:a,gpuMemoryFraction:s,cpuMemoryFraction:l,dependencies:{getBackendDevicesInfo:S.getBackendDevicesInfo,isLibVariantAvailable:S.isLibVariantAvailable},modelBytes:t,kvCacheBytes:r}),u=e=>({...e,devices:Array.isArray(e.devices)?e.devices:[],ok:e.ok,hasGpu:Boolean(e.hasGpu),totalMemory:e.gpuTotalBytes||e.totalMemory||0,error:e.ok?null:new Error(e.error||`Variant ${e.variant} not available on this platform`)});if(!c.ok||!c.selected){const e=(c.attempts||[]).map((e=>`${e.variant}: ${e.error||"unknown error"}`)).join("; ");throw new Error(`Unable to initialize any backend variant (${n.join(", ")}). Errors: ${e}`)}const d=(c.attempts||[]).map(u);return{selected:u(c.selected),attempts:d}},X=async e=>{const t=await Z(e),r=await Q(t.url,t.headers),n=r["general.architecture"],o=r[`${n}.context_length`]||r["llama.context_length"],a=r[`${n}.block_count`]||r["llama.block_count"],s=r[`${n}.embedding_length`]||r["llama.embedding_length"],l=Number.isFinite(Number(a))?Number(a):0,c=Number.isFinite(Number(s))?Number(s):0,u=r["general.quantization_version"]||null,d=r["general.file_type"]||null,p=e.model.n_ctx?Number(e.model.n_ctx):null;let f=p||o||4096;const m=[],y=[];let h=!0;if(p&&o&&p>o){h=!1;const e=`Requested context length (${p}) exceeds model training context (${o})`;m.push(e),y.push(e),f=o}p&&!o&&m.push("Model metadata missing training context length, using requested value");const v={k:e.model.cache_k_type,v:e.model.cache_v_type},b=t.size>0?t.size:0,g=l&&c?l*c*(x(v.k)+x(v.v)):0,_=O(l,c,f,v),w=await K(e,{modelBytes:b,kvCacheBytes:_}),E=w.selected.totalMemory||0,S=E*(e.backend.gpu_memory_fraction||1),M=null!=e.backend.cpu_memory_fraction?Math.min(1,Math.max(0,Number(e.backend.cpu_memory_fraction))):.5,P=Math.max(0,i.totalmem()*M),R=w.selected.hasGpu?S:P;let A=null;if(!p&&g>0&&R>b){const e=R-b,t=Math.floor(e/g);t>0&&(A=t)}if(!p&&A){const e=o?Math.min(A,o):A;e<f&&m.push(`Context length capped to ${e} by memory limits`),f=Math.max(32,e)}o&&f>o&&(f=o);const N=o||p||f,C=Math.floor(A??N);console.log(`[buttress] Memory-limited context length: ${C}`);const j=O(l,c,f,v),I=b+j,q=l?b/(l+1):b;let D,U=0;w.selected.hasGpu&&q>0&&(U=Math.min(l+1,Math.max(0,Math.floor(S/q)))),console.log(`[buttress] Auto GPU layer capacity (${w.selected.variant}): ${U}/${l+1}`),D="auto"===e.model.n_gpu_layers||null==e.model.n_gpu_layers?U:Math.max(0,Math.min(Number(e.model.n_gpu_layers)||0,l+1));const B=(()=>{const t=e.model.flash_attn&&String(e.model.flash_attn).toLowerCase();return"on"===t||"off"===t?t:w.selected.hasGpu?"auto":"off"})(),z=e.runtime.cache_dir,L=((e,t)=>{if(e.model.local_path)return k.resolve(e.model.local_path);const r=t.repoId.split("/"),n=k.join(e.runtime.cache_dir,...r,t.revision);return k.join(n,t.filename)})(e,t),$=await(async(e,t)=>{try{const r=await(0,T.stat)(e);return!t||r.size===t}catch(e){return!1}})(L,t.size),G={ok:h,backend:"ggml-llm",warnings:m,errors:y,model:{repoId:t.repoId,revision:t.revision,filename:t.filename,quantization:t.quantization,url:t.url,sizeBytes:t.size,metadata:{architecture:n,n_ctx_train:o,n_layer:l,n_embd:c,quantization_version:u,file_type:d}},runtime:{variant:w.selected.variant,n_ctx:f,requested_ctx:p,n_gpu_layers:D,n_parallel:e.model.n_parallel,n_batch:e.model.n_batch,flash_attn_type:B,cache_type_k:v.k,cache_type_v:v.v,ctx_shift:e.model.ctx_shift,kv_unified:e.model.kv_unified,swa_full:e.model.swa_full,estimated_max_n_ctx:C,auto_gpu_layers:U},resources:{modelBytes:b,kvCacheBytes:j,totalEstimatedBytes:I,gpuCapacityBytes:E,gpuUsableBytes:S,cpuUsableBytes:P,fit:w.selected.fit},devices:{selected:w.selected,attempts:w.attempts},download:{cacheDir:z,localPath:L,exists:$},timestamp:(new Date).toISOString()};return{config:e,info:G,artifact:t,metadata:{arch:n,nCtxTrain:o,nLayer:l,nEmbd:c},devices:w,cacheTypes:v,localPath:L,localExists:$}},ee=(e,t)=>`event: ${e}\ndata: ${null==t?"":JSON.stringify(t)}\n\n`,te=(e,t)=>{let r;return new C({async start(n){try{const o=await e.parallel.completion(t,((e,t)=>{t&&n.enqueue(I.encode(ee("token",{requestId:e,...t})))})),{requestId:a}=o;r=o.stop;const i=await o.promise;console.log("[Completion] Result:",i),n.enqueue(I.encode(ee("result",{requestId:a,...i}))),n.close()}catch(e){n.enqueue(I.encode(ee("error",{message:e?.message||String(e)}))),n.error(e)}},cancel(){r&&r()}})},re=e=>{const t={model:e.plan.localPath,runtime:e.plan.info.runtime};return(0,M.createHash)("sha256").update(JSON.stringify(t)).digest("hex").slice(0,24)},ne=async(e,t)=>{const r=re(e);let n=e.contexts.get(r);if(n)return n.refCount+=1,await n.ready,"function"==typeof t&&t(1),n;n={key:r,refCount:1},n.ready=(async()=>{const r=await(async(e,t,r)=>{const{config:n,localPath:o}=e;if(e.localExists&&!t.has(o))return e.info.download.exists=!0,"function"==typeof r&&r(.5),o;if(n.model.local_path&&!n.model.allow_local_file)throw new Error("Local model path provided but `model.allow_local_file` is not enabled");const a=o;t.has(a)||t.set(a,(async()=>{await W(e.artifact.url,e.artifact.headers,o,e.artifact.size,(e=>{if(e>=0&&Number.isFinite(e)){const t=Math.round(100*e);console.log(`Downloading model: ${Math.min(100,t)}%`),"function"==typeof r&&r(.5*e)}})),e.localExists=!0,e.info.download.exists=!0})());try{await t.get(a)}finally{t.delete(a)}return o})(e.plan,e.downloads,t);"function"==typeof t&&t(.5);const o={model:r,n_ctx:e.plan.info.runtime.n_ctx,n_gpu_layers:e.plan.info.runtime.n_gpu_layers,n_parallel:e.plan.info.runtime.n_parallel,n_batch:e.plan.info.runtime.n_batch,flash_attn_type:e.plan.info.runtime.flash_attn_type,ctx_shift:e.plan.info.runtime.ctx_shift,kv_unified:e.plan.info.runtime.kv_unified,swa_full:e.plan.info.runtime.swa_full,lib_variant:e.plan.info.runtime.variant};let a;"off"!==e.plan.info.runtime.flash_attn_type&&(o.cache_type_k=e.plan.info.runtime.cache_type_k,o.cache_type_v=e.plan.info.runtime.cache_type_v),console.log("[Context] Load Options:",o);try{if(a=await(0,S.loadModel)(o,(e=>{"function"==typeof t&&(t(.5+.25*e),e%5==0&&console.log("[Context] Load Model Progress:",e))})),e.plan.info.runtime.n_parallel){if(!await a.parallel.enable({n_parallel:e.plan.info.runtime.n_parallel,n_batch:e.plan.info.runtime.n_batch}))throw new Error("Failed to enable parallel decoding mode for context")}return"function"==typeof t&&t(1),n.context=a,n.modelInfo=a.getModelInfo(),n}catch(e){if(a)try{a.release()}catch(e){}throw e}})(),e.contexts.set(r,n);try{return await n.ready,n}catch(t){throw e.contexts.delete(r),t}},oe=async(e,t,r=!1)=>{if(r)t.refCount=0;else if(t.refCount=Math.max(0,t.refCount-1),t.refCount>0)return!1;e.contexts.delete(t.key);try{t.context?.parallel?.disable?.()}catch(e){}return await(t.context?.release?.()),!0};const ae=e=>{const t=F(e);return t.model.repo_id||t.model.repository||t.model.model||null};const ie=new Map,se=e=>{const t=(e=>{const t=ie.get(e);if(!t)throw new Error(`Unknown generator id "${e}"`);return t})(e);if("ggml-llm"!==t.type)throw new Error(`Generator "${e}" does not support GGML LLM backend`);return t.instance};async function le(e,t){if("ggml-llm"!==e)throw new Error("Currently only GGML LLM backend is supported");const r=ae(t);if(!r)throw new Error("Buttress generator config missing repo identifier");const n=`${e}:${r}`,o=ie.get(n);if(o)return o.refCount+=1,{id:o.id,info:o.instance.info};const a=await async function(e,t){const r=await X(F(t)),n={id:e,type:"ggml-llm",config:t,plan:r,info:r.info,contexts:new Map,downloads:new Map};return{id:e,type:"ggml-llm",info:r.info,initContext:async(e={})=>{const{onProgress:t}=e,r=await ne(n,t);return{modelInfo:r.modelInfo?{...r.modelInfo}:null,runtime:{...n.plan.info.runtime},download:{...n.plan.info.download}}},completion:async(e={})=>{const{options:t={}}=e,r=re(n),o=n.contexts.get(r);if(!o)throw new Error(`Context "${r}" not initialized`);return await o.ready,te(o.context,t)},tokenize:async(e={})=>{const{text:t="",params:r={}}=e,o=re(n),a=n.contexts.get(o);if(!a)throw new Error(`Context "${o}" not initialized`);await a.ready;const i=await a.context.tokenize(t,r);if(!i)return{tokens:[]};const s=Array.from(i.tokens??[]).map((e=>Number(e)));return{...i,tokens:s}},detokenize:async(e={})=>{const{tokens:t=[]}=e,r=re(n),o=n.contexts.get(r);if(!o)throw new Error(`Context "${r}" not initialized`);await o.ready;const a=t.map((e=>Number(e)));return o.context.detokenize(a)},applyChatTemplate:async(e={})=>{const{messages:t=[],template:r,params:o}=e,a=re(n),i=n.contexts.get(a);if(!i)throw new Error(`Context "${a}" not initialized`);return await i.ready,i.context.getFormattedChat(t,r,o)},releaseContext:async(e={})=>{const t=re(n),r=n.contexts.get(t);return!!r&&oe(n,r,Boolean(e.force))},finalize:async()=>{const e=Array.from(n.contexts.values()).map((e=>oe(n,e,!0)));await Promise.allSettled(e)}}}(n,t),i={id:n,type:a.type,instance:a,refCount:1};return ie.set(n,i),{id:n,info:a.info}}async function ce(e){const t=ie.get(e);return!!t&&(t.refCount-=1,t.refCount<=0&&(await t.instance.finalize(),ie.delete(e)),!0)}const ue=e=>e?"number"==typeof e.score&&Number.isFinite(e.score)?Number(e.score):f(e):0;async function de(e,t=null,r={}){if("ggml-llm"!==e)throw new Error("Currently only GGML LLM backend is supported");const{threshold:n=1.1,includeBreakdown:o=!1,config:a,...s}=r;let l=null,c=null;if(a)try{const{modelBytes:e,kvCacheBytes:t}=await async function(e){const t=F(e),r=await Z(t),n=await Q(r.url,r.headers),o=n["general.architecture"],a=n[`${o}.context_length`]||n["llama.context_length"],i=n[`${o}.block_count`]||n["llama.block_count"],s=n[`${o}.embedding_length`]||n["llama.embedding_length"],l=Number.isFinite(Number(i))?Number(i):0,c=Number.isFinite(Number(s))?Number(s):0,u=(t.model.n_ctx?Number(t.model.n_ctx):null)||a||4096,d={k:t.model.cache_k_type,v:t.model.cache_v_type};return{modelBytes:r.size>0?r.size:0,kvCacheBytes:O(l,c,u,d)}}(a);l=e,c=t}catch(e){}const u=await w({...s,platform:process.platform,totalMemoryInBytes:i.totalmem(),backend:e,includeBreakdown:o,dependencies:{getBackendDevicesInfo:S.getBackendDevicesInfo,isLibVariantAvailable:S.isLibVariantAvailable},modelBytes:l,kvCacheBytes:c}),d=u.selected,p=ue(d);let f=null,m=null;if(t){const e=ue(t);m={...t,score:e};let r="buttress",o="buttress-higher-score";u.ok?e||0===e?e>p*n?(r="local",o="client-better"):p>e*n?(r="buttress",o="buttress-better"):(r="either",o="comparable-scores"):(r="buttress",o="missing-client-score"):(r="local",o="buttress-unavailable"),f={buttressScore:p,clientScore:e,threshold:n,recommendation:r,reason:o}}return u.ok||f||(f={buttressScore:p,clientScore:t?.score??null,threshold:n,recommendation:"local",reason:"buttress-unavailable"}),{type:e,timestamp:(new Date).toISOString(),buttress:u,client:m,comparison:f}}const pe={initContext:async(e,t)=>se(e).initContext(t),completion:async(e,t)=>se(e).completion(t),tokenize:async(e,t)=>se(e).tokenize(t),detokenize:async(e,t)=>se(e).detokenize(t),applyChatTemplate:async(e,t)=>se(e).applyChatTemplate(t),releaseContext:async(e,t)=>se(e).releaseContext(t)};function fe(e,t){return"ggml-llm"===e?ae(t):null}},760:t=>{t.exports=e(import.meta.url)("node:path")},971:(e,t,r)=>{e.exports=(e=>{var t={};return r.d(t,e),t})({z:()=>o.z})}},p={};function f(e){var t=p[e];if(void 0!==t)return t.exports;var r=p[e]={exports:{}};return d[e](r,r.exports,f),r.exports}a="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",i="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",s="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",l=e=>{e&&e.d<1&&(e.d=1,e.forEach((e=>e.r--)),e.forEach((e=>e.r--?e.r++:e())))},f.a=(e,t,r)=>{var n;r&&((n=[]).d=-1);var o,c,u,d=new Set,p=e.exports,f=new Promise(((e,t)=>{u=t,c=e}));f[i]=p,f[a]=e=>(n&&e(n),d.forEach(e),f.catch((e=>{}))),e.exports=f,t((e=>{var t;o=(e=>e.map((e=>{if(null!==e&&"object"==typeof e){if(e[a])return e;if(e.then){var t=[];t.d=0,e.then((e=>{r[i]=e,l(t)}),(e=>{r[s]=e,l(t)}));var r={};return r[a]=e=>e(t),r}}var n={};return n[a]=e=>{},n[i]=e,n})))(e);var r=()=>o.map((e=>{if(e[s])throw e[s];return e[i]})),c=new Promise((e=>{(t=()=>e(r)).r=0;var i=e=>e!==n&&!d.has(e)&&(d.add(e),e&&!e.d&&(t.r++,e.push(t)));o.map((e=>e[a](i)))}));return t.r?c:r()}),(e=>(e?u(f[s]=e):c(p),l(n)))),n&&n.d<0&&(n.d=0)},u=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);f.r(r);var n={};c=c||[null,u({}),u([]),u(u)];for(var o=2&t&&e;"object"==typeof o&&!~c.indexOf(o);o=u(o))Object.getOwnPropertyNames(o).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,f.d(r,n),r},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m=f(173);const y=(m=await m).bR,h=m.Ux,v=m.Zy,b=m.aE,g=m.sA,_=m.YO,w=m.UD;export{y as checkAndNotifyUpdates,h as checkForUpdates,v as compareVersions,b as createRouter,g as createServer,_ as currentVersion,w as startServer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fugood/buttress-server-poc",
3
- "version": "2.23.0-beta.2",
3
+ "version": "2.23.0-beta.4",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -16,7 +16,8 @@
16
16
  "start": "node bin/start.mjs"
17
17
  },
18
18
  "dependencies": {
19
- "@fugood/llama.node": "^1.3.0-rc.5",
19
+ "@fugood/buttress-hardware-guardrails": "^2.23.0-beta.4",
20
+ "@fugood/llama.node": "^1.3.0-rc.6",
20
21
  "@huggingface/gguf": "^0.3.2",
21
22
  "@iarna/toml": "^3.0.0",
22
23
  "@trpc/server": "^11.6.0",
@@ -25,5 +26,5 @@
25
26
  "devDependencies": {
26
27
  "terser-webpack-plugin": "^5.0.3"
27
28
  },
28
- "gitHead": "2176ba38968bb060ff039b3750e8a00684d5d221"
29
+ "gitHead": "60e1e023f5bcd5bacfcad631994462a8dcab9d47"
29
30
  }