chatvlm-agent 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/omp.js +1 -1
  2. package/package.json +1 -1
package/dist/omp.js CHANGED
@@ -1 +1 @@
1
- import{mkdirSync as Et,readFileSync as Mt,writeFileSync as It}from"node:fs";import{hostname as Ot}from"node:os";import{dirname as St,join as Tt}from"node:path";function te(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function re(e,t){return typeof t=="bigint"?t.toString():t}function ne(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function N(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function oe(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var J="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var se=new Set(["string","number","symbol"]);function ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function v(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function ue(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}function M(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function ae(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function X(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function T(e){return typeof e=="string"?e:e?.message}function q(e,t,r){var n;for(let o=t;o<e.length;o++)(n=e[o]).schema??(n.schema=r)}function k(e,t,r){var n;let o=e.inst?._zod?.traits;o?.has("$ZodType")&&(o.has("$ZodCheck")?(n=e).schema??(n.schema=e.inst):e.schema=e.inst);let i=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,c=e.message?e.message:T(e.inst?._zod.def?.error?.(e))??T(i?.(e))??T(t?.error?.(e))??T(r.customError?.(e))??T(r.localeError?.(e))??"Invalid input",{inst:s,schema:u,continue:f,input:a,...l}=e;return l.path??(l.path=[]),l.message=c,t?.reportInput&&(l.input=a),l}function le(e,t){for(let r in t){let n=Object.getOwnPropertyDescriptor(t,r);n.get?Object.defineProperty(e,r,{...n,enumerable:!1}):qe(e,r,n.value)}}function P(e,t,r,n=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:n,value:r}),r}function pe(e,t,r){return P(e,t,r,!1)}function qe(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:P(this,t,r.bind(this))},set(n){P(this,t,n)}})}function Ge(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var W,w=!1,He={configurable:!0,get(){w=!0}};function g(e,t,r){let n=Object.getPrototypeOf(e._zod);if(t in n&&W!==e._zod){W=void 0;return}W=e._zod,Object.defineProperty(n,t,{configurable:!0,get(){Object.defineProperty(this,t,He);let o=w;w=!1;try{let i=r(this);return w?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i}),w=w||o,i}catch(i){throw delete this[t],w=w||o,i}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function fe(e,t,r,n){let o=Ge(e,t);o&&Object.defineProperty(o,t,{configurable:!0,get(){let i={configurable:!0,writable:!0,enumerable:n,value:void 0};return Object.defineProperty(this,t,i),i.value=r(this),Object.defineProperty(this,t,i),i.value},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:n,value:i})}})}var de;var G={value:void 0,enumerable:!1},me="captureStackTrace"in Error?Error:null;function Ye(e){let t=me;if(t){let r=t.stackTraceLimit;if(typeof r=="number"){try{t.stackTraceLimit=0}catch{return me=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function m(e,t,r,n){let o={};function i(p){this.def=p,this.constr=l,this.traits=new Set}i.prototype=o;let c=r,s=c&&new WeakSet;function u(p,d){if(!p._zod){G.value=new i(d);try{Object.defineProperty(p,"_zod",G)}finally{G.value=void 0}}if(p._zod.traits.has(e))return;if(p._zod.traits.add(e),t(p,d),s){let _=Object.getPrototypeOf(p),E=p._zod.constr.prototype,z=_;for(;z&&z!==E;)z=Object.getPrototypeOf(z);let S=z??_;s.has(S)||(s.add(S),le(S,c))}let h=l.prototype;for(let _ in h)Object.prototype.hasOwnProperty.call(h,_)&&(_ in p||(p[_]=h[_].bind(p)))}let f=n?.Parent??Object;class a extends f{}Object.defineProperty(a,"name",{value:e});function l(p){let d=n?.Parent?Ye(a):this;u(d,p);let h=d._zod.deferred;if(h){for(let E of h)E();d._zod.deferred=void 0}let _=globalThis.__zod_globalConfig?.postProcessor;return _&&_(d),d}return Object.defineProperty(l,"init",{value:u}),Object.defineProperty(l,Symbol.hasInstance,{value:p=>n?.Parent&&p instanceof n.Parent?!0:p?._zod?.traits?.has(e)}),Object.defineProperty(l,"name",{value:e}),l}var y=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};(de=globalThis).__zod_globalConfig??(de.__zod_globalConfig={});var j=globalThis.__zod_globalConfig;function A(e){return e&&Object.assign(j,e),j}function Qe(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,re,2)),e.message}function et(e){this._zod.message=e}var tt={get:Qe,set:et,enumerable:!0,configurable:!0},H={value:void 0,enumerable:!1},Y={value:void 0,enumerable:!1},_e=new WeakSet([Object.prototype,Error.prototype]),ge=(e,t)=>{e.name="$ZodError",H.value=e._zod,Object.defineProperty(e,"_zod",H),Y.value=t,Object.defineProperty(e,"issues",Y),H.value=void 0,Y.value=void 0,Object.defineProperty(e,"message",tt);let r=Object.getPrototypeOf(e);_e.has(r)||(_e.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let n=()=>this.message;return Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0}),n},set(n){Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0})}}))},xe=m("$ZodError",ge),C=m("$ZodError",ge,void 0,{Parent:Error});var nt=e=>{let t=(r,n,o,i)=>{let c=o?{...o,async:!1}:{async:!1},s=r._zod.run({value:n,issues:[]},c);if(s instanceof Promise)throw new y;if(s.issues.length){let u=new(i?.Err??e)(s.issues.map(f=>k(f,c,A())));throw J(u,i?.callee??t),u}return s.value};return t},B=nt(C),ot=e=>{let t=async(r,n,o,i)=>{let c=o?{...o,async:!0}:{async:!0},s=r._zod.run({value:n,issues:[]},c);if(s instanceof Promise&&(s=await s),s.issues.length){let u=new(i?.Err??e)(s.issues.map(f=>k(f,c,A())));throw J(u,i?.callee??t),u}return s.value};return t},V=ot(C),it=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new y;return i.issues.length?{success:!1,error:new(e??xe)(i.issues.map(c=>k(c,o,A())))}:{success:!0,data:i.value}},R=it(C),st=e=>async(t,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(c=>k(c,o,A())))}:{success:!0,data:i.value}},D=st(C);var $e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};var ze=/^-?\d+(?:\.\d+)?$/,ve=/^(?:true|false)$/i;var be={major:4,minor:5,patch:4};var x=m("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=be;let n=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...n??[]]:n?.length?[...n]:[];for(let i of o)for(let c of i._zod.onattach)c(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,u,f)=>{if(s.memo)return s;let a=M(s),l;for(let p of u){if(p._zod.def.when){if(ae(s)||!p._zod.def.when(s))continue}else if(a)continue;let d=s.issues.length,h=p._zod.check(s);if(h instanceof Promise&&f?.async===!1)throw new y;if(l||h instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await h,s.issues.length!==d&&(q(s.issues,d,e),a||(a=M(s,d)))});else{if(s.issues.length===d)continue;q(s.issues,d,e),a||(a=M(s,d))}}return l?l.then(()=>s):s},c=(s,u,f)=>{if(M(s))return s.aborted=!0,s;let a=i(u,o,f);if(a instanceof Promise){if(f.async===!1)throw new y;return a.then(l=>e._zod.parse(l,f))}return e._zod.parse(a,f)};e._zod.run=(s,u)=>{if(u.skipChecks)return e._zod.parse(s,u);if(u.direction==="backward"){let a=e._zod.parse({value:s.value,issues:[]},{...u,skipChecks:!0});return a instanceof Promise?a.then(l=>c(l,s,u)):c(a,s,u)}let f=e._zod.parse(s,u);if(f instanceof Promise){if(u.async===!1)throw new y;return f.then(a=>i(a,o,u))}return i(f,o,u)}}},{get"~standard"(){return pe(this,"~standard",ut(this))},set"~standard"(e){P(this,"~standard",e)}}),we=e=>e.success?{value:e.data}:{issues:e.error?.issues};function ut(e){return{validate:t=>{try{return we(R(e,t))}catch{return D(e,t).then(we)}},vendor:"zod",version:1}}var Ee=m("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??$e(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}});var Me=m("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??ze,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:String(o):void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}});var Ie=m("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=ve,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}});function Ze(e,t,r){e.issues.length&&t.issues.push(...X(r,e.issues)),t.value[r]=e.value}var Oe=m("$ZodArray",(e,t)=>{x.init(e,t);let r=j.memoizer;r?.attach(e),e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=r?r.alloc(e,n,Array(i.length),o):Array(i.length);let c=[];for(let s=0;s<i.length;s++){let u=i[s],f=t.element._zod.run({value:u,issues:[]},o);f instanceof Promise?c.push(f.then(a=>Ze(a,n,s))):Ze(f,n,s)}return c.length?Promise.all(c).then(()=>n):n}});function K(e,t,r,n,o,i){let c=r in n,s=i==="optional";if(!(!c&&s&&o==="optional")){if(e.issues.length){if(o!==void 0&&s&&!c)return;t.issues.push(...X(r,e.issues))}if(!c&&o===void 0){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?c&&(t.value[r]=void 0):t.value[r]=e.value}}var at=[];function lt(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),n=r.length?r:at,o=n.length?[...t,...n]:t;for(let c of o)if(!e.shape?.[c]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${String(c)}": expected a Zod schema`);let i=ue(e.shape);return{...e,allKeys:o,symbolKeys:n,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function pt(e,t,r,n,o,i){let c=[],s=o.keySet,u=o.catchall._zod,f=u.def.type,a=u.optin,l=u.optout;for(let p in t){if(s.has(p))continue;if(p==="__proto__"){f==="never"&&c.push(p);continue}if(f==="never"){c.push(p);continue}let d=u.run({value:t[p],issues:[]},n);d instanceof Promise?e.push(d.then(h=>K(h,r,p,t,a,l))):K(d,r,p,t,a,l)}return c.length&&r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:i,continue:!0}),e.length?Promise.all(e).then(()=>r):r}var Pe=new WeakMap,Se=m("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let u=t.shape;Pe.set(t,u),Object.defineProperty(t,"shape",{get:()=>{let f={...u};return Object.defineProperty(t,"shape",{value:f}),Pe.set(t,f),f}})}let n=ne(()=>lt(t));g(e,"propValues",u=>{let f=u.def.shape,a={};for(let l in f){let p=f[l]._zod;if(p.values){Object.prototype.hasOwnProperty.call(a,l)||oe(a,l,new Set);for(let d of p.values)a[l].add(d);p.optin!==void 0&&a[l].add(void 0)}}return a});let o=ie,i=t.catchall,c,s=j.memoizer;s?.attach(e),e._zod.parse=(u,f)=>{c??(c=n.value);let a=u.value;if(!o(a))return u.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),u;u.value=s?s.alloc(e,u,{},f):{};let l=[],p=c.shape;for(let d of c.allKeys){if(d==="__proto__")continue;let h=p[d],_=h._zod.optin,E=h._zod.optout,z=h._zod.run({value:a[d],issues:[]},f);z instanceof Promise?l.push(z.then(S=>K(S,u,d,a,_,E))):K(z,u,d,a,_,E)}return i?pt(l,a,u,f,n.value,e):l.length?Promise.all(l).then(()=>u):u}});function ke(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!M(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(c=>k(c,n,A())))}),t)}var Te=m("$ZodUnion",(e,t)=>{x.init(e,t),g(e,"optin",n=>n.def.options.some(o=>o._zod.optin==="defaulted")?"defaulted":n.def.options.some(o=>o._zod.optin!==void 0)?"optional":void 0),g(e,"optout",n=>n.def.options.some(o=>o._zod.optout==="optional")?"optional":void 0),g(e,"values",n=>{if(n.def.options.every(o=>o._zod.values))return new Set(n.def.options.flatMap(o=>Array.from(o._zod.values)))}),g(e,"pattern",n=>{if(n.def.options.every(o=>o._zod.pattern)){let o=n.def.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>N(i.source)).join("|")})$`)}});let r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,c=[];for(let s of t.options){let u=s._zod.run({value:n.value,issues:[]},o);if(u instanceof Promise)c.push(u),i=!0;else{if(u.issues.length===0)return u;c.push(u)}}return i?Promise.all(c).then(s=>ke(s,n,e,o)):ke(c,n,e,o)}});var je=m("$ZodEnum",(e,t)=>{x.init(e,t);let r=te(t.entries),n=new Set(r);e._zod.values=n;let o=r.filter(i=>se.has(typeof i));e._zod.pattern=new RegExp(o.length?`^(${o.map(i=>ce(i.toString())).join("|")})$`:"^[^\\s\\S]$"),e._zod.parse=(i,c)=>{let s=i.value;return n.has(s)||i.issues.push({code:"invalid_value",values:r,input:s,inst:e}),i}});function Ae(e,t){return e.value=t.issues.length?void 0:t.value,e}var Ce=m("$ZodOptional",(e,t)=>{x.init(e,t),g(e,"optin",r=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",g(e,"values",r=>{let n=r.def.innerType._zod.values;return n?new Set([...n,void 0]):void 0}),g(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${N(n.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(r.value===void 0){if(t.innerType._zod.optin!=="defaulted")return r;let o=t.innerType._zod.run({value:r.value,issues:[]},n);return o instanceof Promise?o.then(i=>Ae(r,i)):Ae(r,o)}return t.innerType._zod.run(r,n)}});var Re=m("$ZodNullable",(e,t)=>{x.init(e,t),g(e,"optin",r=>r.def.innerType._zod.optin),g(e,"optout",r=>r.def.innerType._zod.optout),g(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${N(n.source)}|null)$`):void 0}),g(e,"values",r=>r.def.innerType._zod.values?new Set([...r.def.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)});function De(e,t){return new e({type:"string",...v(t)})}function Le(e,t){return new e({type:"number",checks:[],...v(t)})}function Fe(e,t){return new e({type:"boolean",...v(t)})}var b=m("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type},{get with(){return this.check},set with(e){P(this,"with",e)},parse(e,t){return B(this,e,t,{callee:this.parse})},parseAsync(e,t){return V(this,e,t,{callee:this.parseAsync})},safeParse(e,t){return R(this,e,t)},safeParseAsync(e,t){return D(this,e,t)},check(...e){let t=this.def;return this.clone({...t,checks:[...t.checks??[],...e.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]},{parent:!0})},clone(e,t){return U(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},apply(e,...t){return t.length===0?e(this):e(this,...t)}}),mt=m("ZodMiniString",(e,t)=>{Ee.init(e,t),b.init(e,t)});function $(e){return De(mt,e)}var ht=m("ZodMiniNumber",(e,t)=>{Me.init(e,t),b.init(e,t)});function O(e){return Le(ht,e)}var _t=m("ZodMiniBoolean",(e,t)=>{Ie.init(e,t),b.init(e,t)});function Ne(e){return Fe(_t,e)}var gt=m("ZodMiniArray",(e,t)=>{Oe.init(e,t),b.init(e,t)});function Q(e,t){return new gt({type:"array",element:e,...v(t)})}var xt=m("ZodMiniObject",(e,t)=>{Se.init(e,t),b.init(e,t),fe(e,"shape",r=>r._zod.def.shape,!1)});function Z(e,t){let r={type:"object",shape:e??{},...v(t)};return new xt(r)}var $t=m("ZodMiniUnion",(e,t)=>{Te.init(e,t),b.init(e,t)});function Ue(e,t){return new $t({type:"union",options:e,...v(t)})}var zt=m("ZodMiniEnum",(e,t)=>{je.init(e,t),b.init(e,t),e.options=Object.values(t.entries)});function Be(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new zt({type:"enum",entries:r,...v(t)})}var vt=m("ZodMiniOptional",(e,t)=>{Ce.init(e,t),b.init(e,t)});function L(e){return new vt({type:"optional",innerType:e})}var yt=m("ZodMiniNullable",(e,t)=>{Re.init(e,t),b.init(e,t)});function bt(e){return new yt({type:"nullable",innerType:e})}function ee(e){return L(bt(e))}var F="https://api.chatvlm.com",Zt=Z({device_code:$(),user_code:$(),verification_uri:$(),verification_uri_complete:$(),expires_in:O(),interval:O()}),Pt=Ue([Z({access_token:$()}),Z({error:$()})]),kt=5e3;function Ve(e){let t=e?.trim()||F,r;try{r=new URL(t.includes("://")?t:`https://${t}`)}catch{throw new Error(`Not a server address: ${t}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new Error(`Not a server address: ${t}`);return r.origin}async function Ke(e){try{return await e.json()}catch{return}}async function We(e,t,r,n){let o=await fetch(`${e}/v1/oauth/device/code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:t,device_name:r.slice(0,40)}),signal:n});if(o.status===404)throw new Error(`${e} does not offer coding-agent sign-in. Check the address, or ask its admin to turn it on.`);let i=Zt.safeParse(await Ke(o));if(!o.ok||!i.success)throw new Error(`${e} refused to start a sign-in (HTTP ${o.status}).`);return i.data}function At(e,t){return new Promise((r,n)=>{let o=setTimeout(r,e);t?.addEventListener("abort",()=>{clearTimeout(o),n(new Error("Sign-in cancelled"))},{once:!0})})}async function Je(e,t,r){let n=Date.now()+t.expires_in*1e3,o=t.interval*1e3;for(;Date.now()<n;){await At(o,r);let i=await fetch(`${e}/v1/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:t.device_code}),signal:r}),c=Pt.safeParse(await Ke(i));if(!c.success)throw new Error(`${e} answered the sign-in poll with HTTP ${i.status}.`);if("access_token"in c.data)return c.data.access_token;switch(c.data.error){case"authorization_pending":continue;case"slow_down":o+=kt;continue;case"access_denied":throw new Error("Sign-in was denied in the browser.");default:throw new Error("The sign-in code expired. Start again.")}}throw new Error("The sign-in code expired. Start again.")}var jt="chatvlm",Ct="chatvlm-agent.json",Rt=Z({server:$()}),Dt=128e3,Lt=16384,Ft=Z({data:Q(Z({id:$(),name:L($()),context_window:ee(O()),max_tokens:ee(O()),input:L(Q(Be(["text","image"]))),reasoning:L(Ne())}))});function Xe(e){try{let t=Rt.safeParse(JSON.parse(Mt(e,"utf8")));return t.success?t.data.server:F}catch{return F}}async function Nt(e,t){let r=await fetch(`${e}/v1/models`,{headers:{authorization:`Bearer ${t}`}});if(!r.ok)throw new Error(`${e} answered the model list with HTTP ${r.status}`);return Ft.parse(await r.json()).data.map(o=>({id:o.id,name:o.name??o.id,baseUrl:`${e}/v1`,reasoning:o.reasoning??!1,input:o.input??["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:o.context_window??Dt,maxTokens:o.max_tokens??Lt}))}async function Ut(e,t){let r=await e.onPrompt({message:"ChatVLM server \u2014 leave blank for chatvlm.com, or paste your organization\u2019s API address",placeholder:F,allowEmpty:!0}),n=Ve(r),o=await We(n,"omp",Ot(),e.signal);e.onAuth({url:o.verification_uri_complete,instructions:`Approve the sign-in in your browser. Code: ${o.user_code}`}),e.onProgress?.("Waiting for approval\u2026");let i=await Je(n,o,e.signal);return Et(St(t),{recursive:!0}),It(t,JSON.stringify({server:n})),i}function Bt(e){let t=Tt(e.pi.getAgentDir(),Ct);e.registerProvider(jt,{baseUrl:`${Xe(t)}/v1`,api:"openai-completions",oauth:{name:"ChatVLM",login:r=>Ut(r,t)},fetchDynamicModels:r=>r?Nt(Xe(t),r):Promise.resolve([])})}export{jt as PROVIDER_ID,Bt as default,Nt as listModels,Ut as login,Xe as readServer};
1
+ import{mkdirSync as At,readFileSync as Et,writeFileSync as Mt}from"node:fs";import{hostname as It}from"node:os";import{dirname as Ot,join as St}from"node:path";function te(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function re(e,t){return typeof t=="bigint"?t.toString():t}function ne(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function N(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function oe(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var J="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var se=new Set(["string","number","symbol"]);function ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function v(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function ue(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}function M(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function ae(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function X(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function T(e){return typeof e=="string"?e:e?.message}function q(e,t,r){var n;for(let o=t;o<e.length;o++)(n=e[o]).schema??(n.schema=r)}function k(e,t,r){var n;let o=e.inst?._zod?.traits;o?.has("$ZodType")&&(o.has("$ZodCheck")?(n=e).schema??(n.schema=e.inst):e.schema=e.inst);let i=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,c=e.message?e.message:T(e.inst?._zod.def?.error?.(e))??T(i?.(e))??T(t?.error?.(e))??T(r.customError?.(e))??T(r.localeError?.(e))??"Invalid input",{inst:s,schema:u,continue:f,input:a,...l}=e;return l.path??(l.path=[]),l.message=c,t?.reportInput&&(l.input=a),l}function le(e,t){for(let r in t){let n=Object.getOwnPropertyDescriptor(t,r);n.get?Object.defineProperty(e,r,{...n,enumerable:!1}):Xe(e,r,n.value)}}function P(e,t,r,n=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:n,value:r}),r}function pe(e,t,r){return P(e,t,r,!1)}function Xe(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:P(this,t,r.bind(this))},set(n){P(this,t,n)}})}function qe(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var W,w=!1,Ge={configurable:!0,get(){w=!0}};function g(e,t,r){let n=Object.getPrototypeOf(e._zod);if(t in n&&W!==e._zod){W=void 0;return}W=e._zod,Object.defineProperty(n,t,{configurable:!0,get(){Object.defineProperty(this,t,Ge);let o=w;w=!1;try{let i=r(this);return w?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i}),w=w||o,i}catch(i){throw delete this[t],w=w||o,i}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function fe(e,t,r,n){let o=qe(e,t);o&&Object.defineProperty(o,t,{configurable:!0,get(){let i={configurable:!0,writable:!0,enumerable:n,value:void 0};return Object.defineProperty(this,t,i),i.value=r(this),Object.defineProperty(this,t,i),i.value},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:n,value:i})}})}var de;var G={value:void 0,enumerable:!1},me="captureStackTrace"in Error?Error:null;function He(e){let t=me;if(t){let r=t.stackTraceLimit;if(typeof r=="number"){try{t.stackTraceLimit=0}catch{return me=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function m(e,t,r,n){let o={};function i(p){this.def=p,this.constr=l,this.traits=new Set}i.prototype=o;let c=r,s=c&&new WeakSet;function u(p,d){if(!p._zod){G.value=new i(d);try{Object.defineProperty(p,"_zod",G)}finally{G.value=void 0}}if(p._zod.traits.has(e))return;if(p._zod.traits.add(e),t(p,d),s){let _=Object.getPrototypeOf(p),E=p._zod.constr.prototype,z=_;for(;z&&z!==E;)z=Object.getPrototypeOf(z);let S=z??_;s.has(S)||(s.add(S),le(S,c))}let h=l.prototype;for(let _ in h)Object.prototype.hasOwnProperty.call(h,_)&&(_ in p||(p[_]=h[_].bind(p)))}let f=n?.Parent??Object;class a extends f{}Object.defineProperty(a,"name",{value:e});function l(p){let d=n?.Parent?He(a):this;u(d,p);let h=d._zod.deferred;if(h){for(let E of h)E();d._zod.deferred=void 0}let _=globalThis.__zod_globalConfig?.postProcessor;return _&&_(d),d}return Object.defineProperty(l,"init",{value:u}),Object.defineProperty(l,Symbol.hasInstance,{value:p=>n?.Parent&&p instanceof n.Parent?!0:p?._zod?.traits?.has(e)}),Object.defineProperty(l,"name",{value:e}),l}var y=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};(de=globalThis).__zod_globalConfig??(de.__zod_globalConfig={});var j=globalThis.__zod_globalConfig;function A(e){return e&&Object.assign(j,e),j}function Ye(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,re,2)),e.message}function Qe(e){this._zod.message=e}var et={get:Ye,set:Qe,enumerable:!0,configurable:!0},H={value:void 0,enumerable:!1},Y={value:void 0,enumerable:!1},_e=new WeakSet([Object.prototype,Error.prototype]),ge=(e,t)=>{e.name="$ZodError",H.value=e._zod,Object.defineProperty(e,"_zod",H),Y.value=t,Object.defineProperty(e,"issues",Y),H.value=void 0,Y.value=void 0,Object.defineProperty(e,"message",et);let r=Object.getPrototypeOf(e);_e.has(r)||(_e.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let n=()=>this.message;return Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0}),n},set(n){Object.defineProperty(this,"toString",{value:n,configurable:!0,writable:!0})}}))},xe=m("$ZodError",ge),C=m("$ZodError",ge,void 0,{Parent:Error});var rt=e=>{let t=(r,n,o,i)=>{let c=o?{...o,async:!1}:{async:!1},s=r._zod.run({value:n,issues:[]},c);if(s instanceof Promise)throw new y;if(s.issues.length){let u=new(i?.Err??e)(s.issues.map(f=>k(f,c,A())));throw J(u,i?.callee??t),u}return s.value};return t},B=rt(C),nt=e=>{let t=async(r,n,o,i)=>{let c=o?{...o,async:!0}:{async:!0},s=r._zod.run({value:n,issues:[]},c);if(s instanceof Promise&&(s=await s),s.issues.length){let u=new(i?.Err??e)(s.issues.map(f=>k(f,c,A())));throw J(u,i?.callee??t),u}return s.value};return t},V=nt(C),ot=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new y;return i.issues.length?{success:!1,error:new(e??xe)(i.issues.map(c=>k(c,o,A())))}:{success:!0,data:i.value}},R=ot(C),it=e=>async(t,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(c=>k(c,o,A())))}:{success:!0,data:i.value}},D=it(C);var $e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};var ze=/^-?\d+(?:\.\d+)?$/,ve=/^(?:true|false)$/i;var be={major:4,minor:5,patch:4};var x=m("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=be;let n=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...n??[]]:n?.length?[...n]:[];for(let i of o)for(let c of i._zod.onattach)c(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,u,f)=>{if(s.memo)return s;let a=M(s),l;for(let p of u){if(p._zod.def.when){if(ae(s)||!p._zod.def.when(s))continue}else if(a)continue;let d=s.issues.length,h=p._zod.check(s);if(h instanceof Promise&&f?.async===!1)throw new y;if(l||h instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await h,s.issues.length!==d&&(q(s.issues,d,e),a||(a=M(s,d)))});else{if(s.issues.length===d)continue;q(s.issues,d,e),a||(a=M(s,d))}}return l?l.then(()=>s):s},c=(s,u,f)=>{if(M(s))return s.aborted=!0,s;let a=i(u,o,f);if(a instanceof Promise){if(f.async===!1)throw new y;return a.then(l=>e._zod.parse(l,f))}return e._zod.parse(a,f)};e._zod.run=(s,u)=>{if(u.skipChecks)return e._zod.parse(s,u);if(u.direction==="backward"){let a=e._zod.parse({value:s.value,issues:[]},{...u,skipChecks:!0});return a instanceof Promise?a.then(l=>c(l,s,u)):c(a,s,u)}let f=e._zod.parse(s,u);if(f instanceof Promise){if(u.async===!1)throw new y;return f.then(a=>i(a,o,u))}return i(f,o,u)}}},{get"~standard"(){return pe(this,"~standard",ct(this))},set"~standard"(e){P(this,"~standard",e)}}),we=e=>e.success?{value:e.data}:{issues:e.error?.issues};function ct(e){return{validate:t=>{try{return we(R(e,t))}catch{return D(e,t).then(we)}},vendor:"zod",version:1}}var Ee=m("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??$e(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}});var Me=m("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??ze,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:String(o):void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}});var Ie=m("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=ve,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}});function Ze(e,t,r){e.issues.length&&t.issues.push(...X(r,e.issues)),t.value[r]=e.value}var Oe=m("$ZodArray",(e,t)=>{x.init(e,t);let r=j.memoizer;r?.attach(e),e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=r?r.alloc(e,n,Array(i.length),o):Array(i.length);let c=[];for(let s=0;s<i.length;s++){let u=i[s],f=t.element._zod.run({value:u,issues:[]},o);f instanceof Promise?c.push(f.then(a=>Ze(a,n,s))):Ze(f,n,s)}return c.length?Promise.all(c).then(()=>n):n}});function K(e,t,r,n,o,i){let c=r in n,s=i==="optional";if(!(!c&&s&&o==="optional")){if(e.issues.length){if(o!==void 0&&s&&!c)return;t.issues.push(...X(r,e.issues))}if(!c&&o===void 0){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?c&&(t.value[r]=void 0):t.value[r]=e.value}}var ut=[];function at(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),n=r.length?r:ut,o=n.length?[...t,...n]:t;for(let c of o)if(!e.shape?.[c]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${String(c)}": expected a Zod schema`);let i=ue(e.shape);return{...e,allKeys:o,symbolKeys:n,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function lt(e,t,r,n,o,i){let c=[],s=o.keySet,u=o.catchall._zod,f=u.def.type,a=u.optin,l=u.optout;for(let p in t){if(s.has(p))continue;if(p==="__proto__"){f==="never"&&c.push(p);continue}if(f==="never"){c.push(p);continue}let d=u.run({value:t[p],issues:[]},n);d instanceof Promise?e.push(d.then(h=>K(h,r,p,t,a,l))):K(d,r,p,t,a,l)}return c.length&&r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:i,continue:!0}),e.length?Promise.all(e).then(()=>r):r}var Pe=new WeakMap,Se=m("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let u=t.shape;Pe.set(t,u),Object.defineProperty(t,"shape",{get:()=>{let f={...u};return Object.defineProperty(t,"shape",{value:f}),Pe.set(t,f),f}})}let n=ne(()=>at(t));g(e,"propValues",u=>{let f=u.def.shape,a={};for(let l in f){let p=f[l]._zod;if(p.values){Object.prototype.hasOwnProperty.call(a,l)||oe(a,l,new Set);for(let d of p.values)a[l].add(d);p.optin!==void 0&&a[l].add(void 0)}}return a});let o=ie,i=t.catchall,c,s=j.memoizer;s?.attach(e),e._zod.parse=(u,f)=>{c??(c=n.value);let a=u.value;if(!o(a))return u.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),u;u.value=s?s.alloc(e,u,{},f):{};let l=[],p=c.shape;for(let d of c.allKeys){if(d==="__proto__")continue;let h=p[d],_=h._zod.optin,E=h._zod.optout,z=h._zod.run({value:a[d],issues:[]},f);z instanceof Promise?l.push(z.then(S=>K(S,u,d,a,_,E))):K(z,u,d,a,_,E)}return i?lt(l,a,u,f,n.value,e):l.length?Promise.all(l).then(()=>u):u}});function ke(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!M(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(c=>k(c,n,A())))}),t)}var Te=m("$ZodUnion",(e,t)=>{x.init(e,t),g(e,"optin",n=>n.def.options.some(o=>o._zod.optin==="defaulted")?"defaulted":n.def.options.some(o=>o._zod.optin!==void 0)?"optional":void 0),g(e,"optout",n=>n.def.options.some(o=>o._zod.optout==="optional")?"optional":void 0),g(e,"values",n=>{if(n.def.options.every(o=>o._zod.values))return new Set(n.def.options.flatMap(o=>Array.from(o._zod.values)))}),g(e,"pattern",n=>{if(n.def.options.every(o=>o._zod.pattern)){let o=n.def.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>N(i.source)).join("|")})$`)}});let r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1,c=[];for(let s of t.options){let u=s._zod.run({value:n.value,issues:[]},o);if(u instanceof Promise)c.push(u),i=!0;else{if(u.issues.length===0)return u;c.push(u)}}return i?Promise.all(c).then(s=>ke(s,n,e,o)):ke(c,n,e,o)}});var je=m("$ZodEnum",(e,t)=>{x.init(e,t);let r=te(t.entries),n=new Set(r);e._zod.values=n;let o=r.filter(i=>se.has(typeof i));e._zod.pattern=new RegExp(o.length?`^(${o.map(i=>ce(i.toString())).join("|")})$`:"^[^\\s\\S]$"),e._zod.parse=(i,c)=>{let s=i.value;return n.has(s)||i.issues.push({code:"invalid_value",values:r,input:s,inst:e}),i}});function Ae(e,t){return e.value=t.issues.length?void 0:t.value,e}var Ce=m("$ZodOptional",(e,t)=>{x.init(e,t),g(e,"optin",r=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",g(e,"values",r=>{let n=r.def.innerType._zod.values;return n?new Set([...n,void 0]):void 0}),g(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${N(n.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(r.value===void 0){if(t.innerType._zod.optin!=="defaulted")return r;let o=t.innerType._zod.run({value:r.value,issues:[]},n);return o instanceof Promise?o.then(i=>Ae(r,i)):Ae(r,o)}return t.innerType._zod.run(r,n)}});var Re=m("$ZodNullable",(e,t)=>{x.init(e,t),g(e,"optin",r=>r.def.innerType._zod.optin),g(e,"optout",r=>r.def.innerType._zod.optout),g(e,"pattern",r=>{let n=r.def.innerType._zod.pattern;return n?new RegExp(`^(${N(n.source)}|null)$`):void 0}),g(e,"values",r=>r.def.innerType._zod.values?new Set([...r.def.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)});function De(e,t){return new e({type:"string",...v(t)})}function Le(e,t){return new e({type:"number",checks:[],...v(t)})}function Fe(e,t){return new e({type:"boolean",...v(t)})}var b=m("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type},{get with(){return this.check},set with(e){P(this,"with",e)},parse(e,t){return B(this,e,t,{callee:this.parse})},parseAsync(e,t){return V(this,e,t,{callee:this.parseAsync})},safeParse(e,t){return R(this,e,t)},safeParseAsync(e,t){return D(this,e,t)},check(...e){let t=this.def;return this.clone({...t,checks:[...t.checks??[],...e.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]},{parent:!0})},clone(e,t){return U(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},apply(e,...t){return t.length===0?e(this):e(this,...t)}}),dt=m("ZodMiniString",(e,t)=>{Ee.init(e,t),b.init(e,t)});function $(e){return De(dt,e)}var mt=m("ZodMiniNumber",(e,t)=>{Me.init(e,t),b.init(e,t)});function O(e){return Le(mt,e)}var ht=m("ZodMiniBoolean",(e,t)=>{Ie.init(e,t),b.init(e,t)});function Ne(e){return Fe(ht,e)}var _t=m("ZodMiniArray",(e,t)=>{Oe.init(e,t),b.init(e,t)});function Q(e,t){return new _t({type:"array",element:e,...v(t)})}var gt=m("ZodMiniObject",(e,t)=>{Se.init(e,t),b.init(e,t),fe(e,"shape",r=>r._zod.def.shape,!1)});function Z(e,t){let r={type:"object",shape:e??{},...v(t)};return new gt(r)}var xt=m("ZodMiniUnion",(e,t)=>{Te.init(e,t),b.init(e,t)});function Ue(e,t){return new xt({type:"union",options:e,...v(t)})}var $t=m("ZodMiniEnum",(e,t)=>{je.init(e,t),b.init(e,t),e.options=Object.values(t.entries)});function Be(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new $t({type:"enum",entries:r,...v(t)})}var zt=m("ZodMiniOptional",(e,t)=>{Ce.init(e,t),b.init(e,t)});function L(e){return new zt({type:"optional",innerType:e})}var vt=m("ZodMiniNullable",(e,t)=>{Re.init(e,t),b.init(e,t)});function yt(e){return new vt({type:"nullable",innerType:e})}function ee(e){return L(yt(e))}var F="https://api.chatvlm.com",wt=Z({device_code:$(),user_code:$(),verification_uri:$(),verification_uri_complete:$(),expires_in:O(),interval:O()}),Zt=Ue([Z({access_token:$()}),Z({error:$()})]),Pt=5e3;function Ve(e){let t=e?.trim()||F,r;try{r=new URL(t.includes("://")?t:`https://${t}`)}catch{throw new Error(`Not a server address: ${t}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new Error(`Not a server address: ${t}`);return r.origin}async function Ke(e){try{return await e.json()}catch{return}}async function We(e,t,r,n){let o=await fetch(`${e}/v1/oauth/device/code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:t,device_name:r.slice(0,40)}),signal:n});if(o.status===404)throw new Error(`${e} does not offer coding-agent sign-in. Check the address, or ask its admin to turn it on.`);let i=wt.safeParse(await Ke(o));if(!o.ok||!i.success)throw new Error(`${e} refused to start a sign-in (HTTP ${o.status}).`);return i.data}function kt(e,t){return new Promise((r,n)=>{let o=setTimeout(r,e);t?.addEventListener("abort",()=>{clearTimeout(o),n(new Error("Sign-in cancelled"))},{once:!0})})}async function Je(e,t,r){let n=Date.now()+t.expires_in*1e3,o=t.interval*1e3;for(;Date.now()<n;){await kt(o,r);let i=await fetch(`${e}/v1/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:t.device_code}),signal:r}),c=Zt.safeParse(await Ke(i));if(!c.success)throw new Error(`${e} answered the sign-in poll with HTTP ${i.status}.`);if("access_token"in c.data)return c.data.access_token;switch(c.data.error){case"authorization_pending":continue;case"slow_down":o+=Pt;continue;case"access_denied":throw new Error("Sign-in was denied in the browser.");default:throw new Error("The sign-in code expired. Start again.")}}throw new Error("The sign-in code expired. Start again.")}var Tt="chatvlm",jt="chatvlm-agent.json",Ct=Z({server:$()}),Rt=128e3,Dt=16384,Lt=Z({data:Q(Z({id:$(),name:L($()),context_window:ee(O()),max_tokens:ee(O()),input:L(Q(Be(["text","image"]))),reasoning:L(Ne())}))});function Ft(e){try{let t=Ct.safeParse(JSON.parse(Et(e,"utf8")));return t.success?t.data.server:F}catch{return F}}async function Nt(e,t){let r=await fetch(`${e}/v1/models`,{headers:{authorization:`Bearer ${t}`}});if(!r.ok)throw new Error(`${e} answered the model list with HTTP ${r.status}`);return Lt.parse(await r.json()).data.map(o=>({id:o.id,name:o.name??o.id,baseUrl:`${e}/v1`,reasoning:o.reasoning??!1,input:o.input??["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:o.context_window??Rt,maxTokens:o.max_tokens??Dt}))}async function Ut(e,t){let r=await e.onPrompt({message:"ChatVLM server \u2014 leave blank for chatvlm.com, or paste your organization\u2019s API address",placeholder:F,allowEmpty:!0}),n=Ve(r),o=await We(n,"omp",It(),e.signal);e.onAuth({url:o.verification_uri_complete,instructions:`Approve the sign-in in your browser. Code: ${o.user_code}`}),e.onProgress?.("Waiting for approval\u2026");let i=await Je(n,o,e.signal);return At(Ot(t),{recursive:!0}),Mt(t,JSON.stringify({server:n})),i}function Bt(e){let t=St(e.pi.getAgentDir(),jt);e.registerProvider(Tt,{api:"openai-completions",oauth:{name:"ChatVLM",login:r=>Ut(r,t)},fetchDynamicModels:r=>r?Nt(Ft(t),r):Promise.resolve([])})}export{Tt as PROVIDER_ID,Bt as default,Nt as listModels,Ut as login,Ft as readServer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chatvlm-agent",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Sign coding agents in to ChatVLM, or your own deployment of it, with one approval in the browser: an omp plugin and a login command for opencode and scripts.",
5
5
  "license": "MIT",
6
6
  "type": "module",