@copilotkitnext/runtime 0.0.22-alpha.2 → 0.0.22-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4EJ4H5VH.mjs +936 -0
- package/dist/chunk-4EJ4H5VH.mjs.map +1 -0
- package/dist/express.js +1002 -366
- package/dist/express.js.map +1 -1
- package/dist/express.mjs +315 -363
- package/dist/express.mjs.map +1 -1
- package/dist/index.js +1192 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +256 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-PXQQQ6KP.mjs +0 -23
- package/dist/chunk-PXQQQ6KP.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,257 @@
|
|
|
1
|
-
import {o,h,p,d,e,f as f$1,m,n,q as q$1,r,s}from'./chunk-PXQQQ6KP.mjs';export{g as AgentRunner,l as CopilotRuntime,j as InMemoryAgentRunner,k as VERSION,i as finalizeRunEvents}from'./chunk-PXQQQ6KP.mjs';var X=(e,t,s)=>(r,n)=>{let o=-1;return i(0);async function i(a){if(a<=o)throw new Error("next() called multiple times");o=a;let c,l=false,h;if(e[a]?(h=e[a][0][0],r.req.routeIndex=a):h=a===e.length&&n||void 0,h)try{c=await h(r,()=>i(a+1));}catch(u){if(u instanceof Error&&t)r.error=u,c=await t(u,r),l=true;else throw u}else r.finalized===false&&s&&(c=await s(r));return c&&(r.finalized===false||l)&&(r.res=c),r}};var ue=Symbol();var fe=async(e,t=Object.create(null))=>{let{all:s=false,dot:r=false}=t,o=(e instanceof k?e.raw.headers:e.headers).get("Content-Type");return o?.startsWith("multipart/form-data")||o?.startsWith("application/x-www-form-urlencoded")?Ie(e,{all:s,dot:r}):{}};async function Ie(e,t){let s=await e.formData();return s?_e(s,t):{}}function _e(e,t){let s=Object.create(null);return e.forEach((r,n)=>{t.all||n.endsWith("[]")?Me(s,n,r):s[n]=r;}),t.dot&&Object.entries(s).forEach(([r,n])=>{r.includes(".")&&(De(s,r,n),delete s[r]);}),s}var Me=(e,t,s)=>{e[t]!==void 0?Array.isArray(e[t])?e[t].push(s):e[t]=[e[t],s]:t.endsWith("[]")?e[t]=[s]:e[t]=s;},De=(e,t,s)=>{let r=e,n=t.split(".");n.forEach((o,i)=>{i===n.length-1?r[o]=s:((!r[o]||typeof r[o]!="object"||Array.isArray(r[o])||r[o]instanceof File)&&(r[o]=Object.create(null)),r=r[o]);});};var Z=e=>{let t=e.split("/");return t[0]===""&&t.shift(),t},de=e=>{let{groups:t,path:s}=Le(e),r=Z(s);return Ne(r,t)},Le=e=>{let t=[];return e=e.replace(/\{[^}]+\}/g,(s,r)=>{let n=`@${r}`;return t.push([n,s]),n}),{groups:t,path:e}},Ne=(e,t)=>{for(let s=t.length-1;s>=0;s--){let[r]=t[s];for(let n=e.length-1;n>=0;n--)if(e[n].includes(r)){e[n]=e[n].replace(r,t[s][1]);break}}return e},F={},pe=(e,t)=>{if(e==="*")return "*";let s=e.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(s){let r=`${e}#${t}`;return F[r]||(s[2]?F[r]=t&&t[0]!==":"&&t[0]!=="*"?[r,s[1],new RegExp(`^${s[2]}(?=/${t})`)]:[e,s[1],new RegExp(`^${s[2]}$`)]:F[r]=[e,s[1],true]),F[r]}return null},U=(e,t)=>{try{return t(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,s=>{try{return t(s)}catch{return s}})}},$e=e=>U(e,decodeURI),ee=e=>{let t=e.url,s=t.indexOf("/",t.charCodeAt(9)===58?13:8),r=s;for(;r<t.length;r++){let n=t.charCodeAt(r);if(n===37){let o=t.indexOf("?",r),i=t.slice(s,o===-1?void 0:o);return $e(i.includes("%25")?i.replace(/%25/g,"%2525"):i)}else if(n===63)break}return t.slice(s,r)};var me=e=>{let t=ee(e);return t.length>1&&t.at(-1)==="/"?t.slice(0,-1):t},b=(e,t,...s)=>(s.length&&(t=b(t,...s)),`${e?.[0]==="/"?"":"/"}${e}${t==="/"?"":`${e?.at(-1)==="/"?"":"/"}${t?.[0]==="/"?t.slice(1):t}`}`),B=e=>{if(e.charCodeAt(e.length-1)!==63||!e.includes(":"))return null;let t=e.split("/"),s=[],r="";return t.forEach(n=>{if(n!==""&&!/\:/.test(n))r+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){s.length===0&&r===""?s.push("/"):s.push(r);let o=n.replace("?","");r+="/"+o,s.push(r);}else r+="/"+n;}),s.filter((n,o,i)=>i.indexOf(n)===o)},Y=e=>/[%+]/.test(e)?(e.indexOf("+")!==-1&&(e=e.replace(/\+/g," ")),e.indexOf("%")!==-1?U(e,te):e):e,ge=(e,t,s)=>{let r;if(!s&&t&&!/[%+]/.test(t)){let i=e.indexOf(`?${t}`,8);for(i===-1&&(i=e.indexOf(`&${t}`,8));i!==-1;){let a=e.charCodeAt(i+t.length+1);if(a===61){let c=i+t.length+2,l=e.indexOf("&",c);return Y(e.slice(c,l===-1?void 0:l))}else if(a==38||isNaN(a))return "";i=e.indexOf(`&${t}`,i+1);}if(r=/[%+]/.test(e),!r)return}let n={};r??=/[%+]/.test(e);let o=e.indexOf("?",8);for(;o!==-1;){let i=e.indexOf("&",o+1),a=e.indexOf("=",o);a>i&&i!==-1&&(a=-1);let c=e.slice(o+1,a===-1?i===-1?void 0:i:a);if(r&&(c=Y(c)),o=i,c==="")continue;let l;a===-1?l="":(l=e.slice(a+1,i===-1?void 0:i),r&&(l=Y(l))),s?(n[c]&&Array.isArray(n[c])||(n[c]=[]),n[c].push(l)):n[c]??=l;}return t?n[t]:n},we=ge,Ee=(e,t)=>ge(e,t,true),te=decodeURIComponent;var Re=e=>U(e,te),k=class{raw;#t;#e;routeIndex=0;path;bodyCache={};constructor(e,t="/",s=[[]]){this.raw=e,this.path=t,this.#e=s,this.#t={};}param(e){return e?this.#r(e):this.#o()}#r(e){let t=this.#e[0][this.routeIndex][1][e],s=this.#n(t);return s?/\%/.test(s)?Re(s):s:void 0}#o(){let e={},t=Object.keys(this.#e[0][this.routeIndex][1]);for(let s of t){let r=this.#n(this.#e[0][this.routeIndex][1][s]);r&&typeof r=="string"&&(e[s]=/\%/.test(r)?Re(r):r);}return e}#n(e){return this.#e[1]?this.#e[1][e]:e}query(e){return we(this.url,e)}queries(e){return Ee(this.url,e)}header(e){if(e)return this.raw.headers.get(e)??void 0;let t={};return this.raw.headers.forEach((s,r)=>{t[r]=s;}),t}async parseBody(e){return this.bodyCache.parsedBody??=await fe(this,e)}#s=e=>{let{bodyCache:t,raw:s}=this,r=t[e];if(r)return r;let n=Object.keys(t)[0];return n?t[n].then(o=>(n==="json"&&(o=JSON.stringify(o)),new Response(o)[e]())):t[e]=s[e]()};json(){return this.#s("text").then(e=>JSON.parse(e))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(e,t){this.#t[e]=t;}valid(e){return this.#t[e]}get url(){return this.raw.url}get method(){return this.raw.method}get[ue](){return this.#e}get matchedRoutes(){return this.#e[0].map(([[,e]])=>e)}get routePath(){return this.#e[0].map(([[,e]])=>e)[this.routeIndex].path}};var ye={Stringify:1},ke=(e,t)=>{let s=new String(e);return s.isEscaped=true,s.callbacks=t,s};var re=async(e,t,s,r,n)=>{typeof e=="object"&&!(e instanceof String)&&(e instanceof Promise||(e=e.toString()),e instanceof Promise&&(e=await e));let o=e.callbacks;if(!o?.length)return Promise.resolve(e);n?n[0]+=e:n=[e];let i=Promise.all(o.map(a=>a({phase:t,buffer:n,context:r}))).then(a=>Promise.all(a.filter(Boolean).map(c=>re(c,t,false,r,n))).then(()=>n[0]));return s?ke(await i,o):i};var Fe="text/plain; charset=UTF-8",se=(e,t)=>({"Content-Type":e,...t}),xe=class{#t;#e;env={};#r;finalized=false;error;#o;#n;#s;#h;#c;#l;#a;#u;#f;constructor(e,t){this.#t=e,t&&(this.#n=t.executionCtx,this.env=t.env,this.#l=t.notFoundHandler,this.#f=t.path,this.#u=t.matchResult);}get req(){return this.#e??=new k(this.#t,this.#f,this.#u),this.#e}get event(){if(this.#n&&"respondWith"in this.#n)return this.#n;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#n)return this.#n;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=new Response(null,{headers:this.#a??=new Headers})}set res(e){if(this.#s&&e){e=new Response(e.body,e);for(let[t,s]of this.#s.headers.entries())if(t!=="content-type")if(t==="set-cookie"){let r=this.#s.headers.getSetCookie();e.headers.delete("set-cookie");for(let n of r)e.headers.append("set-cookie",n);}else e.headers.set(t,s);}this.#s=e,this.finalized=true;}render=(...e)=>(this.#c??=t=>this.html(t),this.#c(...e));setLayout=e=>this.#h=e;getLayout=()=>this.#h;setRenderer=e=>{this.#c=e;};header=(e,t,s)=>{this.finalized&&(this.#s=new Response(this.#s.body,this.#s));let r=this.#s?this.#s.headers:this.#a??=new Headers;t===void 0?r.delete(e):s?.append?r.append(e,t):r.set(e,t);};status=e=>{this.#o=e;};set=(e,t)=>{this.#r??=new Map,this.#r.set(e,t);};get=e=>this.#r?this.#r.get(e):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#i(e,t,s){let r=this.#s?new Headers(this.#s.headers):this.#a??new Headers;if(typeof t=="object"&&"headers"in t){let o=t.headers instanceof Headers?t.headers:new Headers(t.headers);for(let[i,a]of o)i.toLowerCase()==="set-cookie"?r.append(i,a):r.set(i,a);}if(s)for(let[o,i]of Object.entries(s))if(typeof i=="string")r.set(o,i);else {r.delete(o);for(let a of i)r.append(o,a);}let n=typeof t=="number"?t:t?.status??this.#o;return new Response(e,{status:n,headers:r})}newResponse=(...e)=>this.#i(...e);body=(e,t,s)=>this.#i(e,t,s);text=(e,t,s)=>!this.#a&&!this.#o&&!t&&!s&&!this.finalized?new Response(e):this.#i(e,t,se(Fe,s));json=(e,t,s)=>this.#i(JSON.stringify(e),t,se("application/json",s));html=(e,t,s)=>{let r=n=>this.#i(n,t,se("text/html; charset=UTF-8",s));return typeof e=="object"?re(e,ye.Stringify,false,{}).then(r):r(e)};redirect=(e,t)=>{let s=String(e);return this.header("Location",/[^\x00-\xFF]/.test(s)?encodeURI(s):s),this.newResponse(null,t??302)};notFound=()=>(this.#l??=()=>new Response,this.#l(this))};var f="ALL",be="all",ve=["get","post","put","delete","options","patch"],G="Can not add a route since the matcher is already built.",W=class extends Error{};var Pe="__COMPOSED_HANDLER";var Ue=e=>e.text("404 Not Found",404),Ae=(e,t)=>{if("getResponse"in e){let s=e.getResponse();return t.newResponse(s.body,s)}return console.error(e),t.text("Internal Server Error",500)},ne=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(e={}){[...ve,be].forEach(n=>{this[n]=(o,...i)=>(typeof o=="string"?this.#t=o:this.#o(n,this.#t,o),i.forEach(a=>{this.#o(n,this.#t,a);}),this);}),this.on=(n,o,...i)=>{for(let a of [o].flat()){this.#t=a;for(let c of [n].flat())i.map(l=>{this.#o(c.toUpperCase(),this.#t,l);});}return this},this.use=(n,...o)=>(typeof n=="string"?this.#t=n:(this.#t="*",o.unshift(n)),o.forEach(i=>{this.#o(f,this.#t,i);}),this);let{strict:s,...r}=e;Object.assign(this,r),this.getPath=s??true?e.getPath??ee:me;}#e(){let e=new ne({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#r=this.#r,e.routes=this.routes,e}#r=Ue;errorHandler=Ae;route(e,t){let s=this.basePath(e);return t.routes.map(r=>{let n;t.errorHandler===Ae?n=r.handler:(n=async(o,i)=>(await X([],t.errorHandler)(o,()=>r.handler(o,i))).res,n[Pe]=r.handler),s.#o(r.method,r.path,n);}),this}basePath(e){let t=this.#e();return t._basePath=b(this._basePath,e),t}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#r=e,this);mount(e,t,s){let r,n;s&&(typeof s=="function"?n=s:(n=s.optionHandler,s.replaceRequest===false?r=a=>a:r=s.replaceRequest));let o=n?a=>{let c=n(a);return Array.isArray(c)?c:[c]}:a=>{let c;try{c=a.executionCtx;}catch{}return [a.env,c]};r||=(()=>{let a=b(this._basePath,e),c=a==="/"?0:a.length;return l=>{let h=new URL(l.url);return h.pathname=h.pathname.slice(c)||"/",new Request(h,l)}})();let i=async(a,c)=>{let l=await t(r(a.req.raw),...o(a));if(l)return l;await c();};return this.#o(f,b(e,"*"),i),this}#o(e,t,s){e=e.toUpperCase(),t=b(this._basePath,t);let r={basePath:this._basePath,path:t,method:e,handler:s};this.router.add(e,t,[s,r]),this.routes.push(r);}#n(e,t){if(e instanceof Error)return this.errorHandler(e,t);throw e}#s(e,t,s,r){if(r==="HEAD")return (async()=>new Response(null,await this.#s(e,t,s,"GET")))();let n=this.getPath(e,{env:s}),o=this.router.match(r,n),i=new xe(e,{path:n,matchResult:o,env:s,executionCtx:t,notFoundHandler:this.#r});if(o[0].length===1){let c;try{c=o[0][0][0][0](i,async()=>{i.res=await this.#r(i);});}catch(l){return this.#n(l,i)}return c instanceof Promise?c.then(l=>l||(i.finalized?i.res:this.#r(i))).catch(l=>this.#n(l,i)):c??this.#r(i)}let a=X(o[0],this.errorHandler,this.#r);return (async()=>{try{let c=await a(i);if(!c.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return c.res}catch(c){return this.#n(c,i)}})()}fetch=(e,...t)=>this.#s(e,t[1],t[0],e.method);request=(e,t,s,r)=>e instanceof Request?this.fetch(t?new Request(e,t):e,s,r):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${b("/",e)}`,t),s,r));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#s(e.request,e,void 0,e.request.method));});}};var V="[^/]+",q=".*",S="(?:|/.*)",P=Symbol(),Be=new Set(".\\+*[^]$()");function Ge(e,t){return e.length===1?t.length===1?e<t?-1:1:-1:t.length===1||e===q||e===S?1:t===q||t===S?-1:e===V?1:t===V?-1:e.length===t.length?e<t?-1:1:t.length-e.length}var K=class{#t;#e;#r=Object.create(null);insert(e,t,s,r,n){if(e.length===0){if(this.#t!==void 0)throw P;if(n)return;this.#t=t;return}let[o,...i]=e,a=o==="*"?i.length===0?["","",q]:["","",V]:o==="/*"?["","",S]:o.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),c;if(a){let l=a[1],h=a[2]||V;if(l&&a[2]&&(h=h.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(h)))throw P;if(c=this.#r[h],!c){if(Object.keys(this.#r).some(u=>u!==q&&u!==S))throw P;if(n)return;c=this.#r[h]=new K,l!==""&&(c.#e=r.varIndex++);}!n&&l!==""&&s.push([l,c.#e]);}else if(c=this.#r[o],!c){if(Object.keys(this.#r).some(l=>l.length>1&&l!==q&&l!==S))throw P;if(n)return;c=this.#r[o]=new K;}c.insert(i,t,s,r,n);}buildRegExpStr(){let t=Object.keys(this.#r).sort(Ge).map(s=>{let r=this.#r[s];return (typeof r.#e=="number"?`(${s})@${r.#e}`:Be.has(s)?`\\${s}`:s)+r.buildRegExpStr()});return typeof this.#t=="number"&&t.unshift(`#${this.#t}`),t.length===0?"":t.length===1?t[0]:"(?:"+t.join("|")+")"}};var Ce=class{#t={varIndex:0};#e=new K;insert(e,t,s){let r=[],n=[];for(let i=0;;){let a=false;if(e=e.replace(/\{[^}]+\}/g,c=>{let l=`@\\${i}`;return n[i]=[l,c],i++,a=true,l}),!a)break}let o=e.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i=n.length-1;i>=0;i--){let[a]=n[i];for(let c=o.length-1;c>=0;c--)if(o[c].indexOf(a)!==-1){o[c]=o[c].replace(a,n[i][1]);break}}return this.#e.insert(o,t,r,this.#t,s),r}buildRegExp(){let e=this.#e.buildRegExpStr();if(e==="")return [/^$/,[],[]];let t=0,s=[],r=[];return e=e.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,o,i)=>o!==void 0?(s[++t]=Number(o),"$()"):(i!==void 0&&(r[Number(i)]=++t),"")),[new RegExp(`^${e}`),s,r]}};var Oe=[],We=[/^$/,[],Object.create(null)],qe=Object.create(null);function Se(e){return qe[e]??=new RegExp(e==="*"?"":`^${e.replace(/\/\*$|([.\\+*[^\]$()])/g,(t,s)=>s?`\\${s}`:"(?:|/.*)")}$`)}function Ve(){qe=Object.create(null);}function Ke(e){let t=new Ce,s=[];if(e.length===0)return We;let r=e.map(l=>[!/\*|\/:/.test(l[0]),...l]).sort(([l,h],[u,p])=>l?1:u?-1:h.length-p.length),n=Object.create(null);for(let l=0,h=-1,u=r.length;l<u;l++){let[p,w,d]=r[l];p?n[w]=[d.map(([E])=>[E,Object.create(null)]),Oe]:h++;let m;try{m=t.insert(w,h,p);}catch(E){throw E===P?new W(w):E}p||(s[h]=d.map(([E,v])=>{let C=Object.create(null);for(v-=1;v>=0;v--){let[R,Q]=m[v];C[R]=Q;}return [E,C]}));}let[o,i,a]=t.buildRegExp();for(let l=0,h=s.length;l<h;l++)for(let u=0,p=s[l].length;u<p;u++){let w=s[l][u]?.[1];if(!w)continue;let d=Object.keys(w);for(let m=0,E=d.length;m<E;m++)w[d[m]]=a[w[d[m]]];}let c=[];for(let l in i)c[l]=s[i[l]];return [o,c,n]}function A(e,t){if(e){for(let s of Object.keys(e).sort((r,n)=>n.length-r.length))if(Se(s).test(t))return [...e[s]]}}var oe=class{name="RegExpRouter";#t;#e;constructor(){this.#t={[f]:Object.create(null)},this.#e={[f]:Object.create(null)};}add(e,t,s){let r=this.#t,n=this.#e;if(!r||!n)throw new Error(G);r[e]||[r,n].forEach(a=>{a[e]=Object.create(null),Object.keys(a[f]).forEach(c=>{a[e][c]=[...a[f][c]];});}),t==="/*"&&(t="*");let o=(t.match(/\/:/g)||[]).length;if(/\*$/.test(t)){let a=Se(t);e===f?Object.keys(r).forEach(c=>{r[c][t]||=A(r[c],t)||A(r[f],t)||[];}):r[e][t]||=A(r[e],t)||A(r[f],t)||[],Object.keys(r).forEach(c=>{(e===f||e===c)&&Object.keys(r[c]).forEach(l=>{a.test(l)&&r[c][l].push([s,o]);});}),Object.keys(n).forEach(c=>{(e===f||e===c)&&Object.keys(n[c]).forEach(l=>a.test(l)&&n[c][l].push([s,o]));});return}let i=B(t)||[t];for(let a=0,c=i.length;a<c;a++){let l=i[a];Object.keys(n).forEach(h=>{(e===f||e===h)&&(n[h][l]||=[...A(r[h],l)||A(r[f],l)||[]],n[h][l].push([s,o-c+a+1]));});}}match(e,t){Ve();let s=this.#r();return this.match=(r,n)=>{let o=s[r]||s[f],i=o[2][n];if(i)return i;let a=n.match(o[0]);if(!a)return [[],Oe];let c=a.indexOf("",1);return [o[1][c],a]},this.match(e,t)}#r(){let e=Object.create(null);return Object.keys(this.#e).concat(Object.keys(this.#t)).forEach(t=>{e[t]||=this.#o(t);}),this.#t=this.#e=void 0,e}#o(e){let t=[],s=e===f;return [this.#t,this.#e].forEach(r=>{let n=r[e]?Object.keys(r[e]).map(o=>[o,r[e][o]]):[];n.length!==0?(s||=true,t.push(...n)):e!==f&&t.push(...Object.keys(r[f]).map(o=>[o,r[f][o]]));}),s?Ke(t):null}};var ie=class{name="SmartRouter";#t=[];#e=[];constructor(e){this.#t=e.routers;}add(e,t,s){if(!this.#e)throw new Error(G);this.#e.push([e,t,s]);}match(e,t){if(!this.#e)throw new Error("Fatal error");let s=this.#t,r=this.#e,n=s.length,o=0,i;for(;o<n;o++){let a=s[o];try{for(let c=0,l=r.length;c<l;c++)a.add(...r[c]);i=a.match(e,t);}catch(c){if(c instanceof W)continue;throw c}this.match=a.match.bind(a),this.#t=[a],this.#e=void 0;break}if(o===n)throw new Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,i}get activeRouter(){if(this.#e||this.#t.length!==1)throw new Error("No active router has been determined yet.");return this.#t[0]}};var H=Object.create(null),ae=class{#t;#e;#r;#o=0;#n=H;constructor(e,t,s){if(this.#e=s||Object.create(null),this.#t=[],e&&t){let r=Object.create(null);r[e]={handler:t,possibleKeys:[],score:0},this.#t=[r];}this.#r=[];}insert(e,t,s){this.#o=++this.#o;let r=this,n=de(t),o=[];for(let i=0,a=n.length;i<a;i++){let c=n[i],l=n[i+1],h=pe(c,l),u=Array.isArray(h)?h[0]:c;if(u in r.#e){r=r.#e[u],h&&o.push(h[1]);continue}r.#e[u]=new ae,h&&(r.#r.push(h),o.push(h[1])),r=r.#e[u];}return r.#t.push({[e]:{handler:s,possibleKeys:o.filter((i,a,c)=>c.indexOf(i)===a),score:this.#o}}),r}#s(e,t,s,r){let n=[];for(let o=0,i=e.#t.length;o<i;o++){let a=e.#t[o],c=a[t]||a[f],l={};if(c!==void 0&&(c.params=Object.create(null),n.push(c),s!==H||r&&r!==H))for(let h=0,u=c.possibleKeys.length;h<u;h++){let p=c.possibleKeys[h],w=l[c.score];c.params[p]=r?.[p]&&!w?r[p]:s[p]??r?.[p],l[c.score]=true;}}return n}search(e,t){let s=[];this.#n=H;let n=[this],o=Z(t),i=[];for(let a=0,c=o.length;a<c;a++){let l=o[a],h=a===c-1,u=[];for(let p=0,w=n.length;p<w;p++){let d=n[p],m=d.#e[l];m&&(m.#n=d.#n,h?(m.#e["*"]&&s.push(...this.#s(m.#e["*"],e,d.#n)),s.push(...this.#s(m,e,d.#n))):u.push(m));for(let E=0,v=d.#r.length;E<v;E++){let C=d.#r[E],R=d.#n===H?{}:{...d.#n};if(C==="*"){let x=d.#e["*"];x&&(s.push(...this.#s(x,e,d.#n)),x.#n=R,u.push(x));continue}if(!l)continue;let[Q,le,j]=C,y=d.#e[Q],He=o.slice(a).join("/");if(j instanceof RegExp){let x=j.exec(He);if(x){if(R[le]=x[0],s.push(...this.#s(y,e,d.#n,R)),Object.keys(y.#e).length){y.#n=R;let Te=x[0].match(/\//)?.length??0;(i[Te]||=[]).push(y);}continue}}(j===true||j.test(l))&&(R[le]=l,h?(s.push(...this.#s(y,e,R,d.#n)),y.#e["*"]&&s.push(...this.#s(y.#e["*"],e,R,d.#n))):(y.#n=R,u.push(y)));}}n=u.concat(i.shift()??[]);}return s.length>1&&s.sort((a,c)=>a.score-c.score),[s.map(({handler:a,params:c})=>[a,c])]}};var ce=class{name="TrieRouter";#t;constructor(){this.#t=new ae;}add(e,t,s){let r=B(t);if(r){for(let n=0,o=r.length;n<o;n++)this.#t.insert(e,r[n],s);return}this.#t.insert(e,t,s);}match(e,t){return this.#t.search(e,t)}};var T=class extends ne{constructor(e={}){super(e),this.router=e.router??new ie({routers:[new oe,new ce]});}};var z=e=>{let s={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...e},r=(o=>typeof o=="string"?o==="*"?()=>o:i=>o===i?i:null:typeof o=="function"?o:i=>o.includes(i)?i:null)(s.origin),n=(o=>typeof o=="function"?o:Array.isArray(o)?()=>o:()=>[])(s.allowMethods);return async function(i,a){function c(h,u){i.res.headers.set(h,u);}let l=r(i.req.header("origin")||"",i);if(l&&c("Access-Control-Allow-Origin",l),s.origin!=="*"){let h=i.req.header("Vary");h?c("Vary",h):c("Vary","Origin");}if(s.credentials&&c("Access-Control-Allow-Credentials","true"),s.exposeHeaders?.length&&c("Access-Control-Expose-Headers",s.exposeHeaders.join(",")),i.req.method==="OPTIONS"){s.maxAge!=null&&c("Access-Control-Max-Age",s.maxAge.toString());let h=n(i.req.header("origin")||"",i);h.length&&c("Access-Control-Allow-Methods",h.join(","));let u=s.allowHeaders;if(!u?.length){let p=i.req.header("Access-Control-Request-Headers");p&&(u=p.split(/\s*,\s*/));}return u?.length&&(c("Access-Control-Allow-Headers",u.join(",")),i.res.headers.append("Vary","Access-Control-Request-Headers")),i.res.headers.delete("Content-Length"),i.res.headers.delete("Content-Type"),new Response(null,{headers:i.res.headers,status:204,statusText:"No Content"})}await a();}};function wr({runtime:e$1,basePath:t}){return new T().basePath(t).use("*",z({origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH","OPTIONS"],allowHeaders:["*"]})).use("*",async(r,n)=>{let o$1=r.req.raw,i=r.req.path;try{let a=await o({runtime:e$1,request:o$1,path:i});a&&r.set("modifiedRequest",a);}catch(a){if(h.error({err:a,url:o$1.url,path:i},"Error running before request middleware"),a instanceof Response)return a;throw a}await n();}).use("*",async(r,n)=>{await n();let o=r.res,i=r.req.path;p({runtime:e$1,response:o,path:i}).catch(a=>{h.error({err:a,url:r.req.url,path:i},"Error running after request middleware");});}).post("/agent/:agentId/run",async r=>{let n=r.req.param("agentId"),o=r.get("modifiedRequest")||r.req.raw;try{return await d({runtime:e$1,request:o,agentId:n})}catch(i){throw h.error({err:i,url:o.url,path:r.req.path},"Error running request handler"),i}}).post("/agent/:agentId/connect",async r=>{let n=r.req.param("agentId"),o=r.get("modifiedRequest")||r.req.raw;try{return await e({runtime:e$1,request:o,agentId:n})}catch(i){throw h.error({err:i,url:o.url,path:r.req.path},"Error running request handler"),i}}).post("/agent/:agentId/stop/:threadId",async r=>{let n=r.req.param("agentId"),o=r.req.param("threadId"),i=r.get("modifiedRequest")||r.req.raw;try{return await f$1({runtime:e$1,request:i,agentId:n,threadId:o})}catch(a){throw h.error({err:a,url:i.url,path:r.req.path},"Error running request handler"),a}}).get("/info",async r=>{let n=r.get("modifiedRequest")||r.req.raw;try{return await m({runtime:e$1,request:n})}catch(o){throw h.error({err:o,url:n.url,path:r.req.path},"Error running request handler"),o}}).post("/transcribe",async r=>{let n$1=r.get("modifiedRequest")||r.req.raw;try{return await n({runtime:e$1,request:n$1})}catch(o){throw h.error({err:o,url:n$1.url,path:r.req.path},"Error running request handler"),o}}).notFound(r=>r.json({error:"Not found"},404))}function Hr({runtime:e$1,basePath:t}){let s$1=new T,r$1=ze(t);return s$1.basePath(r$1).use("*",z({origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH","OPTIONS"],allowHeaders:["*"]})).use("*",async(n,o$1)=>{let i=n.req.raw,a=n.req.path;try{let c=await o({runtime:e$1,request:i,path:a});c&&n.set("modifiedRequest",c);}catch(c){if(h.error({err:c,url:i.url,path:a},"Error running before request middleware"),c instanceof Response)return c;throw c}await o$1();}).use("*",async(n,o)=>{await o();let i=n.res,a=n.req.path;p({runtime:e$1,response:i,path:a}).catch(c=>{h.error({err:c,url:n.req.url,path:a},"Error running after request middleware");});}).post("/",async n$1=>{let o=n$1.get("modifiedRequest")||n$1.req.raw,i;try{i=await q$1(o);}catch(a){return a instanceof Response?(h.warn({url:o.url},"Invalid single-route payload"),a):(h.warn({err:a,url:o.url},"Invalid single-route payload"),n$1.json({error:"invalid_request",message:a instanceof Error?a.message:"Invalid request payload"},400))}try{switch(i.method){case "agent/run":{let a=r(i.params,"agentId"),c=s(o,i.body);return await d({runtime:e$1,request:c,agentId:a})}case "agent/connect":{let a=r(i.params,"agentId"),c=s(o,i.body);return await e({runtime:e$1,request:c,agentId:a})}case "agent/stop":{let a=r(i.params,"agentId"),c=r(i.params,"threadId");return await f$1({runtime:e$1,request:o,agentId:a,threadId:c})}case "info":return await m({runtime:e$1,request:o});case "transcribe":return await n({runtime:e$1,request:o});default:return i.method}}catch(a){if(a instanceof Response)return a;throw h.error({err:a,url:o.url,method:i.method},"Error running single-route handler"),a}}).notFound(n=>n.json({error:"Not found"},404))}function ze(e){if(!e)throw new Error("basePath must be provided for single-route endpoint");return e.startsWith("/")?e.length>1&&e.endsWith("/")?e.slice(0,-1):e:`/${e}`}
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
AgentRunner,
|
|
3
|
+
CopilotRuntime,
|
|
4
|
+
InMemoryAgentRunner,
|
|
5
|
+
VERSION,
|
|
6
|
+
callAfterRequestMiddleware,
|
|
7
|
+
callBeforeRequestMiddleware,
|
|
8
|
+
createJsonRequest,
|
|
9
|
+
expectString,
|
|
10
|
+
handleConnectAgent,
|
|
11
|
+
handleGetRuntimeInfo,
|
|
12
|
+
handleRunAgent,
|
|
13
|
+
handleStopAgent,
|
|
14
|
+
handleTranscribe,
|
|
15
|
+
parseMethodCall
|
|
16
|
+
} from "./chunk-4EJ4H5VH.mjs";
|
|
17
|
+
|
|
18
|
+
// src/endpoints/hono.ts
|
|
19
|
+
import { Hono } from "hono";
|
|
20
|
+
import { cors } from "hono/cors";
|
|
21
|
+
import { logger } from "@copilotkitnext/shared";
|
|
22
|
+
function createCopilotEndpoint({ runtime, basePath }) {
|
|
23
|
+
const app = new Hono();
|
|
24
|
+
return app.basePath(basePath).use(
|
|
25
|
+
"*",
|
|
26
|
+
cors({
|
|
27
|
+
origin: "*",
|
|
28
|
+
allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH", "OPTIONS"],
|
|
29
|
+
allowHeaders: ["*"]
|
|
30
|
+
})
|
|
31
|
+
).use("*", async (c, next) => {
|
|
32
|
+
const request = c.req.raw;
|
|
33
|
+
const path = c.req.path;
|
|
34
|
+
try {
|
|
35
|
+
const maybeModifiedRequest = await callBeforeRequestMiddleware({
|
|
36
|
+
runtime,
|
|
37
|
+
request,
|
|
38
|
+
path
|
|
39
|
+
});
|
|
40
|
+
if (maybeModifiedRequest) {
|
|
41
|
+
c.set("modifiedRequest", maybeModifiedRequest);
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
logger.error({ err: error, url: request.url, path }, "Error running before request middleware");
|
|
45
|
+
if (error instanceof Response) {
|
|
46
|
+
return error;
|
|
47
|
+
}
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
await next();
|
|
51
|
+
}).use("*", async (c, next) => {
|
|
52
|
+
await next();
|
|
53
|
+
const response = c.res;
|
|
54
|
+
const path = c.req.path;
|
|
55
|
+
callAfterRequestMiddleware({
|
|
56
|
+
runtime,
|
|
57
|
+
response,
|
|
58
|
+
path
|
|
59
|
+
}).catch((error) => {
|
|
60
|
+
logger.error({ err: error, url: c.req.url, path }, "Error running after request middleware");
|
|
61
|
+
});
|
|
62
|
+
}).post("/agent/:agentId/run", async (c) => {
|
|
63
|
+
const agentId = c.req.param("agentId");
|
|
64
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
65
|
+
try {
|
|
66
|
+
return await handleRunAgent({
|
|
67
|
+
runtime,
|
|
68
|
+
request,
|
|
69
|
+
agentId
|
|
70
|
+
});
|
|
71
|
+
} catch (error) {
|
|
72
|
+
logger.error({ err: error, url: request.url, path: c.req.path }, "Error running request handler");
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}).post("/agent/:agentId/connect", async (c) => {
|
|
76
|
+
const agentId = c.req.param("agentId");
|
|
77
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
78
|
+
try {
|
|
79
|
+
return await handleConnectAgent({
|
|
80
|
+
runtime,
|
|
81
|
+
request,
|
|
82
|
+
agentId
|
|
83
|
+
});
|
|
84
|
+
} catch (error) {
|
|
85
|
+
logger.error({ err: error, url: request.url, path: c.req.path }, "Error running request handler");
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}).post("/agent/:agentId/stop/:threadId", async (c) => {
|
|
89
|
+
const agentId = c.req.param("agentId");
|
|
90
|
+
const threadId = c.req.param("threadId");
|
|
91
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
92
|
+
try {
|
|
93
|
+
return await handleStopAgent({
|
|
94
|
+
runtime,
|
|
95
|
+
request,
|
|
96
|
+
agentId,
|
|
97
|
+
threadId
|
|
98
|
+
});
|
|
99
|
+
} catch (error) {
|
|
100
|
+
logger.error({ err: error, url: request.url, path: c.req.path }, "Error running request handler");
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}).get("/info", async (c) => {
|
|
104
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
105
|
+
try {
|
|
106
|
+
return await handleGetRuntimeInfo({
|
|
107
|
+
runtime,
|
|
108
|
+
request
|
|
109
|
+
});
|
|
110
|
+
} catch (error) {
|
|
111
|
+
logger.error({ err: error, url: request.url, path: c.req.path }, "Error running request handler");
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
}).post("/transcribe", async (c) => {
|
|
115
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
116
|
+
try {
|
|
117
|
+
return await handleTranscribe({
|
|
118
|
+
runtime,
|
|
119
|
+
request
|
|
120
|
+
});
|
|
121
|
+
} catch (error) {
|
|
122
|
+
logger.error({ err: error, url: request.url, path: c.req.path }, "Error running request handler");
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
}).notFound((c) => {
|
|
126
|
+
return c.json({ error: "Not found" }, 404);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// src/endpoints/hono-single.ts
|
|
131
|
+
import { Hono as Hono2 } from "hono";
|
|
132
|
+
import { cors as cors2 } from "hono/cors";
|
|
133
|
+
import { logger as logger2 } from "@copilotkitnext/shared";
|
|
134
|
+
function createCopilotEndpointSingleRoute({ runtime, basePath }) {
|
|
135
|
+
const app = new Hono2();
|
|
136
|
+
const routePath = normalizePath(basePath);
|
|
137
|
+
return app.basePath(routePath).use(
|
|
138
|
+
"*",
|
|
139
|
+
cors2({
|
|
140
|
+
origin: "*",
|
|
141
|
+
allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH", "OPTIONS"],
|
|
142
|
+
allowHeaders: ["*"]
|
|
143
|
+
})
|
|
144
|
+
).use("*", async (c, next) => {
|
|
145
|
+
const request = c.req.raw;
|
|
146
|
+
const path = c.req.path;
|
|
147
|
+
try {
|
|
148
|
+
const maybeModifiedRequest = await callBeforeRequestMiddleware({
|
|
149
|
+
runtime,
|
|
150
|
+
request,
|
|
151
|
+
path
|
|
152
|
+
});
|
|
153
|
+
if (maybeModifiedRequest) {
|
|
154
|
+
c.set("modifiedRequest", maybeModifiedRequest);
|
|
155
|
+
}
|
|
156
|
+
} catch (error) {
|
|
157
|
+
logger2.error({ err: error, url: request.url, path }, "Error running before request middleware");
|
|
158
|
+
if (error instanceof Response) {
|
|
159
|
+
return error;
|
|
160
|
+
}
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
await next();
|
|
164
|
+
}).use("*", async (c, next) => {
|
|
165
|
+
await next();
|
|
166
|
+
const response = c.res;
|
|
167
|
+
const path = c.req.path;
|
|
168
|
+
callAfterRequestMiddleware({
|
|
169
|
+
runtime,
|
|
170
|
+
response,
|
|
171
|
+
path
|
|
172
|
+
}).catch((error) => {
|
|
173
|
+
logger2.error({ err: error, url: c.req.url, path }, "Error running after request middleware");
|
|
174
|
+
});
|
|
175
|
+
}).post("/", async (c) => {
|
|
176
|
+
const request = c.get("modifiedRequest") || c.req.raw;
|
|
177
|
+
let methodCall;
|
|
178
|
+
try {
|
|
179
|
+
methodCall = await parseMethodCall(request);
|
|
180
|
+
} catch (error) {
|
|
181
|
+
if (error instanceof Response) {
|
|
182
|
+
logger2.warn({ url: request.url }, "Invalid single-route payload");
|
|
183
|
+
return error;
|
|
184
|
+
}
|
|
185
|
+
logger2.warn({ err: error, url: request.url }, "Invalid single-route payload");
|
|
186
|
+
return c.json(
|
|
187
|
+
{
|
|
188
|
+
error: "invalid_request",
|
|
189
|
+
message: error instanceof Error ? error.message : "Invalid request payload"
|
|
190
|
+
},
|
|
191
|
+
400
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
switch (methodCall.method) {
|
|
196
|
+
case "agent/run": {
|
|
197
|
+
const agentId = expectString(methodCall.params, "agentId");
|
|
198
|
+
const handlerRequest = createJsonRequest(request, methodCall.body);
|
|
199
|
+
return await handleRunAgent({ runtime, request: handlerRequest, agentId });
|
|
200
|
+
}
|
|
201
|
+
case "agent/connect": {
|
|
202
|
+
const agentId = expectString(methodCall.params, "agentId");
|
|
203
|
+
const handlerRequest = createJsonRequest(request, methodCall.body);
|
|
204
|
+
return await handleConnectAgent({ runtime, request: handlerRequest, agentId });
|
|
205
|
+
}
|
|
206
|
+
case "agent/stop": {
|
|
207
|
+
const agentId = expectString(methodCall.params, "agentId");
|
|
208
|
+
const threadId = expectString(methodCall.params, "threadId");
|
|
209
|
+
return await handleStopAgent({ runtime, request, agentId, threadId });
|
|
210
|
+
}
|
|
211
|
+
case "info": {
|
|
212
|
+
return await handleGetRuntimeInfo({ runtime, request });
|
|
213
|
+
}
|
|
214
|
+
case "transcribe": {
|
|
215
|
+
return await handleTranscribe({ runtime, request });
|
|
216
|
+
}
|
|
217
|
+
default: {
|
|
218
|
+
const exhaustiveCheck = methodCall.method;
|
|
219
|
+
return exhaustiveCheck;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
} catch (error) {
|
|
223
|
+
if (error instanceof Response) {
|
|
224
|
+
return error;
|
|
225
|
+
}
|
|
226
|
+
logger2.error({ err: error, url: request.url, method: methodCall.method }, "Error running single-route handler");
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
}).notFound((c) => {
|
|
230
|
+
return c.json({ error: "Not found" }, 404);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
function normalizePath(path) {
|
|
234
|
+
if (!path) {
|
|
235
|
+
throw new Error("basePath must be provided for single-route endpoint");
|
|
236
|
+
}
|
|
237
|
+
if (!path.startsWith("/")) {
|
|
238
|
+
return `/${path}`;
|
|
239
|
+
}
|
|
240
|
+
if (path.length > 1 && path.endsWith("/")) {
|
|
241
|
+
return path.slice(0, -1);
|
|
242
|
+
}
|
|
243
|
+
return path;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// src/runner/index.ts
|
|
247
|
+
import { finalizeRunEvents } from "@copilotkitnext/shared";
|
|
248
|
+
export {
|
|
249
|
+
AgentRunner,
|
|
250
|
+
CopilotRuntime,
|
|
251
|
+
InMemoryAgentRunner,
|
|
252
|
+
VERSION,
|
|
253
|
+
createCopilotEndpoint,
|
|
254
|
+
createCopilotEndpointSingleRoute,
|
|
255
|
+
finalizeRunEvents
|
|
256
|
+
};
|
|
3
257
|
//# sourceMappingURL=index.mjs.map
|