@cline/shared 0.0.92-nightly.1791773200 → 0.0.93
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/agent.d.ts +4 -0
- package/dist/automation/index.js +1 -1
- package/dist/extensions/contribution-registry.d.ts +18 -0
- package/dist/hub.d.ts +81 -3
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +19 -19
- package/dist/index.d.ts +1 -1
- package/dist/index.js +45 -45
- package/dist/llms/tokens.d.ts +23 -0
- package/dist/remote-config/index.js +1 -1
- package/dist/rpc/runtime.d.ts +5 -1
- package/package.json +1 -1
package/dist/agent.d.ts
CHANGED
|
@@ -142,6 +142,10 @@ export interface AgentToolContext {
|
|
|
142
142
|
metadata?: Record<string, unknown>;
|
|
143
143
|
snapshot?: AgentRuntimeStateSnapshot;
|
|
144
144
|
emitUpdate?: (update: unknown) => void;
|
|
145
|
+
/** Session working directory. Set by the host for plugin tools. */
|
|
146
|
+
cwd?: string;
|
|
147
|
+
/** Sends a plugin event to the calling session. Set by the host for plugin tools. */
|
|
148
|
+
emitEvent?: (name: string, payload?: unknown) => void;
|
|
145
149
|
}
|
|
146
150
|
export interface AgentTool<TInput = unknown, TOutput = unknown> extends AgentToolDefinition {
|
|
147
151
|
/** Override the runtime execution mode. Adjacent parallel calls may overlap; sequential calls form ordering boundaries. */
|
package/dist/automation/index.js
CHANGED
|
@@ -3,7 +3,7 @@ function de(e){let t=Object.values(e).filter((n)=>typeof n==="number");return Ob
|
|
|
3
3
|
`).filter((i)=>i),n=Math.min(...r.map((i)=>i.length-i.trimStart().length)),o=r.map((i)=>i.slice(n)).map((i)=>" ".repeat(this.indent*2)+i);for(let i of o)this.content.push(i)}compile(){let e=Function,t=this?.content??[""];return new e(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
|
|
4
4
|
${t.join(`
|
|
5
5
|
`)}
|
|
6
|
-
};`)(...Object.values(this.closed))}}var no={major:4,minor:6,patch:6};var b=p("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=no;let n=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...n??[]]:n?.length?[...n]:[];for(let i of o)for(let s of i._zod.onattach)s(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(c,u,a)=>{if(c.memo)return c;let l=F(c),f;for(let h of u){if(h._zod.def.when){if(Yr(c))continue;if(!h._zod.def.when(c))continue}else if(l)continue;let d=c.issues.length,m=h._zod.check(c);if(m instanceof Promise&&a?.async===!1)throw new V;if(f||m instanceof Promise)f=(f??Promise.resolve()).then(async()=>{if(await m,c.issues.length===d)return;if(Ce(c.issues,d,e),!l)l=F(c,d)});else{if(c.issues.length===d)continue;if(Ce(c.issues,d,e),!l)l=F(c,d)}}if(f)return f.then(()=>c);return c},s=(c,u,a)=>{if(F(c))return c.aborted=!0,c;let l=i(u,o,a);if(l instanceof Promise){if(a.async===!1)throw new V;return l.then((f)=>e._zod.parse(f,a))}return e._zod.parse(l,a)};e._zod.run=(c,u)=>{if(u.skipChecks)return e._zod.parse(c,u);if(u.direction==="backward"){let l=e._zod.parse({value:c.value,issues:[]},{...u,skipChecks:!0});if(l instanceof Promise)return l.then((f)=>s(f,c,u));return s(l,c,u)}let a=e._zod.parse(c,u);if(a instanceof Promise){if(u.async===!1)throw new V;return a.then((l)=>i(l,o,u))}return i(a,o,u)}}},{get "~standard"(){return je(this,"~standard",Tt(this))},set "~standard"(e){G(this,"~standard",e)}}),xo=(e,t)=>e.issues.length?{issues:e.issues.map((r)=>K(r,t,D()))}:{value:e.value};async function Mc(e,t){let r={async:!0};return xo(await e._zod.run({value:t,issues:[]},r),r)}function Tt(e){return{validate:(t)=>{let r={async:!1};try{let n=e._zod.run({value:t,issues:[]},r);if(!(n instanceof Promise))return xo(n,r)}catch(n){}return Mc(e,t)},vendor:"zod",version:1}}var Ve=p("$ZodString",(e,t)=>{b.init(e,t),e._zod.pattern=t.pattern??Fn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch(o){}if(typeof r.value==="string")return r;return r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),Z=p("$ZodStringFormat",(e,t)=>{ze.init(e,t),Ve.init(e,t)}),yo=p("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=kn),Z.init(e,t)}),vo=p("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Zt(n))}else t.pattern??(t.pattern=Zt());Z.init(e,t)}),bo=p("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Zn),Z.init(e,t)}),zo=1,Je=2;function $o(e){try{if(typeof URL<"u"&&typeof URL.canParse==="function")return URL.canParse(e);return new URL(e),!0}catch{return!1}}function Uc(e,t){if(!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t))return $o(e)||Je;return Bc(e,t)}function Bc(e,t){if(!t.normalize&&t.protocol?.source===Nn.source&&!/^https?:\/\//i.test(e))return zo;try{if(typeof URL<"u"){let r=URL;if(typeof r.parse==="function")return r.parse(e)??Je}return new URL(e)}catch{return Je}}var Jc=/[\t\n\r]/g;function oo(e){return e.replace(Jc,"")}function Kc(e,t){return t.lastIndex=0,t.test(e.hostname)}function Vc(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var wo=p("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{try{let n=r.value.trim(),o=Uc(n,t);if(o===zo){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}if(o===Je){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort});return}if(o===!0){r.value=oo(n);return}if(t.hostname&&!Kc(o,t.hostname))r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort});if(t.protocol&&!Vc(o,t.protocol))r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort});r.value=t.normalize?o.href:oo(n);return}catch(n){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),ko=p("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Sn()),Z.init(e,t)}),Zo=p("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?zn:$n(t.length)),Z.init(e,t)}),So=p("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=_n),Z.init(e,t)}),Po=p("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=xn),Z.init(e,t)}),Oo=p("$ZodULID",(e,t)=>{t.pattern??(t.pattern=yn),Z.init(e,t)}),Io=p("$ZodXID",(e,t)=>{t.pattern??(t.pattern=vn),Z.init(e,t)}),Ao=p("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=bn),Z.init(e,t)}),Eo=p("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Ln(t)),Z.init(e,t)}),To=p("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Dn),Z.init(e,t)}),No=p("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=jn(t)),Z.init(e,t)}),Co=p("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=wn),Z.init(e,t)}),Ro=p("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Pn),Z.init(e,t)}),Wc=/^[0-9a-fA-F:.]+$/;function Do(e){if(!Wc.test(e))return!1;return $o(`http://[${e}]`)}var jo=p("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=On),Z.init(e,t),e._zod.check=(r)=>{if(!Do(r.value))r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}});var Lo=p("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=In),Z.init(e,t)});function Gc(e){let t=e.split("/");if(t.length!==2)return!1;let[r,n]=t;if(!n)return!1;let o=Number(n);if(`${o}`!==n)return!1;if(o<0||o>128)return!1;return Do(r)}var Fo=p("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=An),Z.init(e,t),e._zod.check=(r)=>{if(!Gc(r.value))r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}});function Mo(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Nt=/^[0-9a-zA-Z+/]*={0,2}$/,Uo=p("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Nt),Z.init(e,t),e._zod.check=(r)=>{if(Mo(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),We=/^[A-Za-z0-9_-]*$/;function Xc(e){if(!We.test(e))return!1;let t=e.replace(/[-_]/g,(n)=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Mo(r)}var Bo=p("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=We),Z.init(e,t),e._zod.check=(r)=>{if(Xc(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Jo=p("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Cn),Z.init(e,t)});function Yc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));if("typ"in o&&o?.typ!=="JWT")return!1;if(!o.alg)return!1;if(t&&(!("alg"in o)||o.alg!==t))return!1;return!0}catch{return!1}}var Ko=p("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{if(Yc(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var Ct=p("$ZodNumber",(e,t)=>{b.init(e,t),e._zod.pattern=ve,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch(s){}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)?String(o):void 0:void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Vo=p("$ZodNumberFormat",(e,t)=>{Kn.init(e,t),Ct.init(e,t)}),Wo=p("$ZodBoolean",(e,t)=>{b.init(e,t),e._zod.pattern=Mn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Boolean(r.value)}catch(i){}let o=r.value;if(typeof o==="boolean")return r;return r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}});var Go=p("$ZodUnknown",(e,t)=>{b.init(e,t),e._zod.parse=(r)=>r}),Xo=p("$ZodNever",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),Yo=p("$ZodVoid",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(typeof o>"u")return r;return r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),Ho=p("$ZodDate",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch(c){}let o=r.value,i=o instanceof Date;if(i&&!Number.isNaN(o.getTime()))return r;return r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Hc(e,t){let r=ht(e._zod.def.checks);if(!r.length)return;let n=Math.min(...r.map((i)=>i[0])),o=e._zod.parse;e._zod.parse=(i,s)=>{let c=t(i.value);if(c>n&&!s?.skipChecks&&s?.direction!=="backward"){for(let[u,a]of ht(e._zod.def.checks))if(c>u&&a._zod.def.when(i)){let l=i.issues.length;return a._zod.check(i),i.issues[l].continue=!1,Ce(i.issues,l,e),i}}return o(i,s)}}var qc=(e)=>Array.isArray(e)?e.length:-1;function io(e,t,r){if(e.issues.length)t.issues.push(...J(r,e.issues));t.value[r]=e.value}var qo=p("$ZodArray",(e,t)=>{b.init(e,t);let r=E.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 s=[],c=o?.abortEarly;for(let u=0;u<i.length;u++){let a=i[u],l=t.element._zod.run({value:a,issues:[]},o);if(l instanceof Promise)s.push(l.then((f)=>io(f,n,u)));else if(io(l,n,u),c&&l.issues.length!==0&&F(l))break}if(s.length)return Promise.all(s).then(()=>n);return n},Hc(e,qc)});function Ke(e,t,r,n,o,i){let s=r in n,c=i==="optional";if(!s&&c&&o==="optional")return;if(e.issues.length){if(o!==void 0&&c&&!s)return;t.issues.push(...J(r,e.issues))}if(!s&&o===void 0){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}if(e.value===void 0){if(s||o==="defaulted"&&!c)t.value[r]=void 0}else t.value[r]=e.value}var Qc=[];function Qo(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),n=r.length?r:Qc,o=n.length?[...t,...n]:t;for(let s of o)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(s)}": expected a Zod schema`);let i=Wr(e.shape);return{...e,allKeys:o,symbolKeys:n,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function ei(e,t,r,n,o,i,s){let c=[],u=o.keySet,a=o.catchall._zod,l=a.def.type,{optin:f,optout:h}=a,d=0;for(let m in t){if(s&&r.issues.length!==d){if(F(r,d))break;d=r.issues.length}if(u.has(m))continue;if(m==="__proto__"){if(l==="never")c.push(m);continue}if(l==="never"){c.push(m);continue}let _=a.run({value:t[m],issues:[]},n);if(_ instanceof Promise)e.push(_.then((x)=>Ke(x,r,m,t,f,h)));else Ke(_,r,m,t,f,h)}if(c.length)r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:i,continue:!0});if(!e.length)return r;return Promise.all(e).then(()=>r)}var eu=p("$ZodObject",(e,t)=>{b.init(e,t);let r=Object.getOwnPropertyDescriptor(t,"shape"),n=r?.get?r.get.raw:t.shape??{};if(n){let a=()=>{let l={...n};return Object.defineProperty(t,"shape",{value:l}),a.raw=l,l};a.raw=n,Object.defineProperty(t,"shape",{get:a})}let o=he(()=>Qo(t));v(e,"propValues",(a)=>{let l=a.def.shape,f={};for(let h in l){let d=l[h]._zod;if(d.values){if(!Object.prototype.hasOwnProperty.call(f,h))C(f,h,new Set);for(let m of d.values)f[h].add(m);if(d.optin!==void 0)f[h].add(void 0)}}return f});let i=re,s=t.catchall,c,u=E.memoizer;u?.attach(e),e._zod.parse=(a,l)=>{c??(c=o.value);let f=a.value;if(!i(f))return a.issues.push({expected:"object",code:"invalid_type",input:f,inst:e}),a;a.value=u?u.alloc(e,a,{},l):{};let h=[],d=c.shape,m=l?.abortEarly,_=a.issues.length;for(let x of c.allKeys){if(m&&a.issues.length!==_){if(F(a,_))break;_=a.issues.length}if(x==="__proto__")continue;let y=d[x],N=y._zod.optin,le=y._zod.optout,pe=y._zod.run({value:f[x],issues:[]},l);if(pe instanceof Promise)h.push(pe.then((P)=>Ke(P,a,x,f,N,le)));else Ke(pe,a,x,f,N,le)}if(!s)return h.length?Promise.all(h).then(()=>a):a;return ei(h,f,a,l,o.value,e,m===!0)}}),ti=p("$ZodObjectJIT",(e,t)=>{eu.init(e,t);let r=e._zod.parse,n=he(()=>Qo(t)),o=E.memoizer,i=(d)=>{let m=n.value,_=m.symbolKeys,x=new At(["payload","ctx"],{shape:d,inst:e,memo:o,syms:_}),y=(P)=>`shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`,N=(P,k)=>`
|
|
6
|
+
};`)(...Object.values(this.closed))}}var no={major:4,minor:6,patch:7};var b=p("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=no;let n=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...n??[]]:n?.length?[...n]:[];for(let i of o)for(let s of i._zod.onattach)s(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(c,u,a)=>{if(c.memo)return c;let l=F(c),f;for(let h of u){if(h._zod.def.when){if(Yr(c))continue;if(!h._zod.def.when(c))continue}else if(l)continue;let d=c.issues.length,m=h._zod.check(c);if(m instanceof Promise&&a?.async===!1)throw new V;if(f||m instanceof Promise)f=(f??Promise.resolve()).then(async()=>{if(await m,c.issues.length===d)return;if(Ce(c.issues,d,e),!l)l=F(c,d)});else{if(c.issues.length===d)continue;if(Ce(c.issues,d,e),!l)l=F(c,d)}}if(f)return f.then(()=>c);return c},s=(c,u,a)=>{if(F(c))return c.aborted=!0,c;let l=i(u,o,a);if(l instanceof Promise){if(a.async===!1)throw new V;return l.then((f)=>e._zod.parse(f,a))}return e._zod.parse(l,a)};e._zod.run=(c,u)=>{if(u.skipChecks)return e._zod.parse(c,u);if(u.direction==="backward"){let l=e._zod.parse({value:c.value,issues:[]},{...u,skipChecks:!0});if(l instanceof Promise)return l.then((f)=>s(f,c,u));return s(l,c,u)}let a=e._zod.parse(c,u);if(a instanceof Promise){if(u.async===!1)throw new V;return a.then((l)=>i(l,o,u))}return i(a,o,u)}}},{get "~standard"(){return je(this,"~standard",Tt(this))},set "~standard"(e){G(this,"~standard",e)}}),xo=(e,t)=>e.issues.length?{issues:e.issues.map((r)=>K(r,t,D()))}:{value:e.value};async function Mc(e,t){let r={async:!0};return xo(await e._zod.run({value:t,issues:[]},r),r)}function Tt(e){return{validate:(t)=>{let r={async:!1};try{let n=e._zod.run({value:t,issues:[]},r);if(!(n instanceof Promise))return xo(n,r)}catch(n){}return Mc(e,t)},vendor:"zod",version:1}}var Ve=p("$ZodString",(e,t)=>{b.init(e,t),e._zod.pattern=t.pattern??Fn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch(o){}if(typeof r.value==="string")return r;return r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),Z=p("$ZodStringFormat",(e,t)=>{ze.init(e,t),Ve.init(e,t)}),yo=p("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=kn),Z.init(e,t)}),vo=p("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Zt(n))}else t.pattern??(t.pattern=Zt());Z.init(e,t)}),bo=p("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Zn),Z.init(e,t)}),zo=1,Je=2;function $o(e){try{if(typeof URL<"u"&&typeof URL.canParse==="function")return URL.canParse(e);return new URL(e),!0}catch{return!1}}function Uc(e,t){if(!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t))return $o(e)||Je;return Bc(e,t)}function Bc(e,t){if(!t.normalize&&t.protocol?.source===Nn.source&&!/^https?:\/\//i.test(e))return zo;try{if(typeof URL<"u"){let r=URL;if(typeof r.parse==="function")return r.parse(e)??Je}return new URL(e)}catch{return Je}}var Jc=/[\t\n\r]/g;function oo(e){return e.replace(Jc,"")}function Kc(e,t){return t.lastIndex=0,t.test(e.hostname)}function Vc(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var wo=p("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{try{let n=r.value.trim(),o=Uc(n,t);if(o===zo){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}if(o===Je){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort});return}if(o===!0){r.value=oo(n);return}if(t.hostname&&!Kc(o,t.hostname))r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort});if(t.protocol&&!Vc(o,t.protocol))r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort});r.value=t.normalize?o.href:oo(n);return}catch(n){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),ko=p("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Sn()),Z.init(e,t)}),Zo=p("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?zn:$n(t.length)),Z.init(e,t)}),So=p("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=_n),Z.init(e,t)}),Po=p("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=xn),Z.init(e,t)}),Oo=p("$ZodULID",(e,t)=>{t.pattern??(t.pattern=yn),Z.init(e,t)}),Io=p("$ZodXID",(e,t)=>{t.pattern??(t.pattern=vn),Z.init(e,t)}),Ao=p("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=bn),Z.init(e,t)}),Eo=p("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Ln(t)),Z.init(e,t)}),To=p("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Dn),Z.init(e,t)}),No=p("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=jn(t)),Z.init(e,t)}),Co=p("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=wn),Z.init(e,t)}),Ro=p("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Pn),Z.init(e,t)}),Wc=/^[0-9a-fA-F:.]+$/;function Do(e){if(!Wc.test(e))return!1;return $o(`http://[${e}]`)}var jo=p("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=On),Z.init(e,t),e._zod.check=(r)=>{if(!Do(r.value))r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}});var Lo=p("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=In),Z.init(e,t)});function Gc(e){let t=e.split("/");if(t.length!==2)return!1;let[r,n]=t;if(!n)return!1;let o=Number(n);if(`${o}`!==n)return!1;if(o<0||o>128)return!1;return Do(r)}var Fo=p("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=An),Z.init(e,t),e._zod.check=(r)=>{if(!Gc(r.value))r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}});function Mo(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Nt=/^[0-9a-zA-Z+/]*={0,2}$/,Uo=p("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Nt),Z.init(e,t),e._zod.check=(r)=>{if(Mo(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),We=/^[A-Za-z0-9_-]*$/;function Xc(e){if(!We.test(e))return!1;let t=e.replace(/[-_]/g,(n)=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Mo(r)}var Bo=p("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=We),Z.init(e,t),e._zod.check=(r)=>{if(Xc(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Jo=p("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Cn),Z.init(e,t)});function Yc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));if("typ"in o&&o?.typ!=="JWT")return!1;if(!o.alg)return!1;if(t&&(!("alg"in o)||o.alg!==t))return!1;return!0}catch{return!1}}var Ko=p("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{if(Yc(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var Ct=p("$ZodNumber",(e,t)=>{b.init(e,t),e._zod.pattern=ve,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch(s){}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)?String(o):void 0:void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Vo=p("$ZodNumberFormat",(e,t)=>{Kn.init(e,t),Ct.init(e,t)}),Wo=p("$ZodBoolean",(e,t)=>{b.init(e,t),e._zod.pattern=Mn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Boolean(r.value)}catch(i){}let o=r.value;if(typeof o==="boolean")return r;return r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}});var Go=p("$ZodUnknown",(e,t)=>{b.init(e,t),e._zod.parse=(r)=>r}),Xo=p("$ZodNever",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),Yo=p("$ZodVoid",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(typeof o>"u")return r;return r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),Ho=p("$ZodDate",(e,t)=>{b.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch(c){}let o=r.value,i=o instanceof Date;if(i&&!Number.isNaN(o.getTime()))return r;return r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Hc(e,t){let r=ht(e._zod.def.checks);if(!r.length)return;let n=Math.min(...r.map((i)=>i[0])),o=e._zod.parse;e._zod.parse=(i,s)=>{let c=t(i.value);if(c>n&&!s?.skipChecks&&s?.direction!=="backward"){for(let[u,a]of ht(e._zod.def.checks))if(c>u&&a._zod.def.when(i)){let l=i.issues.length;return a._zod.check(i),i.issues[l].continue=!1,Ce(i.issues,l,e),i}}return o(i,s)}}var qc=(e)=>Array.isArray(e)?e.length:-1;function io(e,t,r){if(e.issues.length)t.issues.push(...J(r,e.issues));t.value[r]=e.value}var qo=p("$ZodArray",(e,t)=>{b.init(e,t);let r=E.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 s=[],c=o?.abortEarly;for(let u=0;u<i.length;u++){let a=i[u],l=t.element._zod.run({value:a,issues:[]},o);if(l instanceof Promise)s.push(l.then((f)=>io(f,n,u)));else if(io(l,n,u),c&&l.issues.length!==0&&F(l))break}if(s.length)return Promise.all(s).then(()=>n);return n},Hc(e,qc)});function Ke(e,t,r,n,o,i){let s=r in n,c=i==="optional";if(!s&&c&&o==="optional")return;if(e.issues.length){if(o!==void 0&&c&&!s)return;t.issues.push(...J(r,e.issues))}if(!s&&o===void 0){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}if(e.value===void 0){if(s||o==="defaulted"&&!c)t.value[r]=void 0}else t.value[r]=e.value}var Qc=[];function Qo(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),n=r.length?r:Qc,o=n.length?[...t,...n]:t;for(let s of o)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(s)}": expected a Zod schema`);let i=Wr(e.shape);return{...e,allKeys:o,symbolKeys:n,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function ei(e,t,r,n,o,i,s){let c=[],u=o.keySet,a=o.catchall._zod,l=a.def.type,{optin:f,optout:h}=a,d=0;for(let m in t){if(s&&r.issues.length!==d){if(F(r,d))break;d=r.issues.length}if(u.has(m))continue;if(m==="__proto__"){if(l==="never")c.push(m);continue}if(l==="never"){c.push(m);continue}let _=a.run({value:t[m],issues:[]},n);if(_ instanceof Promise)e.push(_.then((x)=>Ke(x,r,m,t,f,h)));else Ke(_,r,m,t,f,h)}if(c.length)r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:i,continue:!0});if(!e.length)return r;return Promise.all(e).then(()=>r)}var eu=p("$ZodObject",(e,t)=>{b.init(e,t);let r=Object.getOwnPropertyDescriptor(t,"shape"),n=r?.get?r.get.raw:t.shape??{};if(n){let a=()=>{let l={...n};return Object.defineProperty(t,"shape",{value:l}),a.raw=l,l};a.raw=n,Object.defineProperty(t,"shape",{get:a})}let o=he(()=>Qo(t));v(e,"propValues",(a)=>{let l=a.def.shape,f={};for(let h in l){let d=l[h]._zod;if(d.values){if(!Object.prototype.hasOwnProperty.call(f,h))C(f,h,new Set);for(let m of d.values)f[h].add(m);if(d.optin!==void 0)f[h].add(void 0)}}return f});let i=re,s=t.catchall,c,u=E.memoizer;u?.attach(e),e._zod.parse=(a,l)=>{c??(c=o.value);let f=a.value;if(!i(f))return a.issues.push({expected:"object",code:"invalid_type",input:f,inst:e}),a;a.value=u?u.alloc(e,a,{},l):{};let h=[],d=c.shape,m=l?.abortEarly,_=a.issues.length;for(let x of c.allKeys){if(m&&a.issues.length!==_){if(F(a,_))break;_=a.issues.length}if(x==="__proto__")continue;let y=d[x],N=y._zod.optin,le=y._zod.optout,pe=y._zod.run({value:f[x],issues:[]},l);if(pe instanceof Promise)h.push(pe.then((P)=>Ke(P,a,x,f,N,le)));else Ke(pe,a,x,f,N,le)}if(!s)return h.length?Promise.all(h).then(()=>a):a;return ei(h,f,a,l,o.value,e,m===!0)}}),ti=p("$ZodObjectJIT",(e,t)=>{eu.init(e,t);let r=e._zod.parse,n=he(()=>Qo(t)),o=E.memoizer,i=(d)=>{let m=n.value,_=m.symbolKeys,x=new At(["payload","ctx"],{shape:d,inst:e,memo:o,syms:_}),y=(P)=>`shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`,N=(P,k)=>`
|
|
7
7
|
let ${P}_ab = false;
|
|
8
8
|
for (let i = 0; i < ${P}.issues.length; i++) {
|
|
9
9
|
const iss = ${P}.issues[i];
|
|
@@ -162,6 +162,24 @@ export interface PluginSetupContext {
|
|
|
162
162
|
* it); identity and common-property setters are no-ops.
|
|
163
163
|
*/
|
|
164
164
|
telemetry?: ITelemetryService;
|
|
165
|
+
/**
|
|
166
|
+
* The session's working directory. Use it instead of `process.cwd()`:
|
|
167
|
+
* plugins loaded in the Hub share one process across sessions.
|
|
168
|
+
*/
|
|
169
|
+
cwd?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Sends a plugin event (for example `steer_message`) to the session that
|
|
172
|
+
* set the plugin up. Replaces `globalThis.__clinePluginHost.emitEvent`,
|
|
173
|
+
* which is kept as a shim.
|
|
174
|
+
*/
|
|
175
|
+
emitEvent?: (name: string, payload?: unknown) => void;
|
|
176
|
+
/**
|
|
177
|
+
* Registers cleanup to run when the session that set the plugin up ends.
|
|
178
|
+
* Plugins loaded in the Hub share its process, so anything a plugin starts
|
|
179
|
+
* for a session (timers, child processes, sockets, listeners on shared
|
|
180
|
+
* emitters) must be stopped here.
|
|
181
|
+
*/
|
|
182
|
+
onDispose?: (cleanup: () => void | Promise<void>) => void;
|
|
165
183
|
}
|
|
166
184
|
declare const ExtensionCapabilityOptions: readonly ["hooks", "tools", "commands", "rules", "skills", "messageBuilders", "providers", "automationEvents", "mcp"];
|
|
167
185
|
export type AgentExtensionCapability = (typeof ExtensionCapabilityOptions)[number];
|
package/dist/hub.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type HubProtocolVersion = "v1";
|
|
|
7
7
|
export declare const CURRENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
8
8
|
export declare const MIN_CLIENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
9
9
|
export declare const MAX_CLIENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
10
|
-
export type HubCapabilityName = "client.register" | "client.list" | "session.create" | "session.list" | "session.get" | "session.run" | "session.abort" | "schedule.create" | "schedule.list" | "task.create" | "task.list" | "task.get" | "task.update" | "task.approve" | "task.cancel" | "task.run" | "task.automation.get" | "task.automation.set" | "settings.get" | "settings.set" | "connector.start" | "connector.stop" | "connector.supervised" | "run.enqueue" | "run.list" | "hub.drain" | "hub.status" | "stream.replay";
|
|
10
|
+
export type HubCapabilityName = "client.register" | "client.list" | "session.create" | "session.list" | "session.get" | "session.run" | "session.abort" | "schedule.create" | "schedule.list" | "task.create" | "task.list" | "task.get" | "task.update" | "task.approve" | "task.cancel" | "task.run" | "task.automation.get" | "task.automation.set" | "settings.get" | "settings.set" | "connector.start" | "connector.stop" | "connector.supervised" | "run.enqueue" | "run.list" | "hub.drain" | "hub.status" | "plugins.list" | "plugins.status" | "plugins.reload" | "stream.replay";
|
|
11
11
|
export declare const HUB_CAPABILITIES: readonly HubCapabilityName[];
|
|
12
12
|
export interface HubProtocolMetadata {
|
|
13
13
|
protocolVersion: string;
|
|
@@ -299,6 +299,72 @@ export interface HubSessionSearchHit {
|
|
|
299
299
|
snippet: string;
|
|
300
300
|
score: number;
|
|
301
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Lifecycle state of one plugin module loaded by a host (normally the Hub).
|
|
304
|
+
*
|
|
305
|
+
* - `loading`: the module is being imported.
|
|
306
|
+
* - `ready`: imported and set up without errors.
|
|
307
|
+
* - `degraded`: a hook or tool call failed; the plugin is still called.
|
|
308
|
+
* - `failed`: the last setup failed, or the plugin is off for every session
|
|
309
|
+
* because its import failed, a stray error was attributed to it, or calls
|
|
310
|
+
* kept failing. Only a setup failure lets the next session try again.
|
|
311
|
+
* - `disabled`: turned off in settings; never imported.
|
|
312
|
+
*/
|
|
313
|
+
export type PluginRuntimeState = "loading" | "ready" | "degraded" | "failed" | "disabled";
|
|
314
|
+
/**
|
|
315
|
+
* Where a plugin error happened: `discover`, `import`, `setup`, `dispose`,
|
|
316
|
+
* `hook:<name>`, `tool:<name>`, `command:<name>`, `rule:<id>`,
|
|
317
|
+
* `messageBuilder:<name>`, or `uncaught` for a stray exception or rejection
|
|
318
|
+
* the host attributed to the plugin from its stack.
|
|
319
|
+
*/
|
|
320
|
+
export type PluginErrorPhase = "discover" | "import" | "setup" | "dispose" | "uncaught" | `hook:${string}` | `tool:${string}` | `command:${string}` | `rule:${string}` | `messageBuilder:${string}`;
|
|
321
|
+
export interface PluginErrorRecord {
|
|
322
|
+
phase: PluginErrorPhase;
|
|
323
|
+
message: string;
|
|
324
|
+
stack?: string;
|
|
325
|
+
pluginPath: string;
|
|
326
|
+
/** Epoch milliseconds. */
|
|
327
|
+
timestamp: number;
|
|
328
|
+
sessionId?: string;
|
|
329
|
+
timedOut?: boolean;
|
|
330
|
+
}
|
|
331
|
+
export interface PluginStatusRecord {
|
|
332
|
+
/** Plugin `name` export, or a name derived from the path before import. */
|
|
333
|
+
name: string;
|
|
334
|
+
pluginPath: string;
|
|
335
|
+
state: PluginRuntimeState;
|
|
336
|
+
lastError?: PluginErrorRecord;
|
|
337
|
+
errorCount: number;
|
|
338
|
+
timeoutCount: number;
|
|
339
|
+
/** Live sessions that set this plugin up. */
|
|
340
|
+
sessionIds: string[];
|
|
341
|
+
capabilities?: string[];
|
|
342
|
+
hooks?: string[];
|
|
343
|
+
/** Epoch milliseconds of the last state or error change. */
|
|
344
|
+
updatedAt: number;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Per-session plugin selection, shaped like `toolPolicies`: `"*"` sets the
|
|
348
|
+
* default and named entries override it for one plugin. Plugins are enabled
|
|
349
|
+
* unless a policy says otherwise.
|
|
350
|
+
*/
|
|
351
|
+
export interface PluginPolicy {
|
|
352
|
+
enabled?: boolean;
|
|
353
|
+
}
|
|
354
|
+
export type PluginPolicies = Record<string, PluginPolicy>;
|
|
355
|
+
/** A plugin a session asked for but does not have, reported at session start. */
|
|
356
|
+
export interface SessionPluginIssue {
|
|
357
|
+
name: string;
|
|
358
|
+
pluginPath: string;
|
|
359
|
+
state: PluginRuntimeState;
|
|
360
|
+
/** `session_policy` when the session's `plugins` policy turned it off. */
|
|
361
|
+
reason?: "session_policy" | "settings" | "error";
|
|
362
|
+
lastError?: PluginErrorRecord;
|
|
363
|
+
}
|
|
364
|
+
export interface HubPluginsReloadInput {
|
|
365
|
+
/** Plugin name or absolute module path. */
|
|
366
|
+
plugin: string;
|
|
367
|
+
}
|
|
302
368
|
/**
|
|
303
369
|
* Strongly typed task command payloads. This map is intentionally extensible so
|
|
304
370
|
* other Hub command families can adopt typed payloads without changing the wire
|
|
@@ -315,6 +381,9 @@ export interface HubCommandInputMap {
|
|
|
315
381
|
"task.run": HubTaskRevisionInput;
|
|
316
382
|
"task.automation.get": Record<string, never>;
|
|
317
383
|
"task.automation.set": HubTaskAutomationSetInput;
|
|
384
|
+
"plugins.list": Record<string, never>;
|
|
385
|
+
"plugins.status": Record<string, never>;
|
|
386
|
+
"plugins.reload": HubPluginsReloadInput;
|
|
318
387
|
}
|
|
319
388
|
/** Typed task command results returned in {@link HubReplyEnvelope.payload}. */
|
|
320
389
|
export interface HubCommandOutputMap {
|
|
@@ -349,11 +418,20 @@ export interface HubCommandOutputMap {
|
|
|
349
418
|
"task.automation.set": {
|
|
350
419
|
policy: AgendaAutomationPolicy;
|
|
351
420
|
};
|
|
421
|
+
"plugins.list": {
|
|
422
|
+
plugins: PluginStatusRecord[];
|
|
423
|
+
};
|
|
424
|
+
"plugins.status": {
|
|
425
|
+
plugins: PluginStatusRecord[];
|
|
426
|
+
};
|
|
427
|
+
"plugins.reload": {
|
|
428
|
+
plugins: PluginStatusRecord[];
|
|
429
|
+
};
|
|
352
430
|
}
|
|
353
431
|
export type HubTypedCommandName = keyof HubCommandInputMap & HubCommandName;
|
|
354
432
|
export type HubCommandInput<TCommand extends HubTypedCommandName> = HubCommandInputMap[TCommand];
|
|
355
433
|
export type HubCommandOutput<TCommand extends HubTypedCommandName> = HubCommandOutputMap[TCommand];
|
|
356
|
-
export type HubCommandName = "client.register" | "client.update" | "client.unregister" | "client.list" | "cline.account.get_current" | "prompt_commands.list" | "prompt_commands.execute" | "mention_files.search" | "catalog.list" | "session.list" | "session.search" | "session.create" | "session.attach" | "session.detach" | "session.get" | "session.messages" | "session.restore" | "session.delete" | "session.update" | "session.update_connection" | "session.compaction.get" | "session.compaction.update" | "session.pending_prompts" | "session.steer_first_pending_prompt" | "session.update_pending_prompt" | "session.remove_pending_prompt" | "session.fork" | "session.hook" | "run.start" | "session.send_input" | "run.enqueue" | "run.list" | "run.abort" | "run.proceed_while_running" | "hub.drain" | "hub.status" | "approval.request" | "approval.respond" | "capability.request" | "capability.progress" | "capability.respond" | "peer.register" | "peer.list_sessions" | "peer.attach_session" | "peer.detach_session" | "peer.proxy_command" | "schedule.create" | "schedule.list" | "schedule.get" | "schedule.update" | "schedule.delete" | "schedule.enable" | "schedule.disable" | "schedule.trigger" | "schedule.list_executions" | "schedule.stats" | "schedule.active" | "schedule.upcoming" | "task.create" | "task.list" | "task.get" | "task.update" | "task.approve" | "task.cancel" | "task.run" | "task.automation.get" | "task.automation.set" | "settings.list" | "settings.get" | "settings.patch" | "settings.toggle" | "connector.channels" | "connector.configure" | "connector.delete_config" | "connector.start" | "connector.stop" | "connector.supervised" | "cron.event.ingest" | "cron.event.list" | "cron.event.get" | "ui.notify" | "ui.show_window";
|
|
434
|
+
export type HubCommandName = "client.register" | "client.update" | "client.unregister" | "client.list" | "cline.account.get_current" | "prompt_commands.list" | "prompt_commands.execute" | "mention_files.search" | "catalog.list" | "session.list" | "session.search" | "session.create" | "session.attach" | "session.detach" | "session.get" | "session.messages" | "session.restore" | "session.delete" | "session.update" | "session.update_connection" | "session.compaction.get" | "session.compaction.update" | "session.pending_prompts" | "session.steer_first_pending_prompt" | "session.update_pending_prompt" | "session.remove_pending_prompt" | "session.fork" | "session.hook" | "run.start" | "session.send_input" | "run.enqueue" | "run.list" | "run.abort" | "run.proceed_while_running" | "hub.drain" | "hub.status" | "plugins.list" | "plugins.status" | "plugins.reload" | "approval.request" | "approval.respond" | "capability.request" | "capability.progress" | "capability.respond" | "peer.register" | "peer.list_sessions" | "peer.attach_session" | "peer.detach_session" | "peer.proxy_command" | "schedule.create" | "schedule.list" | "schedule.get" | "schedule.update" | "schedule.delete" | "schedule.enable" | "schedule.disable" | "schedule.trigger" | "schedule.list_executions" | "schedule.stats" | "schedule.active" | "schedule.upcoming" | "task.create" | "task.list" | "task.get" | "task.update" | "task.approve" | "task.cancel" | "task.run" | "task.automation.get" | "task.automation.set" | "settings.list" | "settings.get" | "settings.patch" | "settings.toggle" | "connector.channels" | "connector.configure" | "connector.delete_config" | "connector.start" | "connector.stop" | "connector.supervised" | "cron.event.ingest" | "cron.event.list" | "cron.event.get" | "ui.notify" | "ui.show_window";
|
|
357
435
|
export declare const HUB_DEFAULT_COMMAND_TIMEOUT_MS = 30000;
|
|
358
436
|
export declare const HUB_COMMAND_SLOW_LOG_MS = 5000;
|
|
359
437
|
export declare function getDefaultHubCommandTimeoutMs(command: HubCommandName): number | null;
|
|
@@ -378,7 +456,7 @@ export interface HubReplyEnvelope {
|
|
|
378
456
|
details?: Record<string, unknown>;
|
|
379
457
|
};
|
|
380
458
|
}
|
|
381
|
-
export type HubEventName = "hub.client.registered" | "hub.client.disconnected" | "session.created" | "session.updated" | "session.attached" | "session.detached" | "session.forked" | "session.pending_prompts" | "session.pending_prompt_submitted" | "run.started" | "run.heartbeat" | "run.aborted" | "run.completed" | "run.failed" | "run.enqueued" | "run.interrupted" | "hub.drain_changed" | "iteration.started" | "iteration.finished" | "assistant.delta" | "assistant.media" | "assistant.finished" | "session.notice" | "reasoning.delta" | "reasoning.finished" | "agent.done" | "usage.updated" | "tool.started" | "tool.updated" | "tool.finished" | "approval.requested" | "approval.resolved" | "capability.requested" | "capability.resolved" | "team.progress" | "artifact.created" | "diff.created" | "spoke.started" | "spoke.failed" | "spoke.stopped" | "peer.registered" | "peer.session_attached" | "peer.session_detached" | "schedule.created" | "schedule.updated" | "schedule.deleted" | "schedule.triggered" | "schedule.execution_completed" | "schedule.execution_failed" | "task.created" | "task.updated" | "task.deleted" | "task.run.started" | "task.run.completed" | "task.run.failed" | "task.automation.updated" | "settings.changed" | "ui.notify" | "ui.show_window" | "hub.client.updated";
|
|
459
|
+
export type HubEventName = "hub.client.registered" | "hub.client.disconnected" | "session.created" | "session.updated" | "session.attached" | "session.detached" | "session.forked" | "session.pending_prompts" | "session.pending_prompt_submitted" | "run.started" | "run.heartbeat" | "run.aborted" | "run.completed" | "run.failed" | "run.enqueued" | "run.interrupted" | "hub.drain_changed" | "iteration.started" | "iteration.finished" | "assistant.delta" | "assistant.media" | "assistant.finished" | "session.notice" | "reasoning.delta" | "reasoning.finished" | "agent.done" | "usage.updated" | "tool.started" | "tool.updated" | "tool.finished" | "approval.requested" | "approval.resolved" | "capability.requested" | "capability.resolved" | "team.progress" | "artifact.created" | "diff.created" | "spoke.started" | "spoke.failed" | "spoke.stopped" | "peer.registered" | "peer.session_attached" | "peer.session_detached" | "schedule.created" | "schedule.updated" | "schedule.deleted" | "schedule.triggered" | "schedule.execution_completed" | "schedule.execution_failed" | "task.created" | "task.updated" | "task.deleted" | "task.run.started" | "task.run.completed" | "task.run.failed" | "task.automation.updated" | "settings.changed" | "plugin.status_changed" | "ui.notify" | "ui.show_window" | "hub.client.updated";
|
|
382
460
|
export interface HubEventEnvelope {
|
|
383
461
|
version: HubProtocolVersion;
|
|
384
462
|
event: HubEventName;
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export * from "./llms/model-tools";
|
|
|
26
26
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
27
27
|
export { type ModelReasoningOption, ModelReasoningOptionSchema, REASONING_LEVELS, type ReasoningEffort, ReasoningEffortSchema, type ReasoningLevel, ReasoningLevelSchema, } from "./llms/reasoning-options";
|
|
28
28
|
export { serializeAbortReason } from "./llms/requests";
|
|
29
|
-
export { CHARS_PER_TOKEN, estimateRequestInputTokens, estimateTokens, type TokenEstimatedRequest, } from "./llms/tokens";
|
|
29
|
+
export { CHARS_PER_TOKEN, createImageAwareReplacer, ESTIMATED_TOKENS_PER_IMAGE, estimateRequestInputTokens, estimateTokens, type TokenEstimatedRequest, } from "./llms/tokens";
|
|
30
30
|
export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy, } from "./llms/tools";
|
|
31
31
|
export { TOOL_REJECTION_SUFFIX, ToolCallRecordSchema, USER_REJECTED_TOOL_REASON, } from "./llms/tools";
|
|
32
32
|
export type { StreamingAudioTranscriptionSession } from "./llms/transcription";
|