@runlith/tagma 0.1.0 → 0.2.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/host.d.ts +421 -421
- package/package.json +6 -1
- package/plugin/{Held-6krt6ncs.js → Held-cvetk2wg.js} +1 -1
- package/plugin/{accountKey-tdjj67f5.js → accountKey-t44g9avw.js} +1 -1
- package/plugin/anthropic-messages-svq0svwe.js +2 -0
- package/plugin/anthropic-q1xa9n0j.js +2 -0
- package/plugin/{auth-0w6kk39v.js → auth-cp8wnd0z.js} +1 -1
- package/plugin/authStatus-d6scztz5.js +2 -0
- package/plugin/bundling.d.ts +3 -3
- package/plugin/{callback-server-0wrzmjfx.js → callback-server-q2asby82.js} +1 -1
- package/plugin/{capabilities-n3vfpy41.js → capabilities-jfhf61dt.js} +1 -1
- package/plugin/cli.js +1 -1
- package/plugin/{cliStore-9rhjxtht.js → cliStore-5s0qerr7.js} +1 -1
- package/plugin/{connect-vrdsw05j.js → connect-d7ec6kfh.js} +1 -1
- package/plugin/credential-garn07qc.js +2 -0
- package/plugin/deepseek-sp4vxjqy.js +2 -0
- package/plugin/definition-0h3gqd2z.js +2 -0
- package/plugin/{deviceGrant-vgbscpr4.js → deviceGrant-axpyc7xr.js} +1 -1
- package/plugin/duplex-yexjcpv2.js +2 -0
- package/plugin/endpoint-0b9bsb4q.js +2 -0
- package/plugin/{errors-5t42p4q1.js → errors-kck87dpv.js} +1 -1
- package/plugin/{events-e8vv9hda.js → events-81m69vqz.js} +1 -1
- package/plugin/executor-avear8af.js +2 -0
- package/plugin/failure-ddv4456n.js +2 -0
- package/plugin/framing-jnd2zm0h.js +2 -0
- package/plugin/grant-85r3bbqn.js +2 -0
- package/plugin/{harness-nrh78w4d.js → harness-jm3fhnwg.js} +1 -1
- package/plugin/headers-w6p5sp18.js +2 -0
- package/plugin/{ids-n269hc5k.js → ids-2dndaq8y.js} +1 -1
- package/plugin/images-s2kqebfv.js +2 -0
- package/plugin/{index-cyd7v366.js → index-b3yp4szm.js} +1 -1
- package/plugin/{index-jpmjpmkn.js → index-xs7nfsck.js} +1 -1
- package/plugin/lifecycle-er51apxp.js +2 -0
- package/plugin/{messages-1szh3p3k.js → messages-gmwcg1pq.js} +1 -1
- package/plugin/{metadata-zm1v3ptf.js → metadata-gpazs3f5.js} +1 -1
- package/plugin/muse-g8bc58v8.js +2 -0
- package/plugin/notes-5m0m3pdr.js +2 -0
- package/plugin/{openai-37dne8v0.js → openai-6f50tf64.js} +1 -1
- package/plugin/openai-compatible-chat-eez8hkge.js +2 -0
- package/plugin/openai-images-haszbnft.js +2 -0
- package/plugin/{openai-0z6fy497.js → openai-mfqwg6pa.js} +1 -1
- package/plugin/openai-responses-1gpyp640.js +2 -0
- package/plugin/{opencodeGo-173fz5c5.js → opencodeGo-1wgdjtjz.js} +1 -1
- package/plugin/{options-pxwjpfdk.js → options-476akxaj.js} +1 -1
- package/plugin/{pkce-nrpept7w.js → pkce-y3sh5pk8.js} +1 -1
- package/plugin/{plugin-qpda63gv.js → plugin-0e34qaar.js} +1 -1
- package/plugin/{plugin-521srf94.js → plugin-1zkx860n.js} +1 -1
- package/plugin/{plugin-285exjxd.js → plugin-217mw9ck.js} +1 -1
- package/plugin/{plugin-a4ng6krf.js → plugin-24j9hnc7.js} +1 -1
- package/plugin/{plugin-pkxw1pfs.js → plugin-2s6bq45c.js} +1 -1
- package/plugin/{plugin-q1sqj2tc.js → plugin-3969dy0b.js} +1 -1
- package/plugin/{plugin-7y7ndrk9.js → plugin-3t0qp574.js} +1 -1
- package/plugin/{plugin-je5cfnqn.js → plugin-6vzw5yyr.js} +1 -1
- package/plugin/{plugin-sfdxgkds.js → plugin-7swap1ad.js} +1 -1
- package/plugin/{plugin-zz7yc97m.js → plugin-7te9b50h.js} +1 -1
- package/plugin/{plugin-1x94cj6e.js → plugin-7xmwhj5h.js} +1 -1
- package/plugin/{plugin-vv72e4ah.js → plugin-8g8myq9g.js} +1 -1
- package/plugin/{plugin-3whwpedj.js → plugin-8q44b578.js} +1 -1
- package/plugin/{plugin-v7k9fx92.js → plugin-8v4g0q0b.js} +1 -1
- package/plugin/{plugin-zphe2a5v.js → plugin-8x3c401q.js} +1 -1
- package/plugin/{plugin-zxe49p72.js → plugin-92sxs4r1.js} +1 -1
- package/plugin/{plugin-ff38dxy1.js → plugin-9zbh7788.js} +1 -1
- package/plugin/{plugin-nkb5bb2q.js → plugin-a3vzpk4e.js} +1 -1
- package/plugin/{plugin-g65b14k1.js → plugin-azkzdkpk.js} +1 -1
- package/plugin/{plugin-nqmb78ez.js → plugin-d28d8jar.js} +1 -1
- package/plugin/{plugin-zvyk8bnr.js → plugin-dd951075.js} +1 -1
- package/plugin/{plugin-zew2m18x.js → plugin-dqxdznvd.js} +1 -1
- package/plugin/plugin-dsjq4tye.js +3 -0
- package/plugin/{plugin-3pfrkxg1.js → plugin-e5ybk2a2.js} +1 -1
- package/plugin/{plugin-njh1f7b2.js → plugin-eksq91yp.js} +1 -1
- package/plugin/{plugin-yxgg03s0.js → plugin-er1kc6f6.js} +1 -1
- package/plugin/{plugin-60bdzk1r.js → plugin-fjsmz1vy.js} +1 -1
- package/plugin/{plugin-d6hbav22.js → plugin-fre9hdcg.js} +1 -1
- package/plugin/{plugin-jjm52353.js → plugin-g0zv4vrz.js} +1 -1
- package/plugin/{plugin-ay29ch70.js → plugin-g4hst0jz.js} +1 -1
- package/plugin/{plugin-zw3ywa4b.js → plugin-g7hrtg2p.js} +1 -1
- package/plugin/{plugin-kjtzm2q6.js → plugin-hkjxkgty.js} +1 -1
- package/plugin/{plugin-pfj9nc2e.js → plugin-p6x7emar.js} +1 -1
- package/plugin/{plugin-ba1sv0th.js → plugin-pdww1ma8.js} +1 -1
- package/plugin/{plugin-fhc5q7r3.js → plugin-psj9935q.js} +1 -1
- package/plugin/{plugin-frrvs5yc.js → plugin-q6pvb1xf.js} +1 -1
- package/plugin/{plugin-8230g28p.js → plugin-r342d8zf.js} +1 -1
- package/plugin/{plugin-q1n5kwx0.js → plugin-r7g3vqrm.js} +1 -1
- package/plugin/plugin-t4xrq5q2.js +3 -0
- package/plugin/{plugin-z6hkd9rw.js → plugin-tetj2cr3.js} +1 -1
- package/plugin/{plugin-h66k1zhn.js → plugin-v80m00bq.js} +1 -1
- package/plugin/{plugin-8jf7f360.js → plugin-vqrd05eg.js} +1 -1
- package/plugin/{plugin-e2y95zm5.js → plugin-w3zbkmy6.js} +1 -1
- package/plugin/{plugin-1n46me5n.js → plugin-y9cdpmbv.js} +1 -1
- package/plugin/{plugin-ca4vf4j5.js → plugin-yg0h5k5d.js} +1 -1
- package/plugin/{plugin-gkgs7vfv.js → plugin-yp736z4n.js} +1 -1
- package/plugin/{plugin-q7rk75bs.js → plugin-zrb8bbr4.js} +1 -1
- package/plugin/{plugin-1xze8f5y.js → plugin-zsv7wawc.js} +1 -1
- package/plugin/plugin.d.ts +1 -1
- package/plugin/process.js +1 -1
- package/plugin/protocol-8c26dk6v.js +2 -0
- package/plugin/{quota-vrrmfag6.js → quota-v63yvp13.js} +1 -1
- package/plugin/quotaRead-esmjycnd.js +2 -0
- package/plugin/reasoning-1saw6tds.js +2 -0
- package/plugin/responseFold-xxhqx4sa.js +2 -0
- package/plugin/{settings-vdypzert.js → settings-8xq8dvhp.js} +1 -1
- package/plugin/{shared-a2yyy8ry.js → shared-4jndfh28.js} +1 -1
- package/plugin/stepfun-xp1c5wpk.js +2 -0
- package/plugin/stream-8yrr289z.js +2 -0
- package/plugin/{synthesisDuplex-m2j6pmyv.js → synthesisDuplex-ch9jhqzt.js} +1 -1
- package/plugin/template.js +1 -1
- package/plugin/testing.js +1 -1
- package/plugin/tool-content-vean6rqa.js +2 -0
- package/plugin/tool-stream-fb180jmt.js +2 -0
- package/plugin/transport-j784dsdr.js +2 -0
- package/plugin/ui.generated.d.ts +2 -5
- package/plugin/vendorCall-82evk8b3.js +2 -0
- package/plugin/{vendorPayload-awxqr7t8.js → vendorPayload-458354fv.js} +1 -1
- package/plugin/vendorWeb-cz5t01m7.js +2 -0
- package/plugin/verbatim-2f2d9n02.js +2 -0
- package/plugin/xai-2cqraa99.js +2 -0
- package/plugin/anthropic-messages-7gtja121.js +0 -2
- package/plugin/anthropic-z9xqmm3q.js +0 -2
- package/plugin/authStatus-a1g3eb9p.js +0 -2
- package/plugin/credential-5sgapkh0.js +0 -2
- package/plugin/deepseek-v388d1wv.js +0 -2
- package/plugin/definition-s3xx207f.js +0 -2
- package/plugin/duplex-kpmftvf7.js +0 -2
- package/plugin/endpoint-kvf97tz7.js +0 -2
- package/plugin/executor-q8kp5q8h.js +0 -2
- package/plugin/failure-vr32debc.js +0 -2
- package/plugin/framing-nktw5sts.js +0 -2
- package/plugin/grant-67b10nhx.js +0 -2
- package/plugin/headers-ss3dzznj.js +0 -2
- package/plugin/images-q80x3bt1.js +0 -2
- package/plugin/lifecycle-qf4fh5m8.js +0 -2
- package/plugin/muse-r16jp51z.js +0 -2
- package/plugin/notes-6amdhm6h.js +0 -2
- package/plugin/openai-compatible-chat-tq9w69h4.js +0 -2
- package/plugin/openai-images-x1sj79qh.js +0 -2
- package/plugin/openai-responses-dka6k753.js +0 -2
- package/plugin/plugin-92redty0.js +0 -3
- package/plugin/plugin-ff9hx5a4.js +0 -3
- package/plugin/protocol-hwnfh4h1.js +0 -2
- package/plugin/quotaRead-vj6e90xc.js +0 -2
- package/plugin/reasoning-5nanktp2.js +0 -2
- package/plugin/responseFold-w4526gvb.js +0 -2
- package/plugin/stepfun-bwsz4nrd.js +0 -2
- package/plugin/stream-bt8etfpc.js +0 -2
- package/plugin/tool-content-b9jtprr7.js +0 -2
- package/plugin/tool-stream-gdajdxn0.js +0 -2
- package/plugin/transport-7hfp9sn4.js +0 -2
- package/plugin/vendorCall-hv01nwsp.js +0 -2
- package/plugin/vendorWeb-vnf344r1.js +0 -2
- package/plugin/verbatim-mqt9x4aa.js +0 -2
- package/plugin/xai-z1ysta23.js +0 -2
- /package/plugin/{plugin-6xpcmvm3.js → plugin-xfcgt5ba.js} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Pt}from"./plugin-
|
|
2
|
+
import{Pt}from"./plugin-6vzw5yyr.js";import{Aa,de}from"./plugin-3t0qp574.js";import{Co}from"./plugin-g4hst0jz.js";import{Ia}from"./plugin-y9cdpmbv.js";import{Io,_a}from"./plugin-e5ybk2a2.js";import{rl,wh,aa,r,y,f,c,s,at,Wc,Vc,ee,ht,pt,n,t,o,x,Kn}from"./plugin-xfcgt5ba.js";var yw="/images/generations",xw="/images/edits",I=o({data:x(o({b64_json:n(t)})),output_format:n(t)}),b=pt(Kn(I)),R={png:"image/png",jpeg:"image/jpeg",jpg:"image/jpeg",webp:"image/webp"},u=(e)=>new de({module:"OpenAIImages",method:"generate",reason:new Aa({message:e})}),E=(e)=>`data:${e.mediaType};base64,${Buffer.from(e.bytes.buffer,e.bytes.byteOffset,e.bytes.byteLength).toString("base64")}`,Sw=(e,a)=>JSON.stringify({...a.images.length===0?{}:{images:a.images.map((d)=>({image_url:E(d)}))},prompt:a.prompt,background:a.transparent?"transparent":"opaque",model:a.model,...e}),S=(e)=>e.text.pipe(s(b),at((a)=>u(`The images answer could not be read: ${a.message}`)),s((a)=>{let d=R[a.output_format??"png"];if(d===void 0)return c(u(`The images answer names an unknown format ${a.output_format}.`));let m=a.data.flatMap((p)=>p.b64_json===void 0?[]:[{bytes:new Uint8Array(Buffer.from(p.b64_json,"base64")),mediaType:d}]);if(m.length===0)return c(u("The images answer carried no picture."));let i=_a(e.headers);return r({images:m,requestId:i["x-request-id"]??i["x-oai-request-id"],headers:ht(i)})})),Dg=ee("OpenAIImages.generate")(function*(e,a){let d=yield*Io,m=`${e.baseURL}${a.images.length===0?yw:xw}`,i=Sw(e.fields,a),p=f(function*(){let g=yield*Co(e.auth)({method:"POST",url:m,body:i,headers:Pt({"Content-Type":"application/json",Accept:"application/json"})});return yield*Vc((h)=>s(d.execute(Ia({url:m,body:i,headers:g}),h),S))}),l=rl(1).pipe(aa(({input:g})=>r(g.status===401&&e.recover!==void 0)),wh(()=>e.recover??y));return yield*Wc(p,l)});
|
|
3
3
|
export{yw,xw,Sw,Dg};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{F}from"./plugin-
|
|
2
|
+
import{F}from"./plugin-xfcgt5ba.js";class tf extends F("WebRefused"){get message(){return this.reason}}var z_=(e,o)=>{let r=e.webfetch===void 0?void 0:o(e.webfetch);if(e.websearch!==void 0)return{websearch:o(e.websearch),webfetch:r};if(r!==void 0)return{webfetch:r};throw Error("A vendor web declares at least one of websearch and webfetch.")};
|
|
3
3
|
export{tf,z_};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{n,w,t,o,O,Kr,ct}from"./plugin-
|
|
2
|
+
import{n,w,t,o,O,Kr,ct}from"./plugin-xfcgt5ba.js";var Uk=o({type:w("text"),text:t}).annotate({identifier:"Tool.TextContent"}),zk=o({type:w("file"),uri:t,mime:t,name:n(t),width:n(ct),height:n(ct)}).annotate({identifier:"Tool.FileContent"}),Pm=O([Uk,zk]).pipe(Kr("type")).annotate({identifier:"LLM.ToolContent"});
|
|
3
3
|
export{Uk,zk,Pm};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Xg,ey}from"./plugin-z6hkd9rw.js";import{Yg}from"./plugin-8230g28p.js";import{Qg,Rm}from"./plugin-ca4vf4j5.js";import{Rt,C,ml,$r,hl,Dp,n,t,o,x,Kn}from"./plugin-6xpcmvm3.js";var b=(e,r)=>{let i=new Set;for(let s of e){if(s==="")throw Error(`${r} has an empty id.`);if(i.has(s))throw Error(`${r} "${s}" is declared twice.`);i.add(s)}},k=(e,r)=>{if(e.length===0)throw Error(`${r} declares no sample rate.`);for(let i of e)if(!Number.isInteger(i)||i<=0)throw Error(`${r} declares rate ${i}.`)},S=(e,r,i)=>{b(e.map((s)=>s.id),`${i} tuning knob`);for(let s of e){if(!(s.min<=s.initial&&s.initial<=s.max))throw Error(`${i} tuning knob "${s.id}" starts outside ${s.min}..${s.max}.`);for(let l of s.modes)if(!r.includes(l))throw Error(`${i} tuning knob "${s.id}" names undeclared turn mode ${l}.`)}},I=(e,r)=>{if(!Number.isInteger(e.languages.hints)||e.languages.hints<0)throw Error(`${r} declares ${e.languages.hints} language hints.`);if(e.translation!==void 0&&e.translation.targets.length===0)throw Error(`${r} translates into no language.`);if(e.kind==="file"){if(e.containers.length===0)throw Error(`${r} takes no file container.`);return}if(k(e.rates,r),e.kind==="batch"){S(e.tuning,["client"],r);return}if(e.turns.length===0)throw Error(`${r} supports no turn mode.`);if(b(e.turns,`${r} turn mode`),e.turns.includes("none")&&e.timestamps!=="word"&&!e.finalize)throw Error(`${r} offers turn mode none without word timestamps or finalize: the core could never close its utterances.`);S(e.tuning,e.turns,r)},F=$r(Xg),H=$r(ey),z=(e)=>{if(!Rt(e))throw Error("A speech list entry is not a speech provider.");let{id:r,label:i,egress:s,credential:l,availability:p,recognizer:c,synthesizer:f}=e;if(typeof r!=="string"||r==="")throw Error("Speech provider has an empty id.");if(typeof i!=="string")throw Error(`Speech provider "${r}" has no label.`);if(!Array.isArray(s)||!s.every((g)=>typeof g==="string"))throw Error(`Speech provider "${r}" declares egress that is not a list of hosts.`);if(!Rt(l)||l._tag!=="none"&&l._tag!=="required")throw Error(`Speech provider "${r}" declares no credential form.`);if(l._tag==="required"&&!Dp(l.schema))throw Error(`Speech provider "${r}" requires a credential without a schema.`);if(typeof p!=="function")throw Error(`Speech provider "${r}" declares no availability.`);let h=(g,a,u,d,m)=>{if(a===void 0)return;if(!Rt(a)||!Array.isArray(a.models))throw Error(`Speech provider "${r}" declares a ${g} without a list of models.`);for(let y of a.models){let w=u(y);if(C(w))throw Error(`Speech provider "${r}" declares a ${g} model that is malformed: ${w.failure.message}`)}for(let y of d){let w=a[y];if((w!==void 0||m.includes(y))&&typeof w!=="function")throw Error(`Speech provider "${r}" declares a ${g} whose ${y} is not a function.`)}};h("recognizer",c,F,["stream","batch","file","resume","discard"],[]),h("synthesizer",f,H,["open"],["open"])},j=(e)=>{let{recognizer:r,synthesizer:i}=e;if(r===void 0&&i===void 0)throw Error(`Speech provider "${e.id}" neither recognizes nor synthesizes.`);if(r!==void 0){if(r.models.length===0)throw Error(`Speech provider "${e.id}" recognizes with no model.`);b(r.models.map((s)=>s.id),`${e.id} recognition model`);for(let s of r.models){let l=`${e.id}/${s.id}`;if(I(s.recognition,l),s.recognition.kind==="stream"&&r.stream===void 0)throw Error(`${l} is a stream model but the recognizer does not stream.`);if(s.recognition.kind==="batch"&&r.batch===void 0)throw Error(`${l} is a batch model but the recognizer takes no clip.`);if(s.recognition.kind==="file"&&r.file===void 0)throw Error(`${l} is a file model but the recognizer takes no file.`)}if(r.resume===void 0!==(r.discard===void 0))throw Error(`Speech provider "${e.id}" resumes work it cannot discard, or discards work it cannot resume.`)}if(i!==void 0){if(i.models.length===0)throw Error(`Speech provider "${e.id}" synthesizes with no model.`);b(i.models.map((s)=>s.id),`${e.id} synthesis model`);for(let s of i.models){let l=`${e.id}/${s.id}`;if(k(s.synthesis.rates,l),s.synthesis.voices.length===0)throw Error(`${l} offers no voice.`);if(b(s.synthesis.voices.map((p)=>p.id),`${l} voice`),s.synthesis.needsLanguage&&s.synthesis.languages.length===0)throw Error(`${l} needs a language but names none.`)}}},q=(e)=>Rt(e)&&typeof e.id==="string"&&e.id!==""?e.id:void 0,D=(e,r,i,s)=>{try{z(e);let l=i.get(e.id);if(l!==void 0)return`Speech provider "${e.id}" is already declared by ${l}.`;let p=s.get(e.id);if(p!==void 0&&p!==r)return`"${e.id}" is already a provider of ${p}.`;j(e);return}catch(l){return l instanceof Error?l.message:String(l)}},Sf=(e,r=new Map)=>{let i=new Map,s=[],l=[];for(let c of e){if("failure"in c){l.push({owner:c.owner,reason:c.failure});continue}for(let f of c.providers){let h=D(f,c.owner,i,r);if(h!==void 0){l.push({owner:c.owner,provider:q(f),reason:h});continue}i.set(f.id,c.owner),s.push(f)}}let p=new Map(s.map((c)=>[c.id,c]));return{providers:s,owners:i,recognition:s.flatMap((c)=>(c.recognizer?.models??[]).map((f)=>({provider:c.id,model:f}))),synthesis:s.flatMap((c)=>(c.synthesizer?.models??[]).map((f)=>({provider:c.id,model:f}))),faults:l,provider:(c)=>p.get(c)}};var A=new Set(["max"]);function v(e){let r=Object.entries(e.models).filter(([,l])=>l.operatorOnly===!0&&l.capabilities.includes("text"));if(r.length>0){let l=e.spawnTextModel;if(!l)return`Provider "${e.id}" has operator-only text model "${r[0]?.[0]}" but no spawnTextModel.`;let p=e.models[l];if(!p?.capabilities.includes("text"))return`Provider "${e.id}" spawnTextModel "${l}" is absent or not a text model.`;if(p.operatorOnly)return`Provider "${e.id}" spawnTextModel "${l}" is operator-only.`}let i=e.lightTextModel;if(i!==void 0){let l=e.models[i.model];if(!l?.capabilities.includes("text")||l.operatorOnly)return`Provider "${e.id}" lightTextModel "${i.model}" is absent, not a text model or operator-only.`;if(i.rung===null?l.reasoning.length>0:!l.reasoning.includes(i.rung))return`Provider "${e.id}" lightTextModel "${i.model}" offers no rung ${i.rung??"none"}.`}let s=Object.entries(e.models).find(([,l])=>l.capabilities.includes("text")&&!l.capacity);if(s!==void 0)return`Text model capacity is required for ${e.id}/${s[0]}.`;if(e.defaultTextModel===""&&!Object.values(e.models).some((l)=>l.capabilities.includes("text")))return null;if(!e.models[e.defaultTextModel]?.capabilities.includes("text"))return`Provider "${e.id}" defaultTextModel "${e.defaultTextModel}" is absent or not a text model.`;return null}function E(e){let r=new Map;for(let a of e){if(r.has(a.id))throw Error(`Provider "${a.id}" is registered twice.`);let u=v(a);if(u!==null)throw Error(u);r.set(a.id,a)}let i=e.flatMap((a)=>Object.entries(a.models).map(([u,d])=>({id:u,key:`${a.id}:${u}`,label:d.label,short:d.short??d.label,provider:a.id,providerLabel:a.label,capacity:d.capacity,cacheLifetime:a.cacheLifetime,requestLimits:a.requestLimits,capabilities:d.capabilities,toolChoice:d.toolChoice,reasoningOptions:d.reasoning.map((m)=>({id:m,label:_(m),short:B(m)})),defaultReasoning:d.defaultReasoning,switches:d.switches??[],supportsAdaptiveThinking:d.supportsAdaptiveThinking??!1,operatorOnly:d.operatorOnly??!1,compactionTrigger:d.compactionTrigger}))),s=(a)=>{let u=r.get(a);if(!u)throw Error(`Unknown model provider "${a}" \u2014 this catalog registers: ${e.map((d)=>d.id).join(", ")}.`);return u},l=(a)=>i.filter((u)=>u.capabilities.includes(a)),p=(a,u)=>l(u).filter((d)=>d.provider===a),c=(a,u)=>{let d=r.get(a);if(d===void 0)return;let m=u??d.defaultTextModel,y=p(d.id,"text");return y.find((w)=>w.id===m)??y.find((w)=>d.models[w.id]?.aliases?.includes(m))},f=(a,u)=>{let d=c(a,u);if(!d?.capacity){let m=s(a);throw Error(`Text model capacity is not configured for ${a}/${u??m.defaultTextModel}.`)}return d},h=(a,u)=>{let d=f(a,u);return d.operatorOnly?f(a,s(a).spawnTextModel):d},g=(a,u,d)=>{let m=N(u,a);if(!m)return null;if(!A.has(m)||d&&!a.operatorOnly)return m;return a.reasoningOptions.filter((y)=>!A.has(y.id)).at(-1)?.id??null};return{providers:e,providerOptions:e.map((a)=>({id:a.id,label:a.label})),options:i,registered:(a)=>r.has(a),named:s,oauth:(a)=>s(a).auth==="oauth",providerLabel:(a)=>r.get(a)?.label??a,modelsOf:(a)=>i.filter((u)=>u.provider===a),modelsFor:p,modelsByCapability:l,defaultTextModelId:(a)=>s(a).defaultTextModel,findTextModel:c,resolveTextModel:f,spawnInherits:h,spawnReasoning:g,textModelCapacity:(a,u)=>{let d=f(a,u);if(!d.capacity)throw Error(`Text model capacity is not configured for ${d.key}.`);return d.capacity},namedSelection:(a,u)=>({provider:a,model:f(a,u).id}),supportsAdaptiveThinking:(a,u)=>f(a,u).supportsAdaptiveThinking,textModelIds:()=>{let a=[...new Set(l("text").map((u)=>u.id))];if(a.length===0)throw Error("Model catalog has no text models.");return a},reasoningLevelIds:()=>{let a=[...new Set(i.flatMap((u)=>u.reasoningOptions.map((d)=>d.id)))];if(a.length===0)throw Error("Model catalog has no reasoning levels.");return a}}}function N(e,r){if(!r||r.reasoningOptions.length===0)return"";if(e&&r.reasoningOptions.some((i)=>i.id===e))return e;if(r.defaultReasoning&&r.reasoningOptions.some((i)=>i.id===r.defaultReasoning))return r.defaultReasoning;return r.reasoningOptions.find((i)=>i.id==="high")?.id??r.reasoningOptions[0]?.id??""}function _(e){switch(e){case"none":return"None";case"minimal":return"Minimal";case"low":return"Low";case"medium":return"Medium";case"high":return"High";case"xhigh":return"XHigh";case"max":return"Max";default:return e}}function B(e){switch(e){case"none":return"None";case"minimal":return"Min";case"low":return"Low";case"medium":return"Med";case"high":return"High";case"xhigh":return"XH";case"max":return"Max";default:return e}}var G=(e,r,i)=>{let s=new Map(e);for(let{accountMode:l}of r){if(l===void 0)continue;let p=s.get(l.section);s.set(l.section,{title:p?.title??l.title,default:p?.default??l.default,modes:new Map([...p?.modes??[],[l.id,i]])})}return s},U=(e,r)=>{let i=r.accountMode,s=i===void 0?void 0:e.get(i.section);if(i===void 0||s===void 0)return null;let l=s.modes.get(i.id);if(l!==void 0)return`provider "${r.id}" declares mode "${i.id}" of section "${i.section}", already declared by ${l}`;if(s.title!==i.title||s.default!==i.default)return`provider "${r.id}" declares section "${i.section}" with another title or default mode than its other modes`;return null},R=(e)=>typeof e?.program!=="string"||!Array.isArray(e.args)||e.args.some((r)=>typeof r!=="string"),K=(e)=>typeof e.directory!=="string"||e.directory===""||R(e.login)||R(e.status)||typeof e.loggedIn!=="function"||e.renew!==void 0&&R(e.renew),P=(e)=>{if(e===void 0||e.credential==null||typeof e.key!=="function"||typeof e.label!=="function")return!0;if(!Array.isArray(e.signIns)||e.signIns.length===0)return!0;let r=new Set;for(let i of e.signIns){if(r.has(i.kind))return!0;switch(r.add(i.kind),i.kind){case"loopback":if(typeof i.run!=="function")return!0;break;case"device":if(i.vendor==null||typeof i.store!=="function")return!0;break;case"paste":if(typeof i.begin!=="function")return!0;break;case"key":if(typeof i.store!=="function")return!0;break;default:return!0}}return!1},X=ml(Qg),J=(e)=>{let{terminal:r,acp:i}=e;if(!X(e.id)||Rm.includes(e.id))return`harness provider "${e.id}" needs an id of up to 64 lowercase letters, digits and hyphens that starts with a letter and is none of ${Rm.join(", ")}`;if(r!==void 0&&(!M(r.binary)||!M(r.prefix)||typeof r.launch?.interactive!=="function"||typeof r.launch.resume!=="function"||typeof r.launch.root!=="function"))return`harness provider "${e.id}" declares a terminal surface without its binary, session prefix or launch`;if(i!==void 0&&(typeof i.argv!=="function"||typeof i.configure!=="function"))return`harness provider "${e.id}" declares an ACP surface without its argv or configure`;if(r!==void 0&&i!==void 0&&i.hosts===null&&i.argv(void 0)[0]!==r.binary)return`harness provider "${e.id}" launches its ACP agent with a program other than its terminal binary ${r.binary}`;if(r===void 0&&i!==void 0&&i.hosts!==null&&!M(i.program))return`harness provider "${e.id}" hosts its ACP agent without a terminal surface and names no program its runner drives`;return null};function V(e){if(typeof e.id!=="string"||e.id==="")return"a provider declares no id";if(e.catalog!==void 0&&typeof e.catalog.read!=="function")return`provider "${e.id}" declares a malformed catalog reader`;if(e.dynamicCatalog===!0&&e.catalog===void 0)return`provider "${e.id}" declares a dynamic catalog without its reader`;let{id:r,accountMode:i}=e;if(i!==void 0&&[i.section,i.title,i.default,i.id,i.label,i.hint].some((s)=>typeof s!=="string"||s===""))return`provider "${e.id}" declares a malformed account mode`;if(i!==void 0&&e.accounts===void 0)return`provider "${e.id}" declares an account mode without accounts`;if(e.kind==="wire"){if(typeof e.profile?.model!=="function")return`provider "${e.id}" declares no request profile`;if(typeof e.quota?.read!=="function")return`provider "${e.id}" declares no quota`;if(e.auth==="cli")return`wire provider "${e.id}" signs in through a CLI`;if(e.auth==="oauth"&&P(e.accounts))return`provider "${e.id}" declares no subscription accounts`;if(Object.keys(e.imageModels??{}).length>0&&typeof e.images?.generate!=="function")return`provider "${e.id}" declares image models without an image profile`;return null}if(e.kind==="harness"){if(e.imageModels!==void 0)return`harness provider "${e.id}" declares image models`;let s=J(e);if(s!==null)return s;if(typeof e.environment!=="function")return`provider "${e.id}" declares no account environment`;if(e.auth==="api-key")return P(e.accounts)?`provider "${e.id}" declares malformed key accounts`:null;if(e.accounts!==void 0&&K(e.accounts))return`provider "${e.id}" declares malformed accounts`;return e.auth==="cli"?null:`harness provider "${r}" declares no supported sign-in`}return`provider "${String(e.id)}" is neither a wire nor a harness provider`}var W=ml(x(Yg)),M=(e)=>typeof e==="string"&&e!=="",T=(e)=>(e.type==="choice"||e.type==="set")&&e.options.length===0||e.type==="rows"&&(e.fields.length===0||e.fields.some(T)),Y=(e)=>{if(e===void 0)return null;if(!M(e.title)||!M(e.instance)||!M(e.name))return"the adapter declares settings without a title, an instance name or a naming field";if(!W(e.fields))return"the adapter declares settings fields the Providers screen cannot draw";if(new Set(e.fields.map((r)=>r.id)).size!==e.fields.length||e.fields.some(T))return"the adapter declares settings fields with repeated ids, or choices without options";if(e.fields.some((r)=>r.type==="rows"&&r.fields.some((i)=>i.id==="_source"||i.id==="_key")))return"row fields use reserved form metadata names";if(!e.fields.some((r)=>r.id===e.name&&r.type==="text"))return"the adapter declares settings without a text field that names an instance";if(e.validate!==void 0&&typeof e.validate!=="function"||e.discover!==void 0&&typeof e.discover!=="function")return"the adapter declares settings whose validate or discover is not a function";return null},bf=(e,r,i=new Map,s=new Map)=>{if(typeof e!=="function")throw Error("models is not an adapter: make it with defineAdapter");let l=e,p=Y(l.settings);if(p!==null)throw Error(p);let c=l(r);if(!Array.isArray(c))throw Error("the adapter does not answer a list of providers");let f=c.map((a)=>a.catalog===void 0?a:{...a,dynamicCatalog:!0}),h=new Set,g=s;for(let a of f){let u=V(a)??v(a)??U(g,a);if(u!==null)throw Error(u);let d=i.get(a.id)??(h.has(a.id)?"this adapter":void 0);if(d!==void 0)throw Error(`provider "${a.id}" is already declared by adapter ${d}`);h.add(a.id),g=G(g,[a],"this adapter")}return E(f),{providers:f,settings:l.settings}};import{readFile as Q,realpath as Z}from"fs/promises";import{join as L}from"path";var fi="tagma-plugin.json";var ee=o({id:t,version:t,providers:n(o({entry:t}))}),te=hl(Kn(ee)),ne,re=(e)=>ne??=(async()=>{let r=[];for(let[i,s]of Object.entries(e))r.push([i,await s().then((l)=>({exports:l}),(l)=>({unloadable:l}))]);Bun.plugin({name:"adapter-host",setup(i){for(let[s,l]of r)i.module(s,()=>{if("unloadable"in l)throw l.unloadable;return{exports:{...l.exports},loader:"object"}})}})})(),oe=(e,r)=>{if(typeof e!=="object"||e===null)throw Error(`${r} exports no provider part as its default: write export default defineProviders({ models, speech })`);let{models:i,speech:s}=e;if(i!==void 0&&typeof i!=="function")throw Error(`${r}: models is not an adapter: make it with defineAdapter from @runlith/tagma/adapter/provider`);if(s!==void 0&&!Array.isArray(s))throw Error(`${r}: speech is not a list of speech providers`);if(i===void 0&&s===void 0)throw Error(`${r} declares neither models nor speech`);return e},Ef=async(e,r,i=process.execArgv)=>{if(!i.includes("--no-install"))throw Error("the server runs without --no-install, so an import outside the host modules would install a second copy instead of failing; start it with bun --no-install");let s=await Z(e),l=L(s,fi),{id:p,version:c,providers:f}=te(await Q(l,"utf8"));if(f===void 0)throw Error(`${l} declares no provider part`);let h=L(s,f.entry);await re(r);let g=await import(h);return{id:p,version:c,...oe(g.default,h)}};var vf=async()=>({"@runlith/adapter-anthropic/icon":()=>import("./icon-044pa3y8.js"),"@runlith/adapter-anthropic/models/anthropic":()=>import("./anthropic-a4pdzrv2.js"),"@runlith/adapter-anthropic/profiles/anthropic":()=>import("./anthropic-z9xqmm3q.js"),"@runlith/adapter-deepseek/models/deepseek":()=>import("./deepseek-fvdrmjr9.js"),"@runlith/adapter-deepseek/profiles/deepseek":()=>import("./deepseek-v388d1wv.js"),"@runlith/adapter-devin/icon":()=>import("./icon-qy92jx2b.js"),"@runlith/adapter-devin/models/devin":()=>import("./devin-hy98d305.js"),"@runlith/adapter-google/icon":()=>import("./icon-ny6qbjvc.js"),"@runlith/adapter-muse/icon":()=>import("./icon-j22svmgp.js"),"@runlith/adapter-muse/models/muse":()=>import("./muse-tfe6sph7.js"),"@runlith/adapter-muse/profiles/muse":()=>import("./muse-r16jp51z.js"),"@runlith/adapter-muse/profiles/museToolSchema":()=>import("./museToolSchema-tbe0f3wa.js"),"@runlith/adapter-openai/models/openai":()=>import("./openai-37dne8v0.js"),"@runlith/adapter-openai/profiles/openai":()=>import("./openai-0z6fy497.js"),"@runlith/adapter-opencode-go/models/opencodeGo":()=>import("./opencodeGo-qgw3pfg6.js"),"@runlith/adapter-opencode-go/profiles/opencodeGo":()=>import("./opencodeGo-173fz5c5.js"),"@runlith/adapter-stepfun/models/stepfun":()=>import("./stepfun-3en5g41d.js"),"@runlith/adapter-stepfun/profiles/stepfun":()=>import("./stepfun-bwsz4nrd.js"),"@runlith/adapter-xai/icon":()=>import("./icon-pz54e8n3.js"),"@runlith/adapter-xai/models/xai":()=>import("./xai-e8sbtk6a.js"),"@runlith/adapter-xai/profiles/xai":()=>import("./xai-z1ysta23.js"),"@runlith/held/Held":()=>import("./Held-6krt6ncs.js"),"@runlith/llm/models/authStatus":()=>import("./authStatus-a1g3eb9p.js"),"@runlith/llm/models/cacheLifetime":()=>import("./cacheLifetime-c5mpw676.js"),"@runlith/llm/models/description":()=>import("./description-8xhxryaq.js"),"@runlith/llm/models/grant":()=>import("./grant-67b10nhx.js"),"@runlith/llm/oauth/accountKey":()=>import("./accountKey-tdjj67f5.js"),"@runlith/llm/oauth/callback-server":()=>import("./callback-server-0wrzmjfx.js"),"@runlith/llm/oauth/cliStore":()=>import("./cliStore-9rhjxtht.js"),"@runlith/llm/oauth/flows/deviceGrant":()=>import("./deviceGrant-vgbscpr4.js"),"@runlith/llm/oauth/flows/manual":()=>import("./manual-2mdscj84.js"),"@runlith/llm/oauth/flows/open-browser":()=>import("./open-browser-vqb7ckt1.js"),"@runlith/llm/oauth/flows/vendorPayload":()=>import("./vendorPayload-awxqr7t8.js"),"@runlith/llm/oauth/pkce":()=>import("./pkce-nrpept7w.js"),"@runlith/llm/oauth/vendor":()=>import("./vendor-pn6b5a8f.js"),"@runlith/llm/oauth/vendorCall":()=>import("./vendorCall-hv01nwsp.js"),"@runlith/llm/profiles/clientSession":()=>import("./clientSession-tmmxm39z.js"),"@runlith/llm/profiles/contract":()=>import("./contract-qn0z7r9c.js"),"@runlith/llm/profiles/credential":()=>import("./credential-5sgapkh0.js"),"@runlith/llm/profiles/images":()=>import("./images-q80x3bt1.js"),"@runlith/llm/profiles/quotaRead":()=>import("./quotaRead-vj6e90xc.js"),"@runlith/llm/profiles/reasoning":()=>import("./reasoning-5nanktp2.js"),"@runlith/llm/profiles/vendorWeb":()=>import("./vendorWeb-vnf344r1.js"),"@runlith/llm/protocols/anthropic-messages":()=>import("./anthropic-messages-7gtja121.js"),"@runlith/llm/protocols/anthropic/stream":()=>import("./stream-bt8etfpc.js"),"@runlith/llm/protocols/openai-compatible-chat":()=>import("./openai-compatible-chat-tq9w69h4.js"),"@runlith/llm/protocols/openai-images":()=>import("./openai-images-x1sj79qh.js"),"@runlith/llm/protocols/openai-responses":()=>import("./openai-responses-dka6k753.js"),"@runlith/llm/protocols/shared":()=>import("./shared-a2yyy8ry.js"),"@runlith/llm/protocols/utils/lifecycle":()=>import("./lifecycle-qf4fh5m8.js"),"@runlith/llm/protocols/utils/tool-stream":()=>import("./tool-stream-gdajdxn0.js"),"@runlith/llm/route/auth":()=>import("./auth-0w6kk39v.js"),"@runlith/llm/route/definition":()=>import("./definition-s3xx207f.js"),"@runlith/llm/route/endpoint":()=>import("./endpoint-kvf97tz7.js"),"@runlith/llm/route/executor":()=>import("./executor-q8kp5q8h.js"),"@runlith/llm/route/framing":()=>import("./framing-nktw5sts.js"),"@runlith/llm/route/notes":()=>import("./notes-6amdhm6h.js"),"@runlith/llm/route/protocol":()=>import("./protocol-hwnfh4h1.js"),"@runlith/llm/route/transport/connect":()=>import("./connect-vrdsw05j.js"),"@runlith/llm/route/transport/verbatim":()=>import("./verbatim-mqt9x4aa.js"),"@runlith/llm/schema/errors":()=>import("./errors-5t42p4q1.js"),"@runlith/llm/schema/events":()=>import("./events-e8vv9hda.js"),"@runlith/llm/schema/ids":()=>import("./ids-n269hc5k.js"),"@runlith/llm/schema/messages":()=>import("./messages-1szh3p3k.js"),"@runlith/llm/schema/options":()=>import("./options-pxwjpfdk.js"),"@runlith/llm/schema/quota":()=>import("./quota-vrrmfag6.js"),"@runlith/llm/schema/responseFold":()=>import("./responseFold-w4526gvb.js"),"@runlith/llm/schema/tool-content":()=>import("./tool-content-b9jtprr7.js"),"@runlith/llm/utils/headers":()=>import("./headers-ss3dzznj.js"),"@runlith/llm/utils/record":()=>import("./record-1m3vvy60.js"),"@runlith/llm/vendorCall":()=>import("./vendorCall-6n5chrn0.js"),"@runlith/speech/protocol/adapter":()=>import("./adapter-qdnpxs6n.js"),"@runlith/speech/protocol/codec":()=>import("./codec-aa8mxqyr.js"),"@runlith/speech/protocol/duplex":()=>import("./duplex-kpmftvf7.js"),"@runlith/speech/protocol/synthesisDuplex":()=>import("./synthesisDuplex-m2j6pmyv.js"),"@runlith/speech/protocol/transport":()=>import("./transport-7hfp9sn4.js"),"@runlith/speech/wire/capabilities":()=>import("./capabilities-n3vfpy41.js"),"@runlith/speech/wire/events":()=>import("./events-s95ybm4g.js"),"@runlith/speech/wire/failure":()=>import("./failure-vr32debc.js"),"@runlith/speech/wire/requests":()=>import("./requests-2zyr1g8e.js"),"@runlith/tagma/adapter/claude-hooks":()=>import("./claudeHooks-edpg1e46.js"),"@runlith/tagma/adapter/harness":()=>import("./harness-nrh78w4d.js"),"@runlith/tagma/adapter/hook":()=>import("./hook-hjrk83m8.js"),"@runlith/tagma/adapter/metadata":()=>import("./metadata-zm1v3ptf.js"),"@runlith/tagma/adapter/payload":()=>import("./payload-2gr4q9g8.js"),"@runlith/tagma/adapter/provider":()=>import("./provider-0b7xxyhn.js"),"@runlith/tagma/adapter/settings":()=>import("./settings-vdypzert.js"),"@runlith/tagma/adapter/speech":()=>import("./speech-067caz1a.js"),"@runlith/utils/object":()=>import("./object-9pjtdam7.js"),effect:()=>import("./index-cyd7v366.js"),"effect/http":()=>import("./index-jpmjpmkn.js")});
|
|
2
|
+
import{Xg,ey}from"./plugin-tetj2cr3.js";import{Yg}from"./plugin-r342d8zf.js";import{Qg,Rm}from"./plugin-yg0h5k5d.js";import{Rt,C,ml,$r,hl,Dp,n,t,o,x,Kn}from"./plugin-xfcgt5ba.js";var b=(e,r)=>{let i=new Set;for(let s of e){if(s==="")throw Error(`${r} has an empty id.`);if(i.has(s))throw Error(`${r} "${s}" is declared twice.`);i.add(s)}},k=(e,r)=>{if(e.length===0)throw Error(`${r} declares no sample rate.`);for(let i of e)if(!Number.isInteger(i)||i<=0)throw Error(`${r} declares rate ${i}.`)},S=(e,r,i)=>{b(e.map((s)=>s.id),`${i} tuning knob`);for(let s of e){if(!(s.min<=s.initial&&s.initial<=s.max))throw Error(`${i} tuning knob "${s.id}" starts outside ${s.min}..${s.max}.`);for(let l of s.modes)if(!r.includes(l))throw Error(`${i} tuning knob "${s.id}" names undeclared turn mode ${l}.`)}},I=(e,r)=>{if(!Number.isInteger(e.languages.hints)||e.languages.hints<0)throw Error(`${r} declares ${e.languages.hints} language hints.`);if(e.translation!==void 0&&e.translation.targets.length===0)throw Error(`${r} translates into no language.`);if(e.kind==="file"){if(e.containers.length===0)throw Error(`${r} takes no file container.`);return}if(k(e.rates,r),e.kind==="batch"){S(e.tuning,["client"],r);return}if(e.turns.length===0)throw Error(`${r} supports no turn mode.`);if(b(e.turns,`${r} turn mode`),e.turns.includes("none")&&e.timestamps!=="word"&&!e.finalize)throw Error(`${r} offers turn mode none without word timestamps or finalize: the core could never close its utterances.`);S(e.tuning,e.turns,r)},F=$r(Xg),H=$r(ey),z=(e)=>{if(!Rt(e))throw Error("A speech list entry is not a speech provider.");let{id:r,label:i,egress:s,credential:l,availability:p,recognizer:c,synthesizer:f}=e;if(typeof r!=="string"||r==="")throw Error("Speech provider has an empty id.");if(typeof i!=="string")throw Error(`Speech provider "${r}" has no label.`);if(!Array.isArray(s)||!s.every((g)=>typeof g==="string"))throw Error(`Speech provider "${r}" declares egress that is not a list of hosts.`);if(!Rt(l)||l._tag!=="none"&&l._tag!=="required")throw Error(`Speech provider "${r}" declares no credential form.`);if(l._tag==="required"&&!Dp(l.schema))throw Error(`Speech provider "${r}" requires a credential without a schema.`);if(typeof p!=="function")throw Error(`Speech provider "${r}" declares no availability.`);let h=(g,a,u,d,m)=>{if(a===void 0)return;if(!Rt(a)||!Array.isArray(a.models))throw Error(`Speech provider "${r}" declares a ${g} without a list of models.`);for(let y of a.models){let w=u(y);if(C(w))throw Error(`Speech provider "${r}" declares a ${g} model that is malformed: ${w.failure.message}`)}for(let y of d){let w=a[y];if((w!==void 0||m.includes(y))&&typeof w!=="function")throw Error(`Speech provider "${r}" declares a ${g} whose ${y} is not a function.`)}};h("recognizer",c,F,["stream","batch","file","resume","discard"],[]),h("synthesizer",f,H,["open"],["open"])},j=(e)=>{let{recognizer:r,synthesizer:i}=e;if(r===void 0&&i===void 0)throw Error(`Speech provider "${e.id}" neither recognizes nor synthesizes.`);if(r!==void 0){if(r.models.length===0)throw Error(`Speech provider "${e.id}" recognizes with no model.`);b(r.models.map((s)=>s.id),`${e.id} recognition model`);for(let s of r.models){let l=`${e.id}/${s.id}`;if(I(s.recognition,l),s.recognition.kind==="stream"&&r.stream===void 0)throw Error(`${l} is a stream model but the recognizer does not stream.`);if(s.recognition.kind==="batch"&&r.batch===void 0)throw Error(`${l} is a batch model but the recognizer takes no clip.`);if(s.recognition.kind==="file"&&r.file===void 0)throw Error(`${l} is a file model but the recognizer takes no file.`)}if(r.resume===void 0!==(r.discard===void 0))throw Error(`Speech provider "${e.id}" resumes work it cannot discard, or discards work it cannot resume.`)}if(i!==void 0){if(i.models.length===0)throw Error(`Speech provider "${e.id}" synthesizes with no model.`);b(i.models.map((s)=>s.id),`${e.id} synthesis model`);for(let s of i.models){let l=`${e.id}/${s.id}`;if(k(s.synthesis.rates,l),s.synthesis.voices.length===0)throw Error(`${l} offers no voice.`);if(b(s.synthesis.voices.map((p)=>p.id),`${l} voice`),s.synthesis.needsLanguage&&s.synthesis.languages.length===0)throw Error(`${l} needs a language but names none.`)}}},q=(e)=>Rt(e)&&typeof e.id==="string"&&e.id!==""?e.id:void 0,D=(e,r,i,s)=>{try{z(e);let l=i.get(e.id);if(l!==void 0)return`Speech provider "${e.id}" is already declared by ${l}.`;let p=s.get(e.id);if(p!==void 0&&p!==r)return`"${e.id}" is already a provider of ${p}.`;j(e);return}catch(l){return l instanceof Error?l.message:String(l)}},Sf=(e,r=new Map)=>{let i=new Map,s=[],l=[];for(let c of e){if("failure"in c){l.push({owner:c.owner,reason:c.failure});continue}for(let f of c.providers){let h=D(f,c.owner,i,r);if(h!==void 0){l.push({owner:c.owner,provider:q(f),reason:h});continue}i.set(f.id,c.owner),s.push(f)}}let p=new Map(s.map((c)=>[c.id,c]));return{providers:s,owners:i,recognition:s.flatMap((c)=>(c.recognizer?.models??[]).map((f)=>({provider:c.id,model:f}))),synthesis:s.flatMap((c)=>(c.synthesizer?.models??[]).map((f)=>({provider:c.id,model:f}))),faults:l,provider:(c)=>p.get(c)}};var A=new Set(["max"]);function v(e){let r=Object.entries(e.models).filter(([,l])=>l.operatorOnly===!0&&l.capabilities.includes("text"));if(r.length>0){let l=e.spawnTextModel;if(!l)return`Provider "${e.id}" has operator-only text model "${r[0]?.[0]}" but no spawnTextModel.`;let p=e.models[l];if(!p?.capabilities.includes("text"))return`Provider "${e.id}" spawnTextModel "${l}" is absent or not a text model.`;if(p.operatorOnly)return`Provider "${e.id}" spawnTextModel "${l}" is operator-only.`}let i=e.lightTextModel;if(i!==void 0){let l=e.models[i.model];if(!l?.capabilities.includes("text")||l.operatorOnly)return`Provider "${e.id}" lightTextModel "${i.model}" is absent, not a text model or operator-only.`;if(i.rung===null?l.reasoning.length>0:!l.reasoning.includes(i.rung))return`Provider "${e.id}" lightTextModel "${i.model}" offers no rung ${i.rung??"none"}.`}let s=Object.entries(e.models).find(([,l])=>l.capabilities.includes("text")&&!l.capacity);if(s!==void 0)return`Text model capacity is required for ${e.id}/${s[0]}.`;if(e.defaultTextModel===""&&!Object.values(e.models).some((l)=>l.capabilities.includes("text")))return null;if(!e.models[e.defaultTextModel]?.capabilities.includes("text"))return`Provider "${e.id}" defaultTextModel "${e.defaultTextModel}" is absent or not a text model.`;return null}function E(e){let r=new Map;for(let a of e){if(r.has(a.id))throw Error(`Provider "${a.id}" is registered twice.`);let u=v(a);if(u!==null)throw Error(u);r.set(a.id,a)}let i=e.flatMap((a)=>Object.entries(a.models).map(([u,d])=>({id:u,key:`${a.id}:${u}`,label:d.label,short:d.short??d.label,provider:a.id,providerLabel:a.label,capacity:d.capacity,cacheLifetime:a.cacheLifetime,requestLimits:a.requestLimits,capabilities:d.capabilities,toolChoice:d.toolChoice,reasoningOptions:d.reasoning.map((m)=>({id:m,label:_(m),short:B(m)})),defaultReasoning:d.defaultReasoning,switches:d.switches??[],supportsAdaptiveThinking:d.supportsAdaptiveThinking??!1,operatorOnly:d.operatorOnly??!1,compactionTrigger:d.compactionTrigger}))),s=(a)=>{let u=r.get(a);if(!u)throw Error(`Unknown model provider "${a}" \u2014 this catalog registers: ${e.map((d)=>d.id).join(", ")}.`);return u},l=(a)=>i.filter((u)=>u.capabilities.includes(a)),p=(a,u)=>l(u).filter((d)=>d.provider===a),c=(a,u)=>{let d=r.get(a);if(d===void 0)return;let m=u??d.defaultTextModel,y=p(d.id,"text");return y.find((w)=>w.id===m)??y.find((w)=>d.models[w.id]?.aliases?.includes(m))},f=(a,u)=>{let d=c(a,u);if(!d?.capacity){let m=s(a);throw Error(`Text model capacity is not configured for ${a}/${u??m.defaultTextModel}.`)}return d},h=(a,u)=>{let d=f(a,u);return d.operatorOnly?f(a,s(a).spawnTextModel):d},g=(a,u,d)=>{let m=N(u,a);if(!m)return null;if(!A.has(m)||d&&!a.operatorOnly)return m;return a.reasoningOptions.filter((y)=>!A.has(y.id)).at(-1)?.id??null};return{providers:e,providerOptions:e.map((a)=>({id:a.id,label:a.label})),options:i,registered:(a)=>r.has(a),named:s,oauth:(a)=>s(a).auth==="oauth",providerLabel:(a)=>r.get(a)?.label??a,modelsOf:(a)=>i.filter((u)=>u.provider===a),modelsFor:p,modelsByCapability:l,defaultTextModelId:(a)=>s(a).defaultTextModel,findTextModel:c,resolveTextModel:f,spawnInherits:h,spawnReasoning:g,textModelCapacity:(a,u)=>{let d=f(a,u);if(!d.capacity)throw Error(`Text model capacity is not configured for ${d.key}.`);return d.capacity},namedSelection:(a,u)=>({provider:a,model:f(a,u).id}),supportsAdaptiveThinking:(a,u)=>f(a,u).supportsAdaptiveThinking,textModelIds:()=>{let a=[...new Set(l("text").map((u)=>u.id))];if(a.length===0)throw Error("Model catalog has no text models.");return a},reasoningLevelIds:()=>{let a=[...new Set(i.flatMap((u)=>u.reasoningOptions.map((d)=>d.id)))];if(a.length===0)throw Error("Model catalog has no reasoning levels.");return a}}}function N(e,r){if(!r||r.reasoningOptions.length===0)return"";if(e&&r.reasoningOptions.some((i)=>i.id===e))return e;if(r.defaultReasoning&&r.reasoningOptions.some((i)=>i.id===r.defaultReasoning))return r.defaultReasoning;return r.reasoningOptions.find((i)=>i.id==="high")?.id??r.reasoningOptions[0]?.id??""}function _(e){switch(e){case"none":return"None";case"minimal":return"Minimal";case"low":return"Low";case"medium":return"Medium";case"high":return"High";case"xhigh":return"XHigh";case"max":return"Max";default:return e}}function B(e){switch(e){case"none":return"None";case"minimal":return"Min";case"low":return"Low";case"medium":return"Med";case"high":return"High";case"xhigh":return"XH";case"max":return"Max";default:return e}}var G=(e,r,i)=>{let s=new Map(e);for(let{accountMode:l}of r){if(l===void 0)continue;let p=s.get(l.section);s.set(l.section,{title:p?.title??l.title,default:p?.default??l.default,modes:new Map([...p?.modes??[],[l.id,i]])})}return s},U=(e,r)=>{let i=r.accountMode,s=i===void 0?void 0:e.get(i.section);if(i===void 0||s===void 0)return null;let l=s.modes.get(i.id);if(l!==void 0)return`provider "${r.id}" declares mode "${i.id}" of section "${i.section}", already declared by ${l}`;if(s.title!==i.title||s.default!==i.default)return`provider "${r.id}" declares section "${i.section}" with another title or default mode than its other modes`;return null},R=(e)=>typeof e?.program!=="string"||!Array.isArray(e.args)||e.args.some((r)=>typeof r!=="string"),K=(e)=>typeof e.directory!=="string"||e.directory===""||R(e.login)||R(e.status)||typeof e.loggedIn!=="function"||e.renew!==void 0&&R(e.renew),P=(e)=>{if(e===void 0||e.credential==null||typeof e.key!=="function"||typeof e.label!=="function")return!0;if(!Array.isArray(e.signIns)||e.signIns.length===0)return!0;let r=new Set;for(let i of e.signIns){if(r.has(i.kind))return!0;switch(r.add(i.kind),i.kind){case"loopback":if(typeof i.run!=="function")return!0;break;case"device":if(i.vendor==null||typeof i.store!=="function")return!0;break;case"paste":if(typeof i.begin!=="function")return!0;break;case"key":if(typeof i.store!=="function")return!0;break;default:return!0}}return!1},X=ml(Qg),J=(e)=>{let{terminal:r,acp:i}=e;if(!X(e.id)||Rm.includes(e.id))return`harness provider "${e.id}" needs an id of up to 64 lowercase letters, digits and hyphens that starts with a letter and is none of ${Rm.join(", ")}`;if(r!==void 0&&(!M(r.binary)||!M(r.prefix)||typeof r.launch?.interactive!=="function"||typeof r.launch.resume!=="function"||typeof r.launch.root!=="function"))return`harness provider "${e.id}" declares a terminal surface without its binary, session prefix or launch`;if(i!==void 0&&(typeof i.argv!=="function"||typeof i.configure!=="function"))return`harness provider "${e.id}" declares an ACP surface without its argv or configure`;if(r!==void 0&&i!==void 0&&i.hosts===null&&i.argv(void 0)[0]!==r.binary)return`harness provider "${e.id}" launches its ACP agent with a program other than its terminal binary ${r.binary}`;if(r===void 0&&i!==void 0&&i.hosts!==null&&!M(i.program))return`harness provider "${e.id}" hosts its ACP agent without a terminal surface and names no program its runner drives`;return null};function V(e){if(typeof e.id!=="string"||e.id==="")return"a provider declares no id";if(e.catalog!==void 0&&typeof e.catalog.read!=="function")return`provider "${e.id}" declares a malformed catalog reader`;if(e.dynamicCatalog===!0&&e.catalog===void 0)return`provider "${e.id}" declares a dynamic catalog without its reader`;let{id:r,accountMode:i}=e;if(i!==void 0&&[i.section,i.title,i.default,i.id,i.label,i.hint].some((s)=>typeof s!=="string"||s===""))return`provider "${e.id}" declares a malformed account mode`;if(i!==void 0&&e.accounts===void 0)return`provider "${e.id}" declares an account mode without accounts`;if(e.kind==="wire"){if(typeof e.profile?.model!=="function")return`provider "${e.id}" declares no request profile`;if(typeof e.quota?.read!=="function")return`provider "${e.id}" declares no quota`;if(e.auth==="cli")return`wire provider "${e.id}" signs in through a CLI`;if(e.auth==="oauth"&&P(e.accounts))return`provider "${e.id}" declares no subscription accounts`;if(Object.keys(e.imageModels??{}).length>0&&typeof e.images?.generate!=="function")return`provider "${e.id}" declares image models without an image profile`;return null}if(e.kind==="harness"){if(e.imageModels!==void 0)return`harness provider "${e.id}" declares image models`;let s=J(e);if(s!==null)return s;if(typeof e.environment!=="function")return`provider "${e.id}" declares no account environment`;if(e.auth==="api-key")return P(e.accounts)?`provider "${e.id}" declares malformed key accounts`:null;if(e.accounts!==void 0&&K(e.accounts))return`provider "${e.id}" declares malformed accounts`;return e.auth==="cli"?null:`harness provider "${r}" declares no supported sign-in`}return`provider "${String(e.id)}" is neither a wire nor a harness provider`}var W=ml(x(Yg)),M=(e)=>typeof e==="string"&&e!=="",T=(e)=>(e.type==="choice"||e.type==="set")&&e.options.length===0||e.type==="rows"&&(e.fields.length===0||e.fields.some(T)),Y=(e)=>{if(e===void 0)return null;if(!M(e.title)||!M(e.instance)||!M(e.name))return"the adapter declares settings without a title, an instance name or a naming field";if(!W(e.fields))return"the adapter declares settings fields the Providers screen cannot draw";if(new Set(e.fields.map((r)=>r.id)).size!==e.fields.length||e.fields.some(T))return"the adapter declares settings fields with repeated ids, or choices without options";if(e.fields.some((r)=>r.type==="rows"&&r.fields.some((i)=>i.id==="_source"||i.id==="_key")))return"row fields use reserved form metadata names";if(!e.fields.some((r)=>r.id===e.name&&r.type==="text"))return"the adapter declares settings without a text field that names an instance";if(e.validate!==void 0&&typeof e.validate!=="function"||e.discover!==void 0&&typeof e.discover!=="function")return"the adapter declares settings whose validate or discover is not a function";return null},bf=(e,r,i=new Map,s=new Map)=>{if(typeof e!=="function")throw Error("models is not an adapter: make it with defineAdapter");let l=e,p=Y(l.settings);if(p!==null)throw Error(p);let c=l(r);if(!Array.isArray(c))throw Error("the adapter does not answer a list of providers");let f=c.map((a)=>a.catalog===void 0?a:{...a,dynamicCatalog:!0}),h=new Set,g=s;for(let a of f){let u=V(a)??v(a)??U(g,a);if(u!==null)throw Error(u);let d=i.get(a.id)??(h.has(a.id)?"this adapter":void 0);if(d!==void 0)throw Error(`provider "${a.id}" is already declared by adapter ${d}`);h.add(a.id),g=G(g,[a],"this adapter")}return E(f),{providers:f,settings:l.settings}};import{readFile as Q,realpath as Z}from"fs/promises";import{join as L}from"path";var fi="tagma-plugin.json";var ee=o({id:t,version:t,providers:n(o({entry:t}))}),te=hl(Kn(ee)),ne,re=(e)=>ne??=(async()=>{let r=[];for(let[i,s]of Object.entries(e))r.push([i,await s().then((l)=>({exports:l}),(l)=>({unloadable:l}))]);Bun.plugin({name:"adapter-host",setup(i){for(let[s,l]of r)i.module(s,()=>{if("unloadable"in l)throw l.unloadable;return{exports:{...l.exports},loader:"object"}})}})})(),oe=(e,r)=>{if(typeof e!=="object"||e===null)throw Error(`${r} exports no provider part as its default: write export default defineProviders({ models, speech })`);let{models:i,speech:s}=e;if(i!==void 0&&typeof i!=="function")throw Error(`${r}: models is not an adapter: make it with defineAdapter from @runlith/tagma/adapter/provider`);if(s!==void 0&&!Array.isArray(s))throw Error(`${r}: speech is not a list of speech providers`);if(i===void 0&&s===void 0)throw Error(`${r} declares neither models nor speech`);return e},Ef=async(e,r,i=process.execArgv)=>{if(!i.includes("--no-install"))throw Error("the server runs without --no-install, so an import outside the host modules would install a second copy instead of failing; start it with bun --no-install");let s=await Z(e),l=L(s,fi),{id:p,version:c,providers:f}=te(await Q(l,"utf8"));if(f===void 0)throw Error(`${l} declares no provider part`);let h=L(s,f.entry);await re(r);let g=await import(h);return{id:p,version:c,...oe(g.default,h)}};var vf=async()=>({"@runlith/adapter-anthropic/icon":()=>import("./icon-044pa3y8.js"),"@runlith/adapter-anthropic/models/anthropic":()=>import("./anthropic-a4pdzrv2.js"),"@runlith/adapter-anthropic/profiles/anthropic":()=>import("./anthropic-q1xa9n0j.js"),"@runlith/adapter-deepseek/models/deepseek":()=>import("./deepseek-fvdrmjr9.js"),"@runlith/adapter-deepseek/profiles/deepseek":()=>import("./deepseek-sp4vxjqy.js"),"@runlith/adapter-devin/icon":()=>import("./icon-qy92jx2b.js"),"@runlith/adapter-devin/models/devin":()=>import("./devin-hy98d305.js"),"@runlith/adapter-google/icon":()=>import("./icon-ny6qbjvc.js"),"@runlith/adapter-muse/icon":()=>import("./icon-j22svmgp.js"),"@runlith/adapter-muse/models/muse":()=>import("./muse-tfe6sph7.js"),"@runlith/adapter-muse/profiles/muse":()=>import("./muse-g8bc58v8.js"),"@runlith/adapter-muse/profiles/museToolSchema":()=>import("./museToolSchema-tbe0f3wa.js"),"@runlith/adapter-openai/models/openai":()=>import("./openai-6f50tf64.js"),"@runlith/adapter-openai/profiles/openai":()=>import("./openai-mfqwg6pa.js"),"@runlith/adapter-opencode-go/models/opencodeGo":()=>import("./opencodeGo-qgw3pfg6.js"),"@runlith/adapter-opencode-go/profiles/opencodeGo":()=>import("./opencodeGo-1wgdjtjz.js"),"@runlith/adapter-stepfun/models/stepfun":()=>import("./stepfun-3en5g41d.js"),"@runlith/adapter-stepfun/profiles/stepfun":()=>import("./stepfun-xp1c5wpk.js"),"@runlith/adapter-xai/icon":()=>import("./icon-pz54e8n3.js"),"@runlith/adapter-xai/models/xai":()=>import("./xai-e8sbtk6a.js"),"@runlith/adapter-xai/profiles/xai":()=>import("./xai-2cqraa99.js"),"@runlith/held/Held":()=>import("./Held-cvetk2wg.js"),"@runlith/llm/models/authStatus":()=>import("./authStatus-d6scztz5.js"),"@runlith/llm/models/cacheLifetime":()=>import("./cacheLifetime-c5mpw676.js"),"@runlith/llm/models/description":()=>import("./description-8xhxryaq.js"),"@runlith/llm/models/grant":()=>import("./grant-85r3bbqn.js"),"@runlith/llm/oauth/accountKey":()=>import("./accountKey-t44g9avw.js"),"@runlith/llm/oauth/callback-server":()=>import("./callback-server-q2asby82.js"),"@runlith/llm/oauth/cliStore":()=>import("./cliStore-5s0qerr7.js"),"@runlith/llm/oauth/flows/deviceGrant":()=>import("./deviceGrant-axpyc7xr.js"),"@runlith/llm/oauth/flows/manual":()=>import("./manual-2mdscj84.js"),"@runlith/llm/oauth/flows/open-browser":()=>import("./open-browser-vqb7ckt1.js"),"@runlith/llm/oauth/flows/vendorPayload":()=>import("./vendorPayload-458354fv.js"),"@runlith/llm/oauth/pkce":()=>import("./pkce-y3sh5pk8.js"),"@runlith/llm/oauth/vendor":()=>import("./vendor-pn6b5a8f.js"),"@runlith/llm/oauth/vendorCall":()=>import("./vendorCall-82evk8b3.js"),"@runlith/llm/profiles/clientSession":()=>import("./clientSession-tmmxm39z.js"),"@runlith/llm/profiles/contract":()=>import("./contract-qn0z7r9c.js"),"@runlith/llm/profiles/credential":()=>import("./credential-garn07qc.js"),"@runlith/llm/profiles/images":()=>import("./images-s2kqebfv.js"),"@runlith/llm/profiles/quotaRead":()=>import("./quotaRead-esmjycnd.js"),"@runlith/llm/profiles/reasoning":()=>import("./reasoning-1saw6tds.js"),"@runlith/llm/profiles/vendorWeb":()=>import("./vendorWeb-cz5t01m7.js"),"@runlith/llm/protocols/anthropic-messages":()=>import("./anthropic-messages-svq0svwe.js"),"@runlith/llm/protocols/anthropic/stream":()=>import("./stream-8yrr289z.js"),"@runlith/llm/protocols/openai-compatible-chat":()=>import("./openai-compatible-chat-eez8hkge.js"),"@runlith/llm/protocols/openai-images":()=>import("./openai-images-haszbnft.js"),"@runlith/llm/protocols/openai-responses":()=>import("./openai-responses-1gpyp640.js"),"@runlith/llm/protocols/shared":()=>import("./shared-4jndfh28.js"),"@runlith/llm/protocols/utils/lifecycle":()=>import("./lifecycle-er51apxp.js"),"@runlith/llm/protocols/utils/tool-stream":()=>import("./tool-stream-fb180jmt.js"),"@runlith/llm/route/auth":()=>import("./auth-cp8wnd0z.js"),"@runlith/llm/route/definition":()=>import("./definition-0h3gqd2z.js"),"@runlith/llm/route/endpoint":()=>import("./endpoint-0b9bsb4q.js"),"@runlith/llm/route/executor":()=>import("./executor-avear8af.js"),"@runlith/llm/route/framing":()=>import("./framing-jnd2zm0h.js"),"@runlith/llm/route/notes":()=>import("./notes-5m0m3pdr.js"),"@runlith/llm/route/protocol":()=>import("./protocol-8c26dk6v.js"),"@runlith/llm/route/transport/connect":()=>import("./connect-d7ec6kfh.js"),"@runlith/llm/route/transport/verbatim":()=>import("./verbatim-2f2d9n02.js"),"@runlith/llm/schema/errors":()=>import("./errors-kck87dpv.js"),"@runlith/llm/schema/events":()=>import("./events-81m69vqz.js"),"@runlith/llm/schema/ids":()=>import("./ids-2dndaq8y.js"),"@runlith/llm/schema/messages":()=>import("./messages-gmwcg1pq.js"),"@runlith/llm/schema/options":()=>import("./options-476akxaj.js"),"@runlith/llm/schema/quota":()=>import("./quota-v63yvp13.js"),"@runlith/llm/schema/responseFold":()=>import("./responseFold-xxhqx4sa.js"),"@runlith/llm/schema/tool-content":()=>import("./tool-content-vean6rqa.js"),"@runlith/llm/utils/headers":()=>import("./headers-w6p5sp18.js"),"@runlith/llm/utils/record":()=>import("./record-1m3vvy60.js"),"@runlith/llm/vendorCall":()=>import("./vendorCall-6n5chrn0.js"),"@runlith/speech/protocol/adapter":()=>import("./adapter-qdnpxs6n.js"),"@runlith/speech/protocol/codec":()=>import("./codec-aa8mxqyr.js"),"@runlith/speech/protocol/duplex":()=>import("./duplex-yexjcpv2.js"),"@runlith/speech/protocol/synthesisDuplex":()=>import("./synthesisDuplex-ch9jhqzt.js"),"@runlith/speech/protocol/transport":()=>import("./transport-j784dsdr.js"),"@runlith/speech/wire/capabilities":()=>import("./capabilities-jfhf61dt.js"),"@runlith/speech/wire/events":()=>import("./events-s95ybm4g.js"),"@runlith/speech/wire/failure":()=>import("./failure-ddv4456n.js"),"@runlith/speech/wire/requests":()=>import("./requests-2zyr1g8e.js"),"@runlith/tagma/adapter/claude-hooks":()=>import("./claudeHooks-edpg1e46.js"),"@runlith/tagma/adapter/harness":()=>import("./harness-jm3fhnwg.js"),"@runlith/tagma/adapter/hook":()=>import("./hook-hjrk83m8.js"),"@runlith/tagma/adapter/metadata":()=>import("./metadata-gpazs3f5.js"),"@runlith/tagma/adapter/payload":()=>import("./payload-2gr4q9g8.js"),"@runlith/tagma/adapter/provider":()=>import("./provider-0b7xxyhn.js"),"@runlith/tagma/adapter/settings":()=>import("./settings-8xq8dvhp.js"),"@runlith/tagma/adapter/speech":()=>import("./speech-067caz1a.js"),"@runlith/utils/object":()=>import("./object-9pjtdam7.js"),effect:()=>import("./index-b3yp4szm.js"),"effect/http":()=>import("./index-xs7nfsck.js")});
|
|
3
3
|
export{Sf,bf,fi,Ef,vf};
|