@hiperplano/aluy-cli 1.0.0-rc.40 → 1.0.0-rc.42
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-bundle/bin/aluy.js +43 -43
- package/dist-bundle/index.js +5 -5
- package/package.json +1 -1
package/dist-bundle/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var LN=Object.defineProperty;var S=(t,e,o)=>()=>{if(o)throw o[0];try{return t&&(e=t(t=0)),e}catch(n){throw o=[n],n}};var Wf=(t,e)=>{for(var o in e)LN(t,o,{get:e[o],enumerable:!0})};var ca,Tx=S(()=>{"use strict";ca="1.0.0-rc.
|
|
1
|
+
var LN=Object.defineProperty;var S=(t,e,o)=>()=>{if(o)throw o[0];try{return t&&(e=t(t=0)),e}catch(n){throw o=[n],n}};var Wf=(t,e)=>{for(var o in e)LN(t,o,{get:e[o],enumerable:!0})};var ca,Tx=S(()=>{"use strict";ca="1.0.0-rc.42"});function Pn(t,e){return t.decide(e)}var qr=S(()=>{"use strict"});var en,Nn,In=S(()=>{"use strict";en="remember",Nn="recall"});var Gf,PN,Ws,zf=S(()=>{"use strict";Gf=class{id;horizon;label;parentId;children;dependencies;pinned;closed;createdAt;lastAccessedAt;accessCount;context;constructor(e,o,n,r,s){this.id=e,this.horizon=o,this.label=n,this.parentId=r,this.children=new Set,this.dependencies=new Set,this.pinned=!1,this.closed=!1,this.createdAt=s,this.lastAccessedAt=s,this.accessCount=0,this.context=[]}touch(e){this.lastAccessedAt=e,this.accessCount+=1}snapshot(){return{id:this.id,horizon:this.horizon,label:this.label,parentId:this.parentId,children:[...this.children],dependencies:[...this.dependencies],pinned:this.pinned,closed:this.closed,createdAt:this.createdAt,lastAccessedAt:this.lastAccessedAt,accessCount:this.accessCount,contextSize:this.context.length}}},PN=200,Ws=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??PN,this.now=e?.clock??Date.now}static boxId(e,o){return`${e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)}-${o.toString(36)}`}openBox(e,o,n,r){let s=this.nodes.get(e);if(s)return s.touch(this.now()),{box:s.snapshot(),created:!1};if(this.nodes.size>=this.maxBoxes&&(this.evictOne(),this.nodes.size>=this.maxBoxes))return null;let i=this.now(),a=new Gf(e,o,n,r??null,i);if(r){let c=this.nodes.get(r);c&&c.children.add(e)}return this.nodes.set(e,a),{box:a.snapshot(),created:!0}}closeBox(e){let o=this.nodes.get(e);return o?(o.closed=!0,o.touch(this.now()),o.snapshot()):null}isClosed(e){let o=this.nodes.get(e);return o?o.closed:!1}reopenBox(e){let o=this.nodes.get(e);return o?(o.closed=!1,o.touch(this.now()),o.snapshot()):null}setHorizon(e,o){let n=this.nodes.get(e);return n?(n.horizon=o,n.touch(this.now()),n.snapshot()):null}setParent(e,o){let n=this.nodes.get(e);return n?n.parentId===o?n.snapshot():o!==null&&this.wouldCreateCycle(e,o)?null:(n.parentId&&this.nodes.get(n.parentId)?.children.delete(e),n.parentId=o,o&&this.nodes.get(o)?.children.add(e),n.touch(this.now()),n.snapshot()):null}wouldCreateCycle(e,o){let n=new Set,r=o;for(;r!==null;){if(r===e||n.has(r))return!0;n.add(r),r=this.nodes.get(r)?.parentId??null}return!1}getBox(e){let o=this.nodes.get(e);return o?(o.touch(this.now()),o.snapshot()):null}listBoxes(e="lastAccessedAt"){let o=[...this.nodes.values()].map(n=>n.snapshot());switch(e){case"createdAt":return o.sort((n,r)=>n.createdAt-r.createdAt);case"accessCount":return o.sort((n,r)=>r.accessCount-n.accessCount);default:return o.sort((n,r)=>r.lastAccessedAt-n.lastAccessedAt)}}get size(){return this.nodes.size}addContext(e,o){let n=this.nodes.get(e);return n?(n.context.push({ts:this.now(),text:o}),n.touch(this.now()),n.snapshot()):null}getContext(e){let o=this.nodes.get(e);return o?(o.touch(this.now()),[...o.context]):[]}getContextChain(e){let o=[],n=new Set,r=e;for(;r&&!n.has(r);){n.add(r);let s=this.nodes.get(r);if(!s)break;s.touch(this.now()),o.push({boxId:s.id,entries:[...s.context]}),r=s.parentId}return o}addDependency(e,o){let n=this.nodes.get(e);return!n||!this.nodes.has(o)||n.id===o?!1:(n.dependencies.add(o),n.touch(this.now()),!0)}getDependencies(e){let o=this.nodes.get(e);return o?[...o.dependencies]:[]}pinBox(e){let o=this.nodes.get(e);return o?(o.pinned=!0,o.touch(this.now()),o.snapshot()):null}unpinBox(e){let o=this.nodes.get(e);return o?(o.pinned=!1,o.touch(this.now()),o.snapshot()):null}evictOne(){let e=[];for(let n of this.nodes.values())n.horizon==="longo"||n.pinned||e.push(n);if(e.length===0)return null;e.sort((n,r)=>{let s=n.horizon==="curto"?0:1,i=r.horizon==="curto"?0:1;if(s!==i)return s-i;let a=n.closed?0:1,c=r.closed?0:1;return a!==c?a-c:n.lastAccessedAt!==r.lastAccessedAt?n.lastAccessedAt-r.lastAccessedAt:n.accessCount-r.accessCount});let o=e[0];return this.removeNode(o)}forceEvict(e){let o=this.nodes.get(e);return!o||o.horizon==="longo"||o.pinned?null:this.removeNode(o)}removeBox(e){let o=this.nodes.get(e);return o?this.removeNode(o):null}removeNode(e){if(e.parentId){let o=this.nodes.get(e.parentId);o&&o.children.delete(e.id)}return this.nodes.delete(e.id),e.snapshot()}}});function sd(t){let e=[];for(let o of t){e.push({step:o,depth:0});for(let n of o.substeps??[])e.push({step:n,depth:1})}return e}function Cx(t,e){let o,n="pending",r;if(typeof t=="string")o=t;else if(t!==null&&typeof t=="object"){let i=t,a=i.title??i.step??i.text??i.name??i.content;if(typeof a=="string"&&(o=a),typeof i.status=="string"&&NN.has(i.status)&&(n=i.status),e){let c=i.substeps??i.subtasks??i.subpassos??i.children;if(Array.isArray(c)&&c.length>0){let l=[];for(let d of c){let f=Cx(d,!1);if(typeof f=="string")return f;l.push(f)}r=l}}}if(o===void 0||o.trim()==="")return DN;let s=o.trim().slice(0,IN);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function $N(t){let e=t.steps??t.plan??t.todos??t.items;if(!Array.isArray(e))return{error:'update_plan: passe "steps" como uma LISTA de passos (string ou {title,status}).'};if(e.length===0)return{error:"update_plan: a lista de passos est\xE1 vazia."};let o=[];for(let i of e){let a=Cx(i,!0);if(typeof a=="string")return{error:a};o.push(a)}let n=new Set,r=i=>{if(!n.has(i))return n.add(i),i;for(let a=2;;a++){let c=`${i} #${a}`;if(!n.has(c))return n.add(c),c}};for(let i=0;i<o.length;i++){let a=o[i],c=r(a.title),l=a.substeps?.map(d=>({...d,title:r(d.title)}));o[i]=l!==void 0?{...a,title:c,substeps:l}:{...a,title:c}}let s=sd(o).length;return s>_x?{error:`update_plan: no m\xE1ximo ${_x} passos (recebidos ${s}).`}:{steps:o}}function FN(t){let e=sd(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${Ox[r.step.status]} ${r.step.title}`).join(`
|
|
2
2
|
`);return`plano (${o}/${e.length}):
|
|
3
3
|
${n}`}function UN(t,e){return e<0?"m\xE9dio":t===e?"curto":t>e?"longo":"m\xE9dio"}function jN(t,e){let o=new Map;for(let i of e.listBoxes())o.set(i.label,i.id);let n=t.findIndex(i=>i.status==="in_progress"||(i.substeps??[]).some(a=>a.status==="in_progress")),r=(i,a,c)=>{let l=i.status==="in_progress"?"curto":c,d=o.get(i.title),f=d??Ws.boxId(i.title,0);return d?(i.status!=="completed"&&e.isClosed(d)&&e.reopenBox(d),e.setHorizon(d,l),e.setParent(d,a)):e.openBox(f,l,i.title,a),i.status==="completed"&&!e.isClosed(f)&&e.closeBox(f),o.set(i.title,f),f};t.forEach((i,a)=>{let c=UN(a,n),l=r(i,null,c);for(let d of i.substeps??[])r(d,l,c)});let s=new Set;for(let i of t){s.add(i.title);for(let a of i.substeps??[])s.add(a.title)}for(let i of e.listBoxes())s.has(i.label)||e.removeBox(i.id)}function HN(t,e){if(!e)return FN(t);let o=new Map;for(let l of e.listBoxes())o.set(l.label,l);let n=new Map;for(let l of e.listBoxes())n.set(l.id,l);let r=new Map,s=(l,d=new Set)=>{let f=r.get(l);if(f!==void 0)return f;let u=n.get(l);if(!u||!u.parentId||d.has(l))return r.set(l,0),0;let p=s(u.parentId,new Set(d).add(l))+1;return r.set(l,p),p},i=sd(t),c=[`plano (${i.filter(l=>l.step.status==="completed").length}/${i.length}):`];for(let{step:l,depth:d}of i){let f=o.get(l.title),u=f?BN[f.horizon]:"",p=f?s(f.id):d,h=" ".repeat(p),g=Ox[l.status];c.push(`${h}${u} ${g} ${l.title}`)}return c.join(`
|
|
4
4
|
`)}var la,NN,_x,IN,DN,Ox,BN,Rx,qN,Mx,id=S(()=>{"use strict";zf();la="update_plan";NN=new Set(["pending","in_progress","completed"]),_x=30,IN=120,DN="update_plan: cada passo precisa de um t\xEDtulo (texto) n\xE3o-vazio.";Ox={pending:"\u2610",in_progress:"\u25B6",completed:"\u2611"};BN={longo:"[\u{1F4D0}]",m\u00E9dio:"[\u{1F4CB}]",curto:"[\u{1F4CC}]"};Rx=Object.freeze({type:"string",enum:["pending","in_progress","completed"],description:"pending (a fazer) \xB7 in_progress (em curso) \xB7 completed (feito)."}),qN=Object.freeze({type:"object",properties:{steps:{type:"array",description:"A lista COMPLETA de passos do plano (re-emita TODOS a cada atualiza\xE7\xE3o \u2014 substitui o anterior).",items:{type:"object",properties:{title:{type:"string",description:"O passo, curto e no imperativo."},status:Rx,substeps:{type:"array",description:"OPCIONAL: sub-passos que detalham este passo (1 n\xEDvel). Aparecem indentados sob o passo e seguem o foco dele. Use quando um passo tem a\xE7\xF5es menores distintas.",items:{type:"object",properties:{title:{type:"string",description:"O sub-passo, curto e no imperativo."},status:Rx},required:["title"],additionalProperties:!1}}},required:["title"],additionalProperties:!1}}},required:["steps"],additionalProperties:!1}),Mx={name:la,effect:"read",description:"Declara/atualiza um PLANO vis\xEDvel (checklist de passos). Use ao iniciar uma tarefa com V\xC1RIOS passos e a cada progresso: re-emita a lista TODA marcando o status de cada passo (pending/in_progress/completed). Mantenha 1 passo in_progress por vez. N\xE3o tem efeito no sistema \u2014 \xE9 s\xF3 o seu plano, para voc\xEA e para o usu\xE1rio acompanharem.",parameters:qN,async run(t,e){let o=$N(t);return"error"in o?{ok:!1,observation:o.error}:(e.graph&&jN(o.steps,e.graph),e.plan&&e.plan.set(sd(o.steps).map(r=>({title:r.step.title,status:r.step.status}))),{ok:!0,observation:HN(o.steps,e.graph)})}}});function Lx(t){let e=t.question??t.prompt??t.text??t.message;if(typeof e!="string"||e.trim()==="")return{error:'perguntar: passe "question" (a pergunta em texto). Para escolha, passe tamb\xE9m "options".'};let o=e.trim().slice(0,2e3),n=t.header??t.title,r=typeof n=="string"&&n.trim()!==""?n.trim().slice(0,200):void 0,s=t.options??t.choices,i=Array.isArray(s)?GN(s):void 0;if(typeof i=="string")return{error:i};let a,c=t.kind??t.type;if(typeof c=="string"&&WN.has(c))a=c;else{if(typeof c=="string"&&c.trim()!=="")return{error:`perguntar: "kind" inv\xE1lido "${c}". Use "single", "multi" ou "text".`};a=i!==void 0&&i.length>0?"single":"text"}if((a==="single"||a==="multi")&&(i===void 0||i.length===0))return{error:`perguntar: kind "${a}" requer "options" (uma lista de ao menos 1 op\xE7\xE3o).`};let l=t.allowOther!==!1;return{spec:{kind:a,question:o,...r!==void 0?{header:r}:{},...a!=="text"&&i!==void 0?{options:i}:{},...a!=="text"?{allowOther:l}:{}}}}function GN(t){if(t.length===0)return'perguntar: a lista de "options" est\xE1 vazia.';if(t.length>12)return`perguntar: no m\xE1ximo 12 op\xE7\xF5es (recebidas ${t.length}).`;let e=[];for(let o of t){let n,r;if(typeof o=="string")n=o;else if(o!==null&&typeof o=="object"){let s=o,i=s.label??s.text??s.value??s.name??s.title;typeof i=="string"&&(n=i),typeof s.description=="string"&&s.description.trim()!==""&&(r=s.description.trim().slice(0,300))}if(n===void 0||n.trim()==="")return'perguntar: cada op\xE7\xE3o precisa de um "label" (texto) n\xE3o-vazio.';e.push({label:n.trim().slice(0,200),...r!==void 0?{description:r}:{}})}return e}function zN(t){switch(t.kind){case"choice":return t.label;case"choices":return t.labels.length===0?"(nenhuma)":t.labels.join(", ");case"text":{let e=t.text.split(`
|
|
@@ -27,7 +27,7 @@ ${e.text}`,display:o};case"unavailable":return{ok:!1,observation:`N\xE3o foi pos
|
|
|
27
27
|
|
|
28
28
|
`)}}if(o+=e.decode(),o.trim().length>0){let r=bS(o);r&&(yield r)}}function bS(t){let e="message",o=[],n=!1;for(let r of t.split(`
|
|
29
29
|
`)){if(r===""||r.startsWith(":"))continue;let s=r.indexOf(":"),i=s===-1?r:r.slice(0,s),a=s===-1?"":r.slice(s+1);a.startsWith(" ")&&(a=a.slice(1)),i==="event"?(e=a,n=!0):i==="data"&&(o.push(a),n=!0)}return n?{event:e,data:o.join(`
|
|
30
|
-
`)}:null}var Od=S(()=>{"use strict"});function ES(t=globalThis.process?.env??{}){let e=kS(t[SS]),o=kS(t[wS]);return{maxConsecutiveLineRepeats:e!==void 0?Math.max(3,e):25,maxCycleLen:80,minCycleSpanChars:o!==void 0?Math.max(200,o):2e3,trivialLineMaxLen:1}}function TS(t=globalThis.process?.env??{}){let e=(t[AS]??"").trim().toLowerCase();return!(e==="1"||e==="true"||e==="yes"||e==="on")}function _S(t,e,o){let n=t.length;if(!(n<o))for(let r=1;r<=e&&!(r*2>n);r++){let s=r;for(;s<n&&t.charCodeAt(n-1-s)===t.charCodeAt(n-1-s%r);)s++;if(s>=o&&s>=r*2){let i=t.slice(n-r);return{period:r,unit:i,repeats:Math.floor(s/r)}}}}function zr(t,e){return TS(t)?new Ld(ES(t),e):QI}function Md(t){let e=t.replace(/\s+/g," ").trim();return e.length<=vS?e:`${e.slice(0,vS)}\u2026`}function kS(t){if(t===void 0)return;let e=t.trim();if(e==="")return;let o=Number(e);if(!(!Number.isFinite(o)||o<=0))return Math.floor(o)}var xS,SS,wS,AS,Gr,vS,Ld,QI,xa=S(()=>{"use strict";xS={maxConsecutiveLineRepeats:25,maxCycleLen:80,minCycleSpanChars:2e3,trivialLineMaxLen:1},SS="ALUY_DEGENERATE_LINE_REPEATS",wS="ALUY_DEGENERATE_CYCLE_SPAN",AS="ALUY_DEGENERATE_OFF";Gr=class extends Error{kind;repeats;sample;constructor(e,o,n){super(`loop de repeti\xE7\xE3o degenerado detectado (${e}, ${o}\xD7)`),this.name="DegenerateLoopError",this.kind=e,this.repeats=o,this.sample=n}},vS=60,Ld=class{cfg;bus;lineBuf="";lastLine;lineRepeatCount=1;tail="";tailMax;constructor(e=xS,o){this.cfg=e,this.bus=o,this.tailMax=e.minCycleSpanChars+e.maxCycleLen+1}push(e){e.length!==0&&(this.pushForLineHeuristic(e),this.pushForCycleHeuristic(e))}pushForLineHeuristic(e){let o=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&(this.lineBuf+=e.slice(o,n),this.commitLine(this.lineBuf),this.lineBuf="",o=n+1);o<e.length&&(this.lineBuf+=e.slice(o))}commitLine(e){let o=e.trim();if(o.length<=this.cfg.trivialLineMaxLen){this.lastLine=void 0,this.lineRepeatCount=1;return}if(o===this.lastLine){if(this.lineRepeatCount+=1,this.lineRepeatCount>=this.cfg.maxConsecutiveLineRepeats)throw this.bus?.publish({origin:"degeneration",severity:"warning",ts:Date.now(),payload:{kind:"line-repeat",repeats:this.lineRepeatCount,sample:Md(o)}}),new Gr("line-repeat",this.lineRepeatCount,Md(o))}else this.lastLine=o,this.lineRepeatCount=1}pushForCycleHeuristic(e){if(this.tail+=e,this.tail.length>this.tailMax&&(this.tail=this.tail.slice(this.tail.length-this.tailMax)),this.tail.length<this.cfg.minCycleSpanChars)return;let o=_S(this.tail,this.cfg.maxCycleLen,this.cfg.minCycleSpanChars);if(o)throw this.bus?.publish({origin:"degeneration",severity:"critical",ts:Date.now(),payload:{kind:"short-cycle",repeats:o.repeats,sample:Md(o.unit)}}),new Gr("short-cycle",o.repeats,Md(o.unit))}};QI={push(){}}});function ZI(t){if(t===void 0)return;let e=t.trim();if(e==="")return;let o=Number(e);if(!(!Number.isFinite(o)||o<=0))return Math.floor(o)}function eD(t){let e=t[CS]?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"||e==="on"}function Yr(t=process.env){return eD(t)?new Sa(0):new Sa(ZI(t[RS])??25165824)}var RS,CS,Kr,Sa,Pd=S(()=>{"use strict";RS="ALUY_STREAM_MAX_BYTES",CS="ALUY_STREAM_CAP_OFF",Kr="length_client_cap",Sa=class{max;total=0;_tripped=!1;constructor(e=25165824){this.max=e>0?Math.floor(e):0}get tripped(){return this._tripped}get bytes(){return this.total}get limit(){return this.max}addText(e){return this.addBytes(Buffer.byteLength(e,"utf8"))}addToolCall(e){let o=0;try{o=Buffer.byteLength(JSON.stringify(e.input??{}),"utf8")}catch{o=256}return this.addBytes(Buffer.byteLength(e.id,"utf8")+Buffer.byteLength(e.name,"utf8")+o)}addBytes(e){return this.max<=0?!1:(this.total+=e>0?e:0,this.total>this.max&&(this._tripped=!0),this._tripped)}}});function Id(t){if(!Dd(t))return;let{fiveHour:e,week:o}=tD(t.windows),n=oD(t.credit);return{windows:{...e!==void 0?{fiveHour:e}:{},...o!==void 0?{week:o}:{}},...n!==void 0?{credit:n}:{}}}function Gp(t){if(!Dd(t))return;let e=OS(t,"quota_5h"),o=OS(t,"quota_week");if(!(e===void 0&&o===void 0))return{windows:{...e!==void 0?{fiveHour:e}:{},...o!==void 0?{week:o}:{}}}}function PS(t,e,o){if(!(e===void 0||e<=0))return{used:Math.max(0,t??0),limit:e,...o!==void 0?{resetAt:o}:{}}}function tD(t){if(!Array.isArray(t))return{};let e={};for(let o of t){if(!Dd(o))continue;let n=NS(o.period);if(n===void 0)continue;let r=PS(Nd(o.used),Nd(o.limit),Aa(o.reset_at??o.resetAt));r!==void 0&&(n==="5h"?e.fiveHour=r:(n==="week"||n==="weekly")&&(e.week=r))}return e}function OS(t,e){return PS(Nd(t[`${e}_used`]),Nd(t[`${e}_limit`]),Aa(t[`${e}_reset_at`]))}function oD(t){if(!Dd(t))return;let e=NS(t.balance);return e!==void 0?{balance:e}:void 0}function Nd(t){if(t==null)return;let e=typeof t=="number"?t:String(t).trim();if(e==="")return;let o=typeof e=="number"?e:Number(e);if(!(!Number.isFinite(o)||o<0))return Math.round(o)}function NS(t){if(typeof t!="string")return;let e=t.trim();return e===""?void 0:e}function Aa(t){if(t==null)return;if(typeof t=="number")return MS(t);let e=String(t).trim();if(e==="")return;if(/^\d+(\.\d+)?$/.test(e)){let n=Number(e);return Number.isFinite(n)?MS(n):void 0}let o=Date.parse(e);return Number.isFinite(o)?o:void 0}function MS(t){if(!(!Number.isFinite(t)||t<=0))return t<1e12?Math.round(t*1e3):Math.round(t)}function IS(t){return t.limit<=0?0:Math.min(100,Math.max(0,Math.floor(t.used/t.limit*100)))}function wa(t,e=Date.now()){let o=t-e;if(!Number.isFinite(o)||o<=0)return"agora";let n=Math.floor(o/6e4);if(n<1)return"agora";let r=Math.floor(n/60),s=n%60;return r===0?`${s}min`:`${r}h${String(s).padStart(2,"0")}`}function FS(t){return t>=$S?"crit":t>=DS?"warn":"ok"}function Ea(t,e=Date.now()){if(t===void 0)return;let o=[],n,r="ok",s=(c,l)=>{if(l===void 0)return;let d=IS(l),f=FS(d);o.push({label:c,pct:d,level:f}),n===void 0&&l.resetAt!==void 0&&(n=l),r=nD(r,f)};s("5h",t.windows.fiveHour),s("semana",t.windows.week);let i=t.credit?.balance;if(o.length===0&&i===void 0)return;let a=n?.resetAt!==void 0?wa(n.resetAt,e)==="agora"?"reseta agora":`reseta em ${wa(n.resetAt,e)}`:void 0;return{segments:o,...i!==void 0?{creditBalance:i}:{},...a!==void 0?{resetText:a}:{},maxLevel:r}}function nD(t,e){return LS[e]>LS[t]?e:t}function Dd(t){return typeof t=="object"&&t!==null}var DS,$S,LS,Ta=S(()=>{"use strict";DS=70,$S=90;LS={ok:0,warn:1,crit:2}});function jS(t,e){let o={tier:t.tier,messages:t.messages.map(sD),stream:e};t.session_id!==void 0&&(o.session_id=t.session_id),t.max_tokens!==void 0&&(o.max_tokens=t.max_tokens),t.temperature!==void 0&&(o.temperature=t.temperature),t.context!==void 0&&(o.context=t.context),t.tools!==void 0&&t.tools.length>0&&(o.tools=t.tools,o.tool_choice=t.tool_choice??"auto",t.parallel_tool_calls!==void 0&&(o.parallel_tool_calls=t.parallel_tool_calls));let n=t.model?.trim(),r=n!==void 0&&n!=="";r&&t.tier==="custom"&&(o.model=n);let s=t.provider?.trim();s!==void 0&&s!==""&&r&&t.tier==="custom"&&(o.provider=s);let a=t.reasoning_effort?.trim();return a!==void 0&&a!==""&&(o.reasoning_effort=a),o}function sD(t){let e={role:t.role,content:t.content};return t.tool_calls!==void 0&&t.tool_calls.length>0&&(e.tool_calls=t.tool_calls.map(o=>({id:o.id,type:"function",function:{name:o.name,arguments:JSON.stringify(o.input??{})}}))),t.tool_call_id!==void 0&&(e.tool_call_id=t.tool_call_id),e}function iD(t,e){let o=Yp(e);switch(t){case"start":return{type:"start",request_id:Vt(o,"request_id")??"",...Vt(o,"session_id")!==void 0?{session_id:Vt(o,"session_id")}:{}};case"delta":{let n=Vt(o,"content");return n!==void 0?{type:"delta",content:n}:null}case"tool_call":{let n=HS(o);return n!==null?{type:"tool_call",call:n}:null}case"usage":return{type:"usage",usage:aD(o)};case"done":return{type:"done",finish_reason:Vt(o,"finish_reason")??"stop"};case"error":throw new Le(uo(Kp(o,"status")??502,o));default:return null}}function aD(t){let e={request_id:Vt(t,"request_id")??"",tier:Vt(t,"tier")??""},o=Vt(t,"provider");o!==void 0&&(e.provider=o);let n=Vt(t,"model");n!==void 0&&(e.model=n);let r=Kp(t,"tokens_in");r!==void 0&&(e.tokens_in=r);let s=Kp(t,"tokens_out");s!==void 0&&(e.tokens_out=s);let i=Vt(t,"cost");i!==void 0&&(e.cost=i);let a=Vt(t,"price_version");a!==void 0&&(e.price_version=a);let c=lD(t,"partial");c!==void 0&&(e.partial=c);let l=Vt(t,"balance_after");return l!==void 0&&(e.balance_after=l),e}function HS(t){if(!ur(t))return null;let e=ur(t.function)?t.function:void 0,o=(typeof t.name=="string"?t.name:void 0)??Vt(e,"name");if(o===void 0||o.length===0)return null;let n=Vt(t,"id")??"",r={};return ur(t.input)?r=t.input:e!==void 0&&e.arguments!==void 0?r=BS(e.arguments):t.arguments!==void 0&&(r=BS(t.arguments)),{id:n,name:o,input:r}}function BS(t){if(ur(t))return t;if(typeof t=="string"&&t.trim()!==""){let e=Yp(t);if(ur(e))return e}return{}}function Zs(t,e){if(e.id!==""){let o=t.find(n=>n.id===e.id);if(o!==void 0){let n=t.indexOf(o);t[n]={id:o.id,name:e.name.length>0?e.name:o.name,input:{...o.input,...e.input}};return}}t.push(e)}function cD(t,e){if(t===null)return;let o=t.trim();if(o==="")return;if(/^\d+$/.test(o)){let s=Number(o);return Number.isFinite(s)?s:void 0}let n=Date.parse(o);if(!Number.isFinite(n))return;let r=Math.round((n-e)/1e3);return r>=0?r:0}function Yp(t){try{return JSON.parse(t)}catch{return}}function ur(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Vt(t,e){if(!ur(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Kp(t,e){if(!ur(t))return;let o=t[e];return typeof o=="number"?o:void 0}function lD(t,e){if(!ur(t))return;let o=t[e];return typeof o=="boolean"?o:void 0}function zp(t){if(t?.aborted)throw new ze}function US(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="AbortError"}var rD,_a,$d=S(()=>{"use strict";mo();Od();xa();Pd();Ta();rD="/v1/chat",_a=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async*stream(e){let{request:o,signal:n,idempotencyKey:r}=e;zp(n);let s=await this.getAccessToken();zp(n);let i=await this.send(s,o,n,!0,r);if(!i.ok)throw await this.toBrokerError(i);if(i.body===null)throw new Pe("broker respondeu 2xx sem corpo de stream.");try{for await(let a of ka(i.body)){zp(n);let c=iD(a.event,a.data);if(c&&(yield c),a.event==="usage"){let l=Gp(Yp(a.data));l!==void 0&&(yield{type:"quota",quota:l})}if(a.event==="done")return}}catch(a){throw US(a)||a instanceof ze?new ze:a instanceof Le?a:new Pe("falha ao ler o stream do broker.",a)}}async call(e){let o="",n="",r,s="stop",i,a,c=[],l=zr(),d=Yr(),f=!1;for await(let u of this.stream(e)){switch(u.type){case"start":n=u.request_id,r=u.session_id;break;case"delta":o+=u.content,l.push(u.content),d.addText(u.content)&&(f=!0);break;case"tool_call":Zs(c,u.call),d.addToolCall(u.call)&&(f=!0);break;case"usage":i=u.usage;break;case"quota":a=u.quota;break;case"done":s=u.finish_reason;break}if(f){s=Kr;break}}return{request_id:n,...r!==void 0?{session_id:r}:{},content:o,finish_reason:s,...i!==void 0?{usage:i}:{},...c.length>0?{tool_calls:c}:{},...a!==void 0?{quota:a}:{}}}async send(e,o,n,r,s){let i=jS(o,r),a={authorization:`Bearer ${e}`,"content-type":"application/json",accept:"text/event-stream"};s!==void 0&&(a["idempotency-key"]=s);try{return await this.doFetch(`${this.baseUrl}${rD}`,{method:"POST",headers:a,body:JSON.stringify(i),...n?{signal:n}:{}})}catch(c){throw US(c)?new ze:new Pe("falha de transporte ao chamar o broker.",c)}}async toBrokerError(e){let o;try{o=await e.json()}catch{o=void 0}let n=uo(e.status,o);if(n.retry_after===void 0){let r=cD(e.headers.get("retry-after"),Date.now());if(r!==void 0)return new Le({...n,retry_after:r})}return new Le(n)}}});function uD(t,e){if(t===401||t===403)return"UNAUTHENTICATED";if(t===429)return"RATE_LIMITED";let o=(WS(e)??"").toLowerCase();return(t===400||t===422)&&(o.includes("tool")||o.includes("function calling")||o.includes("function_call"))?"TOOLS_UNSUPPORTED":t>=500?"PROVIDER_ERROR":t===400||t===422?"VALIDATION_FAILED":"PROVIDER_ERROR"}function WS(t){if(typeof t!="object"||t===null)return;let e=t;if(typeof e.message=="string")return e.message;let o=e.error;if(typeof o=="string")return o;if(typeof o=="object"&&o!==null){let n=o.message;if(typeof n=="string")return n}}function Vp(t){if(t?.aborted)throw new ze}function qS(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="AbortError"}var dD,Ra,GS=S(()=>{"use strict";mo();Od();xa();Pd();$d();Wp();dD=8192,Ra=class{adapter;config;baseUrl;getCredential;doFetch;maxTokens;constructor(e){this.adapter=e.adapter,this.config=e.config,this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getCredential=e.getCredential,this.doFetch=e.fetch??globalThis.fetch,this.maxTokens=e.maxTokens??dD}async*stream(e){let{request:o,signal:n}=e;Vp(n);let r=await this.getCredential();Vp(n);let s=this.toLocalRequest(o),i=this.adapter.buildRequest({request:s,baseUrl:this.baseUrl,credential:r}),a;try{a=await this.doFetch(i.url,{method:"POST",headers:i.headers,body:i.body,redirect:"error",...n?{signal:n}:{}})}catch(l){throw qS(l)?new ze:new Pe("falha de transporte ao chamar o provider (backend local).",l)}if(!a.ok)throw await this.toProviderError(a);if(a.body===null)throw new Pe("provider respondeu 2xx sem corpo de stream.");let c=qp();try{for await(let l of ka(a.body)){Vp(n);let d=this.adapter.mapSse(l.event,l.data,c);for(let f of d)if(yield f,f.type==="done")return}}catch(l){throw qS(l)||l instanceof ze?new ze:l instanceof Le?l:new Pe("falha ao ler o stream do provider (backend local).",l)}}async call(e){let o="",n="",r="stop",s,i=[],a=zr(),c=Yr(),l=!1;for await(let d of this.stream(e)){switch(d.type){case"start":n=d.request_id;break;case"delta":o+=d.content,a.push(d.content),c.addText(d.content)&&(l=!0);break;case"tool_call":Zs(i,d.call),c.addToolCall(d.call)&&(l=!0);break;case"usage":s=d.usage;break;case"done":r=d.finish_reason;break}if(l){r=Kr;break}}return{request_id:n,content:o,finish_reason:r,...s!==void 0?{usage:s}:{},...i.length>0?{tool_calls:i}:{}}}toLocalRequest(e){let o,n=[];for(let a of e.messages){if(a.role==="system"&&o===void 0){o=a.content;continue}n.push({role:a.role,content:a.content,...a.tool_calls!==void 0?{tool_calls:a.tool_calls.map(c=>({id:c.id,name:c.name,input:{...c.input}}))}:{},...a.tool_call_id!==void 0?{tool_call_id:a.tool_call_id}:{}})}let r=e.tier==="custom"?e.model?.trim():void 0,i={model:r&&r.length>0?r:this.config.model,messages:n,maxTokens:e.max_tokens??this.maxTokens};return o!==void 0&&(i.system=o),e.temperature!==void 0&&(i.temperature=e.temperature),e.reasoning_effort!==void 0&&(i.reasoningEffort=e.reasoning_effort),e.tools!==void 0&&e.tools.length>0&&(i.tools=e.tools,i.toolChoice=e.tool_choice??"auto"),i}async toProviderError(e){let o;try{o=await e.json()}catch{o=void 0}let n=WS(o),r=uD(e.status,o),s=r==="TOOLS_UNSUPPORTED"?422:e.status,i=uo(s,{code:r,...n!==void 0?{detail:n}:{}});return new Le(i)}}});function Vr(t){let e=t.trim();if(e==="")return;let o=e.split(".");if(o.length===0||o.length>4)return;let n=[];for(let d of o){let f=mD(d);if(f===void 0)return;n.push(f)}let r,s=n.length;if(s===1){if(r=n[0],r>4294967295)return}else{let d=0;for(let h=0;h<s-1;h++){let g=n[h];if(g>255)return;d=d*256+g}let f=n[s-1],u=4-(s-1),p=Math.pow(256,u)-1;if(f>p)return;r=d*Math.pow(256,u)+f}if(r<0||r>4294967295)return;let i=r>>>24&255,a=r>>>16&255,c=r>>>8&255,l=r&255;return`${i}.${a}.${c}.${l}`}function mD(t){if(t==="")return;let e;if(/^0[xX][0-9a-fA-F]+$/.test(t))e=parseInt(t.slice(2),16);else if(/^0[0-7]+$/.test(t))e=parseInt(t,8);else if(/^[0-9]+$/.test(t))e=parseInt(t,10);else return;return Number.isFinite(e)?e:void 0}function Ca(t){let e=t.trim().toLowerCase();e=e.replace(/%.*$/,"").replace(/^\[/,"").replace(/\]$/,"");let o=e.match(/:((?:\d{1,3}\.){3}\d{1,3})$/);if(o&&(e.startsWith("::ffff:")||e.startsWith("::")))return Vr(o[1]);let n=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(n){let r=parseInt(n[1],16),s=parseInt(n[2],16);if(Number.isFinite(r)&&Number.isFinite(s)){let i=r>>8&255,a=r&255,c=s>>8&255,l=s&255;return`${i}.${a}.${c}.${l}`}}}function Oa(t){let e=t.trim().replace(/^\[/,"").replace(/\]$/,"").replace(/%.*$/,"");return e.includes(":")&&/^[0-9a-fA-F:.]+$/.test(e)}function zS(t){let e=t.trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"").replace(/%.*$/,""),o=e.match(/((?:\d{1,3}\.){3}\d{1,3})$/);if(o){let c=Vr(o[1]);if(!c)return;let l=c.split(".").map(Number),d=(l[0]<<8|l[1]).toString(16),f=(l[2]<<8|l[3]).toString(16);e=e.slice(0,o.index)+d+":"+f}let n=e.split("::");if(n.length>2)return;let r=n[0]?n[0].split(":").filter(c=>c!==""):[],s=n.length===2&&n[1]?n[1].split(":").filter(c=>c!==""):[],i=[];for(let c of r){let l=parseInt(c,16);if(!/^[0-9a-f]{1,4}$/.test(c)||!Number.isFinite(l))return;i.push(l)}let a=8-r.length-s.length;if(n.length===2){if(a<0)return;for(let c=0;c<a;c++)i.push(0)}else if(r.length!==8)return;for(let c of s){let l=parseInt(c,16);if(!/^[0-9a-f]{1,4}$/.test(c)||!Number.isFinite(l))return;i.push(l)}return i.length===8?i:void 0}function $n(t){let e=t.trim();if(e==="")return{blocked:!0,reason:"IP vazio",canonical:e};let o=Ca(e);if(o){let r=Xp(o);return r.blocked?{...r,reason:`IPv4-mapped-IPv6 \u2192 ${r.reason}`}:r}if(Oa(e))return fD(e);let n=Vr(e);return n?Xp(n):{blocked:!0,reason:`IP n\xE3o-reconhecido: "${e}"`,canonical:e}}function Jp(t){let e=t.trim();if(e==="")return!1;let o=Ca(e);if(o)return o.split(".")[0]==="127";if(Oa(e)){let r=zS(e);return r?r.slice(0,7).every(s=>s===0)&&r[7]===1:!1}let n=Vr(e);return n?n.split(".")[0]==="127":!1}function Xp(t){let e=t.split(".").map(Number);if(e.length!==4||e.some(s=>!Number.isInteger(s)||s<0||s>255))return{blocked:!0,reason:`IPv4 inv\xE1lido: "${t}"`,canonical:t};let[o,n]=e,r=s=>({blocked:!0,reason:s,canonical:t});return t==="169.254.169.254"?r("endpoint de metadata da cloud (169.254.169.254)"):o===0?r("0.0.0.0/8 (este host / n\xE3o-rote\xE1vel)"):o===127?r("loopback (127.0.0.0/8)"):o===10?r("rede privada RFC1918 (10.0.0.0/8)"):o===172&&n>=16&&n<=31?r("rede privada RFC1918 (172.16.0.0/12)"):o===192&&n===168?r("rede privada RFC1918 (192.168.0.0/16)"):o===169&&n===254?r("link-local (169.254.0.0/16)"):o===100&&n>=64&&n<=127?r("CGNAT (100.64.0.0/10)"):o===198&&(n===18||n===19)?r("rede de benchmark (198.18.0.0/15)"):o>=224?r("multicast/reservado (\u2265224.0.0.0/4)"):t==="255.255.255.255"?r("broadcast (255.255.255.255)"):{blocked:!1,canonical:t}}function fD(t){let e=zS(t);if(!e)return{blocked:!0,reason:`IPv6 inv\xE1lido: "${t}"`,canonical:t};let o=e.map(c=>c.toString(16)).join(":"),n=c=>({blocked:!0,reason:c,canonical:o});if(e.slice(0,7).every(c=>c===0)&&e[7]===1)return n("loopback IPv6 (::1)");if(e.every(c=>c===0))return n("IPv6 unspecified (::)");let s=e[0],i=s>>8&255;if(i===252||i===253)return n("IPv6 ULA privada (fc00::/7)");if((s&65472)===65152)return n("IPv6 link-local (fe80::/10)");if(i===255)return n("IPv6 multicast (ff00::/8)");let a=pD(e);if(a){let c=Xp(a.ipv4);if(c.blocked)return{blocked:!0,reason:`IPv6 ${a.kind} \u2192 ${c.reason}`,canonical:o}}return{blocked:!1,canonical:o}}function pD(t){let e=t,o=(n,r)=>`${n>>8&255}.${n&255}.${r>>8&255}.${r&255}`;if(e[0]===100&&e[1]===65435&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===0)return{ipv4:o(e[6],e[7]),kind:"NAT64 (64:ff9b::/96)"};if(e[0]===100&&e[1]===65435&&e[2]===1)return{ipv4:o(e[6],e[7]),kind:"NAT64 (64:ff9b:1::/48)"};if(e[0]===8194)return{ipv4:o(e[1],e[2]),kind:"6to4 (2002::/16)"}}function ei(t){if(t.length===0)return{ok:!1,reason:"host n\xE3o resolveu para nenhum IP",offendingIp:""};for(let e of t){let o=$n(e);if(o.blocked)return{ok:!1,reason:o.reason??"IP bloqueado pela denylist anti-SSRF",offendingIp:o.canonical}}return{ok:!0,pinnedIp:$n(t[0]).canonical}}var Ma=S(()=>{"use strict"});function KS(t){let e;try{e=new URL(t)}catch{return{reason:`base_url inv\xE1lida: "${t}"`}}return e.protocol!=="https:"&&e.protocol!=="http:"?{reason:`base_url precisa ser http(s): "${t}"`}:e.hostname===""?{reason:`base_url sem host: "${t}"`}:{url:e}}async function Qp(t,e){let o=KS(t);if("reason"in o)return{ok:!1,reason:o.reason};let n=o.url.hostname.replace(/^\[/,"").replace(/\]$/,""),r=$n(n);if(r.blocked&&YS(n))return{ok:!1,reason:`base_url aponta p/ IP interno (${r.reason})`};let s;try{s=await e.resolve(n)}catch{return{ok:!1,reason:`base_url: host "${n}" n\xE3o resolveu (anti-SSRF, fail-safe)`}}let i=ei(s);return i.ok?{ok:!0,url:o.url.toString()}:{ok:!1,reason:`base_url aponta p/ IP interno (${i.reason})`}}async function Zp(t,e){let o=KS(t);if("reason"in o)return{ok:!1,reason:o.reason};let n=o.url.hostname.replace(/^\[/,"").replace(/\]$/,"");if(YS(n)){let i=$n(n);return i.blocked?{ok:!1,reason:`aponta p/ IP interno (${i.reason})`}:{ok:!0,host:n,pinnedIp:i.canonical}}let r;try{r=await e.resolve(n)}catch{return{ok:!1,reason:`host "${n}" n\xE3o resolveu (anti-SSRF, fail-safe)`}}let s=ei(r);return s.ok?{ok:!0,host:n,pinnedIp:s.pinnedIp}:{ok:!1,reason:`aponta p/ IP interno (${s.reason})`}}function YS(t){return!!(t.includes(":")||/^\d+$/.test(t)||/^0x[0-9a-fA-F]+$/.test(t)||/^(\d{1,3}\.){1,3}\d{1,3}$/.test(t)||/^0[0-7]+(\.|$)/.test(t))}var VS=S(()=>{"use strict";Ma()});function fr(){return{entries:QS(hD)}}function mr(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>gD?!1:!kD.test(e)}function xD(t){let e=Array.isArray(t)?t:t!==void 0?[t]:[],o=[];for(let n of e)if(typeof n=="string"){let r=n.trim().toLowerCase();vD.includes(r)&&!o.includes(r)&&o.push(r)}return o.length>0?o:void 0}function SD(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){if(mr(o)){let n=o.trim();e.includes(n)||e.push(n)}if(e.length>=yD)break}return e}function wD(t){return t===1||t===2||t===3?t:void 0}function XS(t){if(typeof t!="object"||t===null)return;let e=t;if(!mr(e.id))return;let o=e.id.trim();if(!mr(e.wireFormat))return;let n=e.wireFormat.trim().toLowerCase();if(!bD.includes(n)||!mr(e.baseUrl))return;let r=xD(e.auth);if(r===void 0||!mr(e.defaultModel))return;let s=mr(e.label)?e.label.trim():o,i={id:o,label:s,wireFormat:n,baseUrl:e.baseUrl.trim(),auth:r,defaultModel:e.defaultModel.trim(),models:SD(e.models)},a=wD(e.wave);return a!==void 0&&(i.wave=a),mr(e.catalogHint)&&(i.catalogHint=e.catalogHint.trim()),mr(e.notes)&&(i.notes=e.notes.trim()),i}function JS(t){let e=Array.isArray(t)?t:typeof t=="object"&&t!==null&&Array.isArray(t.providers)?t.providers:[],o=new Map;for(let n of e){let r=XS(n);r!==void 0&&o.set(r.id,r)}return[...o.values()]}function QS(t){return[...t].sort((e,o)=>{let n=e.wave??99,r=o.wave??99;return n!==r?n-r:e.id.localeCompare(o.id)})}function ZS(t,e){let o=new Map;for(let n of t.entries)o.set(n.id,n);for(let n of e)o.set(n.id,n);return{entries:QS([...o.values()])}}function eh(t){let e=fr();return t==null?e:ZS(e,JS(t))}function Fn(t,e){let o=e.trim().toLowerCase();return t.entries.find(n=>n.id.toLowerCase()===o)}var hD,gD,yD,bD,vD,kD,ew=S(()=>{"use strict";hD=[{id:"anthropic",label:"Anthropic",wireFormat:"anthropic",baseUrl:"https://api.anthropic.com",auth:["apikey","oauth"],defaultModel:"claude-opus-4-8",models:["claude-opus-4-8","claude-3-5-sonnet-latest","claude-3-5-haiku-latest"],wave:1},{id:"openai",label:"OpenAI",wireFormat:"openai-compat",baseUrl:"https://api.openai.com/v1",auth:["apikey","oauth"],defaultModel:"gpt-4o",models:["gpt-4o","gpt-4o-mini","o3","o3-mini","o4-mini"],wave:1},{id:"openrouter",label:"OpenRouter",wireFormat:"openai-compat",baseUrl:"https://openrouter.ai/api/v1",auth:["apikey"],defaultModel:"anthropic/claude-3.5-sonnet",models:["anthropic/claude-3.5-sonnet","openai/gpt-4o","google/gemini-2.0-flash","meta-llama/llama-3.3-70b-instruct","deepseek/deepseek-chat"],wave:1,catalogHint:"centenas via OpenRouter (veja o cat\xE1logo p\xFAblico do provider)"},{id:"google",label:"Google Gemini",wireFormat:"gemini",baseUrl:"https://generativelanguage.googleapis.com/v1beta",auth:["apikey"],defaultModel:"gemini-2.0-flash",models:["gemini-2.0-flash","gemini-2.0-pro","gemini-1.5-pro"],wave:2},{id:"deepseek",label:"DeepSeek",wireFormat:"openai-compat",baseUrl:"https://api.deepseek.com",auth:["apikey"],defaultModel:"deepseek-chat",models:["deepseek-chat","deepseek-reasoner"],wave:2},{id:"groq",label:"Groq",wireFormat:"openai-compat",baseUrl:"https://api.groq.com/openai/v1",auth:["apikey"],defaultModel:"llama-3.3-70b-versatile",models:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768"],wave:2},{id:"mistral",label:"Mistral",wireFormat:"openai-compat",baseUrl:"https://api.mistral.ai/v1",auth:["apikey"],defaultModel:"mistral-large-latest",models:["mistral-large-latest","mistral-small-latest","codestral-latest"],wave:2},{id:"xai",label:"xAI (Grok)",wireFormat:"openai-compat",baseUrl:"https://api.x.ai/v1",auth:["apikey"],defaultModel:"grok-2-latest",models:["grok-2-latest","grok-2-vision-latest"],wave:3},{id:"ollama",label:"Ollama (local)",wireFormat:"openai-compat",baseUrl:"http://127.0.0.1:11434/v1",auth:["none"],defaultModel:"llama3.2",models:["llama3.2","qwen2.5-coder","deepseek-r1"],wave:3,notes:"roda local; sem credencial (auth none). O egress local ainda \xE9 pinado/validado."}];gD=256,yD=200,bD=["openai-compat","anthropic","gemini"],vD=["apikey","oauth","none"],kD=/[\u0000-\u001F\u007F]/});var tw=S(()=>{"use strict";lS();uS();Wp();hS();yS();GS();VS();ew()});var ow,La,th=S(()=>{"use strict";mo();Ta();ow="/v1/quota",La=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async fetchQuota(){let e;try{e=await this.getAccessToken()}catch{return}let o;try{o=await this.doFetch(`${this.baseUrl}${ow}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch{return}if(!o.ok)return;let n;try{n=await o.json()}catch{return}return Id(n)}async fetchQuotaOrThrow(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${ow}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a quota do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("quota do broker com corpo inv\xE1lido.",r)}return Id(n)}}});function nh(t){if(t===void 0)return;let e=uw(t.balance_after),o=AD(t.limits);if(!(e===void 0&&o===void 0))return{...o??{},...e!==void 0?{balanceAfter:e}:{}}}function AD(t){if(t==null||typeof t!="object")return;let e=oh(t.limit),o=oh(t.used),n=oh(t.remaining),r=ED(t.unit),s=TD(t.period),i=Aa(t.reset_at);if(e!==void 0&&(n===void 0&&o!==void 0&&(n=Math.max(0,e-o)),o===void 0&&n!==void 0&&(o=Math.max(0,e-n))),!(e===void 0&&o===void 0&&n===void 0&&s===void 0&&i===void 0))return{...e!==void 0?{limit:e}:{},...o!==void 0?{used:o}:{},...n!==void 0?{remaining:n}:{},...r!==void 0?{unit:r}:{},...s!==void 0?{period:s}:{},...i!==void 0?{resetAt:i}:{}}}function sw(t){if(t!==void 0&&t.unit!=="credit")return t.limit!==void 0&&t.limit>0?t.limit:void 0}function cw(t){return t>=aw?"crit":t>=iw?"warn":"ok"}function lw(t){if(t===void 0||t.limit===void 0||t.limit<=0)return;let e=t.used!==void 0?t.used:t.remaining!==void 0?Math.max(0,t.limit-t.remaining):void 0;if(e!==void 0)return Math.min(100,Math.max(0,Math.floor(e/t.limit*100)))}function Fd(t,e=dw){return t===void 0||t.balanceAfter===void 0?!1:t.balanceAfter<=e}function Bd(t){if(t===void 0||t.balanceAfter===void 0)return;let e=t.balanceAfter;return Number.isInteger(e)?String(e):String(Math.round(e*100)/100)}function rh(t,e=Date.now()){if(t===void 0)return;let o=[],n="ok",r=lw(t);if(r!==void 0&&sw(t)!==void 0){let a=cw(r),c=t.period!==void 0?t.period:"quota";o.push({label:c,value:`${r}%`,level:a}),n=rw(n,a)}let s=Bd(t);if(s!==void 0){let a=Fd(t)?"crit":"ok";o.push({label:"cr\xE9dito",value:s,level:a}),n=rw(n,a)}if(o.length===0)return;let i;if(t.resetAt!==void 0){let a=wa(t.resetAt,e);i=a==="agora"?"reseta agora":`reseta em ${a}`}return{segments:o,...i!==void 0?{resetText:i}:{},maxLevel:n}}function rw(t,e){return nw[e]>nw[t]?e:t}function uw(t){if(t==null||t==="")return;let e=typeof t=="number"?t:Number(String(t).trim());return Number.isFinite(e)?e:void 0}function oh(t){let e=uw(t);if(!(e===void 0||e<0))return Math.round(e)}function ED(t){if(t==null)return;let e=String(t).trim().toLowerCase();if(e==="credit"||e==="credits"||e==="currency")return"credit";if(e==="tokens"||e==="token")return"tokens"}function TD(t){if(t==null)return;let e=String(t).trim();if(e!=="")return e.length>16?e.slice(0,16):e}var iw,aw,dw,nw,mw=S(()=>{"use strict";Ta();iw=70,aw=90;dw=1;nw={ok:0,warn:1,crit:2}});function fw(t){let e=sh(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[];for(let n of e){if(!sh(n))continue;let r=Xr(n,"key");r===void 0||r===""||o.push({key:r,displayName:Xr(n,"display_name")??r,costSignal:Xr(n,"cost_signal")??"standard",composition:RD(n.composition)})}return o}function RD(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){if(!sh(o))continue;let n=Xr(o,"name");n===void 0||n===""||e.push({name:n,family:Xr(o,"family")??"",role:Xr(o,"role")??"principal",context:Xr(o,"context")??""})}return e}function sh(t){return typeof t=="object"&&t!==null}function Xr(t,e){let o=t[e];return typeof o=="string"?o:void 0}var _D,Pa,ih=S(()=>{"use strict";mo();_D="/v1/tiers/catalog",Pa=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${_D}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler o cat\xE1logo do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("cat\xE1logo do broker com corpo inv\xE1lido.",r)}return fw(n)}}});function hw(t){let e=pw(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[],n=new Set;for(let r of e){if(!pw(r))continue;let s=Ud(r,"id");if(s===void 0||s===""||n.has(s))continue;n.add(s);let i=OD(r,"supports_tools");o.push({id:s,name:Ud(r,"name")??"",family:Ud(r,"family")??"",context:Ud(r,"context")??"",...i===void 0?{}:{supportsTools:i}})}return o}function pw(t){return typeof t=="object"&&t!==null}function Ud(t,e){let o=t[e];return typeof o=="string"?o:void 0}function OD(t,e){let o=t[e];return typeof o=="boolean"?o:void 0}var CD,Na,ah=S(()=>{"use strict";mo();CD="/v1/models/custom",Na=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${CD}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a lista de modelos custom do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("lista de modelos custom do broker com corpo inv\xE1lido.",r)}return hw(n)}}});function bw(t){let e=gw(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[],n=new Set;for(let r of e){if(!gw(r))continue;let s=yw(r,"name");s===void 0||s===""||n.has(s)||(n.add(s),o.push({name:s,adapter:yw(r,"adapter")??""}))}return o}function gw(t){return typeof t=="object"&&t!==null}function yw(t,e){let o=t[e];return typeof o=="string"?o:void 0}var MD,Ia,ch=S(()=>{"use strict";mo();MD="/v1/providers",Ia=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${MD}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a lista de providers do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("lista de providers do broker com corpo inv\xE1lido.",r)}return bw(n)}}});function Da(t){return new _a({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function lh(t){return new Pa({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function dh(t){return new Na({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function uh(t){return new Ia({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function mh(t){return new La({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}var vw=S(()=>{"use strict";$d();ih();ah();ch();th()});var kw=S(()=>{"use strict"});function $a(){return[{kind:"keep",id:"keep"},...xw.map(t=>({kind:"level",value:t,id:t})),{kind:"custom",id:"custom"}]}function Sw(){return $a().length}function ti(t){return Math.min(Math.max(0,t),Sw()-1)}function ww(t){return t.trim()}function jd(t){let e=ww(t);return e===""?{ok:!1,reason:"empty"}:e.length>32?{ok:!1,reason:"too-long"}:{ok:!0,value:e}}function fh(t){let e=$a()[t];return e===void 0?null:e.kind==="keep"?{kind:"keep"}:e.kind==="level"&&e.value!==void 0?{kind:"set",value:e.value}:null}function ph(t){let e=jd(t);return e.ok?{kind:"set",value:e.value}:null}var xw,Aw=S(()=>{"use strict";xw=["low","medium","high"]});var Ew=S(()=>{"use strict";aS();mo();tw();Ta();th();mw();Od();$d();vw();ih();ah();ch();kw();Aw()});function Hd(t){let e=null;for(let o of _w){let n=t.indexOf(o.open);if(n===-1||e!==null&&n>=e.openIdx)continue;let r=t.indexOf(o.close,n+o.open.length);e={format:o,openIdx:n,closeIdx:r}}return e}function Rw(t){let e=Ow(t),o=Hd(e);if(o===null)return{kind:"final",text:t};if(o.closeIdx===-1)return{kind:"malformed",reason:`bloco de tool-call aberto (${o.format.open}) sem fechamento (${o.format.close}).`,text:t};let n=e.slice(o.openIdx+o.format.open.length,o.closeIdx).trim(),r;try{r=JSON.parse(n)}catch{return{kind:"malformed",reason:"o miolo do bloco de tool-call n\xE3o \xE9 JSON v\xE1lido.",text:t}}if(typeof r!="object"||r===null)return{kind:"malformed",reason:"tool-call n\xE3o \xE9 um objeto JSON.",text:t};let s=r,i=s.name;if(typeof i!="string"||i.length===0)return{kind:"malformed",reason:'tool-call sem campo "name" (string n\xE3o-vazia).',text:t};let a=typeof s.input=="object"&&s.input!==null&&!Array.isArray(s.input)?s.input:{};return{kind:"tool_call",call:{name:i,input:a},text:t}}function Tw(t){let e=Hd(t);if(e===null)return t;let o=t.slice(0,e.openIdx),n=e.closeIdx===-1?"":t.slice(e.closeIdx+e.format.close.length),r=o.replace(/\s+$/,""),s=n.replace(/^\s+/,"");return r!==""&&s!==""?`${r}
|
|
30
|
+
`)}:null}var Od=S(()=>{"use strict"});function ES(t=globalThis.process?.env??{}){let e=kS(t[SS]),o=kS(t[wS]);return{maxConsecutiveLineRepeats:e!==void 0?Math.max(3,e):25,maxCycleLen:80,minCycleSpanChars:o!==void 0?Math.max(200,o):2e3,trivialLineMaxLen:1}}function TS(t=globalThis.process?.env??{}){let e=(t[AS]??"").trim().toLowerCase();return!(e==="1"||e==="true"||e==="yes"||e==="on")}function _S(t,e,o){let n=t.length;if(!(n<o))for(let r=1;r<=e&&!(r*2>n);r++){let s=r;for(;s<n&&t.charCodeAt(n-1-s)===t.charCodeAt(n-1-s%r);)s++;if(s>=o&&s>=r*2){let i=t.slice(n-r);return{period:r,unit:i,repeats:Math.floor(s/r)}}}}function zr(t,e){return TS(t)?new Ld(ES(t),e):QI}function Md(t){let e=t.replace(/\s+/g," ").trim();return e.length<=vS?e:`${e.slice(0,vS)}\u2026`}function kS(t){if(t===void 0)return;let e=t.trim();if(e==="")return;let o=Number(e);if(!(!Number.isFinite(o)||o<=0))return Math.floor(o)}var xS,SS,wS,AS,Gr,vS,Ld,QI,xa=S(()=>{"use strict";xS={maxConsecutiveLineRepeats:25,maxCycleLen:80,minCycleSpanChars:2e3,trivialLineMaxLen:1},SS="ALUY_DEGENERATE_LINE_REPEATS",wS="ALUY_DEGENERATE_CYCLE_SPAN",AS="ALUY_DEGENERATE_OFF";Gr=class extends Error{kind;repeats;sample;constructor(e,o,n){super(`loop de repeti\xE7\xE3o degenerado detectado (${e}, ${o}\xD7)`),this.name="DegenerateLoopError",this.kind=e,this.repeats=o,this.sample=n}},vS=60,Ld=class{cfg;bus;lineBuf="";lastLine;lineRepeatCount=1;tail="";tailMax;constructor(e=xS,o){this.cfg=e,this.bus=o,this.tailMax=e.minCycleSpanChars+e.maxCycleLen+1}push(e){e.length!==0&&(this.pushForLineHeuristic(e),this.pushForCycleHeuristic(e))}pushForLineHeuristic(e){let o=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&(this.lineBuf+=e.slice(o,n),this.commitLine(this.lineBuf),this.lineBuf="",o=n+1);o<e.length&&(this.lineBuf+=e.slice(o))}commitLine(e){let o=e.trim();if(o.length<=this.cfg.trivialLineMaxLen){this.lastLine=void 0,this.lineRepeatCount=1;return}if(o===this.lastLine){if(this.lineRepeatCount+=1,this.lineRepeatCount>=this.cfg.maxConsecutiveLineRepeats)throw this.bus?.publish({origin:"degeneration",severity:"warning",ts:Date.now(),payload:{kind:"line-repeat",repeats:this.lineRepeatCount,sample:Md(o)}}),new Gr("line-repeat",this.lineRepeatCount,Md(o))}else this.lastLine=o,this.lineRepeatCount=1}pushForCycleHeuristic(e){if(this.tail+=e,this.tail.length>this.tailMax&&(this.tail=this.tail.slice(this.tail.length-this.tailMax)),this.tail.length<this.cfg.minCycleSpanChars)return;let o=_S(this.tail,this.cfg.maxCycleLen,this.cfg.minCycleSpanChars);if(o)throw this.bus?.publish({origin:"degeneration",severity:"critical",ts:Date.now(),payload:{kind:"short-cycle",repeats:o.repeats,sample:Md(o.unit)}}),new Gr("short-cycle",o.repeats,Md(o.unit))}};QI={push(){}}});function ZI(t){if(t===void 0)return;let e=t.trim();if(e==="")return;let o=Number(e);if(!(!Number.isFinite(o)||o<=0))return Math.floor(o)}function eD(t){let e=t[CS]?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"||e==="on"}function Yr(t=process.env){return eD(t)?new Sa(0):new Sa(ZI(t[RS])??25165824)}var RS,CS,Kr,Sa,Pd=S(()=>{"use strict";RS="ALUY_STREAM_MAX_BYTES",CS="ALUY_STREAM_CAP_OFF",Kr="length_client_cap",Sa=class{max;total=0;_tripped=!1;constructor(e=25165824){this.max=e>0?Math.floor(e):0}get tripped(){return this._tripped}get bytes(){return this.total}get limit(){return this.max}addText(e){return this.addBytes(Buffer.byteLength(e,"utf8"))}addToolCall(e){let o=0;try{o=Buffer.byteLength(JSON.stringify(e.input??{}),"utf8")}catch{o=256}return this.addBytes(Buffer.byteLength(e.id,"utf8")+Buffer.byteLength(e.name,"utf8")+o)}addBytes(e){return this.max<=0?!1:(this.total+=e>0?e:0,this.total>this.max&&(this._tripped=!0),this._tripped)}}});function Id(t){if(!Dd(t))return;let{fiveHour:e,week:o}=tD(t.windows),n=oD(t.credit);return{windows:{...e!==void 0?{fiveHour:e}:{},...o!==void 0?{week:o}:{}},...n!==void 0?{credit:n}:{}}}function Gp(t){if(!Dd(t))return;let e=OS(t,"quota_5h"),o=OS(t,"quota_week");if(!(e===void 0&&o===void 0))return{windows:{...e!==void 0?{fiveHour:e}:{},...o!==void 0?{week:o}:{}}}}function PS(t,e,o){if(!(e===void 0||e<=0))return{used:Math.max(0,t??0),limit:e,...o!==void 0?{resetAt:o}:{}}}function tD(t){if(!Array.isArray(t))return{};let e={};for(let o of t){if(!Dd(o))continue;let n=NS(o.period);if(n===void 0)continue;let r=PS(Nd(o.used),Nd(o.limit),Aa(o.reset_at??o.resetAt));r!==void 0&&(n==="5h"?e.fiveHour=r:(n==="week"||n==="weekly")&&(e.week=r))}return e}function OS(t,e){return PS(Nd(t[`${e}_used`]),Nd(t[`${e}_limit`]),Aa(t[`${e}_reset_at`]))}function oD(t){if(!Dd(t))return;let e=NS(t.balance);return e!==void 0?{balance:e}:void 0}function Nd(t){if(t==null)return;let e=typeof t=="number"?t:String(t).trim();if(e==="")return;let o=typeof e=="number"?e:Number(e);if(!(!Number.isFinite(o)||o<0))return Math.round(o)}function NS(t){if(typeof t!="string")return;let e=t.trim();return e===""?void 0:e}function Aa(t){if(t==null)return;if(typeof t=="number")return MS(t);let e=String(t).trim();if(e==="")return;if(/^\d+(\.\d+)?$/.test(e)){let n=Number(e);return Number.isFinite(n)?MS(n):void 0}let o=Date.parse(e);return Number.isFinite(o)?o:void 0}function MS(t){if(!(!Number.isFinite(t)||t<=0))return t<1e12?Math.round(t*1e3):Math.round(t)}function IS(t){return t.limit<=0?0:Math.min(100,Math.max(0,Math.floor(t.used/t.limit*100)))}function wa(t,e=Date.now()){let o=t-e;if(!Number.isFinite(o)||o<=0)return"agora";let n=Math.floor(o/6e4);if(n<1)return"agora";let r=Math.floor(n/60),s=n%60;return r===0?`${s}min`:`${r}h${String(s).padStart(2,"0")}`}function FS(t){return t>=$S?"crit":t>=DS?"warn":"ok"}function Ea(t,e=Date.now()){if(t===void 0)return;let o=[],n,r="ok",s=(c,l)=>{if(l===void 0)return;let d=IS(l),f=FS(d);o.push({label:c,pct:d,level:f}),n===void 0&&l.resetAt!==void 0&&(n=l),r=nD(r,f)};s("5h",t.windows.fiveHour),s("semana",t.windows.week);let i=t.credit?.balance;if(o.length===0&&i===void 0)return;let a=n?.resetAt!==void 0?wa(n.resetAt,e)==="agora"?"reseta agora":`reseta em ${wa(n.resetAt,e)}`:void 0;return{segments:o,...i!==void 0?{creditBalance:i}:{},...a!==void 0?{resetText:a}:{},maxLevel:r}}function nD(t,e){return LS[e]>LS[t]?e:t}function Dd(t){return typeof t=="object"&&t!==null}var DS,$S,LS,Ta=S(()=>{"use strict";DS=70,$S=90;LS={ok:0,warn:1,crit:2}});function jS(t,e){let o={tier:t.tier,messages:t.messages.map(sD),stream:e};t.session_id!==void 0&&(o.session_id=t.session_id),t.max_tokens!==void 0&&(o.max_tokens=t.max_tokens),t.temperature!==void 0&&(o.temperature=t.temperature),t.context!==void 0&&(o.context=t.context),t.tools!==void 0&&t.tools.length>0&&(o.tools=t.tools,o.tool_choice=t.tool_choice??"auto",t.parallel_tool_calls!==void 0&&(o.parallel_tool_calls=t.parallel_tool_calls));let n=t.model?.trim(),r=n!==void 0&&n!=="";r&&t.tier==="custom"&&(o.model=n);let s=t.provider?.trim();s!==void 0&&s!==""&&r&&t.tier==="custom"&&(o.provider=s);let a=t.reasoning_effort?.trim();return a!==void 0&&a!==""&&(o.reasoning_effort=a),o}function sD(t){let e={role:t.role,content:t.content};return t.tool_calls!==void 0&&t.tool_calls.length>0&&(e.tool_calls=t.tool_calls.map(o=>({id:o.id,type:"function",function:{name:o.name,arguments:JSON.stringify(o.input??{})}}))),t.tool_call_id!==void 0&&(e.tool_call_id=t.tool_call_id),e}function iD(t,e){let o=Yp(e);switch(t){case"start":return{type:"start",request_id:Vt(o,"request_id")??"",...Vt(o,"session_id")!==void 0?{session_id:Vt(o,"session_id")}:{}};case"delta":{let n=Vt(o,"content");return n!==void 0?{type:"delta",content:n}:null}case"tool_call":{let n=HS(o);return n!==null?{type:"tool_call",call:n}:null}case"usage":return{type:"usage",usage:aD(o)};case"done":return{type:"done",finish_reason:Vt(o,"finish_reason")??"stop"};case"error":throw new Le(uo(Kp(o,"status")??502,o));default:return null}}function aD(t){let e={request_id:Vt(t,"request_id")??"",tier:Vt(t,"tier")??""},o=Vt(t,"provider");o!==void 0&&(e.provider=o);let n=Vt(t,"model");n!==void 0&&(e.model=n);let r=Kp(t,"tokens_in");r!==void 0&&(e.tokens_in=r);let s=Kp(t,"tokens_out");s!==void 0&&(e.tokens_out=s);let i=Vt(t,"cost");i!==void 0&&(e.cost=i);let a=Vt(t,"price_version");a!==void 0&&(e.price_version=a);let c=lD(t,"partial");c!==void 0&&(e.partial=c);let l=Vt(t,"balance_after");return l!==void 0&&(e.balance_after=l),e}function HS(t){if(!ur(t))return null;let e=ur(t.function)?t.function:void 0,o=(typeof t.name=="string"?t.name:void 0)??Vt(e,"name");if(o===void 0||o.length===0)return null;let n=Vt(t,"id")??"",r={};return ur(t.input)?r=t.input:e!==void 0&&e.arguments!==void 0?r=BS(e.arguments):t.arguments!==void 0&&(r=BS(t.arguments)),{id:n,name:o,input:r}}function BS(t){if(ur(t))return t;if(typeof t=="string"&&t.trim()!==""){let e=Yp(t);if(ur(e))return e}return{}}function Zs(t,e){if(e.id!==""){let o=t.find(n=>n.id===e.id);if(o!==void 0){let n=t.indexOf(o);t[n]={id:o.id,name:e.name.length>0?e.name:o.name,input:{...o.input,...e.input}};return}}t.push(e)}function cD(t,e){if(t===null)return;let o=t.trim();if(o==="")return;if(/^\d+$/.test(o)){let s=Number(o);return Number.isFinite(s)?s:void 0}let n=Date.parse(o);if(!Number.isFinite(n))return;let r=Math.round((n-e)/1e3);return r>=0?r:0}function Yp(t){try{return JSON.parse(t)}catch{return}}function ur(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Vt(t,e){if(!ur(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Kp(t,e){if(!ur(t))return;let o=t[e];return typeof o=="number"?o:void 0}function lD(t,e){if(!ur(t))return;let o=t[e];return typeof o=="boolean"?o:void 0}function zp(t){if(t?.aborted)throw new ze}function US(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="AbortError"}var rD,_a,$d=S(()=>{"use strict";mo();Od();xa();Pd();Ta();rD="/v1/chat",_a=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async*stream(e){let{request:o,signal:n,idempotencyKey:r}=e;zp(n);let s=await this.getAccessToken();zp(n);let i=await this.send(s,o,n,!0,r);if(!i.ok)throw await this.toBrokerError(i);if(i.body===null)throw new Pe("broker respondeu 2xx sem corpo de stream.");try{for await(let a of ka(i.body)){zp(n);let c=iD(a.event,a.data);if(c&&(yield c),a.event==="usage"){let l=Gp(Yp(a.data));l!==void 0&&(yield{type:"quota",quota:l})}if(a.event==="done")return}}catch(a){throw US(a)||a instanceof ze?new ze:a instanceof Le?a:new Pe("falha ao ler o stream do broker.",a)}}async call(e){let o="",n="",r,s="stop",i,a,c=[],l=zr(),d=Yr(),f=!1;for await(let u of this.stream(e)){switch(u.type){case"start":n=u.request_id,r=u.session_id;break;case"delta":o+=u.content,l.push(u.content),d.addText(u.content)&&(f=!0);break;case"tool_call":Zs(c,u.call),d.addToolCall(u.call)&&(f=!0);break;case"usage":i=u.usage;break;case"quota":a=u.quota;break;case"done":s=u.finish_reason;break}if(f){s=Kr;break}}return{request_id:n,...r!==void 0?{session_id:r}:{},content:o,finish_reason:s,...i!==void 0?{usage:i}:{},...c.length>0?{tool_calls:c}:{},...a!==void 0?{quota:a}:{}}}async send(e,o,n,r,s){let i=jS(o,r),a={authorization:`Bearer ${e}`,"content-type":"application/json",accept:"text/event-stream"};s!==void 0&&(a["idempotency-key"]=s);try{return await this.doFetch(`${this.baseUrl}${rD}`,{method:"POST",headers:a,body:JSON.stringify(i),...n?{signal:n}:{}})}catch(c){throw US(c)?new ze:new Pe("falha de transporte ao chamar o broker.",c)}}async toBrokerError(e){let o;try{o=await e.json()}catch{o=void 0}let n=uo(e.status,o);if(n.retry_after===void 0){let r=cD(e.headers.get("retry-after"),Date.now());if(r!==void 0)return new Le({...n,retry_after:r})}return new Le(n)}}});function uD(t,e){if(t===401||t===403)return"UNAUTHENTICATED";if(t===429)return"RATE_LIMITED";let o=(WS(e)??"").toLowerCase();return(t===400||t===422)&&(o.includes("tool")||o.includes("function calling")||o.includes("function_call"))?"TOOLS_UNSUPPORTED":t>=500?"PROVIDER_ERROR":t===400||t===422?"VALIDATION_FAILED":"PROVIDER_ERROR"}function WS(t){if(typeof t!="object"||t===null)return;let e=t;if(typeof e.message=="string")return e.message;let o=e.error;if(typeof o=="string")return o;if(typeof o=="object"&&o!==null){let n=o.message;if(typeof n=="string")return n}}function Vp(t){if(t?.aborted)throw new ze}function qS(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="AbortError"}var dD,Ra,GS=S(()=>{"use strict";mo();Od();xa();Pd();$d();Wp();dD=8192,Ra=class{adapter;config;baseUrl;getCredential;doFetch;maxTokens;constructor(e){this.adapter=e.adapter,this.config=e.config,this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getCredential=e.getCredential,this.doFetch=e.fetch??globalThis.fetch,this.maxTokens=e.maxTokens??dD}async*stream(e){let{request:o,signal:n}=e;Vp(n);let r=await this.getCredential();Vp(n);let s=this.toLocalRequest(o),i=this.adapter.buildRequest({request:s,baseUrl:this.baseUrl,credential:r}),a;try{a=await this.doFetch(i.url,{method:"POST",headers:i.headers,body:i.body,redirect:"error",...n?{signal:n}:{}})}catch(l){throw qS(l)?new ze:new Pe("falha de transporte ao chamar o provider (backend local).",l)}if(!a.ok)throw await this.toProviderError(a);if(a.body===null)throw new Pe("provider respondeu 2xx sem corpo de stream.");let c=qp();try{for await(let l of ka(a.body)){Vp(n);let d=this.adapter.mapSse(l.event,l.data,c);for(let f of d)if(yield f,f.type==="done")return}}catch(l){throw qS(l)||l instanceof ze?new ze:l instanceof Le?l:new Pe("falha ao ler o stream do provider (backend local).",l)}}async call(e){let o="",n="",r="stop",s,i=[],a=zr(),c=Yr(),l=!1;for await(let d of this.stream(e)){switch(d.type){case"start":n=d.request_id;break;case"delta":o+=d.content,a.push(d.content),c.addText(d.content)&&(l=!0);break;case"tool_call":Zs(i,d.call),c.addToolCall(d.call)&&(l=!0);break;case"usage":s=d.usage;break;case"done":r=d.finish_reason;break}if(l){r=Kr;break}}return{request_id:n,content:o,finish_reason:r,...s!==void 0?{usage:s}:{},...i.length>0?{tool_calls:i}:{}}}toLocalRequest(e){let o,n=[];for(let a of e.messages){if(a.role==="system"&&o===void 0){o=a.content;continue}n.push({role:a.role,content:a.content,...a.tool_calls!==void 0?{tool_calls:a.tool_calls.map(c=>({id:c.id,name:c.name,input:{...c.input}}))}:{},...a.tool_call_id!==void 0?{tool_call_id:a.tool_call_id}:{}})}let r=e.tier==="custom"?e.model?.trim():void 0,i={model:r&&r.length>0?r:this.config.model,messages:n,maxTokens:e.max_tokens??this.maxTokens};return o!==void 0&&(i.system=o),e.temperature!==void 0&&(i.temperature=e.temperature),e.reasoning_effort!==void 0&&(i.reasoningEffort=e.reasoning_effort),e.tools!==void 0&&e.tools.length>0&&(i.tools=e.tools,i.toolChoice=e.tool_choice??"auto"),i}async toProviderError(e){let o;try{o=await e.json()}catch{o=void 0}let n=WS(o),r=uD(e.status,o),s=r==="TOOLS_UNSUPPORTED"?422:e.status,i=uo(s,{code:r,...n!==void 0?{detail:n}:{}});return new Le(i)}}});function Vr(t){let e=t.trim();if(e==="")return;let o=e.split(".");if(o.length===0||o.length>4)return;let n=[];for(let d of o){let f=mD(d);if(f===void 0)return;n.push(f)}let r,s=n.length;if(s===1){if(r=n[0],r>4294967295)return}else{let d=0;for(let h=0;h<s-1;h++){let g=n[h];if(g>255)return;d=d*256+g}let f=n[s-1],u=4-(s-1),p=Math.pow(256,u)-1;if(f>p)return;r=d*Math.pow(256,u)+f}if(r<0||r>4294967295)return;let i=r>>>24&255,a=r>>>16&255,c=r>>>8&255,l=r&255;return`${i}.${a}.${c}.${l}`}function mD(t){if(t==="")return;let e;if(/^0[xX][0-9a-fA-F]+$/.test(t))e=parseInt(t.slice(2),16);else if(/^0[0-7]+$/.test(t))e=parseInt(t,8);else if(/^[0-9]+$/.test(t))e=parseInt(t,10);else return;return Number.isFinite(e)?e:void 0}function Ca(t){let e=t.trim().toLowerCase();e=e.replace(/%.*$/,"").replace(/^\[/,"").replace(/\]$/,"");let o=e.match(/:((?:\d{1,3}\.){3}\d{1,3})$/);if(o&&(e.startsWith("::ffff:")||e.startsWith("::")))return Vr(o[1]);let n=e.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(n){let r=parseInt(n[1],16),s=parseInt(n[2],16);if(Number.isFinite(r)&&Number.isFinite(s)){let i=r>>8&255,a=r&255,c=s>>8&255,l=s&255;return`${i}.${a}.${c}.${l}`}}}function Oa(t){let e=t.trim().replace(/^\[/,"").replace(/\]$/,"").replace(/%.*$/,"");return e.includes(":")&&/^[0-9a-fA-F:.]+$/.test(e)}function zS(t){let e=t.trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"").replace(/%.*$/,""),o=e.match(/((?:\d{1,3}\.){3}\d{1,3})$/);if(o){let c=Vr(o[1]);if(!c)return;let l=c.split(".").map(Number),d=(l[0]<<8|l[1]).toString(16),f=(l[2]<<8|l[3]).toString(16);e=e.slice(0,o.index)+d+":"+f}let n=e.split("::");if(n.length>2)return;let r=n[0]?n[0].split(":").filter(c=>c!==""):[],s=n.length===2&&n[1]?n[1].split(":").filter(c=>c!==""):[],i=[];for(let c of r){let l=parseInt(c,16);if(!/^[0-9a-f]{1,4}$/.test(c)||!Number.isFinite(l))return;i.push(l)}let a=8-r.length-s.length;if(n.length===2){if(a<0)return;for(let c=0;c<a;c++)i.push(0)}else if(r.length!==8)return;for(let c of s){let l=parseInt(c,16);if(!/^[0-9a-f]{1,4}$/.test(c)||!Number.isFinite(l))return;i.push(l)}return i.length===8?i:void 0}function $n(t){let e=t.trim();if(e==="")return{blocked:!0,reason:"IP vazio",canonical:e};let o=Ca(e);if(o){let r=Xp(o);return r.blocked?{...r,reason:`IPv4-mapped-IPv6 \u2192 ${r.reason}`}:r}if(Oa(e))return fD(e);let n=Vr(e);return n?Xp(n):{blocked:!0,reason:`IP n\xE3o-reconhecido: "${e}"`,canonical:e}}function Jp(t){let e=t.trim();if(e==="")return!1;let o=Ca(e);if(o)return o.split(".")[0]==="127";if(Oa(e)){let r=zS(e);return r?r.slice(0,7).every(s=>s===0)&&r[7]===1:!1}let n=Vr(e);return n?n.split(".")[0]==="127":!1}function Xp(t){let e=t.split(".").map(Number);if(e.length!==4||e.some(s=>!Number.isInteger(s)||s<0||s>255))return{blocked:!0,reason:`IPv4 inv\xE1lido: "${t}"`,canonical:t};let[o,n]=e,r=s=>({blocked:!0,reason:s,canonical:t});return t==="169.254.169.254"?r("endpoint de metadata da cloud (169.254.169.254)"):o===0?r("0.0.0.0/8 (este host / n\xE3o-rote\xE1vel)"):o===127?r("loopback (127.0.0.0/8)"):o===10?r("rede privada RFC1918 (10.0.0.0/8)"):o===172&&n>=16&&n<=31?r("rede privada RFC1918 (172.16.0.0/12)"):o===192&&n===168?r("rede privada RFC1918 (192.168.0.0/16)"):o===169&&n===254?r("link-local (169.254.0.0/16)"):o===100&&n>=64&&n<=127?r("CGNAT (100.64.0.0/10)"):o===198&&(n===18||n===19)?r("rede de benchmark (198.18.0.0/15)"):o>=224?r("multicast/reservado (\u2265224.0.0.0/4)"):t==="255.255.255.255"?r("broadcast (255.255.255.255)"):{blocked:!1,canonical:t}}function fD(t){let e=zS(t);if(!e)return{blocked:!0,reason:`IPv6 inv\xE1lido: "${t}"`,canonical:t};let o=e.map(c=>c.toString(16)).join(":"),n=c=>({blocked:!0,reason:c,canonical:o});if(e.slice(0,7).every(c=>c===0)&&e[7]===1)return n("loopback IPv6 (::1)");if(e.every(c=>c===0))return n("IPv6 unspecified (::)");let s=e[0],i=s>>8&255;if(i===252||i===253)return n("IPv6 ULA privada (fc00::/7)");if((s&65472)===65152)return n("IPv6 link-local (fe80::/10)");if(i===255)return n("IPv6 multicast (ff00::/8)");let a=pD(e);if(a){let c=Xp(a.ipv4);if(c.blocked)return{blocked:!0,reason:`IPv6 ${a.kind} \u2192 ${c.reason}`,canonical:o}}return{blocked:!1,canonical:o}}function pD(t){let e=t,o=(n,r)=>`${n>>8&255}.${n&255}.${r>>8&255}.${r&255}`;if(e[0]===100&&e[1]===65435&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===0)return{ipv4:o(e[6],e[7]),kind:"NAT64 (64:ff9b::/96)"};if(e[0]===100&&e[1]===65435&&e[2]===1)return{ipv4:o(e[6],e[7]),kind:"NAT64 (64:ff9b:1::/48)"};if(e[0]===8194)return{ipv4:o(e[1],e[2]),kind:"6to4 (2002::/16)"}}function ei(t){if(t.length===0)return{ok:!1,reason:"host n\xE3o resolveu para nenhum IP",offendingIp:""};for(let e of t){let o=$n(e);if(o.blocked)return{ok:!1,reason:o.reason??"IP bloqueado pela denylist anti-SSRF",offendingIp:o.canonical}}return{ok:!0,pinnedIp:$n(t[0]).canonical}}var Ma=S(()=>{"use strict"});function KS(t){let e;try{e=new URL(t)}catch{return{reason:`base_url inv\xE1lida: "${t}"`}}return e.protocol!=="https:"&&e.protocol!=="http:"?{reason:`base_url precisa ser http(s): "${t}"`}:e.hostname===""?{reason:`base_url sem host: "${t}"`}:{url:e}}async function Qp(t,e){let o=KS(t);if("reason"in o)return{ok:!1,reason:o.reason};let n=o.url.hostname.replace(/^\[/,"").replace(/\]$/,""),r=$n(n);if(r.blocked&&YS(n))return{ok:!1,reason:`base_url aponta p/ IP interno (${r.reason})`};let s;try{s=await e.resolve(n)}catch{return{ok:!1,reason:`base_url: host "${n}" n\xE3o resolveu (anti-SSRF, fail-safe)`}}let i=ei(s);return i.ok?{ok:!0,url:o.url.toString()}:{ok:!1,reason:`base_url aponta p/ IP interno (${i.reason})`}}async function Zp(t,e){let o=KS(t);if("reason"in o)return{ok:!1,reason:o.reason};let n=o.url.hostname.replace(/^\[/,"").replace(/\]$/,"");if(YS(n)){let i=$n(n);return i.blocked?{ok:!1,reason:`aponta p/ IP interno (${i.reason})`}:{ok:!0,host:n,pinnedIp:i.canonical}}let r;try{r=await e.resolve(n)}catch{return{ok:!1,reason:`host "${n}" n\xE3o resolveu (anti-SSRF, fail-safe)`}}let s=ei(r);return s.ok?{ok:!0,host:n,pinnedIp:s.pinnedIp}:{ok:!1,reason:`aponta p/ IP interno (${s.reason})`}}function YS(t){return!!(t.includes(":")||/^\d+$/.test(t)||/^0x[0-9a-fA-F]+$/.test(t)||/^(\d{1,3}\.){1,3}\d{1,3}$/.test(t)||/^0[0-7]+(\.|$)/.test(t))}var VS=S(()=>{"use strict";Ma()});function fr(){return{entries:QS(hD)}}function mr(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>gD?!1:!kD.test(e)}function xD(t){let e=Array.isArray(t)?t:t!==void 0?[t]:[],o=[];for(let n of e)if(typeof n=="string"){let r=n.trim().toLowerCase();vD.includes(r)&&!o.includes(r)&&o.push(r)}return o.length>0?o:void 0}function SD(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){if(mr(o)){let n=o.trim();e.includes(n)||e.push(n)}if(e.length>=yD)break}return e}function wD(t){return t===1||t===2||t===3?t:void 0}function XS(t){if(typeof t!="object"||t===null)return;let e=t;if(!mr(e.id))return;let o=e.id.trim();if(!mr(e.wireFormat))return;let n=e.wireFormat.trim().toLowerCase();if(!bD.includes(n)||!mr(e.baseUrl))return;let r=xD(e.auth);if(r===void 0||!mr(e.defaultModel))return;let s=mr(e.label)?e.label.trim():o,i={id:o,label:s,wireFormat:n,baseUrl:e.baseUrl.trim(),auth:r,defaultModel:e.defaultModel.trim(),models:SD(e.models)},a=wD(e.wave);return a!==void 0&&(i.wave=a),mr(e.catalogHint)&&(i.catalogHint=e.catalogHint.trim()),mr(e.notes)&&(i.notes=e.notes.trim()),i}function JS(t){let e=Array.isArray(t)?t:typeof t=="object"&&t!==null&&Array.isArray(t.providers)?t.providers:[],o=new Map;for(let n of e){let r=XS(n);r!==void 0&&o.set(r.id,r)}return[...o.values()]}function QS(t){return[...t].sort((e,o)=>{let n=e.wave??99,r=o.wave??99;return n!==r?n-r:e.id.localeCompare(o.id)})}function ZS(t,e){let o=new Map;for(let n of t.entries)o.set(n.id,n);for(let n of e)o.set(n.id,n);return{entries:QS([...o.values()])}}function eh(t){let e=fr();return t==null?e:ZS(e,JS(t))}function Fn(t,e){let o=e.trim().toLowerCase();return t.entries.find(n=>n.id.toLowerCase()===o)}var hD,gD,yD,bD,vD,kD,ew=S(()=>{"use strict";hD=[{id:"anthropic",label:"Anthropic",wireFormat:"anthropic",baseUrl:"https://api.anthropic.com",auth:["apikey","oauth"],defaultModel:"claude-opus-4-8",models:["claude-opus-4-8","claude-3-5-sonnet-latest","claude-3-5-haiku-latest"],wave:1},{id:"openai",label:"OpenAI",wireFormat:"openai-compat",baseUrl:"https://api.openai.com/v1",auth:["apikey","oauth"],defaultModel:"gpt-4o",models:["gpt-4o","gpt-4o-mini","o3","o3-mini","o4-mini"],wave:1},{id:"openrouter",label:"OpenRouter",wireFormat:"openai-compat",baseUrl:"https://openrouter.ai/api/v1",auth:["apikey"],defaultModel:"anthropic/claude-3.5-sonnet",models:["anthropic/claude-3.5-sonnet","openai/gpt-4o","google/gemini-2.0-flash","meta-llama/llama-3.3-70b-instruct","deepseek/deepseek-chat"],wave:1,catalogHint:"centenas via OpenRouter (veja o cat\xE1logo p\xFAblico do provider)"},{id:"google",label:"Google Gemini",wireFormat:"gemini",baseUrl:"https://generativelanguage.googleapis.com/v1beta",auth:["apikey"],defaultModel:"gemini-2.0-flash",models:["gemini-2.0-flash","gemini-2.0-pro","gemini-1.5-pro"],wave:2},{id:"deepseek",label:"DeepSeek",wireFormat:"openai-compat",baseUrl:"https://api.deepseek.com",auth:["apikey"],defaultModel:"deepseek-chat",models:["deepseek-chat","deepseek-reasoner"],wave:2},{id:"groq",label:"Groq",wireFormat:"openai-compat",baseUrl:"https://api.groq.com/openai/v1",auth:["apikey"],defaultModel:"llama-3.3-70b-versatile",models:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768"],wave:2},{id:"mistral",label:"Mistral",wireFormat:"openai-compat",baseUrl:"https://api.mistral.ai/v1",auth:["apikey"],defaultModel:"mistral-large-latest",models:["mistral-large-latest","mistral-small-latest","codestral-latest"],wave:2},{id:"xai",label:"xAI (Grok)",wireFormat:"openai-compat",baseUrl:"https://api.x.ai/v1",auth:["apikey"],defaultModel:"grok-2-latest",models:["grok-2-latest","grok-2-vision-latest"],wave:3},{id:"ollama",label:"Ollama (local)",wireFormat:"openai-compat",baseUrl:"http://127.0.0.1:11434/v1",auth:["none"],defaultModel:"llama3.2",models:["llama3.2","gemma3:4b","qwen2.5-coder","deepseek-r1"],wave:3,notes:"roda local; sem credencial (auth none). O egress local ainda \xE9 pinado/validado."}];gD=256,yD=200,bD=["openai-compat","anthropic","gemini"],vD=["apikey","oauth","none"],kD=/[\u0000-\u001F\u007F]/});var tw=S(()=>{"use strict";lS();uS();Wp();hS();yS();GS();VS();ew()});var ow,La,th=S(()=>{"use strict";mo();Ta();ow="/v1/quota",La=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async fetchQuota(){let e;try{e=await this.getAccessToken()}catch{return}let o;try{o=await this.doFetch(`${this.baseUrl}${ow}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch{return}if(!o.ok)return;let n;try{n=await o.json()}catch{return}return Id(n)}async fetchQuotaOrThrow(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${ow}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a quota do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("quota do broker com corpo inv\xE1lido.",r)}return Id(n)}}});function nh(t){if(t===void 0)return;let e=uw(t.balance_after),o=AD(t.limits);if(!(e===void 0&&o===void 0))return{...o??{},...e!==void 0?{balanceAfter:e}:{}}}function AD(t){if(t==null||typeof t!="object")return;let e=oh(t.limit),o=oh(t.used),n=oh(t.remaining),r=ED(t.unit),s=TD(t.period),i=Aa(t.reset_at);if(e!==void 0&&(n===void 0&&o!==void 0&&(n=Math.max(0,e-o)),o===void 0&&n!==void 0&&(o=Math.max(0,e-n))),!(e===void 0&&o===void 0&&n===void 0&&s===void 0&&i===void 0))return{...e!==void 0?{limit:e}:{},...o!==void 0?{used:o}:{},...n!==void 0?{remaining:n}:{},...r!==void 0?{unit:r}:{},...s!==void 0?{period:s}:{},...i!==void 0?{resetAt:i}:{}}}function sw(t){if(t!==void 0&&t.unit!=="credit")return t.limit!==void 0&&t.limit>0?t.limit:void 0}function cw(t){return t>=aw?"crit":t>=iw?"warn":"ok"}function lw(t){if(t===void 0||t.limit===void 0||t.limit<=0)return;let e=t.used!==void 0?t.used:t.remaining!==void 0?Math.max(0,t.limit-t.remaining):void 0;if(e!==void 0)return Math.min(100,Math.max(0,Math.floor(e/t.limit*100)))}function Fd(t,e=dw){return t===void 0||t.balanceAfter===void 0?!1:t.balanceAfter<=e}function Bd(t){if(t===void 0||t.balanceAfter===void 0)return;let e=t.balanceAfter;return Number.isInteger(e)?String(e):String(Math.round(e*100)/100)}function rh(t,e=Date.now()){if(t===void 0)return;let o=[],n="ok",r=lw(t);if(r!==void 0&&sw(t)!==void 0){let a=cw(r),c=t.period!==void 0?t.period:"quota";o.push({label:c,value:`${r}%`,level:a}),n=rw(n,a)}let s=Bd(t);if(s!==void 0){let a=Fd(t)?"crit":"ok";o.push({label:"cr\xE9dito",value:s,level:a}),n=rw(n,a)}if(o.length===0)return;let i;if(t.resetAt!==void 0){let a=wa(t.resetAt,e);i=a==="agora"?"reseta agora":`reseta em ${a}`}return{segments:o,...i!==void 0?{resetText:i}:{},maxLevel:n}}function rw(t,e){return nw[e]>nw[t]?e:t}function uw(t){if(t==null||t==="")return;let e=typeof t=="number"?t:Number(String(t).trim());return Number.isFinite(e)?e:void 0}function oh(t){let e=uw(t);if(!(e===void 0||e<0))return Math.round(e)}function ED(t){if(t==null)return;let e=String(t).trim().toLowerCase();if(e==="credit"||e==="credits"||e==="currency")return"credit";if(e==="tokens"||e==="token")return"tokens"}function TD(t){if(t==null)return;let e=String(t).trim();if(e!=="")return e.length>16?e.slice(0,16):e}var iw,aw,dw,nw,mw=S(()=>{"use strict";Ta();iw=70,aw=90;dw=1;nw={ok:0,warn:1,crit:2}});function fw(t){let e=sh(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[];for(let n of e){if(!sh(n))continue;let r=Xr(n,"key");r===void 0||r===""||o.push({key:r,displayName:Xr(n,"display_name")??r,costSignal:Xr(n,"cost_signal")??"standard",composition:RD(n.composition)})}return o}function RD(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){if(!sh(o))continue;let n=Xr(o,"name");n===void 0||n===""||e.push({name:n,family:Xr(o,"family")??"",role:Xr(o,"role")??"principal",context:Xr(o,"context")??""})}return e}function sh(t){return typeof t=="object"&&t!==null}function Xr(t,e){let o=t[e];return typeof o=="string"?o:void 0}var _D,Pa,ih=S(()=>{"use strict";mo();_D="/v1/tiers/catalog",Pa=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${_D}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler o cat\xE1logo do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("cat\xE1logo do broker com corpo inv\xE1lido.",r)}return fw(n)}}});function hw(t){let e=pw(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[],n=new Set;for(let r of e){if(!pw(r))continue;let s=Ud(r,"id");if(s===void 0||s===""||n.has(s))continue;n.add(s);let i=OD(r,"supports_tools");o.push({id:s,name:Ud(r,"name")??"",family:Ud(r,"family")??"",context:Ud(r,"context")??"",...i===void 0?{}:{supportsTools:i}})}return o}function pw(t){return typeof t=="object"&&t!==null}function Ud(t,e){let o=t[e];return typeof o=="string"?o:void 0}function OD(t,e){let o=t[e];return typeof o=="boolean"?o:void 0}var CD,Na,ah=S(()=>{"use strict";mo();CD="/v1/models/custom",Na=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${CD}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a lista de modelos custom do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("lista de modelos custom do broker com corpo inv\xE1lido.",r)}return hw(n)}}});function bw(t){let e=gw(t)?t.data:void 0;if(!Array.isArray(e))return[];let o=[],n=new Set;for(let r of e){if(!gw(r))continue;let s=yw(r,"name");s===void 0||s===""||n.has(s)||(n.add(s),o.push({name:s,adapter:yw(r,"adapter")??""}))}return o}function gw(t){return typeof t=="object"&&t!==null}function yw(t,e){let o=t[e];return typeof o=="string"?o:void 0}var MD,Ia,ch=S(()=>{"use strict";mo();MD="/v1/providers",Ia=class{baseUrl;getAccessToken;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.getAccessToken=e.getAccessToken,this.doFetch=e.fetch??globalThis.fetch}async list(){let e=await this.getAccessToken(),o;try{o=await this.doFetch(`${this.baseUrl}${MD}`,{method:"GET",headers:{authorization:`Bearer ${e}`,accept:"application/json"}})}catch(r){throw new Pe("falha de transporte ao ler a lista de providers do broker.",r)}if(!o.ok){let r;try{r=await o.json()}catch{r=void 0}throw new Le(uo(o.status,r))}let n;try{n=await o.json()}catch(r){throw new Pe("lista de providers do broker com corpo inv\xE1lido.",r)}return bw(n)}}});function Da(t){return new _a({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function lh(t){return new Pa({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function dh(t){return new Na({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function uh(t){return new Ia({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}function mh(t){return new La({baseUrl:t.brokerBaseUrl,getAccessToken:()=>t.login.getAccessToken(),...t.fetch?{fetch:t.fetch}:{}})}var vw=S(()=>{"use strict";$d();ih();ah();ch();th()});var kw=S(()=>{"use strict"});function $a(){return[{kind:"keep",id:"keep"},...xw.map(t=>({kind:"level",value:t,id:t})),{kind:"custom",id:"custom"}]}function Sw(){return $a().length}function ti(t){return Math.min(Math.max(0,t),Sw()-1)}function ww(t){return t.trim()}function jd(t){let e=ww(t);return e===""?{ok:!1,reason:"empty"}:e.length>32?{ok:!1,reason:"too-long"}:{ok:!0,value:e}}function fh(t){let e=$a()[t];return e===void 0?null:e.kind==="keep"?{kind:"keep"}:e.kind==="level"&&e.value!==void 0?{kind:"set",value:e.value}:null}function ph(t){let e=jd(t);return e.ok?{kind:"set",value:e.value}:null}var xw,Aw=S(()=>{"use strict";xw=["low","medium","high"]});var Ew=S(()=>{"use strict";aS();mo();tw();Ta();th();mw();Od();$d();vw();ih();ah();ch();kw();Aw()});function Hd(t){let e=null;for(let o of _w){let n=t.indexOf(o.open);if(n===-1||e!==null&&n>=e.openIdx)continue;let r=t.indexOf(o.close,n+o.open.length);e={format:o,openIdx:n,closeIdx:r}}return e}function Rw(t){let e=Ow(t),o=Hd(e);if(o===null)return{kind:"final",text:t};if(o.closeIdx===-1)return{kind:"malformed",reason:`bloco de tool-call aberto (${o.format.open}) sem fechamento (${o.format.close}).`,text:t};let n=e.slice(o.openIdx+o.format.open.length,o.closeIdx).trim(),r;try{r=JSON.parse(n)}catch{return{kind:"malformed",reason:"o miolo do bloco de tool-call n\xE3o \xE9 JSON v\xE1lido.",text:t}}if(typeof r!="object"||r===null)return{kind:"malformed",reason:"tool-call n\xE3o \xE9 um objeto JSON.",text:t};let s=r,i=s.name;if(typeof i!="string"||i.length===0)return{kind:"malformed",reason:'tool-call sem campo "name" (string n\xE3o-vazia).',text:t};let a=typeof s.input=="object"&&s.input!==null&&!Array.isArray(s.input)?s.input:{};return{kind:"tool_call",call:{name:i,input:a},text:t}}function Tw(t){let e=Hd(t);if(e===null)return t;let o=t.slice(0,e.openIdx),n=e.closeIdx===-1?"":t.slice(e.closeIdx+e.format.close.length),r=o.replace(/\s+$/,""),s=n.replace(/^\s+/,"");return r!==""&&s!==""?`${r}
|
|
31
31
|
${s}`:(r+s).trim()}function Cw(t,e){let o=Math.min(t.length,e.length-1);for(let n=o;n>=1;n--)if(t.endsWith(e.slice(0,n)))return n;return 0}function Ow(t){let e=t.replace(/<think>[\s\S]*?<\/think>/gi,""),o=e.search(/<\/think>/i);o!==-1&&(e=e.slice(o).replace(/^<\/think>/i,""));let n=e.search(/<think>/i);return n!==-1&&(e=e.slice(0,n)),e}function Jr(t){let e=Ow(t),o=e.length;for(let n of LD){let r=Cw(e,n);r>0&&(o=Math.min(o,e.length-r))}return o<e.length&&(e=e.slice(0,o).replace(/\s+$/,"")),e}function pr(t){let e=Jr(t);for(let n=0;n<64;n++){let r=Hd(e);if(r===null||r.closeIdx===-1)break;e=Tw(e)}Hd(e)!==null&&(e=Tw(e));let o=e.length;for(let n of _w){let r=Cw(e,n.open);r>0&&(o=Math.min(o,e.length-r))}return o<e.length&&(e=e.slice(0,o).replace(/\s+$/,"")),e}var hh,gh,_w,LD,oi=S(()=>{"use strict";hh="<<<ALUY_TOOL_CALL",gh="ALUY_TOOL_CALL>>>",_w=[{label:"nativo",open:hh,close:gh},{label:"tool_call",open:"<tool_call>",close:"</tool_call>"}];LD=["<think>","</think>"]});function bh(t){if(t===null||typeof t!="object")return"any";let e=t,o=e.type;if(typeof o=="string"){if(o==="array"){let r=e.items;return`array<${r!==null&&typeof r=="object"?bh(r):"any"}>`}return o}if(Array.isArray(o)){let r=o.filter(s=>typeof s=="string");if(r.length>0)return r.join("|")}let n=e.enum;return Array.isArray(n)&&n.length>0?typeof n[0]:(Array.isArray(e.anyOf)||Array.isArray(e.oneOf)||Array.isArray(e.allOf),"any")}function vh(t){if(t===null||typeof t!="object")return[];let e=t,o=e.properties;if(o===null||typeof o!="object")return[];let n=e.required,r=new Set(Array.isArray(n)?n.filter(i=>typeof i=="string"):[]),s=[];for(let[i,a]of Object.entries(o)){let c=a!==null&&typeof a=="object"?a:{},l=c.description,d={name:i,type:bh(c),required:r.has(i),...typeof l=="string"&&l.trim()!==""?{description:l.trim()}:{}};s.push(d)}return[...s.filter(i=>i.required),...s.filter(i=>!i.required)]}function Bn(t){return t.split(hh).join("[ALUY_TOOL_CALL_neutralizado]").split(gh).join("[ALUY_TOOL_CALL_neutralizado]").split(Fa).join("[DADO_NAO_CONFIAVEL_neutralizado]").split(ni).join("[DADO_NAO_CONFIAVEL_neutralizado]").replace(/[\r\n\t\f\v]+/g," ").replace(/ {2,}/g," ").trim()}function PD(t){return t.length<=yh?t:`${t.slice(0,yh)}\u2026`}function ND(t){let e=Bn(t.name)||"(?)",o=Bn(t.type)||"any",n=t.required?`${e}: ${o} (obrigat\xF3rio)`:`${e}?: ${o}`;if(t.description!==void 0){let r=Bn(t.description);if(r!=="")return` ${n} \u2014 ${PD(r)}`}return` ${n}`}function kh(t){if(t.length===0)return"";let e=[...t].sort((c,l)=>Number(l.required)-Number(c.required)),o=e.slice(0,Mw),n=e.length-o.length,r=[],s=0,i=!1;for(let c of o){let l=ND(c);if(s+l.length+1>Lw){i=!0;break}r.push(l),s+=l.length+1}let a=[];return n>0&&a.push(` \u2026(+${n} par\xE2metro(s) opcional(is) omitido(s) \u2014 priorizados os obrigat\xF3rios)`),i&&a.push(" \u2026(lista de par\xE2metros truncada por tamanho)"),[...r,...a].join(`
|
|
32
32
|
`)}var yh,Mw,Lw,qd=S(()=>{"use strict";oi();Un();yh=120,Mw=16,Lw=1200});function Pw(t){let e=Jr(t);return e.trim()===""?t:e}function Wd(t){if(t===void 0)return;let e=t.trim();if(e!=="")return e.length<=xh?e:e.slice(0,xh)+`
|
|
33
33
|
[\u2026AGENT.md truncado: maior que ${xh} caracteres \u2014 s\xF3 o in\xEDcio foi injetado\u2026]`}function $D(t){let e=`- ${Bn(t.name)} (efeito: ${t.effect}): ${Bn(t.description)}`,o=t.parameters?kh(vh(t.parameters)):"";return o===""?e:`${e}
|
|
@@ -135,7 +135,7 @@ ${t.trim()}`}}function TT(t,e,o=gc){let{older:n,recent:r}=Cu(t,o);if(n.length===
|
|
|
135
135
|
\u2026[truncado: ${t.length-$y} chars omitidos]`}function PB(t){return t.length<=By?t:`${t.slice(0,By)}\u2026`}function d_(t){let e=l_(t.server,t.descriptor.name),o=PB(t.descriptor.description.trim()),n=`[tool de um SERVER MCP de terceiro "${t.server}" \u2014 efeito n\xE3o-confi\xE1vel, passa pela catraca] ${o||"(sem descri\xE7\xE3o)"}`,r=t.descriptor.inputSchema,s=r!==null&&typeof r=="object"&&!Array.isArray(r)?r:void 0;return{name:e,effect:"mcp",description:n,...s?{parameters:s}:{},async run(i,a,c){try{let l=await t.transport.callTool(t.descriptor.name,i,c?.signal),d=Ue(l.content);return l.ok?{ok:!0,observation:c_(d),display:`${e}(${NB(i)})`}:{ok:!1,observation:c_(`MCP "${e}" erro: ${d}`)}}catch(l){return{ok:!1,observation:`MCP "${e}" falhou: ${l instanceof Error?l.message:String(l)}`}}}}}function Uy(t,e){let o=[],n=new Set,r=new Map,s=new Map,i=new Set;for(let a of t){let c=d_(a);if(n.has(c.name))continue;n.add(c.name);let l=a.server;s.set(l,(s.get(l)??0)+1);let d=r.get(l)??0;if(d>=Fy){i.add(l);continue}r.set(l,d+1),o.push(c)}if(e)for(let a of i){let c=s.get(a)??0;e(`server MCP "${a}" exp\xF4s ${c} tools; usando as primeiras ${Fy} (teto por server, anti-estouro de contexto). As demais foram ignoradas \u2014 revise o server ou reduza as tools que ele exp\xF5e.`)}return o}function NB(t){if(Object.keys(t).length===0)return"";let o=JSON.stringify(t);return o.length<=200?o:`${o.slice(0,200)}\u2026`}var $y,Fy,By,u_=S(()=>{"use strict";ld();jn();$y=2e4;Fy=128,By=1024});function p_(t,e){let o=new URL(f_);return t.trim().length>0&&o.searchParams.set("search",t.trim()),o.searchParams.set("limit",String(DB)),e!==void 0&&e.length>0&&o.searchParams.set("cursor",e),o.toString()}async function Hy(t,e,o){let n=t.trim(),r=[],s;for(let i=0;i<IB;i++){let a=p_(n,s),c;try{c=await e(a,o)}catch(f){return{ok:!1,query:n,reason:Fu(HB(f))}}if(!c.ok)return{ok:!1,query:n,reason:Fu(c.reason)};if(c.status<200||c.status>=300)return{ok:!1,query:n,reason:Fu(`HTTP ${c.status}`)};let l;try{l=JSON.parse(c.body)}catch{return{ok:!1,query:n,reason:Fu("resposta n\xE3o \xE9 JSON v\xE1lido")}}let d=g_(l);for(let f of d.servers)if(h_(f,n)&&r.push(f),r.length>=jy)break;if(r.length>=jy||(s=d.nextCursor,s===void 0||s.length===0))break}return{ok:!0,query:n,results:r}}function Fu(t){return`registro MCP indispon\xEDvel (${vi}): ${t}`}function h_(t,e){if(e.length===0)return!0;let o=e.toLowerCase();return[t.name,t.title??"",t.description,t.run.command??"",t.run.args.join(" ")].join(" ").toLowerCase().includes(o)}function g_(t){if(!Gn(t))return{servers:[]};let e=Array.isArray(t.servers)?t.servers:[],o=[];for(let s of e){let i=$B(s);i!==void 0&&o.push(i)}let n=Gn(t.metadata)?t.metadata:void 0,r=n!==void 0&&typeof n.nextCursor=="string"?n.nextCursor:void 0;return{servers:o,...r!==void 0?{nextCursor:r}:{}}}function $B(t){if(!Gn(t))return;let e=Gn(t.server)?t.server:t,o=typeof e.name=="string"?e.name.trim():"";if(o.length===0)return;let n=typeof e.description=="string"?e.description.trim():"",r=typeof e.title=="string"&&e.title.trim().length>0?e.title.trim():void 0,s=typeof e.version=="string"?e.version.trim():void 0,i=FB(e);return{name:o,description:n,run:i,...r!==void 0?{title:r}:{},...s!==void 0?{version:s}:{}}}function FB(t){let e=[],o=Array.isArray(t.remotes)?t.remotes:[];for(let r of o)Gn(r)&&typeof r.url=="string"&&e.push(r.url);let n=Array.isArray(t.packages)?t.packages:[];for(let r of n){if(!Gn(r))continue;let s=BB(r);if(s!==void 0)return{...s,remoteUrls:e}}return{args:[],env:[],remoteUrls:e}}function BB(t){let e=cs(t.registryType)??cs(t.registry_name),o=cs(t.identifier)??cs(t.name);if(o===void 0)return;let n=cs(t.version),r=cs(t.runtimeHint),s=Gn(t.transport)?cs(t.transport.type):void 0,i=jB(t.environmentVariables),a=m_(t.runtimeArguments),c=m_(t.packageArguments),l=n!==void 0?`${o}@${n}`:o;return e==="npm"||r==="npx"?{command:"npx",args:UB(["-y",...a,l,...c]),env:i,...s!==void 0?{transport:s}:{}}:e==="pypi"||r==="uvx"||r==="uv"?{command:"uvx",args:[...a,o,...c],env:i,...s!==void 0?{transport:s}:{}}:e==="oci"||r==="docker"?{command:"docker",args:["run","-i","--rm",...a,l,...c],env:i,...s!==void 0?{transport:s}:{}}:{args:[l],env:i,...s!==void 0?{transport:s}:{}}}function UB(t){let e=[],o=!1;for(let n of t){if(n==="-y"||n==="--yes"){if(o)continue;o=!0}e.push(n)}return e}function m_(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)Gn(o)&&typeof o.value=="string"&&e.push(o.value);return e}function jB(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)Gn(o)&&typeof o.name=="string"&&o.name.length>0&&e.push({name:o.name,required:o.isRequired===!0});return e}function cs(t){return typeof t=="string"&&t.trim().length>0?t.trim():void 0}function Gn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function HB(t){return t instanceof Error?t.message:String(t)}var vi,f_,IB,DB,jy,y_=S(()=>{"use strict";vi="registry.modelcontextprotocol.io",f_=`https://${vi}/v0/servers`,IB=5,DB=100,jy=25});function v_(t){let{command:e,args:o}=t.run;if(e===void 0)return;let n=k_(t.name);return["aluy","mcp","add",b_(n),"--",e,...o.map(b_)].join(" ")}function k_(t){let o=(t.split("/").pop()??t).replace(/[^A-Za-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"");return o.length>0?o:"server"}function b_(t){return/^[A-Za-z0-9_./@:+=-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function qy(t){if(!t.ok)return`\u26A0 ${t.reason}
|
|
136
136
|
Tente de novo em instantes; a busca no registro n\xE3o bloqueia o resto do aluy.`;if(t.results.length===0)return`nenhum server encontrado para "${t.query}" no registro oficial MCP.`;let e=[],o=t.results.length;e.push(`${o} server${o===1?"":"s"} para "${t.query}" (registro oficial MCP):`),e.push("");for(let n of t.results)e.push(qB(n)),e.push("");return e.push('Para instalar, copie a linha "\u2192 aluy mcp add \u2026" do server desejado.'),e.push("A sa\xEDda do registro \xE9 apenas informativa \u2014 nada \xE9 executado pela busca."),e.join(`
|
|
137
137
|
`)}function qB(t){let o=[`\u2022 ${t.version!==void 0?`${t.name} (v${t.version})`:t.name}`],n=t.title!==void 0&&t.title!==t.name?t.title:void 0;n!==void 0&&o.push(` ${n}`),t.description.length>0&&o.push(` ${WB(t.description,200)}`);let r=v_(t);if(r!==void 0){o.push(` \u2192 ${r}`),t.run.transport!==void 0&&t.run.transport!=="stdio"&&o.push(` (transporte "${t.run.transport}" \u2014 v1 do aluy s\xF3 pluga servers stdio LOCAIS)`);let s=t.run.env.filter(i=>i.required).map(i=>i.name);s.length>0&&o.push(` requer env: ${s.join(", ")} (defina por-server no mcp.json)`)}else t.run.remoteUrls.length>0?o.push(` (server REMOTO: ${t.run.remoteUrls.join(", ")} \u2014 fora do v1 de \`aluy mcp add\`)`):o.push(" (sem pacote local conhecido \u2014 nada a instalar pelo aluy)");return o.join(`
|
|
138
|
-
`)}function WB(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var x_=S(()=>{"use strict"});var S_=S(()=>{"use strict";$u();o_();n_();r_();s_();a_();u_();ld();y_();x_()});function Wy(t){let e=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?/.exec(t.trim());if(!e)return null;let o=e[4]?e[4].split(".").map(n=>/^\d+$/.test(n)?Number(n):n):[];return{major:Number(e[1]),minor:Number(e[2]),patch:Number(e[3]),pre:o}}function w_(t,e){let o=Wy(t),n=Wy(e);if(!o||!n)return null;for(let s of["major","minor","patch"])if(o[s]!==n[s])return o[s]<n[s]?-1:1;if(o.pre.length===0&&n.pre.length===0)return 0;if(o.pre.length===0)return 1;if(n.pre.length===0)return-1;let r=Math.max(o.pre.length,n.pre.length);for(let s=0;s<r;s++){let i=o.pre[s],a=n.pre[s];if(i===void 0)return-1;if(a===void 0)return 1;if(i===a)continue;let c=typeof i=="number",l=typeof a=="number";return c&&l?i<a?-1:1:c?-1:l?1:i<a?-1:1}return 0}function Gy(t,e){return w_(t,e)===1}var A_=S(()=>{"use strict"});var zy=S(()=>{"use strict"});var E_=S(()=>{"use strict";zy()});var T_=S(()=>{"use strict"});var __=S(()=>{"use strict"});function Ky(t){return`connector-${t}-token`}function Yy(t){let e=t.trim(),o=e.indexOf(":");return o<=0?`\u2026(${e.length} chars)`:`${e.slice(0,o)}:\u2026(${e.length-o-1} chars)`}var R_=S(()=>{"use strict"});var j=S(()=>{"use strict";Tx();Yx();iS();Ew();GT();ZT();S_();Ay();hu();A_();zy();E_();T_();__();R_()});import{posix as uj}from"node:path";function mj(t){return uj.normalize(t)}function Jt(t){let e=mj(t);for(let o of fj)if(o.re.test(e))return o.deny?{kind:"deny",why:o.why}:{kind:"ask",why:o.why};return{kind:"allow"}}function fb(t){return Jt(t).kind==="allow"}var fj,wr=S(()=>{"use strict";fj=[{re:/(?:^|\/|~\/)\.ssh(?:\/|$)/,why:"chaves SSH (~/.ssh)",deny:!0},{re:/(?:^|\/|~\/)\.aws(?:\/|$)/,why:"credenciais AWS (~/.aws)",deny:!0},{re:/(?:^|\/|~\/)\.gnupg(?:\/|$)/,why:"chaves GPG (~/.gnupg)",deny:!0},{re:/(?:~\/|\$\{?HOME\}?\/|\/(?:home|Users)\/[^/]+\/)\.aluy\/rooms(?:\/|$)/,why:"arquivos de sala do Aluy (~/.aluy/rooms)",deny:!0},{re:/~\/\.aluy(?:\/|$)/,why:"estado/credencial do Aluy (~/.aluy)",deny:!0},{re:/(?:^|\/)\.aluy(?:\/(?!agents\/|workflows\/|commands\/)|$)/,why:"estado/credencial do Aluy (.aluy/)",deny:!0},{re:/(?:^|\/|~\/)\.config\/gh\/hosts\.yml$/,why:"token do gh CLI",deny:!0},{re:/(?:^|\/|~\/)\.docker\/config\.json$/,why:"credenciais Docker",deny:!0},{re:/(?:^|\/|~\/)\.kube\/config$/,why:"kubeconfig",deny:!0},{re:/(?:^|\/)id_(?:rsa|ed25519|ecdsa|dsa)\b/,why:"chave privada",deny:!0},{re:/\.pem$|\.p12$|\.pfx$|\.key$/i,why:"material de chave privada",deny:!0},{re:/(?:^|[/\w.-])\.env(?:\.(?!example$|sample$|template$|dist$)[\w.-]+)?$/,why:"arquivo .env (segredos)",deny:!1},{re:/(?:^|\/)[^/]*(?:secret|credential|token|apikey|api_key|password|passwd)[^/]*$/i,why:"arquivo com nome sens\xEDvel (token/secret)",deny:!1}]});var Db={};Wf(Db,{UserWorkflowsLoader:()=>_i,WORKFLOWS_DIRNAME:()=>Ib});import{homedir as QH}from"node:os";import{join as Nb}from"node:path";import{readdirSync as ZH,readFileSync as eq,mkdirSync as tq,statSync as oq}from"node:fs";var nq,Ib,rq,sq,_i,sm=S(()=>{"use strict";j();nq=448,Ib="workflows",rq=64*1024,sq=256,_i=class{dir;constructor(e={}){let o=e.baseDir??Nb(QH(),".aluy");this.dir=Nb(o,Ib)}get workflowsDir(){return this.dir}ensureDir(){try{tq(this.dir,{mode:nq,recursive:!0})}catch{}}load(){let e;try{e=ZH(this.dir,{withFileTypes:!0})}catch{return{workflows:[],errors:[]}}let o=e.filter(i=>i.isFile()&&i.name.toLowerCase().endsWith(".md")).map(i=>i.name).sort((i,a)=>i.localeCompare(a)),n=new Set,r=[],s=[];for(let i of o){if(r.length>=sq)break;let a=this.readOne(i);if(a!==null){if(sc(a)){s.push(a);continue}n.has(a.name)||(n.add(a.name),r.push(a))}}return{workflows:r,errors:s}}readOne(e){let o=Nb(this.dir,e);try{let n=oq(o);if(!n.isFile()||n.size>rq)return null;let r=eq(o,"utf8");return ic(e,r,"global")}catch{return null}}}});var Fb={};Wf(Fb,{PROJECT_WORKFLOWS_DIRNAMES:()=>$b,ProjectWorkflowsLoader:()=>Ri});import{join as iq}from"node:path";import{readdirSync as aq,readFileSync as cq,statSync as lq}from"node:fs";var $b,dq,uq,Ri,im=S(()=>{"use strict";j();wr();$b=[".claude/workflows",".aluy/workflows"],dq=64*1024,uq=256,Ri=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of $b){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=aq(s,{withFileTypes:!0})}catch{continue}let a=i.filter(c=>c.isFile()&&c.name.toLowerCase().endsWith(".md")).map(c=>c.name).sort((c,l)=>c.localeCompare(l));for(let c of a){if(o.length>=uq)break;let l=this.readOne(r,s,c);if(l!==null){if(sc(l)){n.push(l);continue}e.has(l.name)||(e.add(l.name),o.push(l))}}}return{workflows:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}`;if(Jt(r).kind!=="allow")return null;let s=iq(o,n);try{this.workspace.resolveInside(r);let i=lq(s);if(!i.isFile()||i.size>dq)return null;let a=cq(s,"utf8");return ic(n,a,"project")}catch{return null}}}});var Ln="1.0.0-rc.
|
|
138
|
+
`)}function WB(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var x_=S(()=>{"use strict"});var S_=S(()=>{"use strict";$u();o_();n_();r_();s_();a_();u_();ld();y_();x_()});function Wy(t){let e=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?/.exec(t.trim());if(!e)return null;let o=e[4]?e[4].split(".").map(n=>/^\d+$/.test(n)?Number(n):n):[];return{major:Number(e[1]),minor:Number(e[2]),patch:Number(e[3]),pre:o}}function w_(t,e){let o=Wy(t),n=Wy(e);if(!o||!n)return null;for(let s of["major","minor","patch"])if(o[s]!==n[s])return o[s]<n[s]?-1:1;if(o.pre.length===0&&n.pre.length===0)return 0;if(o.pre.length===0)return 1;if(n.pre.length===0)return-1;let r=Math.max(o.pre.length,n.pre.length);for(let s=0;s<r;s++){let i=o.pre[s],a=n.pre[s];if(i===void 0)return-1;if(a===void 0)return 1;if(i===a)continue;let c=typeof i=="number",l=typeof a=="number";return c&&l?i<a?-1:1:c?-1:l?1:i<a?-1:1}return 0}function Gy(t,e){return w_(t,e)===1}var A_=S(()=>{"use strict"});var zy=S(()=>{"use strict"});var E_=S(()=>{"use strict";zy()});var T_=S(()=>{"use strict"});var __=S(()=>{"use strict"});function Ky(t){return`connector-${t}-token`}function Yy(t){let e=t.trim(),o=e.indexOf(":");return o<=0?`\u2026(${e.length} chars)`:`${e.slice(0,o)}:\u2026(${e.length-o-1} chars)`}var R_=S(()=>{"use strict"});var j=S(()=>{"use strict";Tx();Yx();iS();Ew();GT();ZT();S_();Ay();hu();A_();zy();E_();T_();__();R_()});import{posix as uj}from"node:path";function mj(t){return uj.normalize(t)}function Jt(t){let e=mj(t);for(let o of fj)if(o.re.test(e))return o.deny?{kind:"deny",why:o.why}:{kind:"ask",why:o.why};return{kind:"allow"}}function fb(t){return Jt(t).kind==="allow"}var fj,wr=S(()=>{"use strict";fj=[{re:/(?:^|\/|~\/)\.ssh(?:\/|$)/,why:"chaves SSH (~/.ssh)",deny:!0},{re:/(?:^|\/|~\/)\.aws(?:\/|$)/,why:"credenciais AWS (~/.aws)",deny:!0},{re:/(?:^|\/|~\/)\.gnupg(?:\/|$)/,why:"chaves GPG (~/.gnupg)",deny:!0},{re:/(?:~\/|\$\{?HOME\}?\/|\/(?:home|Users)\/[^/]+\/)\.aluy\/rooms(?:\/|$)/,why:"arquivos de sala do Aluy (~/.aluy/rooms)",deny:!0},{re:/~\/\.aluy(?:\/|$)/,why:"estado/credencial do Aluy (~/.aluy)",deny:!0},{re:/(?:^|\/)\.aluy(?:\/(?!agents\/|workflows\/|commands\/)|$)/,why:"estado/credencial do Aluy (.aluy/)",deny:!0},{re:/(?:^|\/|~\/)\.config\/gh\/hosts\.yml$/,why:"token do gh CLI",deny:!0},{re:/(?:^|\/|~\/)\.docker\/config\.json$/,why:"credenciais Docker",deny:!0},{re:/(?:^|\/|~\/)\.kube\/config$/,why:"kubeconfig",deny:!0},{re:/(?:^|\/)id_(?:rsa|ed25519|ecdsa|dsa)\b/,why:"chave privada",deny:!0},{re:/\.pem$|\.p12$|\.pfx$|\.key$/i,why:"material de chave privada",deny:!0},{re:/(?:^|[/\w.-])\.env(?:\.(?!example$|sample$|template$|dist$)[\w.-]+)?$/,why:"arquivo .env (segredos)",deny:!1},{re:/(?:^|\/)[^/]*(?:secret|credential|token|apikey|api_key|password|passwd)[^/]*$/i,why:"arquivo com nome sens\xEDvel (token/secret)",deny:!1}]});var Db={};Wf(Db,{UserWorkflowsLoader:()=>_i,WORKFLOWS_DIRNAME:()=>Ib});import{homedir as QH}from"node:os";import{join as Nb}from"node:path";import{readdirSync as ZH,readFileSync as eq,mkdirSync as tq,statSync as oq}from"node:fs";var nq,Ib,rq,sq,_i,sm=S(()=>{"use strict";j();nq=448,Ib="workflows",rq=64*1024,sq=256,_i=class{dir;constructor(e={}){let o=e.baseDir??Nb(QH(),".aluy");this.dir=Nb(o,Ib)}get workflowsDir(){return this.dir}ensureDir(){try{tq(this.dir,{mode:nq,recursive:!0})}catch{}}load(){let e;try{e=ZH(this.dir,{withFileTypes:!0})}catch{return{workflows:[],errors:[]}}let o=e.filter(i=>i.isFile()&&i.name.toLowerCase().endsWith(".md")).map(i=>i.name).sort((i,a)=>i.localeCompare(a)),n=new Set,r=[],s=[];for(let i of o){if(r.length>=sq)break;let a=this.readOne(i);if(a!==null){if(sc(a)){s.push(a);continue}n.has(a.name)||(n.add(a.name),r.push(a))}}return{workflows:r,errors:s}}readOne(e){let o=Nb(this.dir,e);try{let n=oq(o);if(!n.isFile()||n.size>rq)return null;let r=eq(o,"utf8");return ic(e,r,"global")}catch{return null}}}});var Fb={};Wf(Fb,{PROJECT_WORKFLOWS_DIRNAMES:()=>$b,ProjectWorkflowsLoader:()=>Ri});import{join as iq}from"node:path";import{readdirSync as aq,readFileSync as cq,statSync as lq}from"node:fs";var $b,dq,uq,Ri,im=S(()=>{"use strict";j();wr();$b=[".claude/workflows",".aluy/workflows"],dq=64*1024,uq=256,Ri=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of $b){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=aq(s,{withFileTypes:!0})}catch{continue}let a=i.filter(c=>c.isFile()&&c.name.toLowerCase().endsWith(".md")).map(c=>c.name).sort((c,l)=>c.localeCompare(l));for(let c of a){if(o.length>=uq)break;let l=this.readOne(r,s,c);if(l!==null){if(sc(l)){n.push(l);continue}e.has(l.name)||(e.add(l.name),o.push(l))}}}return{workflows:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}`;if(Jt(r).kind!=="allow")return null;let s=iq(o,n);try{this.workspace.resolveInside(r);let i=lq(s);if(!i.isFile()||i.size>dq)return null;let a=cq(s,"utf8");return ic(n,a,"project")}catch{return null}}}});var Ln="1.0.0-rc.42";j();var C_=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
|
|
139
139
|
|
|
140
140
|
Uso:
|
|
141
141
|
aluy ["objetivo"] [--plan | --yolo] [--dense] [--tier <tier>] [--lang <pt-BR|en>]
|
|
@@ -447,7 +447,7 @@ ${jo(w)}`}}catch(h){let g=d?`o proxy n\xE3o respondeu em ${f}ms (timeout)`:h ins
|
|
|
447
447
|
`,r=`${this.file}.tmp-${process.pid}-${Date.now().toString(36)}`,s=zU(r,ub.O_CREAT|ub.O_EXCL|ub.O_WRONLY,ZU);try{KU(s,n,0,"utf8")}finally{YU(s)}try{XU(r,this.file)}catch(i){try{JU(r)}catch{}throw i}}ensureDir(e){let o=Ei(e),n=Ei(o);kR(n)||vR(n,{recursive:!0});for(let r of[o,e])try{vR(r,{mode:QU})}catch(s){if(s.code!=="EEXIST")throw s}}};import{writeFileSync as rj,rmSync as sj,readFileSync as ij,existsSync as aj}from"node:fs";var Dc=class{workspace;constructor(e){this.workspace=e.workspace}async writeConfined(e,o){let n=this.workspace.resolveInside(e);return rj(n,o,"utf8"),n}async removeConfined(e){let o=this.workspace.resolveInside(e);return sj(o,{force:!0}),o}},$c=class{workspace;constructor(e){this.workspace=e.workspace}async readCurrent(e){let o;try{o=this.workspace.resolveInside(e)}catch{return}if(aj(o))return ij(o,"utf8")}};var cj="\x1B]9;",xR={attention:"Aluy precisa de voc\xEA",done:"Aluy \u2014 turno conclu\xEDdo"},Fc=class{write;isTty;desktop;on;constructor(e){this.write=e.write,this.isTty=e.isTty??!1,this.desktop=e.desktop??!0,this.on=e.enabled??!0}get enabled(){return this.on&&this.isTty}setEnabled(e){this.on=e}notify(e){if(!this.enabled)return;let o=xR[e];try{this.write("\x07"),this.desktop&&this.write(`${cj}${o}\x07`)}catch{}}},lj={notify:()=>{},enabled:!1,setEnabled:()=>{}};function dj(t){if(t===void 0)return!1;let e=t.trim().toLowerCase();return e==="0"||e==="false"||e==="off"||e==="no"}function mb(t=process.env){let e=!dj(t.ALUY_NOTIFY),o=t.NO_COLOR===void 0;return{enabled:e,desktop:o}}j();wr();var Ar="ALUY.md",SR=["ALUY.md","AGENT.md","AGENTS.md","CLAUDE.md"];async function wR(t,e){let{workspace:o,fs:n}=e;try{o.resolveInside(t)}catch{return}if(Jt(t).kind!=="allow"||!await n.exists(t))return;let r;try{r=await n.readFile(t)}catch{return}return Wd(r)}async function pb(t){let e=[];for(let r of SR){let s=await wR(r,t);s!==void 0&&e.push({filename:r,text:s})}if(e.length===0)return{sources:[]};if(e.length===1)return{instructions:e[0].text,sources:[e[0].filename]};let o=e.map(r=>`<!-- fonte: ${r.filename} -->
|
|
448
448
|
${r.text}`).join(`
|
|
449
449
|
|
|
450
|
-
`),n=Wd(o);return{...n!==void 0?{instructions:n}:{},sources:e.map(r=>r.filename)}}async function pj(t){return wR(Ar,t)}import{homedir as kj}from"node:os";import{join as BR}from"node:path";import{randomBytes as xj}from"node:crypto";import{openSync as Sj,writeSync as wj,closeSync as UR,readFileSync as Aj,mkdirSync as Ej,renameSync as Tj,unlinkSync as _j,constants as kb}from"node:fs";var Qu={fg:{color:"#F2EEE8"},fgDim:{color:"#8A7F6D",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},Zu={fg:{color:"#1A1712"},fgDim:{color:"#544B3C"},accent:{color:"#82530F",bold:!0},accentDim:{color:"#82530F",bold:!0},danger:{color:"#B23A2A",bold:!0},success:{color:"#1F6B3A"},depth:{color:"#2E6E69"}},AR={fg:{color:"white"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},ER={fg:{color:"black"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},TR={fg:{color:"#F2EEE8"},fgDim:{color:"#B0A593",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},_R={fg:{},fgDim:{dimColor:!0},accent:{bold:!0},accentDim:{bold:!0},danger:{bold:!0,inverse:!0},success:{},depth:{}};var RR={you:"\u258C",aluy:"\u039B",tool:"\u23FA",toolInflight:"\u25CB",wave:"~",waveHead:"\u203A",ask:"\u26A0",ok:"\u2713",err:"\u2717",broker:"\u25CF",clock:"\u25F7",gauge:"\u25D4",window:"\u25A1",branch:"\u2387",diffDel:"\u2039",diffAdd:"\u203A",prompt:"\u203A",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u25B0",barEmpty:"\u25B1"},CR={you:"\u258C",aluy:"\u039B",tool:"\u25CF",toolInflight:"\u25CB",wave:"~",waveHead:">",ask:"!",ok:"\u221A",err:"x",broker:"\u25CF",clock:"o",gauge:"\u25D4",window:"\u25A1",branch:"Y",diffDel:"<",diffAdd:">",prompt:">",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u2588",barEmpty:"\u2591"},OR={you:">",aluy:"/\\",tool:"o",toolInflight:".",wave:"~",waveHead:">",ask:"!",ok:"[ok]",err:"[x]",broker:"(b)",clock:"t:",gauge:"%:",window:"ctx:",branch:"git:",diffDel:"-",diffAdd:"+",prompt:">",cursor:"*",thinkingCursor:"*",planMode:"[plan]",normalMode:"*",subagents:"(+)",sessionDot:"*",barFull:"#",barEmpty:"."},MR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],LR=["-","\\","|","/"],PR={topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u251C",teeRight:"\u2524"},NR={topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+"};var Bc=[{name:"ambar",darkHex:"#DDA13F",lightHex:"#82530F",ansi:"yellow"},{name:"verde",darkHex:"#82CF9E",lightHex:"#1F6B3A",ansi:"green"},{name:"teal",darkHex:"#5BA8A2",lightHex:"#2E6E69",ansi:"cyan"},{name:"azul",darkHex:"#6FA8DC",lightHex:"#1F5C99",ansi:"blue"},{name:"violeta",darkHex:"#B08CD9",lightHex:"#6A3FA6",ansi:"magenta"},{name:"rosa",darkHex:"#E59BC0",lightHex:"#A63D74",ansi:"magenta"},{name:"coral",darkHex:"#E5897C",lightHex:"#B23A2A",ansi:"red"},{name:"ardosia",darkHex:"#9AA7B0",lightHex:"#4A5963",ansi:"gray"}],Ti=Bc.map(t=>t.name);function IR(t){return Ti.includes(t.trim().toLowerCase())}function hb(t){let e=2166136261,o=t.trim().toLowerCase();for(let r=0;r<o.length;r++)e^=o.charCodeAt(r),e=Math.imul(e,16777619);let n=(e>>>0)%Bc.length;return Bc[n].name}function DR(t,e,o){let n=t.trim().toLowerCase(),r=Bc.find(s=>s.name===n)??Bc.find(s=>s.name===hb(n));return e==="mono"?{bold:!0}:e==="truecolor"?{color:o==="light"?r.lightHex:r.darkHex,bold:!0}:{color:r.ansi,bold:!0}}function em(t){return t!==void 0&&t!==""&&t!=="0"&&t.toLowerCase()!=="false"}function hj(t){if(t.NO_COLOR!==void 0)return"mono";let e=(t.COLORTERM??"").toLowerCase();if(e==="truecolor"||e==="24bit")return"truecolor";let o=(t.TERM??"").toLowerCase();return o==="dumb"||o===""?"mono":"ansi16"}function gj(t,e){if(e)return e;let o=t.COLORFGBG;if(o){let n=o.split(";"),r=Number(n[n.length-1]);if(Number.isFinite(r))return r>=8?"light":"dark"}return"dark"}function yj(t){let e=(t.TERM??"").toLowerCase();if(e==="linux"||e==="dumb")return!1;let o=`${t.LC_ALL??""}${t.LC_CTYPE??""}${t.LANG??""}`.toLowerCase();return!(em(t.ALUY_ASCII)||o&&!o.includes("utf"))}function bj(t,e){return e!==void 0?e:em(t.ALUY_SAFE_GLYPHS)}function vj(t,e,o){return t==="mono"?_R:t==="truecolor"?o??(e==="light"?Zu:Qu):e==="light"?ER:AR}function ln(t={}){let e=t.env??process.env,o=hj(e),n=gj(e,t.theme),r=yj(e),s=r&&bj(e,t.safeGlyphs),i=t.density??(em(e.ALUY_DENSITY)&&e.ALUY_DENSITY==="compact"?"compact":"comfortable"),a=t.animate??!em(e.ALUY_NO_ANIM),c=vj(o,n,t.truecolorPalette),l=r?s?CR:RR:OR;return{colorMode:o,brightness:n,unicode:r,safeGlyphs:s,density:i,animate:a,role:p=>c[p],sessionColor:p=>DR(p,o,n),glyph:p=>l[p],aluyMark:r?"\u039B":"/\\",spinnerFrames:r&&!s?MR:LR,box:r?PR:NR}}var po=[{name:"aluy-dark",label:"Aluy Dark",brightness:"dark",summary:"escuro neutro (default) \u2014 fundo quase-preto, accent \xE2mbar",bg:"#070707",palette:Qu},{name:"aluy-light",label:"Aluy Light",brightness:"light",summary:"claro creme \u2014 fundo --stone-50, accent \xE2mbar escurecido (AA)",bg:"#F4ECDC",palette:Zu},{name:"aluy-slate",label:"Aluy Slate",brightness:"dark",summary:"terra escura WARM \u2014 fundo --stone-950, accent \xE2mbar",bg:"#0E0C09",palette:TR}],bb="aluy-dark";function Er(t){return po.find(e=>e.name===t)}function Jn(t){let e=t.trim().toLowerCase();if(e==="")return;let o=po.find(r=>r.name===e);if(o)return o;let n=po.find(r=>r.name===`aluy-${e}`);return n||po.find(r=>r.label.toLowerCase()===e)}function us(t){return t==="light"?"aluy-light":"aluy-dark"}function $R(t,e={}){let o=Er(t)??Er(bb);return ln({...e,theme:o.brightness,truecolorPalette:o.palette})}var dn="pt-BR",wo=[{code:"pt-BR",label:"Portugu\xEAs (Brasil)",summary:"idioma padr\xE3o da TUI"},{code:"en",label:"English",summary:"English interface (opt-in)"}];function ms(t){return wo.find(e=>e.code===t)}function Tr(t){let e=t.trim().toLowerCase();if(e==="")return;let o=wo.find(n=>n.code.toLowerCase()===e);if(o)return o;if(e==="pt"||e==="pt_br"||e==="br"||e==="portugu\xEAs"||e==="portugues")return ms("pt-BR");if(e==="en"||e==="en_us"||e==="english"||e==="ingl\xEAs"||e==="ingles")return ms("en")}function FR(t){let e=(t.LC_ALL??t.LC_MESSAGES??t.LANG??"").trim().toLowerCase();if(e==="")return dn;let o=e.split(".")[0].split("@")[0].replace("_","-");return o==="c"||o==="posix"?dn:o==="en"||o.startsWith("en-")?"en":dn}function vb(t,e,o){if(t!==void 0&&t.trim()!==""){let n=Tr(t);if(n)return n.code}return e!==void 0?e:FR(o)}j();var Rj=448,Cj=384,jc="config.json",Oj=new Set(["openai-compat","anthropic","gemini"]);function jR(t){let o=(Array.isArray(t)?t:t!==void 0?[t]:[]).filter(n=>typeof n=="string"&&n.trim()!=="");return o.length>0?o:void 0}function Mj(t){if(typeof t!="string")return!1;let e=t.trim().toLowerCase();return e==="localhost"||e==="::1"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function Lj(t){return typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=65535}function xb(t){if(typeof t!="object"||t===null)return;let e=t,o={};return Mj(e.host)&&(o.host=e.host.trim()),Lj(e.port)&&(o.port=e.port),o.host!==void 0||o.port!==void 0?o:void 0}function Pj(t){if(typeof t!="object"||t===null)return;let e=t,o=a=>typeof a=="number"&&Number.isInteger(a)&&a>0?a:void 0,n={},r=o(e.maxTokens),s=o(e.maxOutputTokens),i=o(e.maxIterations);return r!==void 0&&(n.maxTokens=r),s!==void 0&&(n.maxOutputTokens=s),i!==void 0&&(n.maxIterations=i),Object.keys(n).length>0?n:void 0}function Nj(t){if(typeof t!="object"||t===null)return;let e=t,o={};return typeof e.window=="number"&&Number.isInteger(e.window)&&e.window>0&&(o.window=e.window),typeof e.autocompactAt=="number"&&Number.isFinite(e.autocompactAt)?o.autocompactAt=e.autocompactAt:typeof e.autocompactAt=="string"&&e.autocompactAt.trim()!==""&&(o.autocompactAt=e.autocompactAt.trim()),typeof e.autocompactMax=="number"&&Number.isInteger(e.autocompactMax)&&e.autocompactMax>0&&(o.autocompactMax=e.autocompactMax),Object.keys(o).length>0?o:void 0}function Ij(t){if(typeof t!="object"||t===null)return;let e=t,o={};if(typeof e.telegram=="object"&&e.telegram!==null){let n=e.telegram;if(Array.isArray(n.allowlist)){let r=[];for(let s of n.allowlist)typeof s=="number"&&Number.isFinite(s)&&Number.isInteger(s)&&!r.includes(s)&&r.push(s);o.telegram={allowlist:r}}else o.telegram={}}return o.telegram!==void 0?o:void 0}function Dj(t){if(typeof t!="object"||t===null)return;let e=t,o={},n=xb(e.ollama),r=xb(e.mem0),s=xb(e.headroom);return n&&(o.ollama=n),r&&(o.mem0=r),s&&(o.headroom=s),Object.keys(o).length>0?o:void 0}function $j(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(typeof o!="object"||o===null)continue;let n=o,r=typeof n.id=="string"?n.id.trim():"",s=typeof n.baseUrl=="string"?n.baseUrl.trim():"",i=typeof n.defaultModel=="string"?n.defaultModel.trim():"",a=typeof n.wireFormat=="string"?n.wireFormat:"";if(r===""||s===""||i===""||!Oj.has(a))continue;let c=jR(n.auth),l=jR(n.models),d={id:r,wireFormat:a,baseUrl:s,defaultModel:i,...typeof n.label=="string"&&n.label.trim()?{label:n.label.trim()}:{},...c?{auth:c}:{},...l?{models:l}:{}};e.push(d)}return e.length>0?e:void 0}var Fj=128;function Uc(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>Fj?!1:!/[\u0000-\u001F\u007F]/.test(e)}function HR(t){if(typeof t!="object"||t===null)return{};let e=t,o={};if(typeof e.theme=="string"){let c=Er(e.theme);c&&(o.theme=c.name)}if(Uc(e.tier)&&(o.tier=e.tier.trim()),o.tier==="custom"&&Uc(e.model)&&(o.model=e.model.trim()),typeof e.splitView=="boolean"&&(o.splitView=e.splitView),typeof e.lang=="string"){let c=ms(e.lang);c&&(o.lang=c.code)}if(typeof e.fullscreen=="boolean"&&(o.fullscreen=e.fullscreen),(e.backend==="broker"||e.backend==="local")&&(o.backend=e.backend),Uc(e.localProvider)&&(o.localProvider=e.localProvider.trim()),Uc(e.localModel)&&(o.localModel=e.localModel.trim()),(e.localAuth==="apikey"||e.localAuth==="oauth"||e.localAuth==="none")&&(o.localAuth=e.localAuth),Uc(e.localBaseUrl)&&(o.localBaseUrl=e.localBaseUrl.trim()),typeof e.localBudget=="boolean"&&(o.localBudget=e.localBudget),typeof e.rooms=="object"&&e.rooms!==null){let c=e.rooms;if(typeof c.backend=="string"){let l=c.backend.trim().toLowerCase();l.length>0&&l.length<=32&&(o.rooms={backend:l})}}if((e.profile==="turbo"||e.profile==="leve")&&(o.profile=e.profile),typeof e.embedder=="string"&&xy(e.embedder.trim())!==void 0&&(o.embedder=e.embedder.trim()),typeof e.sidecarToggles=="object"&&e.sidecarToggles!==null){let c=e.sidecarToggles,l={};typeof c.ollama=="boolean"&&(l.ollama=c.ollama),typeof c.mem0=="boolean"&&(l.mem0=c.mem0),typeof c.headroom=="boolean"&&(l.headroom=c.headroom),Object.keys(l).length>0&&(o.sidecarToggles=l)}let n=$j(e.providers);n&&(o.providers=n);let r=Dj(e.services);r&&(o.services=r);let s=Ij(e.connectors);s&&(o.connectors=s);let i=Pj(e.limits);i&&(o.limits=i);let a=Nj(e.context);return a&&(o.context=a),o}function tm(t){return t.connectors?.telegram?.allowlist??[]}function qR(t,e){let o=tm(t);return o.includes(e)?o:[...o,e]}function WR(t,e){return tm(t).filter(o=>o!==e)}var un=class{base;file;constructor(e={}){this.base=e.baseDir??BR(kj(),".aluy"),this.file=BR(this.base,jc)}get configPath(){return this.file}load(){let e;try{e=Aj(this.file,"utf8")}catch{return{}}let o;try{o=JSON.parse(e)}catch{return{}}return HR(o)}save(e){try{let o=HR({...this.load(),...e});return this.writeAtomic(o),!0}catch{return!1}}saveTheme(e){return this.save({theme:e})}saveLang(e){return this.save({lang:e})}saveTier(e,o){let r=e.trim()==="custom"&&o!==void 0&&o.trim()!==""?o.trim():void 0;return this.save(r!==void 0?{tier:e,model:r}:{tier:e})}saveSplitView(e){return this.save({splitView:e})}saveFullscreen(e){return this.save({fullscreen:e})}saveLocalBudget(e){return this.save({localBudget:e})}writeAtomic(e){Ej(this.base,{recursive:!0,mode:Rj});let o=`${this.file}.${process.pid}.${xj(6).toString("hex")}.tmp`,n=JSON.stringify(e,null,2)+`
|
|
450
|
+
`),n=Wd(o);return{...n!==void 0?{instructions:n}:{},sources:e.map(r=>r.filename)}}async function pj(t){return wR(Ar,t)}import{homedir as kj}from"node:os";import{join as BR}from"node:path";import{randomBytes as xj}from"node:crypto";import{openSync as Sj,writeSync as wj,closeSync as UR,readFileSync as Aj,mkdirSync as Ej,renameSync as Tj,unlinkSync as _j,constants as kb}from"node:fs";var Qu={fg:{color:"#F2EEE8"},fgDim:{color:"#8A7F6D",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},Zu={fg:{color:"#1A1712"},fgDim:{color:"#544B3C"},accent:{color:"#82530F",bold:!0},accentDim:{color:"#82530F",bold:!0},danger:{color:"#B23A2A",bold:!0},success:{color:"#1F6B3A"},depth:{color:"#2E6E69"}},AR={fg:{color:"white"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},ER={fg:{color:"black"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},TR={fg:{color:"#F2EEE8"},fgDim:{color:"#B0A593",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},_R={fg:{},fgDim:{dimColor:!0},accent:{bold:!0},accentDim:{bold:!0},danger:{bold:!0,inverse:!0},success:{},depth:{}};var RR={you:"\u258C",aluy:"\u039B",tool:"\u23FA",toolInflight:"\u25CB",wave:"~",waveHead:"\u203A",ask:"\u26A0",ok:"\u2713",err:"\u2717",broker:"\u25CF",clock:"\u25F7",gauge:"\u25D4",window:"\u25A1",branch:"\u2387",diffDel:"\u2039",diffAdd:"\u203A",prompt:"\u203A",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u25B0",barEmpty:"\u25B1"},CR={you:"\u258C",aluy:"\u039B",tool:"\u25CF",toolInflight:"\u25CB",wave:"~",waveHead:">",ask:"!",ok:"\u221A",err:"x",broker:"\u25CF",clock:"o",gauge:"\u25D4",window:"\u25A1",branch:"Y",diffDel:"<",diffAdd:">",prompt:">",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u2588",barEmpty:"\u2591"},OR={you:">",aluy:"/\\",tool:"o",toolInflight:".",wave:"~",waveHead:">",ask:"!",ok:"[ok]",err:"[x]",broker:"(b)",clock:"t:",gauge:"%:",window:"ctx:",branch:"git:",diffDel:"-",diffAdd:"+",prompt:">",cursor:"*",thinkingCursor:"*",planMode:"[plan]",normalMode:"*",subagents:"(+)",sessionDot:"*",barFull:"#",barEmpty:"."},MR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],LR=["-","\\","|","/"],PR={topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u251C",teeRight:"\u2524"},NR={topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+"};var Bc=[{name:"ambar",darkHex:"#DDA13F",lightHex:"#82530F",ansi:"yellow"},{name:"verde",darkHex:"#82CF9E",lightHex:"#1F6B3A",ansi:"green"},{name:"teal",darkHex:"#5BA8A2",lightHex:"#2E6E69",ansi:"cyan"},{name:"azul",darkHex:"#6FA8DC",lightHex:"#1F5C99",ansi:"blue"},{name:"violeta",darkHex:"#B08CD9",lightHex:"#6A3FA6",ansi:"magenta"},{name:"rosa",darkHex:"#E59BC0",lightHex:"#A63D74",ansi:"magenta"},{name:"coral",darkHex:"#E5897C",lightHex:"#B23A2A",ansi:"red"},{name:"ardosia",darkHex:"#9AA7B0",lightHex:"#4A5963",ansi:"gray"}],Ti=Bc.map(t=>t.name);function IR(t){return Ti.includes(t.trim().toLowerCase())}function hb(t){let e=2166136261,o=t.trim().toLowerCase();for(let r=0;r<o.length;r++)e^=o.charCodeAt(r),e=Math.imul(e,16777619);let n=(e>>>0)%Bc.length;return Bc[n].name}function DR(t,e,o){let n=t.trim().toLowerCase(),r=Bc.find(s=>s.name===n)??Bc.find(s=>s.name===hb(n));return e==="mono"?{bold:!0}:e==="truecolor"?{color:o==="light"?r.lightHex:r.darkHex,bold:!0}:{color:r.ansi,bold:!0}}function em(t){return t!==void 0&&t!==""&&t!=="0"&&t.toLowerCase()!=="false"}function hj(t){if(t.NO_COLOR!==void 0)return"mono";let e=(t.COLORTERM??"").toLowerCase();if(e==="truecolor"||e==="24bit")return"truecolor";let o=(t.TERM??"").toLowerCase();return o==="dumb"||o===""?"mono":"ansi16"}function gj(t,e){if(e)return e;let o=t.COLORFGBG;if(o){let n=o.split(";"),r=Number(n[n.length-1]);if(Number.isFinite(r))return r>=8?"light":"dark"}return"dark"}function yj(t){let e=(t.TERM??"").toLowerCase();if(e==="linux"||e==="dumb")return!1;let o=`${t.LC_ALL??""}${t.LC_CTYPE??""}${t.LANG??""}`.toLowerCase();return!(em(t.ALUY_ASCII)||o&&!o.includes("utf"))}function bj(t,e){return e!==void 0?e:em(t.ALUY_SAFE_GLYPHS)}function vj(t,e,o){return t==="mono"?_R:t==="truecolor"?o??(e==="light"?Zu:Qu):e==="light"?ER:AR}function ln(t={}){let e=t.env??process.env,o=hj(e),n=gj(e,t.theme),r=yj(e),s=r&&bj(e,t.safeGlyphs),i=t.density??(em(e.ALUY_DENSITY)&&e.ALUY_DENSITY==="compact"?"compact":"comfortable"),a=t.animate??!em(e.ALUY_NO_ANIM),c=vj(o,n,t.truecolorPalette),l=r?s?CR:RR:OR;return{colorMode:o,brightness:n,unicode:r,safeGlyphs:s,density:i,animate:a,role:p=>c[p],sessionColor:p=>DR(p,o,n),glyph:p=>l[p],aluyMark:r?"\u039B":"/\\",spinnerFrames:r&&!s?MR:LR,box:r?PR:NR}}var po=[{name:"aluy-dark",label:"Aluy Dark",brightness:"dark",summary:"escuro neutro (default) \u2014 fundo quase-preto, accent \xE2mbar",bg:"#070707",palette:Qu},{name:"aluy-light",label:"Aluy Light",brightness:"light",summary:"claro creme \u2014 fundo --stone-50, accent \xE2mbar escurecido (AA)",bg:"#F4ECDC",palette:Zu},{name:"aluy-slate",label:"Aluy Slate",brightness:"dark",summary:"terra escura WARM \u2014 fundo --stone-950, accent \xE2mbar",bg:"#0E0C09",palette:TR}],bb="aluy-dark";function Er(t){return po.find(e=>e.name===t)}function Jn(t){let e=t.trim().toLowerCase();if(e==="")return;let o=po.find(r=>r.name===e);if(o)return o;let n=po.find(r=>r.name===`aluy-${e}`);return n||po.find(r=>r.label.toLowerCase()===e)}function us(t){return t==="light"?"aluy-light":"aluy-dark"}function $R(t,e={}){let o=Er(t)??Er(bb);return ln({...e,theme:o.brightness,truecolorPalette:o.palette})}var dn="pt-BR",wo=[{code:"pt-BR",label:"Portugu\xEAs (Brasil)",summary:"idioma padr\xE3o da TUI"},{code:"en",label:"English",summary:"English interface (opt-in)"}];function ms(t){return wo.find(e=>e.code===t)}function Tr(t){let e=t.trim().toLowerCase();if(e==="")return;let o=wo.find(n=>n.code.toLowerCase()===e);if(o)return o;if(e==="pt"||e==="pt_br"||e==="br"||e==="portugu\xEAs"||e==="portugues")return ms("pt-BR");if(e==="en"||e==="en_us"||e==="english"||e==="ingl\xEAs"||e==="ingles")return ms("en")}function FR(t){let e=(t.LC_ALL??t.LC_MESSAGES??t.LANG??"").trim().toLowerCase();if(e==="")return dn;let o=e.split(".")[0].split("@")[0].replace("_","-");return o==="c"||o==="posix"?dn:o==="en"||o.startsWith("en-")?"en":dn}function vb(t,e,o){if(t!==void 0&&t.trim()!==""){let n=Tr(t);if(n)return n.code}return e!==void 0?e:FR(o)}j();var Rj=448,Cj=384,jc="config.json",Oj=new Set(["openai-compat","anthropic","gemini"]);function jR(t){let o=(Array.isArray(t)?t:t!==void 0?[t]:[]).filter(n=>typeof n=="string"&&n.trim()!=="");return o.length>0?o:void 0}function Mj(t){if(typeof t!="string")return!1;let e=t.trim().toLowerCase();return e==="localhost"||e==="::1"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function Lj(t){return typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=65535}function xb(t){if(typeof t!="object"||t===null)return;let e=t,o={};return Mj(e.host)&&(o.host=e.host.trim()),Lj(e.port)&&(o.port=e.port),o.host!==void 0||o.port!==void 0?o:void 0}function Pj(t){if(typeof t!="object"||t===null)return;let e=t,o=a=>typeof a=="number"&&Number.isInteger(a)&&a>0?a:void 0,n={},r=o(e.maxTokens),s=o(e.maxOutputTokens),i=o(e.maxIterations);return r!==void 0&&(n.maxTokens=r),s!==void 0&&(n.maxOutputTokens=s),i!==void 0&&(n.maxIterations=i),Object.keys(n).length>0?n:void 0}function Nj(t){if(typeof t!="object"||t===null)return;let e=t,o={};return typeof e.window=="number"&&Number.isInteger(e.window)&&e.window>0&&(o.window=e.window),typeof e.autocompactAt=="number"&&Number.isFinite(e.autocompactAt)?o.autocompactAt=e.autocompactAt:typeof e.autocompactAt=="string"&&e.autocompactAt.trim()!==""&&(o.autocompactAt=e.autocompactAt.trim()),typeof e.autocompactMax=="number"&&Number.isInteger(e.autocompactMax)&&e.autocompactMax>0&&(o.autocompactMax=e.autocompactMax),Object.keys(o).length>0?o:void 0}function Ij(t){if(typeof t!="object"||t===null)return;let e=t,o={};if(typeof e.telegram=="object"&&e.telegram!==null){let n=e.telegram;if(Array.isArray(n.allowlist)){let r=[];for(let s of n.allowlist)typeof s=="number"&&Number.isFinite(s)&&Number.isInteger(s)&&!r.includes(s)&&r.push(s);o.telegram={allowlist:r}}else o.telegram={}}return o.telegram!==void 0?o:void 0}function Dj(t){if(typeof t!="object"||t===null)return;let e=t,o={},n=xb(e.ollama),r=xb(e.mem0),s=xb(e.headroom);return n&&(o.ollama=n),r&&(o.mem0=r),s&&(o.headroom=s),Object.keys(o).length>0?o:void 0}function $j(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(typeof o!="object"||o===null)continue;let n=o,r=typeof n.id=="string"?n.id.trim():"",s=typeof n.baseUrl=="string"?n.baseUrl.trim():"",i=typeof n.defaultModel=="string"?n.defaultModel.trim():"",a=typeof n.wireFormat=="string"?n.wireFormat:"";if(r===""||s===""||i===""||!Oj.has(a))continue;let c=jR(n.auth),l=jR(n.models),d={id:r,wireFormat:a,baseUrl:s,defaultModel:i,...typeof n.label=="string"&&n.label.trim()?{label:n.label.trim()}:{},...c?{auth:c}:{},...l?{models:l}:{}};e.push(d)}return e.length>0?e:void 0}var Fj=128;function Uc(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>Fj?!1:!/[\u0000-\u001F\u007F]/.test(e)}function HR(t){if(typeof t!="object"||t===null)return{};let e=t,o={};if(typeof e.theme=="string"){let c=Er(e.theme);c&&(o.theme=c.name)}if(Uc(e.tier)&&(o.tier=e.tier.trim()),o.tier==="custom"&&Uc(e.model)&&(o.model=e.model.trim()),typeof e.splitView=="boolean"&&(o.splitView=e.splitView),typeof e.lang=="string"){let c=ms(e.lang);c&&(o.lang=c.code)}if(typeof e.fullscreen=="boolean"&&(o.fullscreen=e.fullscreen),(e.backend==="broker"||e.backend==="local")&&(o.backend=e.backend),Uc(e.localProvider)&&(o.localProvider=e.localProvider.trim()),Uc(e.localModel)&&(o.localModel=e.localModel.trim()),(e.localAuth==="apikey"||e.localAuth==="oauth"||e.localAuth==="none")&&(o.localAuth=e.localAuth),Uc(e.localBaseUrl)&&(o.localBaseUrl=e.localBaseUrl.trim()),typeof e.localBudget=="boolean"&&(o.localBudget=e.localBudget),typeof e.rooms=="object"&&e.rooms!==null){let c=e.rooms;if(typeof c.backend=="string"){let l=c.backend.trim().toLowerCase();l.length>0&&l.length<=32&&(o.rooms={backend:l})}}if((e.profile==="turbo"||e.profile==="leve")&&(o.profile=e.profile),typeof e.embedder=="string"&&xy(e.embedder.trim())!==void 0&&(o.embedder=e.embedder.trim()),typeof e.recallMinScore=="number"&&Number.isFinite(e.recallMinScore)&&e.recallMinScore>=0&&e.recallMinScore<=1&&(o.recallMinScore=e.recallMinScore),typeof e.sidecarToggles=="object"&&e.sidecarToggles!==null){let c=e.sidecarToggles,l={};typeof c.ollama=="boolean"&&(l.ollama=c.ollama),typeof c.mem0=="boolean"&&(l.mem0=c.mem0),typeof c.headroom=="boolean"&&(l.headroom=c.headroom),Object.keys(l).length>0&&(o.sidecarToggles=l)}let n=$j(e.providers);n&&(o.providers=n);let r=Dj(e.services);r&&(o.services=r);let s=Ij(e.connectors);s&&(o.connectors=s);let i=Pj(e.limits);i&&(o.limits=i);let a=Nj(e.context);return a&&(o.context=a),o}function tm(t){return t.connectors?.telegram?.allowlist??[]}function qR(t,e){let o=tm(t);return o.includes(e)?o:[...o,e]}function WR(t,e){return tm(t).filter(o=>o!==e)}var un=class{base;file;constructor(e={}){this.base=e.baseDir??BR(kj(),".aluy"),this.file=BR(this.base,jc)}get configPath(){return this.file}load(){let e;try{e=Aj(this.file,"utf8")}catch{return{}}let o;try{o=JSON.parse(e)}catch{return{}}return HR(o)}save(e){try{let o=HR({...this.load(),...e});return this.writeAtomic(o),!0}catch{return!1}}saveTheme(e){return this.save({theme:e})}saveLang(e){return this.save({lang:e})}saveTier(e,o){let r=e.trim()==="custom"&&o!==void 0&&o.trim()!==""?o.trim():void 0;return this.save(r!==void 0?{tier:e,model:r}:{tier:e})}saveSplitView(e){return this.save({splitView:e})}saveFullscreen(e){return this.save({fullscreen:e})}saveLocalBudget(e){return this.save({localBudget:e})}writeAtomic(e){Ej(this.base,{recursive:!0,mode:Rj});let o=`${this.file}.${process.pid}.${xj(6).toString("hex")}.tmp`,n=JSON.stringify(e,null,2)+`
|
|
451
451
|
`,r;try{r=Sj(o,kb.O_CREAT|kb.O_EXCL|kb.O_WRONLY,Cj),wj(r,n),UR(r),r=void 0,Tj(o,this.file)}catch(s){if(r!==void 0)try{UR(r)}catch{}try{_j(o)}catch{}throw s}}};function Sb(t,e,o){return t!==void 0&&t.trim()!==""?t.trim():e.tier!==void 0&&e.tier.trim()!==""?e.tier.trim():o}function Bj(t){return t.theme}function GR(t){return t.lang}function wb(t,e){return t===!0?!0:e.splitView??!1}function Ab(t,e){return t===!0?!0:e.fullscreen??!1}import{homedir as Uj}from"node:os";import{join as Eb,basename as jj}from"node:path";import{openSync as Hj,writeSync as qj,closeSync as zR,mkdirSync as Wj,renameSync as Gj,unlinkSync as zj,constants as Tb}from"node:fs";var Kj=448,Yj=384,KR="exports",Vj=(t,e,o)=>qj(t,e,o,e.length-o);function Xj(t,e){if(t===void 0||t.trim()==="")return e;let o=jj(t.trim());return o=o.replace(/[-/\\]/g,""),o===""||o==="."||o===".."?e:(/\.md$/i.test(o)||(o+=".md"),o)}function Jj(t){return t.toISOString().replace(/[:.]/g,"-").replace(/-\d{3}Z$/,"Z")}var Hc=class{base;now;writeChunk;constructor(e={}){this.base=Eb(e.baseDir??Eb(Uj(),".aluy"),KR),this.now=e.now??(()=>new Date),this.writeChunk=e.writeChunk??Vj}get dir(){return this.base}write(e,o={}){let n=`${(o.sessionId??"sessao").slice(0,40)}-${Jj(this.now())}.md`,r=Xj(o.fileName,n),s=Eb(this.base,r),i=`${s}.${process.pid}.tmp`,a;try{Wj(this.base,{recursive:!0,mode:Kj}),a=Hj(i,Tb.O_CREAT|Tb.O_EXCL|Tb.O_WRONLY,Yj);let c=Buffer.from(e,"utf8"),l=0;for(;l<c.length;){let d=this.writeChunk(a,c,l);if(d<=0)throw new Error(`escrita parou em ${l}/${c.length} bytes (writeSync devolveu ${d})`);l+=d}return zR(a),a=void 0,Gj(i,s),{ok:!0,path:s}}catch(c){if(a!==void 0)try{zR(a)}catch{}try{zj(i)}catch{}return{ok:!1,error:`falha ao exportar: ${String(c)}`}}}};function Qj(t,e,o={}){return t.write(e,o)}import{homedir as iH}from"node:os";import{join as Rb}from"node:path";import{randomBytes as aH}from"node:crypto";import{openSync as cH,writeSync as lH,closeSync as JR,readFileSync as dH,readdirSync as QR,mkdirSync as uH,renameSync as mH,unlinkSync as ZR,statSync as fH,existsSync as ane,constants as Cb}from"node:fs";var Zj=new Set(["you","aluy","tool","deny","bang","broker-error","note","inject","doctor"]);function ct(t){return typeof t=="string"}function YR(t){return typeof t=="number"&&Number.isInteger(t)&&t>=0}function eH(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function tH(t){return t==="ok"||t==="warn"||t==="fail"?t:"warn"}function oH(t){if(typeof t!="object"||t===null)return null;let e=t;return!ct(e.id)||!ct(e.label)?null:{id:e.id,label:e.label,status:tH(e.status),...ct(e.detail)?{detail:e.detail}:{},...ct(e.fix)?{fix:e.fix}:{}}}function VR(t){if(typeof t!="object"||t===null)return null;let e=t,o=e.kind;if(typeof o!="string"||!Zj.has(o))return null;switch(o){case"you":return ct(e.text)?{kind:"you",text:e.text}:null;case"aluy":return ct(e.text)?{kind:"aluy",text:e.text,streaming:!1}:null;case"tool":{if(!ct(e.verb)||!ct(e.target)||!ct(e.result))return null;let n=e.status==="ok"||e.status==="err"?e.status:"err";return{kind:"tool",verb:e.verb,target:e.target,result:e.result,status:n,...ct(e.output)?{output:e.output}:{},...ct(e.verbGerund)?{verbGerund:e.verbGerund}:{},...YR(e.added)?{added:e.added}:{},...YR(e.removed)?{removed:e.removed}:{}}}case"deny":return ct(e.verb)&&ct(e.exact)?{kind:"deny",verb:e.verb,exact:e.exact}:null;case"bang":{if(!ct(e.command))return null;let n=e.status==="ok"||e.status==="err"||e.status==="blocked"?e.status:"err";return{kind:"bang",command:e.command,status:n,...ct(e.output)?{output:e.output}:{}}}case"broker-error":return ct(e.message)?{kind:"broker-error",message:e.message,...typeof e.status=="number"?{status:e.status}:{}}:null;case"note":return ct(e.title)&&eH(e.lines)?{kind:"note",title:e.title,lines:e.lines}:null;case"inject":return ct(e.text)?{kind:"inject",text:e.text}:null;case"doctor":{if(!Array.isArray(e.checks))return null;let n=e.checks.map(oH).filter(r=>r!==null);return n.length===0?null:{kind:"doctor",checks:n,...ct(e.summary)?{summary:e.summary}:{}}}default:return null}}function om(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){let n=VR(o);n&&e.push(n)}return e}var _b="sess\xE3o-anterior";function fs(t){let e=[];for(let o of t)switch(o.kind){case"you":e.push({role:"goal",text:o.text});break;case"aluy":o.text.trim()!==""&&e.push({role:"model",text:o.text});break;case"tool":{let n=[`${o.verb} ${o.target} \u2192 ${o.result||o.status}`];o.output&&n.push(o.output),e.push({role:"observation",toolName:_b,text:n.join(`
|
|
452
452
|
`)});break}case"bang":{let n=[`! ${o.command} (${o.status})`];o.output&&n.push(o.output),e.push({role:"observation",toolName:_b,text:n.join(`
|
|
453
453
|
`)});break}case"broker-error":e.push({role:"observation",toolName:_b,text:`(erro de broker anterior: ${o.message})`});break;case"note":case"deny":case"subagents":case"doctor":case"inject":break}return e}j();var nH=new Set(["bash","run_command"]),rH=new Set(["read","grep","attach","headroom_retrieve"]);function sH(t){return t.kind==="tool"&&rH.has(t.verb)}function XR(t){let e=!1,o=t.map(n=>{if(n.kind==="tool"&&sH(n)){let r=Ue(n.result),s=n.output!==void 0?Ue(n.output):void 0,i=n.liveOutput!==void 0?Ue(n.liveOutput):void 0;return r===n.result&&s===n.output&&i===n.liveOutput?n:(e=!0,{...n,result:r,...s!==void 0?{output:s}:{},...i!==void 0?{liveOutput:i}:{}})}if(n.kind==="bang"){let r=It(n.command);return r===n.command?n:(e=!0,{...n,command:r})}if(n.kind==="tool"&&nH.has(n.verb)){let r=It(n.target);return r===n.target?n:(e=!0,{...n,target:r})}return n});return e?o:t}var pH=448,hH=384,eC="sessions",tC=1,gH=720*60*60*1e3,yH=50,Ob=8*1024*1024,bH=Ob*8,vH=Math.floor(Ob*.9),nm=/^[A-Za-z0-9_-]{1,128}$/,kH=64;function xH(t,e){let o=[...t];return o.length>e?o.slice(0,e).join(""):t}function rm(t){if(typeof t!="string")return;let e="";for(let n of t){let r=n.codePointAt(0)??0;e+=r<32||r===127?" ":n}let o=e.replace(/\s+/g," ").trim();if(o!=="")return xH(o,kH)}function SH(t){for(let e of t)if(e.kind==="you"){let o=e.text.replace(/\s+/g," ").trim();if(o==="")return;let n=[...o];return n.length>60?n.slice(0,57).join("")+"\u2026":o}}var qc=class{base;dir;now;createdAtCache=new Map;constructor(e={}){this.base=e.baseDir??Rb(iH(),".aluy"),this.dir=Rb(this.base,eC),this.now=e.now??(()=>Date.now())}get sessionsDir(){return this.dir}pathFor(e){return Rb(this.dir,`${e}.json`)}save(e){if(!nm.test(e.id))return!1;try{let o=this.now(),n=this.resolveCreatedAt(e.id,o),r=e.tier==="custom"&&typeof e.model=="string"&&e.model.trim()!=="",s=r&&typeof e.provider=="string"&&e.provider.trim()!=="",i=rm(e.label),a=i!==void 0?rm(e.labelColor):void 0,c={id:e.id,version:tC,createdAt:n,updatedAt:o,cwd:e.cwd,tier:e.tier,...r?{model:e.model.trim()}:{},...s?{provider:e.provider.trim()}:{},...i!==void 0?{label:i}:{},...a!==void 0?{labelColor:a}:{}},l=this.fitBlocks(c,XR(om(e.blocks))),d={...c,blocks:l};return this.writeAtomic(d),!0}catch{return!1}}resolveCreatedAt(e,o){let n=this.createdAtCache.get(e);if(n!==void 0)return n;let r=this.load(e)?.createdAt??o;return this.createdAtCache.set(e,r),r}load(e){if(!nm.test(e))return null;let o=this.pathFor(e),n,r=!1;try{let a=fH(o);if(a.size>bH)return null;r=a.size>Ob,n=dH(o,"utf8")}catch{return null}let s;try{s=JSON.parse(n)}catch{return null}let i=this.sanitizeRecord(s);if(i&&r){let{blocks:a,...c}=i,l=this.fitBlocks(c,a),d=a.length-l.length,f={kind:"note",title:"sess\xE3o grande \u2014 contexto antigo omitido no resume",lines:[`Esta sess\xE3o era grande demais p/ recarregar inteira; ${d} bloco(s) antigo(s) foram omitidos e a parte recente foi preservada.`,"O contexto restante ser\xE1 resumido automaticamente na pr\xF3xima intera\xE7\xE3o."]};i={...i,blocks:d>0?[f,...l]:l}}return i&&this.createdAtCache.set(i.id,i.createdAt),i}list(){let e;try{e=QR(this.dir)}catch{return[]}let o=[];for(let n of e){if(!n.endsWith(".json"))continue;let r=n.slice(0,-5),s=this.load(r);s&&o.push({id:s.id,createdAt:s.createdAt,updatedAt:s.updatedAt,cwd:s.cwd,tier:s.tier,...s.model!==void 0?{model:s.model}:{},...s.provider!==void 0?{provider:s.provider}:{},...s.label!==void 0?{label:s.label}:{},...s.labelColor!==void 0?{labelColor:s.labelColor}:{},blockCount:s.blocks.length,title:SH(s.blocks)})}return o.sort((n,r)=>r.updatedAt-n.updatedAt),o}latestForCwd(e){let o;try{o=QR(this.dir)}catch{return null}let n=null;for(let r of o){if(!r.endsWith(".json"))continue;let s=r.slice(0,-5),i=this.load(s);!i||i.cwd!==e||(n===null||i.updatedAt>n.updatedAt)&&(n=i)}return n}remove(e){if(nm.test(e)){this.createdAtCache.delete(e);try{ZR(this.pathFor(e))}catch{}}}gc(e={}){let o=e.maxAgeMs??gH,n=e.maxCount??yH,r=this.list(),s=this.now()-o;r.forEach((i,a)=>{(i.updatedAt<s||a>=n)&&this.remove(i.id)})}sanitizeRecord(e){if(typeof e!="object"||e===null)return null;let o=e;if(typeof o.id!="string"||!nm.test(o.id)||!Array.isArray(o.blocks))return null;let n=typeof o.createdAt=="number"&&o.createdAt>=0?o.createdAt:0,r=typeof o.updatedAt=="number"&&o.updatedAt>=0?o.updatedAt:n,s=typeof o.cwd=="string"?o.cwd:"",i=typeof o.tier=="string"&&o.tier.trim()!==""?o.tier:"",a=typeof o.version=="number"?o.version:0,c=i==="custom"&&typeof o.model=="string"&&o.model.trim()!==""?o.model.trim():void 0,l=c!==void 0&&typeof o.provider=="string"&&o.provider.trim()!==""?o.provider.trim():void 0,d=rm(o.label),f=d!==void 0?rm(o.labelColor):void 0;return{id:o.id,version:a,createdAt:n,updatedAt:r,cwd:s,tier:i,...c!==void 0?{model:c}:{},...l!==void 0?{provider:l}:{},...d!==void 0?{label:d}:{},...f!==void 0?{labelColor:f}:{},blocks:om(o.blocks)}}fitBlocks(e,o){let n=i=>Buffer.byteLength(JSON.stringify({...e,blocks:i})+`
|
|
@@ -625,7 +625,7 @@ Notas:
|
|
|
625
625
|
- Confinamento: o run roda no workspace do job (path-deny ADR-0053).
|
|
626
626
|
- Anti-runaway: tetos do --cycle s\xE3o herdados (CLI-SEC-14).
|
|
627
627
|
`;function r6(t){let e=t[0];if(e===void 0||e==="help"||e==="-h"||e==="--help")return{kind:"help"};if(e==="list")return{kind:"list"};if(e==="add"){let o=t.slice(1),n=o.includes("--yolo"),r=o.filter(c=>c!=="--yolo"),s=r[0],i=r[1];return s?i?s.trim().split(/\s+/).length!==5?{kind:"error",message:`cron add: <quando> inv\xE1lido "${s}" \u2014 use 5 campos cron (ex.: "0 9 * * 1-5").`}:{kind:"add",quando:s,tarefa:i,yolo:n}:{kind:"error",message:'cron add: falta a "<tarefa>".'}:{kind:"error",message:"cron add: falta o <quando> (express\xE3o cron)."}}if(e==="rm"||e==="remove"){let o=t[1];return o?{kind:"rm",id:o}:{kind:"error",message:"cron rm: falta o <id> do job."}}if(e==="run"){let o=t[1];return o?{kind:"run",id:o}:{kind:"error",message:"cron run: falta o <id> do job."}}if(e==="enable"||e==="disable"){let o=t[1];return o?{kind:e,id:o}:{kind:"error",message:`cron ${e}: falta o <id> do job.`}}if(e==="edit"){let o=t.slice(1),n=o[0];if(!n||n.startsWith("--"))return{kind:"error",message:"cron edit: falta o <id> do job."};let r=c=>{let l=o.indexOf(c);return l!==-1?o[l+1]:void 0},s=r("--quando"),i=r("--tarefa"),a=o.includes("--yolo")?!0:o.includes("--no-yolo")?!1:void 0;return s===void 0&&i===void 0&&a===void 0?{kind:"error",message:'cron edit: nada a mudar \u2014 use --quando "<cron>", --tarefa "<txt>" e/ou --yolo|--no-yolo.'}:s!==void 0&&s.trim().split(/\s+/).length!==5?{kind:"error",message:`cron edit: --quando inv\xE1lido "${s}" \u2014 use 5 campos cron (ex.: "0 9 * * 1-5").`}:{kind:"edit",id:n,...s!==void 0?{quando:s}:{},...i!==void 0?{tarefa:i}:{},...a!==void 0?{yolo:a}:{}}}return{kind:"error",message:`cron: subcomando desconhecido "${e}".`}}async function cN(t,e={}){let o=e.io?.out??console.log,n=e.io?.err??console.error,r=r6(t);switch(r.kind){case"help":return o(n6),0;case"error":return n(`aluy: ${r.message}`),n("rode 'aluy cron --help' para ver o uso."),1;case"add":{aN();let s=Is(),i={id:t6(),schedule:r.quando,task:r.tarefa,criado_em:new Date().toISOString(),yolo:r.yolo,workspace:process.cwd()};if(s.jobs.push(i),Pf(s),process.platform==="linux")try{Nf()}catch(a){n(`aluy: erro ao atualizar crontab: ${a instanceof Error?a.message:String(a)}`)}else o("aluy: aviso \u2014 agendamento pelo cron do SO dispon\xEDvel s\xF3 no Linux nesta fatia."),o(" O job foi salvo mas N\xC3O foi instalado no agendador do SO.");return o(`Job "${i.id.slice(0,8)}" adicionado:`),o(` Schedule: ${i.schedule}`),o(` Tarefa: ${i.task}`),o(` Yolo: ${i.yolo?"sim (opt-in)":"n\xE3o (padr\xE3o seguro)"}`),r.yolo&&(o(" \u26A0 --yolo ativo: a tarefa roda SEM pedir confirma\xE7\xE3o."),o(" Categorias sempre-ask seguem n\xE3o-relax\xE1veis.")),0}case"list":{let s=Is();if(s.jobs.length===0)return o('Nenhum job agendado. Use: aluy cron add <quando> "<tarefa>"'),0;o(`Jobs agendados (${s.jobs.length}):`);for(let i of s.jobs){let a=i.id.slice(0,8),c=i.yolo?"yolo":"ask",l=i.enabled===!1?"off":"on ";o(` ${a} [${l}] ${i.schedule} [${c}] ${i.task}`)}return 0}case"rm":{let s=Is(),i=s.jobs.findIndex(c=>c.id.startsWith(r.id));if(i===-1)return n(`aluy: job "${r.id}" n\xE3o encontrado. Use "aluy cron list" para ver os ids.`),1;let a=s.jobs[i];if(s.jobs.splice(i,1),Pf(s),process.platform==="linux")try{Nf()}catch(c){n(`aluy: erro ao atualizar crontab: ${c instanceof Error?c.message:String(c)}`)}return o(`Job "${a.id.slice(0,8)}" removido: ${a.task}`),0}case"run":{let i=Is().jobs.find(l=>l.id.startsWith(r.id));if(!i)return n(`aluy: job "${r.id}" n\xE3o encontrado. Use "aluy cron list" para ver os ids.`),1;o(`Executando job "${i.id.slice(0,8)}": ${i.task}`);let a=i.yolo?" --yolo":"",c=`aluy -p "${i.task.replace(/"/g,'\\"')}"${a}`;o(` Comando: ${c}`);try{return nN(c,{cwd:i.workspace||process.cwd(),stdio:"inherit",encoding:"utf8"}),o(" \u2713 Conclu\xEDdo."),0}catch(l){let d=l.status??2;return n(` \u2717 Falhou (exit code: ${d}).`),d}}case"enable":case"disable":{let s=Is(),i=s.jobs.find(a=>a.id.startsWith(r.id));if(!i)return n(`aluy: job "${r.id}" n\xE3o encontrado. Use "aluy cron list" para ver os ids.`),1;if(i.enabled=r.kind==="enable",Pf(s),process.platform==="linux")try{Nf()}catch(a){n(`aluy: erro ao atualizar crontab: ${a instanceof Error?a.message:String(a)}`)}return o(`Job "${i.id.slice(0,8)}" ${r.kind==="enable"?"HABILITADO":"DESABILITADO"}: ${i.task}`),r.kind==="disable"&&o(" (continua salvo; fora do agendador do SO at\xE9 reabilitar)"),0}case"edit":{let s=Is(),i=s.jobs.find(a=>a.id.startsWith(r.id));if(!i)return n(`aluy: job "${r.id}" n\xE3o encontrado. Use "aluy cron list" para ver os ids.`),1;if(r.quando!==void 0&&(i.schedule=r.quando),r.tarefa!==void 0&&(i.task=r.tarefa),r.yolo!==void 0&&(i.yolo=r.yolo),Pf(s),process.platform==="linux")try{Nf()}catch(a){n(`aluy: erro ao atualizar crontab: ${a instanceof Error?a.message:String(a)}`)}return o(`Job "${i.id.slice(0,8)}" editado:`),o(` Schedule: ${i.schedule}`),o(` Tarefa: ${i.task}`),o(` Yolo: ${i.yolo?"sim (opt-in)":"n\xE3o (padr\xE3o seguro)"}`),0}}}import{basename as i6}from"node:path";import{jsx as y6}from"react/jsx-runtime";var lN='aluy: --cycle exige um teto do ciclo \u2014 sem teto N\xC3O inicia (prote\xE7\xE3o contra execu\xE7\xE3o sem fim). Use --cycles N (n\xBA de ciclos) e/ou --cycle-for <dur> (dura\xE7\xE3o total). Ex.: aluy -p "diga oi" --cycle --cycles 2 \u2014 ou aluy -p "diga oi" --cycle --cycle-for 30m.';function a6(t){let e={};if(t.cycles!==void 0){let o=Number(t.cycles);Number.isFinite(o)&&Number.isInteger(o)&&o>=1&&(e.maxIterations=o)}if(t.cycleFor!==void 0){let o=br(t.cycleFor);o!==void 0&&o>0&&(e.maxDurationMs=o)}if(!(e.maxIterations===void 0&&e.maxDurationMs===void 0))return e}function c6(t,e){try{let n={...li(t).request,...e?.maxIterations!==void 0?{maxIterations:e.maxIterations}:{},...e?.maxDurationMs!==void 0?{maxDurationMs:e.maxDurationMs}:{}};return mi(n),{kind:"ok"}}catch(o){if(o instanceof an)return{kind:"no-ceiling"};if(o instanceof _t)return{kind:"parse-error",message:o.message};throw o}}async function l6(t={}){let e=t.env??process.env,o=t.headless!==void 0,n=!o&&(t.stdout??process.stdout).isTTY===!0,r=t.stdout??process.stdout,s=OP(r,process),i=n&&t.promptYesNo===void 0,a;if(i){let A=t.stdout??process.stdout;Jl(A,!0);let U=ln({env:e,...t.dense?{density:"compact"}:{},...t.safeGlyphs?{safeGlyphs:!0}:{}});a=VP({theme:U,stdout:A});let me=YP(e);me>0&&await new Promise(_=>setTimeout(_,me))}let c=a?.promptYesNo??t.promptYesNo??u6(t.stdout),l=t.mode,d=!1;t.yoloEntryNotice!==void 0&&n&&(await c(t.yoloEntryNotice)||(l="normal",d=!0,i||(t.stdout??process.stderr).write?.(`aluy: YOLO cancelado \u2014 seguindo em modo normal.
|
|
628
|
-
`)));let f=t.projectInstructions!==void 0?{instructions:t.projectInstructions,sources:[]}:await f6(t),u=f.instructions,p=f.sources,h=t.configStore??new un,g=h.load()
|
|
628
|
+
`)));let f=t.projectInstructions!==void 0?{instructions:t.projectInstructions,sources:[]}:await f6(t),u=f.instructions,p=f.sources,h=t.configStore??new un,g=h.load();e.ALUY_MEM_MIN_SCORE===void 0&&g.recallMinScore!==void 0&&(e.ALUY_MEM_MIN_SCORE=String(g.recallMinScore));let y=vb(t.lang,GR(g),e),w=wb(t.split,g),R=process.env.ALUY_FULLSCREEN==="1"?Ab(t.fullscreen,g):!1,E=t.sessionStore??new qc;try{E.gc()}catch{}let M=new xr(t.workspaceRoot!==void 0?{root:t.workspaceRoot}:{}),D=M.root,H=await BP({request:t.resume,fresh:t.fresh===!0,isTty:n,store:E,cwd:D,promptYesNo:c});H.kind==="not-found"&&process.stderr.write(`aluy: sess\xE3o "${H.requestedId}" n\xE3o encontrada \u2014 iniciando uma nova.
|
|
629
629
|
`);let q=H.kind==="resumed"?H.record:null,G=q?Xl(q,Qn):void 0,P=$P(g,Qn),X=G&&G.tier.trim()!==""?G.tier:void 0,ne=P.tier.trim()!==""?P.tier:void 0,z=Sb(t.tier,{...g,...ne!==void 0?{tier:ne}:{},...X!==void 0?{tier:X}:{}},Qn),I=z!=="custom"?void 0:t.model!==void 0&&t.model.trim()!==""?t.model.trim():t.tier!==void 0&&t.tier.trim()!==""?void 0:G?.model??P.model,K=z!=="custom"||I===void 0||t.model!==void 0&&t.model.trim()!==""||t.tier!==void 0&&t.tier.trim()!==""?void 0:G?.provider??P.provider,Oe=G===void 0&&(t.tier===void 0||t.tier.trim()==="")&&P.warning!==void 0?P.warning:void 0,W=new Sr({workspace:M}),ie=new Gl({workspace:M,readFile:A=>W.readFile(A),exists:A=>W.exists(A)}),V=t.codexMcpConfigStore??new tr,re=!1,le=!1,pe=e.ALUY_SANDBOX_MCP?Gu({processEnv:e}):void 0,Q=t.mcpTools!==void 0?void 0:await Rf({workspaceRoot:D,parentEnv:e,...pe?{sandboxLauncher:pe}:{},loadProjectConfig:async()=>{let A=await ie.load();return re=A.config.servers.length>0,A},loadCodexConfig:()=>{let A=V.load();return le=A.config.servers.length>0,A}}),se=t.mcpTools??Q?.tools??[];Q?.configError&&process.stderr.write(`aluy: MCP \u2014 ${Q.configError}
|
|
630
630
|
`);for(let A of Q?.warnings??[])process.stderr.write(`aluy: MCP \u2014 ${A}
|
|
631
631
|
`);let Me=t.mcpRegistryFetch??PM(),No=t.userAgentsLoader??new ps,lt=t.projectAgentsLoader??new zc({workspace:M}),Qe=No.load(),Et=lt.load(),st=new oc(Qe.profiles,Et.profiles),dt=[...Qe.errors,...Et.errors],Ze=bL({flag:t.backend,env:e,config:g}),no=(()=>{if(t.budget!==void 0)return t.budget;if(e.ALUY_BUDGET!==void 0&&e.ALUY_BUDGET.trim()!==""){let A=e.ALUY_BUDGET.trim().toLowerCase();if(A==="1"||A==="true"||A==="on")return!0;if(A==="0"||A==="false"||A==="off")return!1}return g.localBudget!==void 0?g.localBudget:Ze!=="local"})(),ro,ut;if(Ze==="local"&&t.brokerClient===void 0){let A=_L(),U=vL({catalog:A,flags:{...t.localProvider!==void 0?{localProvider:t.localProvider}:{},...t.localModel!==void 0?{localModel:t.localModel}:{},...t.localAuth!==void 0?{localAuth:t.localAuth}:{},...t.localBaseUrl!==void 0?{localBaseUrl:t.localBaseUrl}:{}},env:e,config:g});ro=U.provider,ut=await EL({catalog:A,provider:U.provider,model:U.model,auth:U.auth,...U.baseUrl!==void 0?{baseUrl:U.baseUrl}:{},env:e,...U.auth==="oauth"?{oauthAccessToken:LL(U.provider)}:{}})}let{provider:go,backend:so,localProvider:Tn,localModel:io,localAuth:yo,localBaseUrl:J,...$}=t,v=fv({...$,...ut!==void 0?{brokerClient:ut}:{},...l!==void 0?{mode:l}:{},agentRegistry:st,tier:z,effectiveBackend:Ze,...g.services?{services:g.services}:{},...(()=>{let A=$C({env:e,profile:g.profile??"turbo",...g.sidecarToggles?.headroom!==void 0?{headroomToggle:g.sidecarToggles.headroom}:{},...g.services?{services:g.services}:{}});return A!==void 0?{headroomUrl:A}:{}})(),...g.limits?{limits:g.limits}:{},...g.context?{context:g.context}:{},localBudget:no,...I!==void 0?{model:I}:{},...Ze==="local"&&ro!==void 0&&ro!==""?{provider:ro}:z==="custom"&&t.provider!==void 0&&t.provider.trim()!==""&&t.model!==void 0&&t.model.trim()!==""&&I===t.model.trim()?{provider:t.provider.trim()}:K!==void 0&&K.trim()!==""?{provider:K.trim()}:{},...q!==null?{sessionId:q.id}:{},...u!==void 0?{projectInstructions:u}:{},...(()=>{let A=Dg(st.list());return A!==void 0?{availableAgents:A}:{}})(),...(()=>{let A=R0();return A!==void 0?{sessionCommands:A}:{}})(),...se.length>0?{mcpTools:se}:{},memoryMonitor:{heapLimitMb:eg(e),sampleHeapUsed:()=>process.memoryUsage().heapUsed}}),He={id:q?.id??ri(),cwd:D},ao=q?fs(q.blocks):[];q&&v.controller.restoreBlocks(q.blocks),q?.label!==void 0&&v.controller.setLabel(q.label,q.labelColor),G?.warning&&v.controller.pushNote("model",[G.warning]),Oe!==void 0&&v.controller.pushNote("model",[Oe]);let Ee=()=>{PP(E,{id:He.id,cwd:He.cwd,tier:v.controller.tier,...v.controller.model!==void 0?{model:v.controller.model}:{},...v.controller.provider!==void 0?{provider:v.controller.provider}:{},...v.controller.label!==void 0?{label:v.controller.label}:{},...v.controller.labelColor!==void 0?{labelColor:v.controller.labelColor}:{},blocks:v.controller.blocks})},Ur=t.userCommandsLoader??new Wc,Ds=t.projectCommandsLoader??new Gc({workspace:M}),Tt=Ur.load(),or=Ds.load(),jr=Lb(Tt,or),Hr=jr.map(A=>({name:A.name,summary:A.summary,source:"user",section:"usu\xE1rio"})),Zl=new Map(jr.map(A=>[A.name,A])),bo=v.hookRunner,Io=v.hooksConfig;if(H.kind==="pick"){(t.stdout??process.stdout).write(IP(H.choices).join(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hiperplano/aluy-cli",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.42",
|
|
4
4
|
"description": "Aluy CLI — TUI (Ink) + binário `aluy` + wiring. Consome @hiperplano/aluy-cli-core (engine portável). Credenciais só no keychain do SO.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|