@hiperplano/aluy-cli 1.0.0-rc.86 → 1.0.0-rc.87

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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var c8=Object.create;var ay=Object.defineProperty;var u8=Object.getOwnPropertyDescriptor;var d8=Object.getOwnPropertyNames;var m8=Object.getPrototypeOf,f8=Object.prototype.hasOwnProperty;var p=(t,e,o)=>()=>{if(o)throw o[0];try{return t&&(e=t(t=0)),e}catch(n){throw o=[n],n}};var p8=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},ht=(t,e)=>{for(var o in e)ay(t,o,{get:e[o],enumerable:!0})},h8=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of d8(e))!f8.call(t,r)&&r!==o&&ay(t,r,{get:()=>e[r],enumerable:!(n=u8(e,r))||n.enumerable});return t};var g8=(t,e,o)=>(o=t!=null?c8(m8(t)):{},h8(e||!t||!t.__esModule?ay(o,"default",{value:t,enumerable:!0}):o,t));import{homedir as y8}from"node:os";import{join as b8}from"node:path";function Vl(t=y8()){return b8(t,".aluy")}var Tm=p(()=>{"use strict"});var Xl,fC=p(()=>{"use strict";Xl="1.0.0-rc.86"});function _r(t,e){return t.decide(e)}var ai=p(()=>{"use strict"});var Gn,Rr,Or=p(()=>{"use strict";Gn="remember",Rr="recall"});var ly,v8,fa,cy=p(()=>{"use strict";ly=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}}},v8=200,fa=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??v8,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 ly(e,o,n,r??null,i);if(r){let l=this.nodes.get(r);l&&l.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,l=r.closed?0:1;return a!==l?a-l: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 _m(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 gC(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"&&k8.has(i.status)&&(n=i.status),e){let l=i.substeps??i.subtasks??i.subpassos??i.children;if(Array.isArray(l)&&l.length>0){let c=[];for(let u of l){let m=gC(u,!1);if(typeof m=="string")return m;c.push(m)}r=c}}}if(o===void 0||o.trim()==="")return S8;let s=o.trim().slice(0,x8);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function w8(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=gC(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 l=`${i} #${a}`;if(!n.has(l))return n.add(l),l}};for(let i=0;i<o.length;i++){let a=o[i],l=r(a.title),c=a.substeps?.map(u=>({...u,title:r(u.title)}));o[i]=c!==void 0?{...a,title:l,substeps:c}:{...a,title:l}}let s=_m(o).length;return s>pC?{error:`update_plan: no m\xE1ximo ${pC} passos (recebidos ${s}).`}:{steps:o}}function E8(t){let e=_m(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${yC[r.step.status]} ${r.step.title}`).join(`
2
+ var c8=Object.create;var ay=Object.defineProperty;var u8=Object.getOwnPropertyDescriptor;var d8=Object.getOwnPropertyNames;var m8=Object.getPrototypeOf,f8=Object.prototype.hasOwnProperty;var p=(t,e,o)=>()=>{if(o)throw o[0];try{return t&&(e=t(t=0)),e}catch(n){throw o=[n],n}};var p8=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},ht=(t,e)=>{for(var o in e)ay(t,o,{get:e[o],enumerable:!0})},h8=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of d8(e))!f8.call(t,r)&&r!==o&&ay(t,r,{get:()=>e[r],enumerable:!(n=u8(e,r))||n.enumerable});return t};var g8=(t,e,o)=>(o=t!=null?c8(m8(t)):{},h8(e||!t||!t.__esModule?ay(o,"default",{value:t,enumerable:!0}):o,t));import{homedir as y8}from"node:os";import{join as b8}from"node:path";function Vl(t=y8()){return b8(t,".aluy")}var Tm=p(()=>{"use strict"});var Xl,fC=p(()=>{"use strict";Xl="1.0.0-rc.87"});function _r(t,e){return t.decide(e)}var ai=p(()=>{"use strict"});var Gn,Rr,Or=p(()=>{"use strict";Gn="remember",Rr="recall"});var ly,v8,fa,cy=p(()=>{"use strict";ly=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}}},v8=200,fa=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??v8,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 ly(e,o,n,r??null,i);if(r){let l=this.nodes.get(r);l&&l.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,l=r.closed?0:1;return a!==l?a-l: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 _m(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 gC(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"&&k8.has(i.status)&&(n=i.status),e){let l=i.substeps??i.subtasks??i.subpassos??i.children;if(Array.isArray(l)&&l.length>0){let c=[];for(let u of l){let m=gC(u,!1);if(typeof m=="string")return m;c.push(m)}r=c}}}if(o===void 0||o.trim()==="")return S8;let s=o.trim().slice(0,x8);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function w8(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=gC(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 l=`${i} #${a}`;if(!n.has(l))return n.add(l),l}};for(let i=0;i<o.length;i++){let a=o[i],l=r(a.title),c=a.substeps?.map(u=>({...u,title:r(u.title)}));o[i]=c!==void 0?{...a,title:l,substeps:c}:{...a,title:l}}let s=_m(o).length;return s>pC?{error:`update_plan: no m\xE1ximo ${pC} passos (recebidos ${s}).`}:{steps:o}}function E8(t){let e=_m(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${yC[r.step.status]} ${r.step.title}`).join(`
3
3
  `);return`plano (${o}/${e.length}):
4
4
  ${n}`}function C8(t,e){return e<0?"m\xE9dio":t===e?"curto":t>e?"longo":"m\xE9dio"}function D8(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,l)=>{let c=i.status==="in_progress"?"curto":l,u=o.get(i.title),m=u??fa.boxId(i.title,0);return u?(i.status!=="completed"&&e.isClosed(u)&&e.reopenBox(u),e.setHorizon(u,c),e.setParent(u,a)):e.openBox(m,c,i.title,a),i.status==="completed"&&!e.isClosed(m)&&e.closeBox(m),o.set(i.title,m),m};t.forEach((i,a)=>{let l=C8(a,n),c=r(i,null,l);for(let u of i.substeps??[])r(u,c,l)});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 T8(t,e){if(!e)return E8(t);let o=new Map;for(let c of e.listBoxes())o.set(c.label,c);let n=new Map;for(let c of e.listBoxes())n.set(c.id,c);let r=new Map,s=(c,u=new Set)=>{let m=r.get(c);if(m!==void 0)return m;let d=n.get(c);if(!d||!d.parentId||u.has(c))return r.set(c,0),0;let h=s(d.parentId,new Set(u).add(c))+1;return r.set(c,h),h},i=_m(t),l=[`plano (${i.filter(c=>c.step.status==="completed").length}/${i.length}):`];for(let{step:c,depth:u}of i){let m=o.get(c.title),d=m?A8[m.horizon]:"",h=m?s(m.id):u,g=" ".repeat(h),b=yC[c.status];l.push(`${g}${d} ${b} ${c.title}`)}return l.join(`
5
5
  `)}var Jl,k8,pC,x8,S8,yC,A8,hC,_8,bC,Rm=p(()=>{"use strict";cy();Jl="update_plan";k8=new Set(["pending","in_progress","completed"]),pC=30,x8=120,S8="update_plan: cada passo precisa de um t\xEDtulo (texto) n\xE3o-vazio.";yC={pending:"\u2610",in_progress:"\u25B6",completed:"\u2611"};A8={longo:"[\u{1F4D0}]",m\u00E9dio:"[\u{1F4CB}]",curto:"[\u{1F4CC}]"};hC=Object.freeze({type:"string",enum:["pending","in_progress","completed"],description:"pending (a fazer) \xB7 in_progress (em curso) \xB7 completed (feito)."}),_8=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:hC,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:hC},required:["title"],additionalProperties:!1}}},required:["title"],additionalProperties:!1}}},required:["steps"],additionalProperties:!1}),bC={name:Jl,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:_8,async run(t,e){let o=w8(t);return"error"in o?{ok:!1,observation:o.error}:(e.graph&&D8(o.steps,e.graph),e.plan&&e.plan.set(_m(o.steps).map(r=>({title:r.step.title,status:r.step.status}))),{ok:!0,observation:T8(o.steps,e.graph)})}}});function vC(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)?O8(s):void 0;if(typeof i=="string")return{error:i};let a,l=t.kind??t.type;if(typeof l=="string"&&R8.has(l))a=l;else{if(typeof l=="string"&&l.trim()!=="")return{error:`perguntar: "kind" inv\xE1lido "${l}". 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 c=t.allowOther!==!1;return{spec:{kind:a,question:o,...r!==void 0?{header:r}:{},...a!=="text"&&i!==void 0?{options:i}:{},...a!=="text"?{allowOther:c}:{}}}}function O8(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 M8(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(`
@@ -21,7 +21,7 @@ ${e.text}`,display:o};case"unavailable":return{ok:!1,observation:`N\xE3o foi pos
21
21
 
22
22
  `;return{ok:!0,observation:d+Y+M+w.join(`
23
23
 
24
- `)+q}}}]}var ms,$y,_C,Hm=p(()=>{"use strict";My();Zl();Ny();ms="room_post",$y="room_read",_C=["ask","inform","result","ack"]});function qm(t,e,o){for(let n of t.rules)if(n.tool===e&&(n.match===void 0||MC(n.match,o)))return n}function MC(t,e){let o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*/g,".*");return new RegExp(`^${o}$`).test(e)}var By,Uy=p(()=>{"use strict";By={rules:[],defaults:{}}});function jy(t,e){let o,n;for(let r of t){let s=r(e);if(s){if(s.decision==="deny")return s;s.decision==="ask"&&!o&&(o=s),s.decision==="allow"&&!n&&(n=s)}}return o??n}var Hy=p(()=>{"use strict"});var ga,qy=p(()=>{"use strict";ga=class t{granted=new Set;static keyFor(e){let o=typeof e.input.command=="string"?e.input.command:typeof e.input.path=="string"?e.input.path:"";return`${e.name}\0${o}`}has(e){return this.granted.has(t.keyFor(e))}grant(e){this.granted.add(t.keyFor(e))}list(){return[...this.granted]}revoke(e){return this.granted.delete(e)}get size(){return this.granted.size}}});function Gy(t,e){return e==="ask"?!0:Wm.includes(t)}var Wm,Wy,zy=p(()=>{"use strict";Wm=["read_file","grep"],Wy=[{category:"always-ask:destructive",label:"destrutivo (rm -rf, git push --force, dd)",why:"apaga/sobrescreve dados de forma irreversivel \u2014 pergunta sempre, mostrando o efeito exato. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:network",label:"rede (curl | sh, wget, ssh, scp)",why:"sai da maquina / baixa-e-executa codigo remoto \u2014 o pior caso de injecao. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:escalation",label:"escalada (sudo, su, doas, setuid)",why:"eleva privilegio alem do usuario \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:package-exec",label:"exec de pacote (npm i, npx, pip install)",why:"instala/executa codigo de terceiros \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:config-startup",label:"config/startup (.bashrc, .git/hooks, package.json)",why:"muda o que roda no proximo start do shell/projeto \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:outside-workspace",label:"escrita FORA do workspace",why:"escreve fora do diretorio do projeto (home/system) \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:sensitive-read",label:"leitura de segredos (~/.ssh, ~/.aws, .env, *.key)",why:"le credenciais/chaves privadas \u2014 pergunta sempre (ou nega os mais criticos). So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:journal-read-deny",label:"leitura do journal ~/.aluy/ (undo)",why:"o journal guarda o conteudo-ANTES de cada edicao (possivel segredo): NEGADO por qualquer canal, ACIMA ate do --yolo. Nem o bypass total libera.",lock:"deny"},{category:"always-ask:aluy-config-write-deny",label:"escrita na config ~/.aluy/ (hooks.json, commands/)",why:"editar a config de HOOK e ato do USUARIO, nao do agente: senao um README malicioso plantaria um hook que roda sempre. NEGADO por qualquer canal, ACIMA ate do --yolo.",lock:"deny"}]});function Ky(t,e){return{kind:"command",tool:t,exact:`$ ${e}`}}function Gm(t,e,o){return{kind:"diff",tool:t,path:e,exact:o}}function ec(t,e,o){return{kind:"network",tool:t,exact:`$ ${e}`,target:o}}function fs(t,e){return{kind:"path",tool:t,path:e,exact:e}}function Yy(t){let e=t.match(/\bhttps?:\/\/[^\s"';|&]+/);if(e)return e[0];let o=t.match(/\b[\w.-]+@[\w.-]+:[^\s"';|&]*/);if(o)return o[0];let n=t.match(/\b[\w.-]+@[\w.-]+/);if(n)return n[0];let r=t.match(/\b(?:ssh|scp|sftp|telnet|nc|ncat)\s+(?:-\w+\s+)*([\w.-]+)/);if(r?.[1])return r[1]}var Vy=p(()=>{"use strict"});function tH(t,e){if(t===void 0)return e;if(e===void 0)return t;let o=new Set;for(let n of e)t.has(n)&&o.add(n);return o}function ut(t,e,o,n){return{decision:t,reason:e,category:o,effect:n}}function Xy(t){return t.map(e=>e.reason).join("; ")}function oH(t){return t[0].category}function nH(t){return t==="deny"?"policy:deny":"policy:allow"}function Jy(t){return t.name===ms?Ct(t,"code"):Ct(t,"command")||Ct(t,"path")||Ct(t,"pattern")||""}function Ct(t,e){let o=t.input[e];return typeof o=="string"?o:""}var LC,bo,ya=p(()=>{"use strict";ai();my();ky();li();Or();Hm();Rm();pa();Uy();Hy();qy();zy();Vy();LC=new Set(["read_file","grep","glob","change_dir",Rr,Jl,zn]);bo=class t{policy;hooks;grants;diffPreview;modeValue;safeDefaults=new Map;denySpawnAgent;toolScope;roomExemptTools;maxMemoryWrites;memoryWrites=0;constructor(e={}){this.policy=e.policy??By,this.hooks=e.hooks??[],this.grants=e.sessionGrants??new ga,this.modeValue=e.mode??(e.unsafe?"unsafe":"normal"),e.diffPreview&&(this.diffPreview=e.diffPreview),this.denySpawnAgent=e.denySpawnAgent??!1,e.toolScope!==void 0&&(this.toolScope=e.toolScope),e.roomExemptTools!==void 0&&(this.roomExemptTools=e.roomExemptTools),this.maxMemoryWrites=e.maxMemoryWritesPerSession??DC}forSubAgent(e,o){let n=tH(this.toolScope,e);return new t({policy:this.policy,hooks:this.hooks,mode:this.modeValue,sessionGrants:new ga,denySpawnAgent:!0,...n!==void 0?{toolScope:n}:{},...o!==void 0?{roomExemptTools:o}:{},...this.diffPreview?{diffPreview:this.diffPreview}:{}})}setMode(e){this.modeValue=e}get mode(){return this.modeValue}setUnsafe(e){this.modeValue=e?"unsafe":"normal"}get isUnsafe(){return this.modeValue==="unsafe"}get isPlan(){return this.modeValue==="plan"}get sessionGrants(){return this.grants}decide(e){let o=this.describeEffect(e);if(this.denySpawnAgent&&e.name==="spawn_agent")return ut("deny","profundidade de sub-agente \u22641 (E-A1): um sub-agente N\xC3O pode criar netos \u2014 spawn_agent negado na catraca","policy:deny",o);if(this.toolScope!==void 0&&!(this.roomExemptTools?.has(e.name)??!1)&&!this.toolScope.has(e.name))return ut("deny",`tool "${e.name}" fora do toolset declarado do agente (tools \u2286 pai, GS-MD1) \u2014 negada na catraca`,"policy:deny",o);let n=Im(e.name,e.input);if(e.name===Gn&&this.memoryWrites>=this.maxMemoryWrites)return ut("deny",`teto de grava\xE7\xF5es de mem\xF3ria por sess\xE3o atingido (${this.memoryWrites}/${this.maxMemoryWrites}) \u2014 lembran\xE7a aut\xF4noma barrada para evitar grava\xE7\xF5es em excesso. Use /memory para revisar/podar a mem\xF3ria.`,"memory-write",o);if(this.modeValue==="plan"&&!dy(e))return ut("deny",`modo Plan (read-only): "${e.name}" tem efeito (ou \xE9 rede) \u2014 s\xF3 leitura local \xE9 permitida`,"mode:plan-deny",o);if(this.modeValue==="unsafe")return ut("allow","PERMISS\xC3O COMPLETA de sess\xE3o (--yolo)","policy:allow",o);let r=n.find(l=>(l.category==="always-ask:journal-read-deny"||l.category==="always-ask:aluy-config-write-deny")&&l.deny);if(r)return ut("deny",Xy(n),r.category,o);if(e.name===Gn)return ut("allow","lembran\xE7a aut\xF4noma de mem\xF3ria (allow silencioso; recall = dado, CLI-SEC-15)","memory-write",o);if(e.name===ms){let l=Jy(e),c=qm(this.policy,e.name,l);return c&&c.decision!=="allow"?ut(c.decision,`pol\xEDtica do usu\xE1rio (room_post: ${c.match??"qualquer sala"})`,"agent-comms",o):ut("allow","comunica\xE7\xE3o entre agentes (membership = consentimento, \xA713.1; authz na mesh: writer\u2208writers)","agent-comms",o)}if(this.grants.has(e))return ut("allow","liberado nesta sess\xE3o (sempre-permitir)","policy:allow",o);let s=jy(this.hooks,e);if(s?.decision==="deny")return ut("deny",`hook: ${s.reason}`,"hook",o);if(n.length>0){let l=n.find(c=>c.deny);return l?ut("deny",Xy(n),l.category,o):ut("ask",Xy(n),oH(n),o)}if(s?.decision==="ask")return ut("ask",`hook: ${s.reason}`,"hook",o);if(s?.decision==="allow")return ut("allow",`hook: ${s.reason}`,"hook",o);let i=Jy(e),a=qm(this.policy,e.name,i);if(a){let l=a.match?`${a.match}`:"qualquer input";return ut(a.decision,`pol\xEDtica do usu\xE1rio (${e.name}: ${l})`,nH(a.decision),o)}return this.defaultFor(e,o)}grantSession(e){return Im(e.name,e.input).length>0?!1:(this.grants.grant(e),!0)}noteMemoryWrite(){this.memoryWrites+=1}get memoryWriteUsage(){return{used:this.memoryWrites,max:this.maxMemoryWrites}}setSafeToolDefault(e,o){return Gy(e,o)?(this.safeDefaults.set(e,o),!0):!1}effectiveSafeDefault(e){let o=this.safeDefaults.get(e);if(o)return o;let n=this.policy.defaults?.[e];return n==="allow"||n==="ask"?n:LC.has(e)?"allow":"ask"}defaultFor(e,o){let n=this.safeDefaults.get(e.name);if(n){let s=this.floor(e.name,n);return ut(s,`default ajustado no painel (${e.name})`,"default",o)}let r=this.policy.defaults?.[e.name];if(r){let s=this.floor(e.name,r);return ut(s,`default configurado (${e.name})`,"default",o)}return LC.has(e.name)?ut("allow",`leitura pura (${e.name}) \u2014 default allow`,"default",o):e.name==="run_command"?ut("ask","run_command = ask por padr\xE3o (CLI-SEC-3)","default",o):e.name==="edit_file"?ut("ask","edit_file = ask com diff (CLI-SEC-9)","default",o):e.name==="write_file"?ut("ask","write_file = ask com diff (CLI-SEC-9)","default",o):ut("ask",`sem regra expl\xEDcita p/ "${e.name}" \u2014 ask (deny-por-padr\xE3o)`,"default",o)}floor(e,o){return(e==="run_command"||e==="edit_file"||e==="write_file")&&o==="allow"?"ask":o}describeEffect(e){if(e.name==="run_command"){let o=Ct(e,"command"),n=Yy(o);return n?ec("run_command",o,n):Ky("run_command",o)}if(e.name==="edit_file"){let o=Ct(e,"path"),n=Ct(e,"old_string"),r=Ct(e,"new_string");return this.diffPreview?Gm("edit_file",o,this.diffPreview(o,r,n)):fs("edit_file",o)}if(e.name==="write_file"){let o=Ct(e,"path"),n=Ct(e,"content");return this.diffPreview?Gm("write_file",o,this.diffPreview(o,n)):fs("write_file",o)}if(e.name==="read_file"||e.name==="grep")return fs(e.name,Ct(e,"path"));if(e.name==="glob")return fs("glob",Ct(e,"path")||".");if(e.name===Gn){let o=Ct(e,"fact"),n=Ct(e,"scope")||"global";return{kind:"path",tool:Gn,exact:`[mem\xF3ria/${n}] ${o}`}}if(e.name==="web_fetch"){let o=Ct(e,"url");return ec("web_fetch",`web_fetch ${o}`,o)}if(e.name==="web_search"){let o=Ct(e,"query");return ec("web_search",`web_search ${o}`,"duckduckgo.com")}if(e.name===ms){let o=Ct(e,"code"),n=Ct(e,"to"),r=Ct(e,"kind");return{kind:"path",tool:ms,exact:`[sala ${o}] ${r||"msg"} \u2192 ${n||"?"}`}}return{kind:"command",tool:e.name,exact:`${e.name} ${Jy(e)}`.trim()}}}});function Zy(t){return t.root?{outcome:"refuse",reason:"root",message:"aluy: --yolo RECUSADO como ROOT (uid 0): YOLO + root = risco de destruir a m\xE1quina com uma inje\xE7\xE3o de prompt (sem barreira de privil\xE9gio). Rode como usu\xE1rio normal."}:{outcome:"allow",requiresConfirmation:t.tty,notice:PC,warning:Qy}}function eb(t,e){return t.outcome==="refuse"?{actorType:"cli",kind:"yolo-refused",mode:"yolo",at:e,reason:t.reason}:{actorType:"cli",kind:"yolo-entered",mode:"yolo",at:e}}var Qy,PC,FC=p(()=>{"use strict";Qy="\u26A0 MODO YOLO \u2014 PERMISS\xC3O COMPLETA NA M\xC1QUINA. A catraca de aprova\xE7\xE3o est\xE1 DESLIGADA, a cerca de workspace est\xE1 DERRUBADA (disco inteiro acess\xEDvel) e o anti-SSRF de rede interna est\xE1 suspenso. O agente roda QUALQUER comando, l\xEA/escreve QUALQUER arquivo e abre rede para QUALQUER destino SEM PERGUNTAR. Uma \xFAnica inje\xE7\xE3o de prompt (README/issue/p\xE1gina/sa\xEDda de comando) pode comprometer esta m\xE1quina. N\xE3o persiste entre sess\xF5es.",PC=`${Qy} Continuar? [s/N]`});var IC=p(()=>{"use strict";ai();ya();my();ky();Uy();Hy();qy();zy();Vy();FC()});var tb,ob=p(()=>{"use strict";tb=["assistant:session","llm:call"]});var En,zm,tc,ba,va,Km,ka,Mr,oc=p(()=>{"use strict";En=class extends Error{constructor(e){super(e),this.name=new.target.name}},zm=class extends En{constructor(){super("aprova\xE7\xE3o negada no navegador \u2014 login cancelado.")}},tc=class extends En{constructor(){super("o c\xF3digo expirou antes da aprova\xE7\xE3o. Rode `aluy login` de novo.")}},ba=class extends En{code;constructor(e,o){super(`falha no device-flow (${e})${o?`: ${o}`:""}`),this.code=e}},va=class extends En{constructor(){super("a sess\xE3o expirou ou foi revogada. Rode `aluy login` de novo.")}},Km=class extends En{constructor(){super("PAT inv\xE1lido: esperado o formato `pat_<id>_<segredo>`.")}},ka=class extends En{transient=!0;constructor(){super("n\xE3o consegui renovar a sess\xE3o agora (identity indispon\xEDvel) \u2014 tente de novo; sua credencial foi preservada.")}},Mr=class extends En{status;constructor(e,o){super(`identity respondeu ${e} em ${o}.`),this.status=e}}});function sH(t){return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function iH(t){if(!t||!t.startsWith(NC))return null;let e=t.slice(NC.length),o=e.indexOf("_");if(o<=0)return null;let n=e.slice(0,o),r=e.slice(o+1);return!rH.test(n)||r.length===0?null:{lookupId:sH(n),secretLength:r.length}}function nc(t){return iH(t)!==null}var NC,rH,nb=p(()=>{"use strict";NC="pat_",rH=/^[0-9a-f]{32}$/});function aH(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/");return Buffer.from(e,"base64").toString("utf8")}catch{return null}}function $C(t){if(!t)return;let e=t.split(".");if(e.length!==3)return;let o=aH(e[1]??"");if(o!==null)try{let n=JSON.parse(o);return typeof n.sub=="string"&&n.sub.length>0?n.sub:void 0}catch{return}}var rb=p(()=>{"use strict"});function UC(t){return JSON.stringify(t)}function jC(t){try{let e=JSON.parse(t);return e.v!==1||e.kind!=="device"&&e.kind!=="pat"?null:e}catch{return null}}function Vm(t,e=Date.now){let o=t.kind==="pat"?"pat_\u2026":"jwt",n=t.kind==="device"?$C(t.access_token):void 0,r=t.kind==="device"&&t.expires_at!==void 0&&t.expires_at<=e();return{kind:t.kind,organization_id:t.organization_id,scopes:t.scopes,...t.expires_at!==void 0?{expires_at:t.expires_at}:{},expired:r,token_hint:o,...n!==void 0?{user:n}:{}}}var Ym,BC,sb=p(()=>{"use strict";rb();Ym="aluy-cli",BC="headless-credential"});var lH,Xm,ib=p(()=>{"use strict";oc();lH="urn:ietf:params:oauth:grant-type:device_code",Xm=class{baseUrl;clientId;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.clientId=e.clientId,this.doFetch=e.fetch??globalThis.fetch}url(e){return`${this.baseUrl}${e}`}async readJson(e,o){try{return await e.json()}catch{throw new Mr(200,`${o} (corpo 2xx n\xE3o \xE9 JSON v\xE1lido)`)}}async deviceAuthorize(e){let o=await this.doFetch(this.url("/identity/device/authorize"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:this.clientId,organization_id:e.organizationId,scopes:e.scopes??[]})});if(!o.ok)throw new Mr(o.status,"device/authorize");return await this.readJson(o,"device/authorize")}async pollToken(e,o){let n=await this.doFetch(this.url("/identity/token"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:lH,device_code:e,client_id:this.clientId}),...o?{signal:o}:{}});if(n.ok)return{status:"success",tokens:await this.readJson(n,"token")};let r;try{r=await n.json()}catch{r=void 0}let s=r?.error??"";switch(s){case"authorization_pending":return{status:"pending"};case"slow_down":return{status:"slow_down"};case"access_denied":return{status:"denied"};case"expired_token":return{status:"expired"};default:return{status:"error",code:s||`http_${n.status}`,...r?.error_description?{description:r.error_description}:{}}}}async refresh(e){let o=await this.doFetch(this.url("/identity/headless/refresh"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!o.ok)throw new Mr(o.status,"headless/refresh");return await this.readJson(o,"headless/refresh")}async revoke(e){let o=await this.doFetch(this.url("/identity/headless/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!(o.status===204||o.status===404||o.status===401)&&!o.ok)throw new Mr(o.status,"headless/revoke")}}});function mH(t){let e=typeof t=="number"?t:Number(t);return!Number.isFinite(e)||e<dH?uH:e}async function HC(t,e,o={}){let n=o.now??Date.now,r=o.sleep??fH,s=await t.deviceAuthorize({organizationId:e.organizationId,...e.scopes?{scopes:e.scopes}:{}});await e.onPrompt({userCode:s.user_code,verificationUri:s.verification_uri,verificationUriComplete:s.verification_uri_complete,expiresInSeconds:s.expires_in});let i=Number.isFinite(s.expires_in)?s.expires_in:900,a=n()+i*1e3,l=mH(s.interval);for(;;){if(e.signal?.aborted)throw new ba("cancelled","login cancelado pelo usu\xE1rio.");if(n()>=a)throw new tc;if(await r(l*1e3,e.signal),e.signal?.aborted)throw new ba("cancelled","login cancelado pelo usu\xE1rio.");let c=await t.pollToken(s.device_code,...e.signal?[e.signal]:[]);switch(c.status){case"success":return c.tokens;case"pending":continue;case"slow_down":l+=cH;continue;case"denied":throw new zm;case"expired":throw new tc;case"error":throw new ba(c.code,c.description)}}}var cH,uH,dH,fH,ab=p(()=>{"use strict";oc();cH=5,uH=5,dH=1;fH=(t,e)=>new Promise(o=>{if(e?.aborted)return o();let n=setTimeout(()=>{e?.removeEventListener("abort",r),o()},t),r=()=>{clearTimeout(n),o()};e?.addEventListener("abort",r,{once:!0})})});function pH(t){return t instanceof Mr&&(t.status===400||t.status===401||t.status===403)}function qC(t,e){return{kind:"device",access_token:t.access_token,refresh_token:t.refresh_token,organization_id:t.organization_id,scopes:t.scope.split(" ").filter(Boolean),expires_at:e()+t.expires_in*1e3,v:1}}var eo,WC=p(()=>{"use strict";sb();ab();oc();ib();nb();ob();eo=class{client;store;now;sleep;envToken;inFlightRefresh;constructor(e,o={}){this.client=new Xm(e),this.store=e.store,this.now=o.now??Date.now,this.sleep=o.sleep,this.envToken=o.envToken}async loginWithDeviceFlow(e){let o=await HC(this.client,{organizationId:e.organizationId,scopes:e.scopes??tb,onPrompt:e.onPrompt,...e.signal?{signal:e.signal}:{}},{now:this.now,...this.sleep?{sleep:this.sleep}:{}}),n=qC(o,this.now);return await this.store.set(n),Vm(n)}async loginWithPat(e,o){if(!nc(e))throw new Km;let n={kind:"pat",pat:e,organization_id:o,scopes:[...tb],v:1};return await this.store.set(n),Vm(n)}async whoami(){let e=await this.store.get();return e?Vm(e,this.now):null}async getAccessToken(e=3e4){let o=await this.store.get();if(!o){let r=this.envToken?.()?.trim();if(r&&nc(r))return r;throw new va}if(o.kind==="pat")return o.pat;if(o.access_token!==void 0&&o.expires_at!==void 0&&this.now()+e<o.expires_at)return o.access_token;if(!o.refresh_token)throw new va;return await this.refreshSingleFlight(o.refresh_token)}refreshSingleFlight(e){let o=this.inFlightRefresh;if(o)return o;let n=(async()=>{let s;try{s=await this.client.refresh(e)}catch(a){throw pH(a)?(await this.store.clear(),new va):new ka}let i=qC(s,this.now);return await this.store.set(i),i.access_token})();this.inFlightRefresh=n;let r=()=>{this.inFlightRefresh===n&&(this.inFlightRefresh=void 0)};return n.then(r,r),n}async logout(){let e=await this.store.get();if(!e)return{revoked:!1};let o=!1;if(e.kind==="device"&&e.refresh_token)try{await this.client.revoke(e.refresh_token),o=!0}catch{o=!1}return await this.store.clear(),{revoked:o}}}});function GC(t){let e="";for(let n of t)e+=String.fromCharCode(n);return(typeof btoa=="function"?btoa(e):hH(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function hH(t){let e=globalThis;if(typeof e.Buffer<"u")return e.Buffer.from(t,"binary").toString("base64");throw new Error("base64 indispon\xEDvel no runtime")}function zC(t,e=32){let o=GC(t.randomBytes(e)),n=t.sha256(new TextEncoder().encode(o)),r=GC(n);return{codeVerifier:o,codeChallenge:r,method:"S256"}}function KC(t,e,o){let n=new URL(t.authorizeUrl);return n.searchParams.set("response_type","code"),n.searchParams.set("client_id",t.clientId),n.searchParams.set("redirect_uri",t.redirectUri),t.scopes.length>0&&n.searchParams.set("scope",t.scopes.join(" ")),n.searchParams.set("state",o),n.searchParams.set("code_challenge",e.codeChallenge),n.searchParams.set("code_challenge_method",e.method),n.toString()}async function YC(t){let e=new URLSearchParams({grant_type:"authorization_code",code:t.code,redirect_uri:t.config.redirectUri,client_id:t.config.clientId,code_verifier:t.codeVerifier});return await XC(t.config.tokenUrl,e,t.fetch,t.now??Date.now)}async function VC(t){let e=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken,client_id:t.config.clientId}),o=await XC(t.config.tokenUrl,e,t.fetch,t.now??Date.now);return o.refreshToken===void 0?{...o,refreshToken:t.refreshToken}:o}async function XC(t,e,o,n){let r=await o(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded",accept:"application/json"},body:e.toString()});if(!r.ok){let i="";try{i=await r.text()}catch{i=""}throw new rc(`token endpoint respondeu ${r.status}`,r.status,yH(i))}let s=await r.json();return gH(s,n)}function gH(t,e){if(typeof t!="object"||t===null)throw new rc("resposta do token endpoint n\xE3o \xE9 objeto",0);let o=t,n=typeof o.access_token=="string"?o.access_token:void 0;if(n===void 0||n==="")throw new rc("resposta do token endpoint sem access_token",0);let r={accessToken:n};return typeof o.refresh_token=="string"&&o.refresh_token!==""&&(r.refreshToken=o.refresh_token),typeof o.expires_in=="number"&&Number.isFinite(o.expires_in)&&(r.expiresAt=e()+o.expires_in*1e3),typeof o.scope=="string"&&(r.scope=o.scope),r}function JC(t,e,o=6e4){return t.expiresAt===void 0?!1:t.expiresAt-e()<=o}function yH(t){return t.replace(/[A-Za-z0-9_-]{20,}/g,"***").slice(0,200)}var rc,QC=p(()=>{"use strict";rc=class extends Error{status;constructor(e,o,n){super(n!==void 0&&n!==""?`${e}: ${n}`:e),this.name="OAuthError",this.status=o}}});var ZC=p(()=>{"use strict";ob();oc();nb();rb();sb();ib();ab();WC();QC()});var eD=p(()=>{"use strict"});function bH(t){return t===429?!0:t>=500}function qo(t,e){let o=tD(e)?e:{},n=typeof o.code=="string"?o.code:kH(t),r={status:t,code:n};typeof o.title=="string"&&(r.title=o.title),typeof o.detail=="string"&&(r.detail=o.detail),typeof o.type=="string"&&(r.type=o.type),typeof o.instance=="string"&&(r.instance=o.instance);let s=vH(o.errors);return s!==void 0&&(r.errors=s),typeof o.retryable=="boolean"&&(r.retryable=o.retryable),typeof o.retry_after=="number"&&(r.retry_after=o.retry_after),r}function vH(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(!tD(o))continue;let n={};typeof o.field=="string"&&(n.field=o.field),typeof o.code=="string"&&(n.code=o.code),typeof o.detail=="string"&&(n.detail=o.detail),(n.field!==void 0||n.code!==void 0||n.detail!==void 0)&&e.push(n)}return e.length>0?e:void 0}function kH(t){switch(t){case 401:return"UNAUTHENTICATED";case 402:return"INSUFFICIENT_CREDIT";case 403:return"PERMISSION_DENIED";case 409:return"IDEMPOTENCY_KEY_REUSED";case 422:return"VALIDATION_FAILED";case 429:return"RATE_LIMITED";case 502:return"PROVIDER_ERROR";default:return`HTTP_${t}`}}function tD(t){return typeof t=="object"&&t!==null}var Ge,ze,nt,Wo=p(()=>{"use strict";Ge=class extends Error{status;code;retryable;retryAfter;problem;constructor(e){super(e.detail??e.title??`broker respondeu ${e.status} (${e.code})`),this.name="BrokerError",this.status=e.status,this.code=e.code,this.retryable=e.retryable??bH(e.status),this.retryAfter=e.retry_after,this.problem=e}get isAuth(){return this.status===401||this.code==="UNAUTHENTICATED"}get isQuota(){return this.status===429||this.status===402}get isToolsUnsupported(){return this.status===422&&this.code==="TOOLS_UNSUPPORTED"}};ze=class extends Error{constructor(e,o){super(e,o!==void 0?{cause:o}:void 0),this.name="BrokerTransportError"}},nt=class extends Error{constructor(){super("chamada de modelo cancelada."),this.name="ModelCallAbortedError"}}});var oD=p(()=>{"use strict"});function Jm(t){if(t==null)return;let e=t.trim().toLowerCase();if(e==="local")return"local";if(e==="broker")return"broker"}function Lr(t){return Jm(t.flag)??Jm(t.env)??Jm(t.config)??nD}var nD,rD=p(()=>{"use strict";nD="local"});function lb(){return{toolCalls:new Map,emittedToolCalls:!1}}var cb=p(()=>{"use strict"});function sc(t){let e=sD.get(t);return e===void 0&&(e={},sD.set(t,e)),e}function wH(t){let e=sc(t),o={request_id:e.requestId??"",tier:"local",provider:"anthropic"};return e.model!==void 0&&(o.model=e.model),e.inputTokens!==void 0&&(o.tokens_in=e.inputTokens),e.outputTokens!==void 0&&(o.tokens_out=e.outputTokens),o}function EH(t){if(t.emittedToolCalls||t.toolCalls.size===0)return[];t.emittedToolCalls=!0;let e=[];for(let o of t.toolCalls.values()){if(o.name==="")continue;let n=_H(o.argsText),r={id:o.id,name:o.name,input:n};e.push({type:"tool_call",call:r})}return e}function iD(t){let e=[];for(let o of t){if(o.role==="tool"){e.push({role:"user",content:[{type:"tool_result",tool_use_id:o.tool_call_id??"",content:o.content}]});continue}if(o.role==="assistant"&&o.tool_calls!==void 0&&o.tool_calls.length>0){let r=[];o.content!==""&&r.push({type:"text",text:o.content});for(let s of o.tool_calls)r.push({type:"tool_use",id:s.id,name:s.name,input:s.input??{}});e.push({role:"assistant",content:r});continue}let n=o.role==="system"?"user":o.role;e.push({role:n,content:o.content})}return e}function AH(t){return{name:t.function.name,description:t.function.description,input_schema:t.function.parameters}}function CH(t){return t==="none"?{type:"none"}:t==="required"?{type:"any"}:{type:"auto"}}function DH(t){return t==="tool_use"?"tool_calls":t==="end_turn"||t===void 0||t===null||t===""?"stop":t}function TH(t){let e=t!==void 0?rn(t,"type"):void 0,o=(t!==void 0?rn(t,"message"):void 0)??"provider error",n=e==="overloaded_error"?529:e==="rate_limit_error"?429:502;return new Ge({status:n,code:"PROVIDER_ERROR",detail:o})}function _H(t){if(t.trim()==="")return{};let e=aD(t);return An(e)?e:{}}function aD(t){try{return JSON.parse(t)}catch{return}}function An(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function rn(t,e){if(!An(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Qm(t,e){if(!An(t))return;let o=t[e];return typeof o=="number"?o:void 0}var xH,SH,ic,sD,lD=p(()=>{"use strict";Wo();xH="2023-06-01",SH="oauth-2025-04-20",ic=class{kind="anthropic";defaultBaseUrl="";allowsBaseUrlOverride=!0;buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/v1/messages`,a={model:o.model,max_tokens:o.maxTokens,messages:iD(o.messages),stream:!0};o.system!==void 0&&o.system!==""&&(a.system=o.system),o.temperature!==void 0&&(a.temperature=o.temperature),o.tools!==void 0&&o.tools.length>0&&(a.tools=o.tools.map(AH),a.tool_choice=CH(o.toolChoice));let l={"content-type":"application/json",accept:"text/event-stream","anthropic-version":xH};return r.kind==="oauth"?(l.authorization=`Bearer ${r.secret}`,l["anthropic-beta"]=SH):l["x-api-key"]=r.secret,{url:i,headers:l,body:JSON.stringify(a)}}mapSse(e,o,n){let r=aD(o);if(!An(r))return[];switch(e!==""?e:rn(r,"type")??""){case"message_start":{let i=[],a=An(r.message)?r.message:void 0,l=a!==void 0?rn(a,"id"):void 0;i.push({type:"start",request_id:l??""});let c=a!==void 0&&An(a.usage)?a.usage:void 0;if(c!==void 0){let m=Qm(c,"input_tokens");m!==void 0&&(sc(n).inputTokens=m)}let u=a!==void 0?rn(a,"model"):void 0;return u!==void 0&&(sc(n).model=u),l!==void 0&&(sc(n).requestId=l),i}case"content_block_start":{let i=An(r.content_block)?r.content_block:void 0,a=Qm(r,"index")??0;return i!==void 0&&rn(i,"type")==="tool_use"&&n.toolCalls.set(a,{id:rn(i,"id")??"",name:rn(i,"name")??"",argsText:""}),[]}case"content_block_delta":{let i=An(r.delta)?r.delta:void 0;if(i===void 0)return[];let a=rn(i,"type");if(a==="text_delta"){let l=rn(i,"text");return l!==void 0&&l!==""?[{type:"delta",content:l}]:[]}if(a==="input_json_delta"){let l=Qm(r,"index")??0,c=rn(i,"partial_json")??"",u=n.toolCalls.get(l);return u!==void 0&&(u.argsText+=c),[]}return[]}case"message_delta":{let i=[],a=An(r.delta)?r.delta:void 0;i.push(...EH(n));let l=An(r.usage)?r.usage:void 0;if(l!==void 0){let u=Qm(l,"output_tokens");u!==void 0&&(sc(n).outputTokens=u)}let c=a!==void 0?rn(a,"stop_reason"):void 0;return i.push({type:"usage",usage:wH(n)}),i.push({type:"done",finish_reason:DH(c)}),i}case"error":{let i=An(r.error)?r.error:void 0;throw TH(i)}default:return[]}}},sD=new WeakMap});function MH(t,e){for(let o of e){if(!Kn(o))continue;let n=typeof o.index=="number"?o.index:0,r=t.toolCalls.get(n)??{id:"",name:"",argsText:""},s=ps(o,"id");s!==void 0&&s!==""&&(r.id=s);let i=Kn(o.function)?o.function:void 0;if(i!==void 0){let a=ps(i,"name");a!==void 0&&a!==""&&(r.name=a);let l=ps(i,"arguments");l!==void 0&&(r.argsText+=l)}t.toolCalls.set(n,r)}}function LH(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 PH(t){if(!Array.isArray(t.choices))return;let e=t.choices[0];return Kn(e)?e:void 0}function FH(t){let e=Zm(t,"code")??Zm(t,"status")??502,o=ps(t,"message")??"provider error";return new Ge({status:e,code:"PROVIDER_ERROR",detail:o})}function IH(t){if(t.trim()==="")return{};let e=cD(t);return Kn(e)?e:{}}function cD(t){try{return JSON.parse(t)}catch{return}}function Kn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ps(t,e){if(!Kn(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Zm(t,e){if(!Kn(t))return;let o=t[e];return typeof o=="number"?o:void 0}var RH,OH,ac,uD=p(()=>{"use strict";Wo();RH="https://github.com/hiperplano/aluy-cli",OH="aluy-cli",ac=class{kind;defaultBaseUrl;allowsBaseUrlOverride=!0;provider;constructor(e){this.provider=e.provider,this.kind=e.provider,this.defaultBaseUrl=e.defaultBaseUrl}buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/chat/completions`,a=[];o.system!==void 0&&o.system!==""&&a.push({role:"system",content:o.system});for(let u of o.messages)a.push(LH(u));let l={model:o.model,messages:a,max_tokens:o.maxTokens,stream:!0,stream_options:{include_usage:!0}};o.temperature!==void 0&&(l.temperature=o.temperature),o.reasoningEffort!==void 0&&o.reasoningEffort!==""&&(l.reasoning_effort=o.reasoningEffort),o.tools!==void 0&&o.tools.length>0&&(l.tools=o.tools,l.tool_choice=o.toolChoice??"auto");let c={"content-type":"application/json",accept:"text/event-stream"};return r.kind!=="none"&&r.secret!==""&&(c.authorization=`Bearer ${r.secret}`),this.provider==="openrouter"&&(c["http-referer"]=RH,c["x-title"]=OH),{url:i,headers:c,body:JSON.stringify(l)}}mapSse(e,o,n){let r=o.trim();if(r==="")return[];if(r==="[DONE]")return this.flush(n);let s=cD(r);if(!Kn(s))return[];if(Kn(s.error))throw FH(s.error);let i=[],a=PH(s);if(a!==void 0){let l=Kn(a.delta)?a.delta:void 0,c=l!==void 0?ps(l,"content"):void 0;c!==void 0&&c!==""&&i.push({type:"delta",content:c}),l!==void 0&&Array.isArray(l.tool_calls)&&MH(n,l.tool_calls);let u=ps(a,"finish_reason");u!=null&&u!==""&&(i.push(...this.flush(n)),i.push({type:"done",finish_reason:u}))}return Kn(s.usage)&&i.unshift({type:"usage",usage:this.toUsage(s.usage,s)}),i}flush(e){if(e.emittedToolCalls||e.toolCalls.size===0)return[];e.emittedToolCalls=!0;let o=[];for(let n of e.toolCalls.values()){if(n.name==="")continue;let r=IH(n.argsText),s={id:n.id,name:n.name,input:r};o.push({type:"tool_call",call:s})}return o}toUsage(e,o){let n={request_id:ps(o,"id")??"",tier:"local",provider:this.provider},r=ps(o,"model");r!==void 0&&(n.model=r);let s=Zm(e,"prompt_tokens");s!==void 0&&(n.tokens_in=s);let i=Zm(e,"completion_tokens");return i!==void 0&&(n.tokens_out=i),n}}});async function*lc(t){let e=new TextDecoder("utf-8"),o="";for await(let r of t){o+=typeof r=="string"?r:e.decode(r,{stream:!0}),o=o.replace(/\r\n/g,`
24
+ `)+q}}}]}var ms,$y,_C,Hm=p(()=>{"use strict";My();Zl();Ny();ms="room_post",$y="room_read",_C=["ask","inform","result","ack"]});function qm(t,e,o){for(let n of t.rules)if(n.tool===e&&(n.match===void 0||MC(n.match,o)))return n}function MC(t,e){let o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*/g,".*");return new RegExp(`^${o}$`).test(e)}var By,Uy=p(()=>{"use strict";By={rules:[],defaults:{}}});function jy(t,e){let o,n;for(let r of t){let s=r(e);if(s){if(s.decision==="deny")return s;s.decision==="ask"&&!o&&(o=s),s.decision==="allow"&&!n&&(n=s)}}return o??n}var Hy=p(()=>{"use strict"});var ga,qy=p(()=>{"use strict";ga=class t{granted=new Set;static keyFor(e){let o=typeof e.input.command=="string"?e.input.command:typeof e.input.path=="string"?e.input.path:"";return`${e.name==="write_file"||e.name==="edit_file"?"file_write":e.name}\0${o}`}has(e){return this.granted.has(t.keyFor(e))}grant(e){this.granted.add(t.keyFor(e))}list(){return[...this.granted]}revoke(e){return this.granted.delete(e)}get size(){return this.granted.size}}});function Gy(t,e){return e==="ask"?!0:Wm.includes(t)}var Wm,Wy,zy=p(()=>{"use strict";Wm=["read_file","grep"],Wy=[{category:"always-ask:destructive",label:"destrutivo (rm -rf, git push --force, dd)",why:"apaga/sobrescreve dados de forma irreversivel \u2014 pergunta sempre, mostrando o efeito exato. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:network",label:"rede (curl | sh, wget, ssh, scp)",why:"sai da maquina / baixa-e-executa codigo remoto \u2014 o pior caso de injecao. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:escalation",label:"escalada (sudo, su, doas, setuid)",why:"eleva privilegio alem do usuario \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:package-exec",label:"exec de pacote (npm i, npx, pip install)",why:"instala/executa codigo de terceiros \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:config-startup",label:"config/startup (.bashrc, .git/hooks, package.json)",why:"muda o que roda no proximo start do shell/projeto \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:outside-workspace",label:"escrita FORA do workspace",why:"escreve fora do diretorio do projeto (home/system) \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:sensitive-read",label:"leitura de segredos (~/.ssh, ~/.aws, .env, *.key)",why:"le credenciais/chaves privadas \u2014 pergunta sempre (ou nega os mais criticos). So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:journal-read-deny",label:"leitura do journal ~/.aluy/ (undo)",why:"o journal guarda o conteudo-ANTES de cada edicao (possivel segredo): NEGADO por qualquer canal, ACIMA ate do --yolo. Nem o bypass total libera.",lock:"deny"},{category:"always-ask:aluy-config-write-deny",label:"escrita na config ~/.aluy/ (hooks.json, commands/)",why:"editar a config de HOOK e ato do USUARIO, nao do agente: senao um README malicioso plantaria um hook que roda sempre. NEGADO por qualquer canal, ACIMA ate do --yolo.",lock:"deny"}]});function Ky(t,e){return{kind:"command",tool:t,exact:`$ ${e}`}}function Gm(t,e,o){return{kind:"diff",tool:t,path:e,exact:o}}function ec(t,e,o){return{kind:"network",tool:t,exact:`$ ${e}`,target:o}}function fs(t,e){return{kind:"path",tool:t,path:e,exact:e}}function Yy(t){let e=t.match(/\bhttps?:\/\/[^\s"';|&]+/);if(e)return e[0];let o=t.match(/\b[\w.-]+@[\w.-]+:[^\s"';|&]*/);if(o)return o[0];let n=t.match(/\b[\w.-]+@[\w.-]+/);if(n)return n[0];let r=t.match(/\b(?:ssh|scp|sftp|telnet|nc|ncat)\s+(?:-\w+\s+)*([\w.-]+)/);if(r?.[1])return r[1]}var Vy=p(()=>{"use strict"});function tH(t,e){if(t===void 0)return e;if(e===void 0)return t;let o=new Set;for(let n of e)t.has(n)&&o.add(n);return o}function ut(t,e,o,n){return{decision:t,reason:e,category:o,effect:n}}function Xy(t){return t.map(e=>e.reason).join("; ")}function oH(t){return t[0].category}function nH(t){return t==="deny"?"policy:deny":"policy:allow"}function Jy(t){return t.name===ms?Ct(t,"code"):Ct(t,"command")||Ct(t,"path")||Ct(t,"pattern")||""}function Ct(t,e){let o=t.input[e];return typeof o=="string"?o:""}var LC,bo,ya=p(()=>{"use strict";ai();my();ky();li();Or();Hm();Rm();pa();Uy();Hy();qy();zy();Vy();LC=new Set(["read_file","grep","glob","change_dir",Rr,Jl,zn]);bo=class t{policy;hooks;grants;diffPreview;modeValue;safeDefaults=new Map;denySpawnAgent;toolScope;roomExemptTools;maxMemoryWrites;memoryWrites=0;constructor(e={}){this.policy=e.policy??By,this.hooks=e.hooks??[],this.grants=e.sessionGrants??new ga,this.modeValue=e.mode??(e.unsafe?"unsafe":"normal"),e.diffPreview&&(this.diffPreview=e.diffPreview),this.denySpawnAgent=e.denySpawnAgent??!1,e.toolScope!==void 0&&(this.toolScope=e.toolScope),e.roomExemptTools!==void 0&&(this.roomExemptTools=e.roomExemptTools),this.maxMemoryWrites=e.maxMemoryWritesPerSession??DC}forSubAgent(e,o){let n=tH(this.toolScope,e);return new t({policy:this.policy,hooks:this.hooks,mode:this.modeValue,sessionGrants:new ga,denySpawnAgent:!0,...n!==void 0?{toolScope:n}:{},...o!==void 0?{roomExemptTools:o}:{},...this.diffPreview?{diffPreview:this.diffPreview}:{}})}setMode(e){this.modeValue=e}get mode(){return this.modeValue}setUnsafe(e){this.modeValue=e?"unsafe":"normal"}get isUnsafe(){return this.modeValue==="unsafe"}get isPlan(){return this.modeValue==="plan"}get sessionGrants(){return this.grants}decide(e){let o=this.describeEffect(e);if(this.denySpawnAgent&&e.name==="spawn_agent")return ut("deny","profundidade de sub-agente \u22641 (E-A1): um sub-agente N\xC3O pode criar netos \u2014 spawn_agent negado na catraca","policy:deny",o);if(this.toolScope!==void 0&&!(this.roomExemptTools?.has(e.name)??!1)&&!this.toolScope.has(e.name))return ut("deny",`tool "${e.name}" fora do toolset declarado do agente (tools \u2286 pai, GS-MD1) \u2014 negada na catraca`,"policy:deny",o);let n=Im(e.name,e.input);if(e.name===Gn&&this.memoryWrites>=this.maxMemoryWrites)return ut("deny",`teto de grava\xE7\xF5es de mem\xF3ria por sess\xE3o atingido (${this.memoryWrites}/${this.maxMemoryWrites}) \u2014 lembran\xE7a aut\xF4noma barrada para evitar grava\xE7\xF5es em excesso. Use /memory para revisar/podar a mem\xF3ria.`,"memory-write",o);if(this.modeValue==="plan"&&!dy(e))return ut("deny",`modo Plan (read-only): "${e.name}" tem efeito (ou \xE9 rede) \u2014 s\xF3 leitura local \xE9 permitida`,"mode:plan-deny",o);if(this.modeValue==="unsafe")return ut("allow","PERMISS\xC3O COMPLETA de sess\xE3o (--yolo)","policy:allow",o);let r=n.find(l=>(l.category==="always-ask:journal-read-deny"||l.category==="always-ask:aluy-config-write-deny")&&l.deny);if(r)return ut("deny",Xy(n),r.category,o);if(e.name===Gn)return ut("allow","lembran\xE7a aut\xF4noma de mem\xF3ria (allow silencioso; recall = dado, CLI-SEC-15)","memory-write",o);if(e.name===ms){let l=Jy(e),c=qm(this.policy,e.name,l);return c&&c.decision!=="allow"?ut(c.decision,`pol\xEDtica do usu\xE1rio (room_post: ${c.match??"qualquer sala"})`,"agent-comms",o):ut("allow","comunica\xE7\xE3o entre agentes (membership = consentimento, \xA713.1; authz na mesh: writer\u2208writers)","agent-comms",o)}if(this.grants.has(e))return ut("allow","liberado nesta sess\xE3o (sempre-permitir)","policy:allow",o);let s=jy(this.hooks,e);if(s?.decision==="deny")return ut("deny",`hook: ${s.reason}`,"hook",o);if(n.length>0){let l=n.find(c=>c.deny);return l?ut("deny",Xy(n),l.category,o):ut("ask",Xy(n),oH(n),o)}if(s?.decision==="ask")return ut("ask",`hook: ${s.reason}`,"hook",o);if(s?.decision==="allow")return ut("allow",`hook: ${s.reason}`,"hook",o);let i=Jy(e),a=qm(this.policy,e.name,i);if(a){let l=a.match?`${a.match}`:"qualquer input";return ut(a.decision,`pol\xEDtica do usu\xE1rio (${e.name}: ${l})`,nH(a.decision),o)}return this.defaultFor(e,o)}grantSession(e){return Im(e.name,e.input).length>0?!1:(this.grants.grant(e),!0)}noteMemoryWrite(){this.memoryWrites+=1}get memoryWriteUsage(){return{used:this.memoryWrites,max:this.maxMemoryWrites}}setSafeToolDefault(e,o){return Gy(e,o)?(this.safeDefaults.set(e,o),!0):!1}effectiveSafeDefault(e){let o=this.safeDefaults.get(e);if(o)return o;let n=this.policy.defaults?.[e];return n==="allow"||n==="ask"?n:LC.has(e)?"allow":"ask"}defaultFor(e,o){let n=this.safeDefaults.get(e.name);if(n){let s=this.floor(e.name,n);return ut(s,`default ajustado no painel (${e.name})`,"default",o)}let r=this.policy.defaults?.[e.name];if(r){let s=this.floor(e.name,r);return ut(s,`default configurado (${e.name})`,"default",o)}return LC.has(e.name)?ut("allow",`leitura pura (${e.name}) \u2014 default allow`,"default",o):e.name==="run_command"?ut("ask","run_command = ask por padr\xE3o (CLI-SEC-3)","default",o):e.name==="edit_file"?ut("ask","edit_file = ask com diff (CLI-SEC-9)","default",o):e.name==="write_file"?ut("ask","write_file = ask com diff (CLI-SEC-9)","default",o):ut("ask",`sem regra expl\xEDcita p/ "${e.name}" \u2014 ask (deny-por-padr\xE3o)`,"default",o)}floor(e,o){return(e==="run_command"||e==="edit_file"||e==="write_file")&&o==="allow"?"ask":o}describeEffect(e){if(e.name==="run_command"){let o=Ct(e,"command"),n=Yy(o);return n?ec("run_command",o,n):Ky("run_command",o)}if(e.name==="edit_file"){let o=Ct(e,"path"),n=Ct(e,"old_string"),r=Ct(e,"new_string");return this.diffPreview?Gm("edit_file",o,this.diffPreview(o,r,n)):fs("edit_file",o)}if(e.name==="write_file"){let o=Ct(e,"path"),n=Ct(e,"content");return this.diffPreview?Gm("write_file",o,this.diffPreview(o,n)):fs("write_file",o)}if(e.name==="read_file"||e.name==="grep")return fs(e.name,Ct(e,"path"));if(e.name==="glob")return fs("glob",Ct(e,"path")||".");if(e.name===Gn){let o=Ct(e,"fact"),n=Ct(e,"scope")||"global";return{kind:"path",tool:Gn,exact:`[mem\xF3ria/${n}] ${o}`}}if(e.name==="web_fetch"){let o=Ct(e,"url");return ec("web_fetch",`web_fetch ${o}`,o)}if(e.name==="web_search"){let o=Ct(e,"query");return ec("web_search",`web_search ${o}`,"duckduckgo.com")}if(e.name===ms){let o=Ct(e,"code"),n=Ct(e,"to"),r=Ct(e,"kind");return{kind:"path",tool:ms,exact:`[sala ${o}] ${r||"msg"} \u2192 ${n||"?"}`}}return{kind:"command",tool:e.name,exact:`${e.name} ${Jy(e)}`.trim()}}}});function Zy(t){return t.root?{outcome:"refuse",reason:"root",message:"aluy: --yolo RECUSADO como ROOT (uid 0): YOLO + root = risco de destruir a m\xE1quina com uma inje\xE7\xE3o de prompt (sem barreira de privil\xE9gio). Rode como usu\xE1rio normal."}:{outcome:"allow",requiresConfirmation:t.tty,notice:PC,warning:Qy}}function eb(t,e){return t.outcome==="refuse"?{actorType:"cli",kind:"yolo-refused",mode:"yolo",at:e,reason:t.reason}:{actorType:"cli",kind:"yolo-entered",mode:"yolo",at:e}}var Qy,PC,FC=p(()=>{"use strict";Qy="\u26A0 MODO YOLO \u2014 PERMISS\xC3O COMPLETA NA M\xC1QUINA. A catraca de aprova\xE7\xE3o est\xE1 DESLIGADA, a cerca de workspace est\xE1 DERRUBADA (disco inteiro acess\xEDvel) e o anti-SSRF de rede interna est\xE1 suspenso. O agente roda QUALQUER comando, l\xEA/escreve QUALQUER arquivo e abre rede para QUALQUER destino SEM PERGUNTAR. Uma \xFAnica inje\xE7\xE3o de prompt (README/issue/p\xE1gina/sa\xEDda de comando) pode comprometer esta m\xE1quina. N\xE3o persiste entre sess\xF5es.",PC=`${Qy} Continuar? [s/N]`});var IC=p(()=>{"use strict";ai();ya();my();ky();Uy();Hy();qy();zy();Vy();FC()});var tb,ob=p(()=>{"use strict";tb=["assistant:session","llm:call"]});var En,zm,tc,ba,va,Km,ka,Mr,oc=p(()=>{"use strict";En=class extends Error{constructor(e){super(e),this.name=new.target.name}},zm=class extends En{constructor(){super("aprova\xE7\xE3o negada no navegador \u2014 login cancelado.")}},tc=class extends En{constructor(){super("o c\xF3digo expirou antes da aprova\xE7\xE3o. Rode `aluy login` de novo.")}},ba=class extends En{code;constructor(e,o){super(`falha no device-flow (${e})${o?`: ${o}`:""}`),this.code=e}},va=class extends En{constructor(){super("a sess\xE3o expirou ou foi revogada. Rode `aluy login` de novo.")}},Km=class extends En{constructor(){super("PAT inv\xE1lido: esperado o formato `pat_<id>_<segredo>`.")}},ka=class extends En{transient=!0;constructor(){super("n\xE3o consegui renovar a sess\xE3o agora (identity indispon\xEDvel) \u2014 tente de novo; sua credencial foi preservada.")}},Mr=class extends En{status;constructor(e,o){super(`identity respondeu ${e} em ${o}.`),this.status=e}}});function sH(t){return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function iH(t){if(!t||!t.startsWith(NC))return null;let e=t.slice(NC.length),o=e.indexOf("_");if(o<=0)return null;let n=e.slice(0,o),r=e.slice(o+1);return!rH.test(n)||r.length===0?null:{lookupId:sH(n),secretLength:r.length}}function nc(t){return iH(t)!==null}var NC,rH,nb=p(()=>{"use strict";NC="pat_",rH=/^[0-9a-f]{32}$/});function aH(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/");return Buffer.from(e,"base64").toString("utf8")}catch{return null}}function $C(t){if(!t)return;let e=t.split(".");if(e.length!==3)return;let o=aH(e[1]??"");if(o!==null)try{let n=JSON.parse(o);return typeof n.sub=="string"&&n.sub.length>0?n.sub:void 0}catch{return}}var rb=p(()=>{"use strict"});function UC(t){return JSON.stringify(t)}function jC(t){try{let e=JSON.parse(t);return e.v!==1||e.kind!=="device"&&e.kind!=="pat"?null:e}catch{return null}}function Vm(t,e=Date.now){let o=t.kind==="pat"?"pat_\u2026":"jwt",n=t.kind==="device"?$C(t.access_token):void 0,r=t.kind==="device"&&t.expires_at!==void 0&&t.expires_at<=e();return{kind:t.kind,organization_id:t.organization_id,scopes:t.scopes,...t.expires_at!==void 0?{expires_at:t.expires_at}:{},expired:r,token_hint:o,...n!==void 0?{user:n}:{}}}var Ym,BC,sb=p(()=>{"use strict";rb();Ym="aluy-cli",BC="headless-credential"});var lH,Xm,ib=p(()=>{"use strict";oc();lH="urn:ietf:params:oauth:grant-type:device_code",Xm=class{baseUrl;clientId;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.clientId=e.clientId,this.doFetch=e.fetch??globalThis.fetch}url(e){return`${this.baseUrl}${e}`}async readJson(e,o){try{return await e.json()}catch{throw new Mr(200,`${o} (corpo 2xx n\xE3o \xE9 JSON v\xE1lido)`)}}async deviceAuthorize(e){let o=await this.doFetch(this.url("/identity/device/authorize"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:this.clientId,organization_id:e.organizationId,scopes:e.scopes??[]})});if(!o.ok)throw new Mr(o.status,"device/authorize");return await this.readJson(o,"device/authorize")}async pollToken(e,o){let n=await this.doFetch(this.url("/identity/token"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:lH,device_code:e,client_id:this.clientId}),...o?{signal:o}:{}});if(n.ok)return{status:"success",tokens:await this.readJson(n,"token")};let r;try{r=await n.json()}catch{r=void 0}let s=r?.error??"";switch(s){case"authorization_pending":return{status:"pending"};case"slow_down":return{status:"slow_down"};case"access_denied":return{status:"denied"};case"expired_token":return{status:"expired"};default:return{status:"error",code:s||`http_${n.status}`,...r?.error_description?{description:r.error_description}:{}}}}async refresh(e){let o=await this.doFetch(this.url("/identity/headless/refresh"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!o.ok)throw new Mr(o.status,"headless/refresh");return await this.readJson(o,"headless/refresh")}async revoke(e){let o=await this.doFetch(this.url("/identity/headless/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!(o.status===204||o.status===404||o.status===401)&&!o.ok)throw new Mr(o.status,"headless/revoke")}}});function mH(t){let e=typeof t=="number"?t:Number(t);return!Number.isFinite(e)||e<dH?uH:e}async function HC(t,e,o={}){let n=o.now??Date.now,r=o.sleep??fH,s=await t.deviceAuthorize({organizationId:e.organizationId,...e.scopes?{scopes:e.scopes}:{}});await e.onPrompt({userCode:s.user_code,verificationUri:s.verification_uri,verificationUriComplete:s.verification_uri_complete,expiresInSeconds:s.expires_in});let i=Number.isFinite(s.expires_in)?s.expires_in:900,a=n()+i*1e3,l=mH(s.interval);for(;;){if(e.signal?.aborted)throw new ba("cancelled","login cancelado pelo usu\xE1rio.");if(n()>=a)throw new tc;if(await r(l*1e3,e.signal),e.signal?.aborted)throw new ba("cancelled","login cancelado pelo usu\xE1rio.");let c=await t.pollToken(s.device_code,...e.signal?[e.signal]:[]);switch(c.status){case"success":return c.tokens;case"pending":continue;case"slow_down":l+=cH;continue;case"denied":throw new zm;case"expired":throw new tc;case"error":throw new ba(c.code,c.description)}}}var cH,uH,dH,fH,ab=p(()=>{"use strict";oc();cH=5,uH=5,dH=1;fH=(t,e)=>new Promise(o=>{if(e?.aborted)return o();let n=setTimeout(()=>{e?.removeEventListener("abort",r),o()},t),r=()=>{clearTimeout(n),o()};e?.addEventListener("abort",r,{once:!0})})});function pH(t){return t instanceof Mr&&(t.status===400||t.status===401||t.status===403)}function qC(t,e){return{kind:"device",access_token:t.access_token,refresh_token:t.refresh_token,organization_id:t.organization_id,scopes:t.scope.split(" ").filter(Boolean),expires_at:e()+t.expires_in*1e3,v:1}}var eo,WC=p(()=>{"use strict";sb();ab();oc();ib();nb();ob();eo=class{client;store;now;sleep;envToken;inFlightRefresh;constructor(e,o={}){this.client=new Xm(e),this.store=e.store,this.now=o.now??Date.now,this.sleep=o.sleep,this.envToken=o.envToken}async loginWithDeviceFlow(e){let o=await HC(this.client,{organizationId:e.organizationId,scopes:e.scopes??tb,onPrompt:e.onPrompt,...e.signal?{signal:e.signal}:{}},{now:this.now,...this.sleep?{sleep:this.sleep}:{}}),n=qC(o,this.now);return await this.store.set(n),Vm(n)}async loginWithPat(e,o){if(!nc(e))throw new Km;let n={kind:"pat",pat:e,organization_id:o,scopes:[...tb],v:1};return await this.store.set(n),Vm(n)}async whoami(){let e=await this.store.get();return e?Vm(e,this.now):null}async getAccessToken(e=3e4){let o=await this.store.get();if(!o){let r=this.envToken?.()?.trim();if(r&&nc(r))return r;throw new va}if(o.kind==="pat")return o.pat;if(o.access_token!==void 0&&o.expires_at!==void 0&&this.now()+e<o.expires_at)return o.access_token;if(!o.refresh_token)throw new va;return await this.refreshSingleFlight(o.refresh_token)}refreshSingleFlight(e){let o=this.inFlightRefresh;if(o)return o;let n=(async()=>{let s;try{s=await this.client.refresh(e)}catch(a){throw pH(a)?(await this.store.clear(),new va):new ka}let i=qC(s,this.now);return await this.store.set(i),i.access_token})();this.inFlightRefresh=n;let r=()=>{this.inFlightRefresh===n&&(this.inFlightRefresh=void 0)};return n.then(r,r),n}async logout(){let e=await this.store.get();if(!e)return{revoked:!1};let o=!1;if(e.kind==="device"&&e.refresh_token)try{await this.client.revoke(e.refresh_token),o=!0}catch{o=!1}return await this.store.clear(),{revoked:o}}}});function GC(t){let e="";for(let n of t)e+=String.fromCharCode(n);return(typeof btoa=="function"?btoa(e):hH(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function hH(t){let e=globalThis;if(typeof e.Buffer<"u")return e.Buffer.from(t,"binary").toString("base64");throw new Error("base64 indispon\xEDvel no runtime")}function zC(t,e=32){let o=GC(t.randomBytes(e)),n=t.sha256(new TextEncoder().encode(o)),r=GC(n);return{codeVerifier:o,codeChallenge:r,method:"S256"}}function KC(t,e,o){let n=new URL(t.authorizeUrl);return n.searchParams.set("response_type","code"),n.searchParams.set("client_id",t.clientId),n.searchParams.set("redirect_uri",t.redirectUri),t.scopes.length>0&&n.searchParams.set("scope",t.scopes.join(" ")),n.searchParams.set("state",o),n.searchParams.set("code_challenge",e.codeChallenge),n.searchParams.set("code_challenge_method",e.method),n.toString()}async function YC(t){let e=new URLSearchParams({grant_type:"authorization_code",code:t.code,redirect_uri:t.config.redirectUri,client_id:t.config.clientId,code_verifier:t.codeVerifier});return await XC(t.config.tokenUrl,e,t.fetch,t.now??Date.now)}async function VC(t){let e=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken,client_id:t.config.clientId}),o=await XC(t.config.tokenUrl,e,t.fetch,t.now??Date.now);return o.refreshToken===void 0?{...o,refreshToken:t.refreshToken}:o}async function XC(t,e,o,n){let r=await o(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded",accept:"application/json"},body:e.toString()});if(!r.ok){let i="";try{i=await r.text()}catch{i=""}throw new rc(`token endpoint respondeu ${r.status}`,r.status,yH(i))}let s=await r.json();return gH(s,n)}function gH(t,e){if(typeof t!="object"||t===null)throw new rc("resposta do token endpoint n\xE3o \xE9 objeto",0);let o=t,n=typeof o.access_token=="string"?o.access_token:void 0;if(n===void 0||n==="")throw new rc("resposta do token endpoint sem access_token",0);let r={accessToken:n};return typeof o.refresh_token=="string"&&o.refresh_token!==""&&(r.refreshToken=o.refresh_token),typeof o.expires_in=="number"&&Number.isFinite(o.expires_in)&&(r.expiresAt=e()+o.expires_in*1e3),typeof o.scope=="string"&&(r.scope=o.scope),r}function JC(t,e,o=6e4){return t.expiresAt===void 0?!1:t.expiresAt-e()<=o}function yH(t){return t.replace(/[A-Za-z0-9_-]{20,}/g,"***").slice(0,200)}var rc,QC=p(()=>{"use strict";rc=class extends Error{status;constructor(e,o,n){super(n!==void 0&&n!==""?`${e}: ${n}`:e),this.name="OAuthError",this.status=o}}});var ZC=p(()=>{"use strict";ob();oc();nb();rb();sb();ib();ab();WC();QC()});var eD=p(()=>{"use strict"});function bH(t){return t===429?!0:t>=500}function qo(t,e){let o=tD(e)?e:{},n=typeof o.code=="string"?o.code:kH(t),r={status:t,code:n};typeof o.title=="string"&&(r.title=o.title),typeof o.detail=="string"&&(r.detail=o.detail),typeof o.type=="string"&&(r.type=o.type),typeof o.instance=="string"&&(r.instance=o.instance);let s=vH(o.errors);return s!==void 0&&(r.errors=s),typeof o.retryable=="boolean"&&(r.retryable=o.retryable),typeof o.retry_after=="number"&&(r.retry_after=o.retry_after),r}function vH(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(!tD(o))continue;let n={};typeof o.field=="string"&&(n.field=o.field),typeof o.code=="string"&&(n.code=o.code),typeof o.detail=="string"&&(n.detail=o.detail),(n.field!==void 0||n.code!==void 0||n.detail!==void 0)&&e.push(n)}return e.length>0?e:void 0}function kH(t){switch(t){case 401:return"UNAUTHENTICATED";case 402:return"INSUFFICIENT_CREDIT";case 403:return"PERMISSION_DENIED";case 409:return"IDEMPOTENCY_KEY_REUSED";case 422:return"VALIDATION_FAILED";case 429:return"RATE_LIMITED";case 502:return"PROVIDER_ERROR";default:return`HTTP_${t}`}}function tD(t){return typeof t=="object"&&t!==null}var Ge,ze,nt,Wo=p(()=>{"use strict";Ge=class extends Error{status;code;retryable;retryAfter;problem;constructor(e){super(e.detail??e.title??`broker respondeu ${e.status} (${e.code})`),this.name="BrokerError",this.status=e.status,this.code=e.code,this.retryable=e.retryable??bH(e.status),this.retryAfter=e.retry_after,this.problem=e}get isAuth(){return this.status===401||this.code==="UNAUTHENTICATED"}get isQuota(){return this.status===429||this.status===402}get isToolsUnsupported(){return this.status===422&&this.code==="TOOLS_UNSUPPORTED"}};ze=class extends Error{constructor(e,o){super(e,o!==void 0?{cause:o}:void 0),this.name="BrokerTransportError"}},nt=class extends Error{constructor(){super("chamada de modelo cancelada."),this.name="ModelCallAbortedError"}}});var oD=p(()=>{"use strict"});function Jm(t){if(t==null)return;let e=t.trim().toLowerCase();if(e==="local")return"local";if(e==="broker")return"broker"}function Lr(t){return Jm(t.flag)??Jm(t.env)??Jm(t.config)??nD}var nD,rD=p(()=>{"use strict";nD="local"});function lb(){return{toolCalls:new Map,emittedToolCalls:!1}}var cb=p(()=>{"use strict"});function sc(t){let e=sD.get(t);return e===void 0&&(e={},sD.set(t,e)),e}function wH(t){let e=sc(t),o={request_id:e.requestId??"",tier:"local",provider:"anthropic"};return e.model!==void 0&&(o.model=e.model),e.inputTokens!==void 0&&(o.tokens_in=e.inputTokens),e.outputTokens!==void 0&&(o.tokens_out=e.outputTokens),o}function EH(t){if(t.emittedToolCalls||t.toolCalls.size===0)return[];t.emittedToolCalls=!0;let e=[];for(let o of t.toolCalls.values()){if(o.name==="")continue;let n=_H(o.argsText),r={id:o.id,name:o.name,input:n};e.push({type:"tool_call",call:r})}return e}function iD(t){let e=[];for(let o of t){if(o.role==="tool"){e.push({role:"user",content:[{type:"tool_result",tool_use_id:o.tool_call_id??"",content:o.content}]});continue}if(o.role==="assistant"&&o.tool_calls!==void 0&&o.tool_calls.length>0){let r=[];o.content!==""&&r.push({type:"text",text:o.content});for(let s of o.tool_calls)r.push({type:"tool_use",id:s.id,name:s.name,input:s.input??{}});e.push({role:"assistant",content:r});continue}let n=o.role==="system"?"user":o.role;e.push({role:n,content:o.content})}return e}function AH(t){return{name:t.function.name,description:t.function.description,input_schema:t.function.parameters}}function CH(t){return t==="none"?{type:"none"}:t==="required"?{type:"any"}:{type:"auto"}}function DH(t){return t==="tool_use"?"tool_calls":t==="end_turn"||t===void 0||t===null||t===""?"stop":t}function TH(t){let e=t!==void 0?rn(t,"type"):void 0,o=(t!==void 0?rn(t,"message"):void 0)??"provider error",n=e==="overloaded_error"?529:e==="rate_limit_error"?429:502;return new Ge({status:n,code:"PROVIDER_ERROR",detail:o})}function _H(t){if(t.trim()==="")return{};let e=aD(t);return An(e)?e:{}}function aD(t){try{return JSON.parse(t)}catch{return}}function An(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function rn(t,e){if(!An(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Qm(t,e){if(!An(t))return;let o=t[e];return typeof o=="number"?o:void 0}var xH,SH,ic,sD,lD=p(()=>{"use strict";Wo();xH="2023-06-01",SH="oauth-2025-04-20",ic=class{kind="anthropic";defaultBaseUrl="";allowsBaseUrlOverride=!0;buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/v1/messages`,a={model:o.model,max_tokens:o.maxTokens,messages:iD(o.messages),stream:!0};o.system!==void 0&&o.system!==""&&(a.system=o.system),o.temperature!==void 0&&(a.temperature=o.temperature),o.tools!==void 0&&o.tools.length>0&&(a.tools=o.tools.map(AH),a.tool_choice=CH(o.toolChoice));let l={"content-type":"application/json",accept:"text/event-stream","anthropic-version":xH};return r.kind==="oauth"?(l.authorization=`Bearer ${r.secret}`,l["anthropic-beta"]=SH):l["x-api-key"]=r.secret,{url:i,headers:l,body:JSON.stringify(a)}}mapSse(e,o,n){let r=aD(o);if(!An(r))return[];switch(e!==""?e:rn(r,"type")??""){case"message_start":{let i=[],a=An(r.message)?r.message:void 0,l=a!==void 0?rn(a,"id"):void 0;i.push({type:"start",request_id:l??""});let c=a!==void 0&&An(a.usage)?a.usage:void 0;if(c!==void 0){let m=Qm(c,"input_tokens");m!==void 0&&(sc(n).inputTokens=m)}let u=a!==void 0?rn(a,"model"):void 0;return u!==void 0&&(sc(n).model=u),l!==void 0&&(sc(n).requestId=l),i}case"content_block_start":{let i=An(r.content_block)?r.content_block:void 0,a=Qm(r,"index")??0;return i!==void 0&&rn(i,"type")==="tool_use"&&n.toolCalls.set(a,{id:rn(i,"id")??"",name:rn(i,"name")??"",argsText:""}),[]}case"content_block_delta":{let i=An(r.delta)?r.delta:void 0;if(i===void 0)return[];let a=rn(i,"type");if(a==="text_delta"){let l=rn(i,"text");return l!==void 0&&l!==""?[{type:"delta",content:l}]:[]}if(a==="input_json_delta"){let l=Qm(r,"index")??0,c=rn(i,"partial_json")??"",u=n.toolCalls.get(l);return u!==void 0&&(u.argsText+=c),[]}return[]}case"message_delta":{let i=[],a=An(r.delta)?r.delta:void 0;i.push(...EH(n));let l=An(r.usage)?r.usage:void 0;if(l!==void 0){let u=Qm(l,"output_tokens");u!==void 0&&(sc(n).outputTokens=u)}let c=a!==void 0?rn(a,"stop_reason"):void 0;return i.push({type:"usage",usage:wH(n)}),i.push({type:"done",finish_reason:DH(c)}),i}case"error":{let i=An(r.error)?r.error:void 0;throw TH(i)}default:return[]}}},sD=new WeakMap});function MH(t,e){for(let o of e){if(!Kn(o))continue;let n=typeof o.index=="number"?o.index:0,r=t.toolCalls.get(n)??{id:"",name:"",argsText:""},s=ps(o,"id");s!==void 0&&s!==""&&(r.id=s);let i=Kn(o.function)?o.function:void 0;if(i!==void 0){let a=ps(i,"name");a!==void 0&&a!==""&&(r.name=a);let l=ps(i,"arguments");l!==void 0&&(r.argsText+=l)}t.toolCalls.set(n,r)}}function LH(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 PH(t){if(!Array.isArray(t.choices))return;let e=t.choices[0];return Kn(e)?e:void 0}function FH(t){let e=Zm(t,"code")??Zm(t,"status")??502,o=ps(t,"message")??"provider error";return new Ge({status:e,code:"PROVIDER_ERROR",detail:o})}function IH(t){if(t.trim()==="")return{};let e=cD(t);return Kn(e)?e:{}}function cD(t){try{return JSON.parse(t)}catch{return}}function Kn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ps(t,e){if(!Kn(t))return;let o=t[e];return typeof o=="string"?o:void 0}function Zm(t,e){if(!Kn(t))return;let o=t[e];return typeof o=="number"?o:void 0}var RH,OH,ac,uD=p(()=>{"use strict";Wo();RH="https://github.com/hiperplano/aluy-cli",OH="aluy-cli",ac=class{kind;defaultBaseUrl;allowsBaseUrlOverride=!0;provider;constructor(e){this.provider=e.provider,this.kind=e.provider,this.defaultBaseUrl=e.defaultBaseUrl}buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/chat/completions`,a=[];o.system!==void 0&&o.system!==""&&a.push({role:"system",content:o.system});for(let u of o.messages)a.push(LH(u));let l={model:o.model,messages:a,max_tokens:o.maxTokens,stream:!0,stream_options:{include_usage:!0}};o.temperature!==void 0&&(l.temperature=o.temperature),o.reasoningEffort!==void 0&&o.reasoningEffort!==""&&(l.reasoning_effort=o.reasoningEffort),o.tools!==void 0&&o.tools.length>0&&(l.tools=o.tools,l.tool_choice=o.toolChoice??"auto");let c={"content-type":"application/json",accept:"text/event-stream"};return r.kind!=="none"&&r.secret!==""&&(c.authorization=`Bearer ${r.secret}`),this.provider==="openrouter"&&(c["http-referer"]=RH,c["x-title"]=OH),{url:i,headers:c,body:JSON.stringify(l)}}mapSse(e,o,n){let r=o.trim();if(r==="")return[];if(r==="[DONE]")return this.flush(n);let s=cD(r);if(!Kn(s))return[];if(Kn(s.error))throw FH(s.error);let i=[],a=PH(s);if(a!==void 0){let l=Kn(a.delta)?a.delta:void 0,c=l!==void 0?ps(l,"content"):void 0;c!==void 0&&c!==""&&i.push({type:"delta",content:c}),l!==void 0&&Array.isArray(l.tool_calls)&&MH(n,l.tool_calls);let u=ps(a,"finish_reason");u!=null&&u!==""&&(i.push(...this.flush(n)),i.push({type:"done",finish_reason:u}))}return Kn(s.usage)&&i.unshift({type:"usage",usage:this.toUsage(s.usage,s)}),i}flush(e){if(e.emittedToolCalls||e.toolCalls.size===0)return[];e.emittedToolCalls=!0;let o=[];for(let n of e.toolCalls.values()){if(n.name==="")continue;let r=IH(n.argsText),s={id:n.id,name:n.name,input:r};o.push({type:"tool_call",call:s})}return o}toUsage(e,o){let n={request_id:ps(o,"id")??"",tier:"local",provider:this.provider},r=ps(o,"model");r!==void 0&&(n.model=r);let s=Zm(e,"prompt_tokens");s!==void 0&&(n.tokens_in=s);let i=Zm(e,"completion_tokens");return i!==void 0&&(n.tokens_out=i),n}}});async function*lc(t){let e=new TextDecoder("utf-8"),o="";for await(let r of t){o+=typeof r=="string"?r:e.decode(r,{stream:!0}),o=o.replace(/\r\n/g,`
25
25
  `);let s=o.indexOf(`
26
26
 
27
27
  `);for(;s!==-1;){let i=o.slice(0,s);o=o.slice(s+2);let a=dD(i);a&&(yield a),s=o.indexOf(`
@@ -154,7 +154,7 @@ ${t.trim()}`}}function kR(t,e,o=gu){let{older:n,recent:r}=Qf(t,o);if(n.length===
154
154
  `);let i=xo(process.execPath,[n,"-p",o,"--yolo","--no-self-check"],{stdio:"inherit",timeout:9e5,env:{...process.env,ALUY_OVERWRITE_RENDER:"0",ALUY_SYNC_OUTPUT:"0",ALUY_NO_WEAK_YOLO_WARN:"1",ALUY_PRINT_VERBOSE:"1"}});if(t==="mem0")try{let l=ke(cn(),Ur),c=ke(l,Rn);et(l)&&_p(Op(),c)}catch{}t==="ollama"&&(await HG(),qG()),process.stderr.write(`
155
155
  verificando "${t}"\u2026 (alguns segundos; a pr\xF3xima etapa vem em seguida)
156
156
  `);let a=await zO(t,process.platform,!0);for(let l=0;l<BG&&!a;l++)await jG(UG),a=await zO(t,process.platform,!0);return{target:t,hashOk:a,installed:a,message:a?`complemento "${t}" instalado e verificado.`:`o complemento "${t}" ainda n\xE3o respondeu como esperado. O Aluy CLI funciona sem ele; voc\xEA pode tentar de novo depois com \`aluy bootstrap\`.`}}function jG(t){return new Promise(e=>setTimeout(e,t))}async function HG(){for(let t of[_n,Mp()])try{await(await fetch(`http://${an}:${Zn}/api/pull`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:t,stream:!1})})).text()}catch{}}function qG(){if(process.platform!=="win32")try{let t=xo("sh",["-lc","command -v ollama"],{encoding:"utf8",timeout:1e4});if(t.status===0&&(t.stdout??"").trim()!=="")return;let e=Rp(),n=["/usr/local/bin/ollama","/usr/bin/ollama","/opt/homebrew/bin/ollama",ke(e,".ollama","bin","ollama"),ke(cn(),Ss,"bin","ollama")].find(i=>et(i));if(n===void 0)return;let r=ke(e,".local","bin");Rx(r,{recursive:!0});let s=ke(r,"ollama");try{if(HO(s)===HO(n))return;xG(s)}catch{}try{kG(n,s)}catch{}}catch{}}function WG(){try{return xo("python3",["-m","venv","--help"],{timeout:1e4}).status===0}catch{return!1}}function GG(){try{return xo("python3",["-m","pip","--version"],{timeout:1e4}).status===0}catch{return!1}}function zG(t){let e=[],o=[];if(t.has("ollama")&&(YO()||(e.push("zstd (extrair o Ollama)"),o.push("zstd")),VO()||(e.push("tar (extrair o Ollama)"),o.push("tar"))),t.has("mem0")||t.has("headroom")){let r=Mx();r.ok?(WG()||(e.push("m\xF3dulo venv do Python (mem0/headroom criam um virtualenv)"),o.push("python3-venv")),GG()||(e.push("pip do Python (mem0/headroom instalam pacotes)"),o.push("python3-pip"))):(e.push(`python3 >= ${vu} para mem0/headroom (encontrado: ${r.version||"nenhum"})`),o.push("python3","python3-venv","python3-pip"))}if(e.length===0)return[];let n=[...new Set(o)];return["Faltam pr\xE9-requisitos para o modo turbo (o que conseguir, instala; o resto fica de fora):",...e.map(r=>` \u2022 ${r}`),`Instale e rode \`aluy bootstrap\` de novo: sudo apt install -y ${n.join(" ")}`,""]}async function JO(t,e,o){let n=t??"turbo",r=jr(e??{}),s=o?.useAgent!==!1,i=new _x({...o?.platform?{platform:o.platform}:{},...s?{agentInstaller:$G}:{}});if(!s)for(let a of zG(r))process.stderr.write(a+`
157
- `);return i.provisionAll(n,r)}var KO,Ya,AG,Rn,WO,_x,GO,IG,BG,UG,Lx=p(()=>{"use strict";P();KO=".aluy",Ya=448,AG=384;Rn="aluy-mem0-server.py";WO="application/vnd.ollama.image.model";_x=class{platform;agentInstaller;constructor(e={}){this.platform=e.platform??process.platform,this.agentInstaller=e.agentInstaller}hasPinnedArtifact(){return this.platform==="linux"}async isProvisioned(e){switch(e){case"ollama":{let o=ke(cn(),Ss,"bin","ollama");return et(o)}case"mem0":{let o=ke(cn(),Ur,"bin","python3");return et(o)&&Fu(o)}case"headroom":{let o=ke(cn(),ws,"bin","headroom");return et(o)}default:return!1}}async provision(e,o){let n=wG().uid;if(Wk(n))return{target:e,hashOk:!1,installed:!1,message:"RECUSA ROOT (uid=0): provisionamento de sidecars \xE9 user-space. Execute como usu\xE1rio normal."};if(this.agentInstaller)return this.agentInstaller(e,o);if(!this.hasPinnedArtifact())return{target:e,hashOk:!1,installed:!1,message:`SO '${this.platform}' sem artefato pinado p/ provisionamento direto. Rode \`aluy bootstrap\` (o aluy instala via o pr\xF3prio agente, \u26A0 --yolo) ou instale manualmente.`};switch(e){case"ollama":return RG();case"mem0":return PG();case"headroom":return FG();default:return{target:e,hashOk:!1,installed:!1,message:`Alvo desconhecido: ${String(e)}`}}}async provisionAll(e,o){if(!xu(e))return{profile:e,targets:[],anySuccess:!1,allFailed:!1};let n=[],r=[...o];for(let a=0;a<r.length;a++){let l=r[a],c={index:a+1,total:r.length,plan:r};try{n.push(await this.provision(l,c))}catch(u){let m=u instanceof Error?u.message:String(u);n.push({target:l,hashOk:!1,installed:!1,message:`falha inesperada ao provisionar \u2014 seguindo p/ os pr\xF3ximos (${m}).`})}}let s=n.some(a=>a.installed),i=n.length>0&&n.every(a=>!a.installed);return{profile:e,targets:n,anySuccess:s,allFailed:i}}},GO="na faixa 3.10\u20133.12 (N\xC3O use 3.13+/3.14 \u2014 as depend\xEAncias nativas n\xE3o t\xEAm wheels e o pip falha ao compilar; no Windows prefira `py -3.12` ou `py -3.11`). Se N\xC3O houver um Python 3.10\u20133.12 instalado, INSTALE primeiro (no Windows: `winget install -e --id Python.Python.3.12 --accept-source-agreements --accept-package-agreements`; no Linux/macOS use o gerenciador do sistema). Se j\xE1 existir um venv nesse caminho numa vers\xE3o incompat\xEDvel (ex.: 3.14), APAGUE e recrie com a vers\xE3o certa",IG="IMPORTANTE \u2014 o usu\xE1rio quer ACOMPANHAR: antes de cada passo, diga em 1 linha o que vai fazer; rode os comandos de instala\xE7\xE3o de forma VIS\xCDVEL (N\xC3O silencie pip/apt/curl com -q; mostre a sa\xEDda/progresso). Sem modo silencioso. ";BG=24,UG=5e3});var tr,Iu=p(()=>{"use strict";tr="1.0.0-rc.86"});var oM={};ht(oM,{HELP_TEXT:()=>ZO,parseArgs:()=>Px,suggestFlag:()=>JG,versionText:()=>eM});function dt(t,e,o={}){let n=`--${e}=`;for(let r=0;r<t.length;r++){let s=t[r];if(s===`--${e}`){let i=t[r+1];return i===void 0||(o.allowDashValue?i.startsWith("--"):i.startsWith("-"))?void 0:i}if(s!==void 0&&s.startsWith(n))return s.slice(n.length)}}function KG(t,e){let o=`-${e}=`;for(let n=0;n<t.length;n++){let r=t[n];if(r===`-${e}`){let s=t[n+1];return s!==void 0&&!s.startsWith("-")?s:void 0}if(r!==void 0&&r.startsWith(o))return r.slice(o.length)}}function eM(){return`aluy ${tr} (@hiperplano/aluy-cli-core ${Xl})`}function XG(t,e){let o=t.length,n=e.length,r=Array.from({length:n+1},(s,i)=>i);for(let s=1;s<=o;s++){let i=[s];for(let a=1;a<=n;a++){let l=t[s-1]===e[a-1]?0:1;i[a]=Math.min(r[a]+1,i[a-1]+1,r[a-1]+l)}r=i}return r[n]}function JG(t){let e,o=3;for(let n of tM){let r=XG(t,n);r<o&&(o=r,e=n)}return e}function QG(t,e){let o=[];for(let n=0;n<t.length;n++){let r=t[n];if(r==="--")break;if(!r.startsWith("--")||r.length===2||e.has(n))continue;let s=r.slice(2).split("=",1)[0];s===""||tM.has(s)||o.push(`--${s}`)}return o}function Px(t){let e=t[0];if(e==="login"&&!t.includes("-h")&&!t.includes("--help")){let W=t.slice(1),pe=dt(W,"token"),ho=dt(W,"org"),Wt=W.includes("--device"),Ro=dt(W,"provider"),jn=W.includes("--oauth");return{kind:"login",forceDeviceFlow:Wt,...pe!==void 0?{token:pe}:{},...ho!==void 0?{org:ho}:{},...Ro!==void 0?{provider:Ro}:{},...jn?{oauth:!0}:{}}}if(e==="logout"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"logout"};if(e==="whoami"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"whoami"};if(e==="doctor"&&!t.includes("-h")&&!t.includes("--help")){let W=t.includes("--deep")||t.includes("--test"),pe=t.includes("--json");return{kind:"doctor",deep:W,json:pe}}if(e==="config"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"config",json:t.includes("--json")};if(e==="agents"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"agents"};if(e==="bootstrap"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"bootstrap",agent:!t.includes("--no-agent")};if(e==="uninstall"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"uninstall",agent:t.includes("--agent")};if(e==="onboard"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"onboard"};if(e==="skills"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"skills"};if(e==="workflows"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"workflows"};if((e==="models"||e==="providers")&&!t.includes("-h")&&!t.includes("--help")){let W=t.includes("--json"),pe=t.findIndex(Wt=>Wt==="--backend"||Wt.startsWith("--backend=")),ho="both";if(pe!==-1){let Ro=(t[pe].includes("=")?t[pe].slice(10):t[pe+1]??"").trim().toLowerCase();Ro==="local"?ho="local":Ro==="broker"&&(ho="broker")}return{kind:"models",scope:ho,json:W,which:e==="providers"?"providers":"models"}}if(e==="telegram"&&!t.includes("-h")&&!t.includes("--help")){let W=t[1];if(W===void 0||!["login","logout","allow","deny","status"].includes(W))return{kind:"usage-error",message:"uso: aluy telegram <login|logout|allow|deny|status>",exitCode:2};let ho=t.slice(2);if(W==="login"){let Wt=dt(ho,"token");return{kind:"telegram",sub:"login",...Wt!==void 0?{token:Wt}:{}}}if(W==="allow"||W==="deny"){let Wt=ho.find(jn=>!jn.startsWith("-")),Ro=Wt!==void 0&&/^-?\d+$/.test(Wt)?Number(Wt):void 0;return Ro===void 0?{kind:"usage-error",message:`uso: aluy telegram ${W} <chat-id> (um inteiro)`,exitCode:2}:{kind:"telegram",sub:W,chatId:Ro}}return{kind:"telegram",sub:W}}if(e==="mcp"&&t[1]==="search"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"mcp-search",query:t.slice(2).filter(pe=>!pe.startsWith("-")).join(" ").trim()};if(e==="mcp")return{kind:"mcp",argv:t.slice(1)};if(e==="cron")return{kind:"cron",argv:t.slice(1)};if(t.includes("-v")||t.includes("--version"))return{kind:"version",text:eM()};if(t.includes("-h")||t.includes("--help"))return{kind:"help",text:ZO};let o=t.includes("--plan"),n=t.includes("--unsafe"),r=t.includes("--yolo")||n,s=o?"plan":r?"unsafe":"normal",i=t.includes("--dense"),a=t.includes("--ascii"),l=t.includes("--telegram"),c=t.includes("--split")||t.includes("--view")?!0:void 0,u=t.includes("--fullscreen")||t.includes("--cockpit")?!0:void 0,m=t.includes("--no-budget")?!1:t.includes("--budget")?!0:void 0,d=dt(t,"tier"),h=dt(t,"lang"),g=dt(t,"max-tokens"),b=dt(t,"max-iterations"),y=dt(t,"max-output-tokens"),w=!(t.includes("--no-subagents")||t.includes("--no-subagent")),E=t.includes("--no-self-check")?"0":t.includes("--self-check")?"1":void 0,C=t.includes("--no-autocompact")?"off":dt(t,"autocompact-at"),M=t.includes("--quiet")?!0:void 0,B=t.includes("--cycle")?!0:void 0,q=dt(t,"cycles"),Y=dt(t,"cycle-for"),z=dt(t,"backend"),U=dt(t,"local-provider"),Z=dt(t,"local-model"),te=dt(t,"local-auth"),ee=dt(t,"local-base-url"),L=dt(t,"model"),j=dt(t,"provider");if((t.includes("--provider")||t.some(W=>W.startsWith("--provider=")))&&(L===void 0||L.trim()===""))return{kind:"usage-error",message:"aluy: --provider exige --model (ex.: --provider <provider> --model <slug>)",exitCode:2};if((L===void 0||L.trim()==="")&&d!==void 0&&d.trim().toLowerCase()==="custom")return{kind:"usage-error",message:"aluy: --tier custom exige --model <slug> (ex.: --model deepseek-v4-pro). A via Custom precisa do slug do modelo; sem ele use um tier can\xF4nico (aluy-flux, aluy-granito, \u2026).",exitCode:2};let le=dt(t,"effort"),he=t.includes("--effort")||t.some(W=>W.startsWith("--effort=")),se;if(le!==void 0){if(le.trim()==="")return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};if(le.length>32)return{kind:"usage-error",message:"aluy: --effort aceita no m\xE1ximo 32 caracteres",exitCode:2};se=le}else if(he)return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};let me=t.includes("-p")||t.includes("--print")||t.includes("--exec")||t.some(W=>W.startsWith("-p=")||W.startsWith("--print=")||W.startsWith("--exec=")),O=me?dt(t,"print",{allowDashValue:!0})??dt(t,"exec",{allowDashValue:!0})??KG(t,"p")??void 0:void 0,ue=me?dt(t,"output-format"):void 0;if(ue!==void 0&&!["text","json","stream-json"].includes(ue.trim()))return{kind:"usage-error",message:`aluy: --output-format inv\xE1lido "${ue}" (use text | json | stream-json)`,exitCode:2};let V=t.includes("--new"),ie=t.includes("--continue"),be=t.indexOf("--resume"),ct=t.find(W=>W.startsWith("--resume=")),Ce=be>=0||ct!==void 0,Xe;if(ct!==void 0)Xe=ct.slice(9);else if(be>=0){let W=t[be+1];W!==void 0&&!W.startsWith("-")&&(Xe=W)}let kt=d!==void 0?t.indexOf("--tier")+1:-1,vt=h!==void 0&&!t.some(W=>W.startsWith("--lang="))?t.indexOf("--lang")+1:-1,it=Xe!==void 0&&ct===void 0?be+1:-1,Rt=g!==void 0&&!t.some(W=>W.startsWith("--max-tokens="))?t.indexOf("--max-tokens")+1:-1,K=b!==void 0&&!t.some(W=>W.startsWith("--max-iterations="))?t.indexOf("--max-iterations")+1:-1,Se=q!==void 0&&!t.some(W=>W.startsWith("--cycles="))?t.indexOf("--cycles")+1:-1,Pe=Y!==void 0&&!t.some(W=>W.startsWith("--cycle-for="))?t.indexOf("--cycle-for")+1:-1,H=y!==void 0&&!t.some(W=>W.startsWith("--max-output-tokens="))?t.indexOf("--max-output-tokens")+1:-1,jt=C!==void 0&&!t.includes("--no-autocompact")&&!t.some(W=>W.startsWith("--autocompact-at="))?t.indexOf("--autocompact-at")+1:-1,_o=z!==void 0&&!t.some(W=>W.startsWith("--backend="))?t.indexOf("--backend")+1:-1,k=(W,pe)=>pe!==void 0&&!t.some(ho=>ho.startsWith(`--${W}=`))?t.indexOf(`--${W}`)+1:-1,po=k("local-provider",U),Ot=k("local-model",Z),xt=k("local-auth",te),as=k("local-base-url",ee),ls=L!==void 0&&!t.some(W=>W.startsWith("--model="))?t.indexOf("--model")+1:-1,wr=j!==void 0&&!t.some(W=>W.startsWith("--provider="))?t.indexOf("--provider")+1:-1,Er=se!==void 0&&!t.some(W=>W.startsWith("--effort="))?t.indexOf("--effort")+1:-1,Ht=ue!==void 0&&!t.some(W=>W.startsWith("--output-format="))?t.indexOf("--output-format")+1:-1,qt=O!==void 0&&!t.some(W=>W.startsWith("-p=")||W.startsWith("--print=")||W.startsWith("--exec="))?Math.max(t.indexOf("-p"),t.indexOf("--print"),t.indexOf("--exec"))+1:-1,Zo=t.find((W,pe)=>!W.startsWith("-")&&pe!==kt&&pe!==vt&&pe!==_o&&pe!==po&&pe!==Ot&&pe!==xt&&pe!==as&&pe!==ls&&pe!==wr&&pe!==Er&&pe!==Ht&&pe!==qt&&pe!==it&&pe!==Rt&&pe!==K&&pe!==H&&pe!==jt&&pe!==Se&&pe!==Pe),jo=(O??Zo??"").trim();if(jo!==""&&!/\s/.test(jo)&&VG.has(jo.toLowerCase()))return{kind:"usage-error",message:`aluy: "${jo}" \xE9 um comando de SESS\xC3O, n\xE3o um objetivo. Use /${jo} DENTRO do aluy (rode \`aluy\` sem argumentos), ou veja \`aluy --help\`. Se voc\xEA quis MESMO um objetivo com essa palavra, d\xEA mais contexto (ex.: \`aluy "${jo} o arquivo X"\`).`,exitCode:2};let us=ie?{kind:"continue"}:Ce?{kind:"resume",...Xe!==void 0?{id:Xe}:{}}:void 0,xn=new Set([kt,vt,_o,po,Ot,xt,as,ls,wr,Er,Ht,qt,it,Rt,K,H,jt,Se,Pe].filter(W=>W>=0));for(let W of YG){let pe=t.indexOf(W);pe>=0&&!t[pe].includes("=")&&xn.add(pe+1)}let oi=QG(t,xn);return{kind:"launch",mode:s,unsafe:s==="unsafe",unsafeAliasUsed:n,...oi.length>0?{unknownFlags:oi}:{},dense:i,fresh:V,subAgents:w,safeGlyphs:a,telegram:l,print:me,...c!==void 0?{split:c}:{},...u!==void 0?{fullscreen:u}:{},...m!==void 0?{budget:m}:{},...Zo!==void 0?{goal:Zo}:{},...d!==void 0?{tier:d}:{},...z!==void 0?{backend:z}:{},...U!==void 0?{localProvider:U}:{},...Z!==void 0?{localModel:Z}:{},...te!==void 0?{localAuth:te}:{},...ee!==void 0?{localBaseUrl:ee}:{},...L!==void 0?{model:L}:{},...j!==void 0?{provider:j}:{},...se!==void 0?{effort:se}:{},...O!==void 0?{printArg:O}:{},...ue!==void 0?{outputFormat:ue}:{},...h!==void 0?{lang:h}:{},...us!==void 0?{resume:us}:{},...g!==void 0?{maxTokens:g}:{},...b!==void 0?{maxIterations:b}:{},...y!==void 0?{maxOutputTokens:y}:{},...E!==void 0?{selfCheck:E}:{},...C!==void 0?{autoCompactAt:C}:{},...M!==void 0?{quiet:M}:{},...B!==void 0?{cycle:B}:{},...q!==void 0?{cycles:q}:{},...Y!==void 0?{cycleFor:Y}:{}}}var ZO,tM,YG,VG,Fx=p(()=>{"use strict";P();Iu();ZO=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
157
+ `);return i.provisionAll(n,r)}var KO,Ya,AG,Rn,WO,_x,GO,IG,BG,UG,Lx=p(()=>{"use strict";P();KO=".aluy",Ya=448,AG=384;Rn="aluy-mem0-server.py";WO="application/vnd.ollama.image.model";_x=class{platform;agentInstaller;constructor(e={}){this.platform=e.platform??process.platform,this.agentInstaller=e.agentInstaller}hasPinnedArtifact(){return this.platform==="linux"}async isProvisioned(e){switch(e){case"ollama":{let o=ke(cn(),Ss,"bin","ollama");return et(o)}case"mem0":{let o=ke(cn(),Ur,"bin","python3");return et(o)&&Fu(o)}case"headroom":{let o=ke(cn(),ws,"bin","headroom");return et(o)}default:return!1}}async provision(e,o){let n=wG().uid;if(Wk(n))return{target:e,hashOk:!1,installed:!1,message:"RECUSA ROOT (uid=0): provisionamento de sidecars \xE9 user-space. Execute como usu\xE1rio normal."};if(this.agentInstaller)return this.agentInstaller(e,o);if(!this.hasPinnedArtifact())return{target:e,hashOk:!1,installed:!1,message:`SO '${this.platform}' sem artefato pinado p/ provisionamento direto. Rode \`aluy bootstrap\` (o aluy instala via o pr\xF3prio agente, \u26A0 --yolo) ou instale manualmente.`};switch(e){case"ollama":return RG();case"mem0":return PG();case"headroom":return FG();default:return{target:e,hashOk:!1,installed:!1,message:`Alvo desconhecido: ${String(e)}`}}}async provisionAll(e,o){if(!xu(e))return{profile:e,targets:[],anySuccess:!1,allFailed:!1};let n=[],r=[...o];for(let a=0;a<r.length;a++){let l=r[a],c={index:a+1,total:r.length,plan:r};try{n.push(await this.provision(l,c))}catch(u){let m=u instanceof Error?u.message:String(u);n.push({target:l,hashOk:!1,installed:!1,message:`falha inesperada ao provisionar \u2014 seguindo p/ os pr\xF3ximos (${m}).`})}}let s=n.some(a=>a.installed),i=n.length>0&&n.every(a=>!a.installed);return{profile:e,targets:n,anySuccess:s,allFailed:i}}},GO="na faixa 3.10\u20133.12 (N\xC3O use 3.13+/3.14 \u2014 as depend\xEAncias nativas n\xE3o t\xEAm wheels e o pip falha ao compilar; no Windows prefira `py -3.12` ou `py -3.11`). Se N\xC3O houver um Python 3.10\u20133.12 instalado, INSTALE primeiro (no Windows: `winget install -e --id Python.Python.3.12 --accept-source-agreements --accept-package-agreements`; no Linux/macOS use o gerenciador do sistema). Se j\xE1 existir um venv nesse caminho numa vers\xE3o incompat\xEDvel (ex.: 3.14), APAGUE e recrie com a vers\xE3o certa",IG="IMPORTANTE \u2014 o usu\xE1rio quer ACOMPANHAR: antes de cada passo, diga em 1 linha o que vai fazer; rode os comandos de instala\xE7\xE3o de forma VIS\xCDVEL (N\xC3O silencie pip/apt/curl com -q; mostre a sa\xEDda/progresso). Sem modo silencioso. ";BG=24,UG=5e3});var tr,Iu=p(()=>{"use strict";tr="1.0.0-rc.87"});var oM={};ht(oM,{HELP_TEXT:()=>ZO,parseArgs:()=>Px,suggestFlag:()=>JG,versionText:()=>eM});function dt(t,e,o={}){let n=`--${e}=`;for(let r=0;r<t.length;r++){let s=t[r];if(s===`--${e}`){let i=t[r+1];return i===void 0||(o.allowDashValue?i.startsWith("--"):i.startsWith("-"))?void 0:i}if(s!==void 0&&s.startsWith(n))return s.slice(n.length)}}function KG(t,e){let o=`-${e}=`;for(let n=0;n<t.length;n++){let r=t[n];if(r===`-${e}`){let s=t[n+1];return s!==void 0&&!s.startsWith("-")?s:void 0}if(r!==void 0&&r.startsWith(o))return r.slice(o.length)}}function eM(){return`aluy ${tr} (@hiperplano/aluy-cli-core ${Xl})`}function XG(t,e){let o=t.length,n=e.length,r=Array.from({length:n+1},(s,i)=>i);for(let s=1;s<=o;s++){let i=[s];for(let a=1;a<=n;a++){let l=t[s-1]===e[a-1]?0:1;i[a]=Math.min(r[a]+1,i[a-1]+1,r[a-1]+l)}r=i}return r[n]}function JG(t){let e,o=3;for(let n of tM){let r=XG(t,n);r<o&&(o=r,e=n)}return e}function QG(t,e){let o=[];for(let n=0;n<t.length;n++){let r=t[n];if(r==="--")break;if(!r.startsWith("--")||r.length===2||e.has(n))continue;let s=r.slice(2).split("=",1)[0];s===""||tM.has(s)||o.push(`--${s}`)}return o}function Px(t){let e=t[0];if(e==="login"&&!t.includes("-h")&&!t.includes("--help")){let W=t.slice(1),pe=dt(W,"token"),ho=dt(W,"org"),Wt=W.includes("--device"),Ro=dt(W,"provider"),jn=W.includes("--oauth");return{kind:"login",forceDeviceFlow:Wt,...pe!==void 0?{token:pe}:{},...ho!==void 0?{org:ho}:{},...Ro!==void 0?{provider:Ro}:{},...jn?{oauth:!0}:{}}}if(e==="logout"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"logout"};if(e==="whoami"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"whoami"};if(e==="doctor"&&!t.includes("-h")&&!t.includes("--help")){let W=t.includes("--deep")||t.includes("--test"),pe=t.includes("--json");return{kind:"doctor",deep:W,json:pe}}if(e==="config"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"config",json:t.includes("--json")};if(e==="agents"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"agents"};if(e==="bootstrap"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"bootstrap",agent:!t.includes("--no-agent")};if(e==="uninstall"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"uninstall",agent:t.includes("--agent")};if(e==="onboard"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"onboard"};if(e==="skills"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"skills"};if(e==="workflows"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"workflows"};if((e==="models"||e==="providers")&&!t.includes("-h")&&!t.includes("--help")){let W=t.includes("--json"),pe=t.findIndex(Wt=>Wt==="--backend"||Wt.startsWith("--backend=")),ho="both";if(pe!==-1){let Ro=(t[pe].includes("=")?t[pe].slice(10):t[pe+1]??"").trim().toLowerCase();Ro==="local"?ho="local":Ro==="broker"&&(ho="broker")}return{kind:"models",scope:ho,json:W,which:e==="providers"?"providers":"models"}}if(e==="telegram"&&!t.includes("-h")&&!t.includes("--help")){let W=t[1];if(W===void 0||!["login","logout","allow","deny","status"].includes(W))return{kind:"usage-error",message:"uso: aluy telegram <login|logout|allow|deny|status>",exitCode:2};let ho=t.slice(2);if(W==="login"){let Wt=dt(ho,"token");return{kind:"telegram",sub:"login",...Wt!==void 0?{token:Wt}:{}}}if(W==="allow"||W==="deny"){let Wt=ho.find(jn=>!jn.startsWith("-")),Ro=Wt!==void 0&&/^-?\d+$/.test(Wt)?Number(Wt):void 0;return Ro===void 0?{kind:"usage-error",message:`uso: aluy telegram ${W} <chat-id> (um inteiro)`,exitCode:2}:{kind:"telegram",sub:W,chatId:Ro}}return{kind:"telegram",sub:W}}if(e==="mcp"&&t[1]==="search"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"mcp-search",query:t.slice(2).filter(pe=>!pe.startsWith("-")).join(" ").trim()};if(e==="mcp")return{kind:"mcp",argv:t.slice(1)};if(e==="cron")return{kind:"cron",argv:t.slice(1)};if(t.includes("-v")||t.includes("--version"))return{kind:"version",text:eM()};if(t.includes("-h")||t.includes("--help"))return{kind:"help",text:ZO};let o=t.includes("--plan"),n=t.includes("--unsafe"),r=t.includes("--yolo")||n,s=o?"plan":r?"unsafe":"normal",i=t.includes("--dense"),a=t.includes("--ascii"),l=t.includes("--telegram"),c=t.includes("--split")||t.includes("--view")?!0:void 0,u=t.includes("--fullscreen")||t.includes("--cockpit")?!0:void 0,m=t.includes("--no-budget")?!1:t.includes("--budget")?!0:void 0,d=dt(t,"tier"),h=dt(t,"lang"),g=dt(t,"max-tokens"),b=dt(t,"max-iterations"),y=dt(t,"max-output-tokens"),w=!(t.includes("--no-subagents")||t.includes("--no-subagent")),E=t.includes("--no-self-check")?"0":t.includes("--self-check")?"1":void 0,C=t.includes("--no-autocompact")?"off":dt(t,"autocompact-at"),M=t.includes("--quiet")?!0:void 0,B=t.includes("--cycle")?!0:void 0,q=dt(t,"cycles"),Y=dt(t,"cycle-for"),z=dt(t,"backend"),U=dt(t,"local-provider"),Z=dt(t,"local-model"),te=dt(t,"local-auth"),ee=dt(t,"local-base-url"),L=dt(t,"model"),j=dt(t,"provider");if((t.includes("--provider")||t.some(W=>W.startsWith("--provider=")))&&(L===void 0||L.trim()===""))return{kind:"usage-error",message:"aluy: --provider exige --model (ex.: --provider <provider> --model <slug>)",exitCode:2};if((L===void 0||L.trim()==="")&&d!==void 0&&d.trim().toLowerCase()==="custom")return{kind:"usage-error",message:"aluy: --tier custom exige --model <slug> (ex.: --model deepseek-v4-pro). A via Custom precisa do slug do modelo; sem ele use um tier can\xF4nico (aluy-flux, aluy-granito, \u2026).",exitCode:2};let le=dt(t,"effort"),he=t.includes("--effort")||t.some(W=>W.startsWith("--effort=")),se;if(le!==void 0){if(le.trim()==="")return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};if(le.length>32)return{kind:"usage-error",message:"aluy: --effort aceita no m\xE1ximo 32 caracteres",exitCode:2};se=le}else if(he)return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};let me=t.includes("-p")||t.includes("--print")||t.includes("--exec")||t.some(W=>W.startsWith("-p=")||W.startsWith("--print=")||W.startsWith("--exec=")),O=me?dt(t,"print",{allowDashValue:!0})??dt(t,"exec",{allowDashValue:!0})??KG(t,"p")??void 0:void 0,ue=me?dt(t,"output-format"):void 0;if(ue!==void 0&&!["text","json","stream-json"].includes(ue.trim()))return{kind:"usage-error",message:`aluy: --output-format inv\xE1lido "${ue}" (use text | json | stream-json)`,exitCode:2};let V=t.includes("--new"),ie=t.includes("--continue"),be=t.indexOf("--resume"),ct=t.find(W=>W.startsWith("--resume=")),Ce=be>=0||ct!==void 0,Xe;if(ct!==void 0)Xe=ct.slice(9);else if(be>=0){let W=t[be+1];W!==void 0&&!W.startsWith("-")&&(Xe=W)}let kt=d!==void 0?t.indexOf("--tier")+1:-1,vt=h!==void 0&&!t.some(W=>W.startsWith("--lang="))?t.indexOf("--lang")+1:-1,it=Xe!==void 0&&ct===void 0?be+1:-1,Rt=g!==void 0&&!t.some(W=>W.startsWith("--max-tokens="))?t.indexOf("--max-tokens")+1:-1,K=b!==void 0&&!t.some(W=>W.startsWith("--max-iterations="))?t.indexOf("--max-iterations")+1:-1,Se=q!==void 0&&!t.some(W=>W.startsWith("--cycles="))?t.indexOf("--cycles")+1:-1,Pe=Y!==void 0&&!t.some(W=>W.startsWith("--cycle-for="))?t.indexOf("--cycle-for")+1:-1,H=y!==void 0&&!t.some(W=>W.startsWith("--max-output-tokens="))?t.indexOf("--max-output-tokens")+1:-1,jt=C!==void 0&&!t.includes("--no-autocompact")&&!t.some(W=>W.startsWith("--autocompact-at="))?t.indexOf("--autocompact-at")+1:-1,_o=z!==void 0&&!t.some(W=>W.startsWith("--backend="))?t.indexOf("--backend")+1:-1,k=(W,pe)=>pe!==void 0&&!t.some(ho=>ho.startsWith(`--${W}=`))?t.indexOf(`--${W}`)+1:-1,po=k("local-provider",U),Ot=k("local-model",Z),xt=k("local-auth",te),as=k("local-base-url",ee),ls=L!==void 0&&!t.some(W=>W.startsWith("--model="))?t.indexOf("--model")+1:-1,wr=j!==void 0&&!t.some(W=>W.startsWith("--provider="))?t.indexOf("--provider")+1:-1,Er=se!==void 0&&!t.some(W=>W.startsWith("--effort="))?t.indexOf("--effort")+1:-1,Ht=ue!==void 0&&!t.some(W=>W.startsWith("--output-format="))?t.indexOf("--output-format")+1:-1,qt=O!==void 0&&!t.some(W=>W.startsWith("-p=")||W.startsWith("--print=")||W.startsWith("--exec="))?Math.max(t.indexOf("-p"),t.indexOf("--print"),t.indexOf("--exec"))+1:-1,Zo=t.find((W,pe)=>!W.startsWith("-")&&pe!==kt&&pe!==vt&&pe!==_o&&pe!==po&&pe!==Ot&&pe!==xt&&pe!==as&&pe!==ls&&pe!==wr&&pe!==Er&&pe!==Ht&&pe!==qt&&pe!==it&&pe!==Rt&&pe!==K&&pe!==H&&pe!==jt&&pe!==Se&&pe!==Pe),jo=(O??Zo??"").trim();if(jo!==""&&!/\s/.test(jo)&&VG.has(jo.toLowerCase()))return{kind:"usage-error",message:`aluy: "${jo}" \xE9 um comando de SESS\xC3O, n\xE3o um objetivo. Use /${jo} DENTRO do aluy (rode \`aluy\` sem argumentos), ou veja \`aluy --help\`. Se voc\xEA quis MESMO um objetivo com essa palavra, d\xEA mais contexto (ex.: \`aluy "${jo} o arquivo X"\`).`,exitCode:2};let us=ie?{kind:"continue"}:Ce?{kind:"resume",...Xe!==void 0?{id:Xe}:{}}:void 0,xn=new Set([kt,vt,_o,po,Ot,xt,as,ls,wr,Er,Ht,qt,it,Rt,K,H,jt,Se,Pe].filter(W=>W>=0));for(let W of YG){let pe=t.indexOf(W);pe>=0&&!t[pe].includes("=")&&xn.add(pe+1)}let oi=QG(t,xn);return{kind:"launch",mode:s,unsafe:s==="unsafe",unsafeAliasUsed:n,...oi.length>0?{unknownFlags:oi}:{},dense:i,fresh:V,subAgents:w,safeGlyphs:a,telegram:l,print:me,...c!==void 0?{split:c}:{},...u!==void 0?{fullscreen:u}:{},...m!==void 0?{budget:m}:{},...Zo!==void 0?{goal:Zo}:{},...d!==void 0?{tier:d}:{},...z!==void 0?{backend:z}:{},...U!==void 0?{localProvider:U}:{},...Z!==void 0?{localModel:Z}:{},...te!==void 0?{localAuth:te}:{},...ee!==void 0?{localBaseUrl:ee}:{},...L!==void 0?{model:L}:{},...j!==void 0?{provider:j}:{},...se!==void 0?{effort:se}:{},...O!==void 0?{printArg:O}:{},...ue!==void 0?{outputFormat:ue}:{},...h!==void 0?{lang:h}:{},...us!==void 0?{resume:us}:{},...g!==void 0?{maxTokens:g}:{},...b!==void 0?{maxIterations:b}:{},...y!==void 0?{maxOutputTokens:y}:{},...E!==void 0?{selfCheck:E}:{},...C!==void 0?{autoCompactAt:C}:{},...M!==void 0?{quiet:M}:{},...B!==void 0?{cycle:B}:{},...q!==void 0?{cycles:q}:{},...Y!==void 0?{cycleFor:Y}:{}}}var ZO,tM,YG,VG,Fx=p(()=>{"use strict";P();Iu();ZO=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
158
158
 
159
159
  Uso:
160
160
  aluy ["objetivo"] [--plan | --yolo] [--dense] [--tier <tier>] [--lang <pt-BR|en>]
@@ -1,4 +1,4 @@
1
- var HI=Object.create;var Ip=Object.defineProperty;var qI=Object.getOwnPropertyDescriptor;var WI=Object.getOwnPropertyNames;var GI=Object.getPrototypeOf,zI=Object.prototype.hasOwnProperty;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 KI=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},Np=(t,e)=>{for(var o in e)Ip(t,o,{get:e[o],enumerable:!0})},YI=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of WI(e))!zI.call(t,r)&&r!==o&&Ip(t,r,{get:()=>e[r],enumerable:!(n=qI(e,r))||n.enumerable});return t};var VI=(t,e,o)=>(o=t!=null?HI(GI(t)):{},YI(e||!t||!t.__esModule?Ip(o,"default",{value:t,enumerable:!0}):o,t));var Ua,HE=S(()=>{"use strict";Ua="1.0.0-rc.86"});function Yn(t,e){return t.decide(e)}var ms=S(()=>{"use strict"});var gn,Vn,Xn=S(()=>{"use strict";gn="remember",Vn="recall"});var $p,XI,gi,Bp=S(()=>{"use strict";$p=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}}},XI=200,gi=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??XI,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 $p(e,o,n,r??null,i);if(r){let l=this.nodes.get(r);l&&l.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,l=r.closed?0:1;return a!==l?a-l: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 Gu(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 GE(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"&&JI.has(i.status)&&(n=i.status),e){let l=i.substeps??i.subtasks??i.subpassos??i.children;if(Array.isArray(l)&&l.length>0){let c=[];for(let u of l){let f=GE(u,!1);if(typeof f=="string")return f;c.push(f)}r=c}}}if(o===void 0||o.trim()==="")return ZI;let s=o.trim().slice(0,QI);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function eN(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=GE(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 l=`${i} #${a}`;if(!n.has(l))return n.add(l),l}};for(let i=0;i<o.length;i++){let a=o[i],l=r(a.title),c=a.substeps?.map(u=>({...u,title:r(u.title)}));o[i]=c!==void 0?{...a,title:l,substeps:c}:{...a,title:l}}let s=Gu(o).length;return s>qE?{error:`update_plan: no m\xE1ximo ${qE} passos (recebidos ${s}).`}:{steps:o}}function tN(t){let e=Gu(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${zE[r.step.status]} ${r.step.title}`).join(`
1
+ var HI=Object.create;var Ip=Object.defineProperty;var qI=Object.getOwnPropertyDescriptor;var WI=Object.getOwnPropertyNames;var GI=Object.getPrototypeOf,zI=Object.prototype.hasOwnProperty;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 KI=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},Np=(t,e)=>{for(var o in e)Ip(t,o,{get:e[o],enumerable:!0})},YI=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of WI(e))!zI.call(t,r)&&r!==o&&Ip(t,r,{get:()=>e[r],enumerable:!(n=qI(e,r))||n.enumerable});return t};var VI=(t,e,o)=>(o=t!=null?HI(GI(t)):{},YI(e||!t||!t.__esModule?Ip(o,"default",{value:t,enumerable:!0}):o,t));var Ua,HE=S(()=>{"use strict";Ua="1.0.0-rc.87"});function Yn(t,e){return t.decide(e)}var ms=S(()=>{"use strict"});var gn,Vn,Xn=S(()=>{"use strict";gn="remember",Vn="recall"});var $p,XI,gi,Bp=S(()=>{"use strict";$p=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}}},XI=200,gi=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??XI,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 $p(e,o,n,r??null,i);if(r){let l=this.nodes.get(r);l&&l.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,l=r.closed?0:1;return a!==l?a-l: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 Gu(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 GE(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"&&JI.has(i.status)&&(n=i.status),e){let l=i.substeps??i.subtasks??i.subpassos??i.children;if(Array.isArray(l)&&l.length>0){let c=[];for(let u of l){let f=GE(u,!1);if(typeof f=="string")return f;c.push(f)}r=c}}}if(o===void 0||o.trim()==="")return ZI;let s=o.trim().slice(0,QI);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function eN(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=GE(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 l=`${i} #${a}`;if(!n.has(l))return n.add(l),l}};for(let i=0;i<o.length;i++){let a=o[i],l=r(a.title),c=a.substeps?.map(u=>({...u,title:r(u.title)}));o[i]=c!==void 0?{...a,title:l,substeps:c}:{...a,title:l}}let s=Gu(o).length;return s>qE?{error:`update_plan: no m\xE1ximo ${qE} passos (recebidos ${s}).`}:{steps:o}}function tN(t){let e=Gu(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${zE[r.step.status]} ${r.step.title}`).join(`
2
2
  `);return`plano (${o}/${e.length}):
3
3
  ${n}`}function nN(t,e){return e<0?"m\xE9dio":t===e?"curto":t>e?"longo":"m\xE9dio"}function rN(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,l)=>{let c=i.status==="in_progress"?"curto":l,u=o.get(i.title),f=u??gi.boxId(i.title,0);return u?(i.status!=="completed"&&e.isClosed(u)&&e.reopenBox(u),e.setHorizon(u,c),e.setParent(u,a)):e.openBox(f,c,i.title,a),i.status==="completed"&&!e.isClosed(f)&&e.closeBox(f),o.set(i.title,f),f};t.forEach((i,a)=>{let l=nN(a,n),c=r(i,null,l);for(let u of i.substeps??[])r(u,c,l)});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 sN(t,e){if(!e)return tN(t);let o=new Map;for(let c of e.listBoxes())o.set(c.label,c);let n=new Map;for(let c of e.listBoxes())n.set(c.id,c);let r=new Map,s=(c,u=new Set)=>{let f=r.get(c);if(f!==void 0)return f;let d=n.get(c);if(!d||!d.parentId||u.has(c))return r.set(c,0),0;let p=s(d.parentId,new Set(u).add(c))+1;return r.set(c,p),p},i=Gu(t),l=[`plano (${i.filter(c=>c.step.status==="completed").length}/${i.length}):`];for(let{step:c,depth:u}of i){let f=o.get(c.title),d=f?oN[f.horizon]:"",p=f?s(f.id):u,h=" ".repeat(p),y=zE[c.status];l.push(`${h}${d} ${y} ${c.title}`)}return l.join(`
4
4
  `)}var ja,JI,qE,QI,ZI,zE,oN,WE,iN,KE,zu=S(()=>{"use strict";Bp();ja="update_plan";JI=new Set(["pending","in_progress","completed"]),qE=30,QI=120,ZI="update_plan: cada passo precisa de um t\xEDtulo (texto) n\xE3o-vazio.";zE={pending:"\u2610",in_progress:"\u25B6",completed:"\u2611"};oN={longo:"[\u{1F4D0}]",m\u00E9dio:"[\u{1F4CB}]",curto:"[\u{1F4CC}]"};WE=Object.freeze({type:"string",enum:["pending","in_progress","completed"],description:"pending (a fazer) \xB7 in_progress (em curso) \xB7 completed (feito)."}),iN=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:WE,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:WE},required:["title"],additionalProperties:!1}}},required:["title"],additionalProperties:!1}}},required:["steps"],additionalProperties:!1}),KE={name:ja,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:iN,async run(t,e){let o=eN(t);return"error"in o?{ok:!1,observation:o.error}:(e.graph&&rN(o.steps,e.graph),e.plan&&e.plan.set(Gu(o.steps).map(r=>({title:r.step.title,status:r.step.status}))),{ok:!0,observation:sN(o.steps,e.graph)})}}});function YE(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)?lN(s):void 0;if(typeof i=="string")return{error:i};let a,l=t.kind??t.type;if(typeof l=="string"&&aN.has(l))a=l;else{if(typeof l=="string"&&l.trim()!=="")return{error:`perguntar: "kind" inv\xE1lido "${l}". 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 c=t.allowOther!==!1;return{spec:{kind:a,question:o,...r!==void 0?{header:r}:{},...a!=="text"&&i!==void 0?{options:i}:{},...a!=="text"?{allowOther:c}:{}}}}function lN(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 cN(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(`
@@ -20,7 +20,7 @@ ${e.text}`,display:o};case"unavailable":return{ok:!1,observation:`N\xE3o foi pos
20
20
 
21
21
  `;return{ok:!0,observation:d+G+O+E.join(`
22
22
 
23
- `)+H}}}]}var Ar,ph,rS,rd=S(()=>{"use strict";lh();qa();fh();Ar="room_post",ph="room_read",rS=["ask","inform","result","ack"]});function sd(t,e,o){for(let n of t.rules)if(n.tool===e&&(n.match===void 0||aS(n.match,o)))return n}function aS(t,e){let o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*/g,".*");return new RegExp(`^${o}$`).test(e)}var hh,gh=S(()=>{"use strict";hh={rules:[],defaults:{}}});function yh(t,e){let o,n;for(let r of t){let s=r(e);if(s){if(s.decision==="deny")return s;s.decision==="ask"&&!o&&(o=s),s.decision==="allow"&&!n&&(n=s)}}return o??n}var bh=S(()=>{"use strict"});var vi,vh=S(()=>{"use strict";vi=class t{granted=new Set;static keyFor(e){let o=typeof e.input.command=="string"?e.input.command:typeof e.input.path=="string"?e.input.path:"";return`${e.name}\0${o}`}has(e){return this.granted.has(t.keyFor(e))}grant(e){this.granted.add(t.keyFor(e))}list(){return[...this.granted]}revoke(e){return this.granted.delete(e)}get size(){return this.granted.size}}});function xh(t,e){return e==="ask"?!0:id.includes(t)}var id,kh,Eh=S(()=>{"use strict";id=["read_file","grep"],kh=[{category:"always-ask:destructive",label:"destrutivo (rm -rf, git push --force, dd)",why:"apaga/sobrescreve dados de forma irreversivel \u2014 pergunta sempre, mostrando o efeito exato. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:network",label:"rede (curl | sh, wget, ssh, scp)",why:"sai da maquina / baixa-e-executa codigo remoto \u2014 o pior caso de injecao. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:escalation",label:"escalada (sudo, su, doas, setuid)",why:"eleva privilegio alem do usuario \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:package-exec",label:"exec de pacote (npm i, npx, pip install)",why:"instala/executa codigo de terceiros \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:config-startup",label:"config/startup (.bashrc, .git/hooks, package.json)",why:"muda o que roda no proximo start do shell/projeto \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:outside-workspace",label:"escrita FORA do workspace",why:"escreve fora do diretorio do projeto (home/system) \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:sensitive-read",label:"leitura de segredos (~/.ssh, ~/.aws, .env, *.key)",why:"le credenciais/chaves privadas \u2014 pergunta sempre (ou nega os mais criticos). So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:journal-read-deny",label:"leitura do journal ~/.aluy/ (undo)",why:"o journal guarda o conteudo-ANTES de cada edicao (possivel segredo): NEGADO por qualquer canal, ACIMA ate do --yolo. Nem o bypass total libera.",lock:"deny"},{category:"always-ask:aluy-config-write-deny",label:"escrita na config ~/.aluy/ (hooks.json, commands/)",why:"editar a config de HOOK e ato do USUARIO, nao do agente: senao um README malicioso plantaria um hook que roda sempre. NEGADO por qualquer canal, ACIMA ate do --yolo.",lock:"deny"}]});function Sh(t,e){return{kind:"command",tool:t,exact:`$ ${e}`}}function ad(t,e,o){return{kind:"diff",tool:t,path:e,exact:o}}function Wa(t,e,o){return{kind:"network",tool:t,exact:`$ ${e}`,target:o}}function Cr(t,e){return{kind:"path",tool:t,path:e,exact:e}}function wh(t){let e=t.match(/\bhttps?:\/\/[^\s"';|&]+/);if(e)return e[0];let o=t.match(/\b[\w.-]+@[\w.-]+:[^\s"';|&]*/);if(o)return o[0];let n=t.match(/\b[\w.-]+@[\w.-]+/);if(n)return n[0];let r=t.match(/\b(?:ssh|scp|sftp|telnet|nc|ncat)\s+(?:-\w+\s+)*([\w.-]+)/);if(r?.[1])return r[1]}var Ah=S(()=>{"use strict"});function MN(t,e){if(t===void 0)return e;if(e===void 0)return t;let o=new Set;for(let n of e)t.has(n)&&o.add(n);return o}function Xe(t,e,o,n){return{decision:t,reason:e,category:o,effect:n}}function Ch(t){return t.map(e=>e.reason).join("; ")}function LN(t){return t[0].category}function PN(t){return t==="deny"?"policy:deny":"policy:allow"}function Dh(t){return t.name===Ar?ct(t,"code"):ct(t,"command")||ct(t,"path")||ct(t,"pattern")||""}function ct(t,e){let o=t.input[e];return typeof o=="string"?o:""}var lS,Xt,ki=S(()=>{"use strict";ms();Hp();Xp();fs();Xn();rd();zu();yi();gh();bh();vh();Eh();Ah();lS=new Set(["read_file","grep","glob","change_dir",Vn,ja,yn]);Xt=class t{policy;hooks;grants;diffPreview;modeValue;safeDefaults=new Map;denySpawnAgent;toolScope;roomExemptTools;maxMemoryWrites;memoryWrites=0;constructor(e={}){this.policy=e.policy??hh,this.hooks=e.hooks??[],this.grants=e.sessionGrants??new vi,this.modeValue=e.mode??(e.unsafe?"unsafe":"normal"),e.diffPreview&&(this.diffPreview=e.diffPreview),this.denySpawnAgent=e.denySpawnAgent??!1,e.toolScope!==void 0&&(this.toolScope=e.toolScope),e.roomExemptTools!==void 0&&(this.roomExemptTools=e.roomExemptTools),this.maxMemoryWrites=e.maxMemoryWritesPerSession??oS}forSubAgent(e,o){let n=MN(this.toolScope,e);return new t({policy:this.policy,hooks:this.hooks,mode:this.modeValue,sessionGrants:new vi,denySpawnAgent:!0,...n!==void 0?{toolScope:n}:{},...o!==void 0?{roomExemptTools:o}:{},...this.diffPreview?{diffPreview:this.diffPreview}:{}})}setMode(e){this.modeValue=e}get mode(){return this.modeValue}setUnsafe(e){this.modeValue=e?"unsafe":"normal"}get isUnsafe(){return this.modeValue==="unsafe"}get isPlan(){return this.modeValue==="plan"}get sessionGrants(){return this.grants}decide(e){let o=this.describeEffect(e);if(this.denySpawnAgent&&e.name==="spawn_agent")return Xe("deny","profundidade de sub-agente \u22641 (E-A1): um sub-agente N\xC3O pode criar netos \u2014 spawn_agent negado na catraca","policy:deny",o);if(this.toolScope!==void 0&&!(this.roomExemptTools?.has(e.name)??!1)&&!this.toolScope.has(e.name))return Xe("deny",`tool "${e.name}" fora do toolset declarado do agente (tools \u2286 pai, GS-MD1) \u2014 negada na catraca`,"policy:deny",o);let n=Qu(e.name,e.input);if(e.name===gn&&this.memoryWrites>=this.maxMemoryWrites)return Xe("deny",`teto de grava\xE7\xF5es de mem\xF3ria por sess\xE3o atingido (${this.memoryWrites}/${this.maxMemoryWrites}) \u2014 lembran\xE7a aut\xF4noma barrada para evitar grava\xE7\xF5es em excesso. Use /memory para revisar/podar a mem\xF3ria.`,"memory-write",o);if(this.modeValue==="plan"&&!jp(e))return Xe("deny",`modo Plan (read-only): "${e.name}" tem efeito (ou \xE9 rede) \u2014 s\xF3 leitura local \xE9 permitida`,"mode:plan-deny",o);if(this.modeValue==="unsafe")return Xe("allow","PERMISS\xC3O COMPLETA de sess\xE3o (--yolo)","policy:allow",o);let r=n.find(l=>(l.category==="always-ask:journal-read-deny"||l.category==="always-ask:aluy-config-write-deny")&&l.deny);if(r)return Xe("deny",Ch(n),r.category,o);if(e.name===gn)return Xe("allow","lembran\xE7a aut\xF4noma de mem\xF3ria (allow silencioso; recall = dado, CLI-SEC-15)","memory-write",o);if(e.name===Ar){let l=Dh(e),c=sd(this.policy,e.name,l);return c&&c.decision!=="allow"?Xe(c.decision,`pol\xEDtica do usu\xE1rio (room_post: ${c.match??"qualquer sala"})`,"agent-comms",o):Xe("allow","comunica\xE7\xE3o entre agentes (membership = consentimento, \xA713.1; authz na mesh: writer\u2208writers)","agent-comms",o)}if(this.grants.has(e))return Xe("allow","liberado nesta sess\xE3o (sempre-permitir)","policy:allow",o);let s=yh(this.hooks,e);if(s?.decision==="deny")return Xe("deny",`hook: ${s.reason}`,"hook",o);if(n.length>0){let l=n.find(c=>c.deny);return l?Xe("deny",Ch(n),l.category,o):Xe("ask",Ch(n),LN(n),o)}if(s?.decision==="ask")return Xe("ask",`hook: ${s.reason}`,"hook",o);if(s?.decision==="allow")return Xe("allow",`hook: ${s.reason}`,"hook",o);let i=Dh(e),a=sd(this.policy,e.name,i);if(a){let l=a.match?`${a.match}`:"qualquer input";return Xe(a.decision,`pol\xEDtica do usu\xE1rio (${e.name}: ${l})`,PN(a.decision),o)}return this.defaultFor(e,o)}grantSession(e){return Qu(e.name,e.input).length>0?!1:(this.grants.grant(e),!0)}noteMemoryWrite(){this.memoryWrites+=1}get memoryWriteUsage(){return{used:this.memoryWrites,max:this.maxMemoryWrites}}setSafeToolDefault(e,o){return xh(e,o)?(this.safeDefaults.set(e,o),!0):!1}effectiveSafeDefault(e){let o=this.safeDefaults.get(e);if(o)return o;let n=this.policy.defaults?.[e];return n==="allow"||n==="ask"?n:lS.has(e)?"allow":"ask"}defaultFor(e,o){let n=this.safeDefaults.get(e.name);if(n){let s=this.floor(e.name,n);return Xe(s,`default ajustado no painel (${e.name})`,"default",o)}let r=this.policy.defaults?.[e.name];if(r){let s=this.floor(e.name,r);return Xe(s,`default configurado (${e.name})`,"default",o)}return lS.has(e.name)?Xe("allow",`leitura pura (${e.name}) \u2014 default allow`,"default",o):e.name==="run_command"?Xe("ask","run_command = ask por padr\xE3o (CLI-SEC-3)","default",o):e.name==="edit_file"?Xe("ask","edit_file = ask com diff (CLI-SEC-9)","default",o):e.name==="write_file"?Xe("ask","write_file = ask com diff (CLI-SEC-9)","default",o):Xe("ask",`sem regra expl\xEDcita p/ "${e.name}" \u2014 ask (deny-por-padr\xE3o)`,"default",o)}floor(e,o){return(e==="run_command"||e==="edit_file"||e==="write_file")&&o==="allow"?"ask":o}describeEffect(e){if(e.name==="run_command"){let o=ct(e,"command"),n=wh(o);return n?Wa("run_command",o,n):Sh("run_command",o)}if(e.name==="edit_file"){let o=ct(e,"path"),n=ct(e,"old_string"),r=ct(e,"new_string");return this.diffPreview?ad("edit_file",o,this.diffPreview(o,r,n)):Cr("edit_file",o)}if(e.name==="write_file"){let o=ct(e,"path"),n=ct(e,"content");return this.diffPreview?ad("write_file",o,this.diffPreview(o,n)):Cr("write_file",o)}if(e.name==="read_file"||e.name==="grep")return Cr(e.name,ct(e,"path"));if(e.name==="glob")return Cr("glob",ct(e,"path")||".");if(e.name===gn){let o=ct(e,"fact"),n=ct(e,"scope")||"global";return{kind:"path",tool:gn,exact:`[mem\xF3ria/${n}] ${o}`}}if(e.name==="web_fetch"){let o=ct(e,"url");return Wa("web_fetch",`web_fetch ${o}`,o)}if(e.name==="web_search"){let o=ct(e,"query");return Wa("web_search",`web_search ${o}`,"duckduckgo.com")}if(e.name===Ar){let o=ct(e,"code"),n=ct(e,"to"),r=ct(e,"kind");return{kind:"path",tool:Ar,exact:`[sala ${o}] ${r||"msg"} \u2192 ${n||"?"}`}}return{kind:"command",tool:e.name,exact:`${e.name} ${Dh(e)}`.trim()}}}});var cS,FN,uS=S(()=>{"use strict";cS="\u26A0 MODO YOLO \u2014 PERMISS\xC3O COMPLETA NA M\xC1QUINA. A catraca de aprova\xE7\xE3o est\xE1 DESLIGADA, a cerca de workspace est\xE1 DERRUBADA (disco inteiro acess\xEDvel) e o anti-SSRF de rede interna est\xE1 suspenso. O agente roda QUALQUER comando, l\xEA/escreve QUALQUER arquivo e abre rede para QUALQUER destino SEM PERGUNTAR. Uma \xFAnica inje\xE7\xE3o de prompt (README/issue/p\xE1gina/sa\xEDda de comando) pode comprometer esta m\xE1quina. N\xE3o persiste entre sess\xF5es.",FN=`${cS} Continuar? [s/N]`});var dS=S(()=>{"use strict";ms();ki();Hp();Xp();gh();bh();vh();Eh();Ah();uS()});var Th,_h=S(()=>{"use strict";Th=["assistant:session","llm:call"]});var Xo,ld,Ga,xi,Ei,cd,Si,Jn,za=S(()=>{"use strict";Xo=class extends Error{constructor(e){super(e),this.name=new.target.name}},ld=class extends Xo{constructor(){super("aprova\xE7\xE3o negada no navegador \u2014 login cancelado.")}},Ga=class extends Xo{constructor(){super("o c\xF3digo expirou antes da aprova\xE7\xE3o. Rode `aluy login` de novo.")}},xi=class extends Xo{code;constructor(e,o){super(`falha no device-flow (${e})${o?`: ${o}`:""}`),this.code=e}},Ei=class extends Xo{constructor(){super("a sess\xE3o expirou ou foi revogada. Rode `aluy login` de novo.")}},cd=class extends Xo{constructor(){super("PAT inv\xE1lido: esperado o formato `pat_<id>_<segredo>`.")}},Si=class extends Xo{transient=!0;constructor(){super("n\xE3o consegui renovar a sess\xE3o agora (identity indispon\xEDvel) \u2014 tente de novo; sua credencial foi preservada.")}},Jn=class extends Xo{status;constructor(e,o){super(`identity respondeu ${e} em ${o}.`),this.status=e}}});function NN(t){return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function $N(t){if(!t||!t.startsWith(mS))return null;let e=t.slice(mS.length),o=e.indexOf("_");if(o<=0)return null;let n=e.slice(0,o),r=e.slice(o+1);return!IN.test(n)||r.length===0?null:{lookupId:NN(n),secretLength:r.length}}function Rh(t){return $N(t)!==null}var mS,IN,Oh=S(()=>{"use strict";mS="pat_",IN=/^[0-9a-f]{32}$/});function BN(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/");return Buffer.from(e,"base64").toString("utf8")}catch{return null}}function fS(t){if(!t)return;let e=t.split(".");if(e.length!==3)return;let o=BN(e[1]??"");if(o!==null)try{let n=JSON.parse(o);return typeof n.sub=="string"&&n.sub.length>0?n.sub:void 0}catch{return}}var Mh=S(()=>{"use strict"});function hS(t){return JSON.stringify(t)}function gS(t){try{let e=JSON.parse(t);return e.v!==1||e.kind!=="device"&&e.kind!=="pat"?null:e}catch{return null}}function dd(t,e=Date.now){let o=t.kind==="pat"?"pat_\u2026":"jwt",n=t.kind==="device"?fS(t.access_token):void 0,r=t.kind==="device"&&t.expires_at!==void 0&&t.expires_at<=e();return{kind:t.kind,organization_id:t.organization_id,scopes:t.scopes,...t.expires_at!==void 0?{expires_at:t.expires_at}:{},expired:r,token_hint:o,...n!==void 0?{user:n}:{}}}var ud,pS,Lh=S(()=>{"use strict";Mh();ud="aluy-cli",pS="headless-credential"});var UN,md,Ph=S(()=>{"use strict";za();UN="urn:ietf:params:oauth:grant-type:device_code",md=class{baseUrl;clientId;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.clientId=e.clientId,this.doFetch=e.fetch??globalThis.fetch}url(e){return`${this.baseUrl}${e}`}async readJson(e,o){try{return await e.json()}catch{throw new Jn(200,`${o} (corpo 2xx n\xE3o \xE9 JSON v\xE1lido)`)}}async deviceAuthorize(e){let o=await this.doFetch(this.url("/identity/device/authorize"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:this.clientId,organization_id:e.organizationId,scopes:e.scopes??[]})});if(!o.ok)throw new Jn(o.status,"device/authorize");return await this.readJson(o,"device/authorize")}async pollToken(e,o){let n=await this.doFetch(this.url("/identity/token"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:UN,device_code:e,client_id:this.clientId}),...o?{signal:o}:{}});if(n.ok)return{status:"success",tokens:await this.readJson(n,"token")};let r;try{r=await n.json()}catch{r=void 0}let s=r?.error??"";switch(s){case"authorization_pending":return{status:"pending"};case"slow_down":return{status:"slow_down"};case"access_denied":return{status:"denied"};case"expired_token":return{status:"expired"};default:return{status:"error",code:s||`http_${n.status}`,...r?.error_description?{description:r.error_description}:{}}}}async refresh(e){let o=await this.doFetch(this.url("/identity/headless/refresh"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!o.ok)throw new Jn(o.status,"headless/refresh");return await this.readJson(o,"headless/refresh")}async revoke(e){let o=await this.doFetch(this.url("/identity/headless/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!(o.status===204||o.status===404||o.status===401)&&!o.ok)throw new Jn(o.status,"headless/revoke")}}});function WN(t){let e=typeof t=="number"?t:Number(t);return!Number.isFinite(e)||e<qN?HN:e}async function yS(t,e,o={}){let n=o.now??Date.now,r=o.sleep??GN,s=await t.deviceAuthorize({organizationId:e.organizationId,...e.scopes?{scopes:e.scopes}:{}});await e.onPrompt({userCode:s.user_code,verificationUri:s.verification_uri,verificationUriComplete:s.verification_uri_complete,expiresInSeconds:s.expires_in});let i=Number.isFinite(s.expires_in)?s.expires_in:900,a=n()+i*1e3,l=WN(s.interval);for(;;){if(e.signal?.aborted)throw new xi("cancelled","login cancelado pelo usu\xE1rio.");if(n()>=a)throw new Ga;if(await r(l*1e3,e.signal),e.signal?.aborted)throw new xi("cancelled","login cancelado pelo usu\xE1rio.");let c=await t.pollToken(s.device_code,...e.signal?[e.signal]:[]);switch(c.status){case"success":return c.tokens;case"pending":continue;case"slow_down":l+=jN;continue;case"denied":throw new ld;case"expired":throw new Ga;case"error":throw new xi(c.code,c.description)}}}var jN,HN,qN,GN,Fh=S(()=>{"use strict";za();jN=5,HN=5,qN=1;GN=(t,e)=>new Promise(o=>{if(e?.aborted)return o();let n=setTimeout(()=>{e?.removeEventListener("abort",r),o()},t),r=()=>{clearTimeout(n),o()};e?.addEventListener("abort",r,{once:!0})})});function zN(t){return t instanceof Jn&&(t.status===400||t.status===401||t.status===403)}function bS(t,e){return{kind:"device",access_token:t.access_token,refresh_token:t.refresh_token,organization_id:t.organization_id,scopes:t.scope.split(" ").filter(Boolean),expires_at:e()+t.expires_in*1e3,v:1}}var wi,vS=S(()=>{"use strict";Lh();Fh();za();Ph();Oh();_h();wi=class{client;store;now;sleep;envToken;inFlightRefresh;constructor(e,o={}){this.client=new md(e),this.store=e.store,this.now=o.now??Date.now,this.sleep=o.sleep,this.envToken=o.envToken}async loginWithDeviceFlow(e){let o=await yS(this.client,{organizationId:e.organizationId,scopes:e.scopes??Th,onPrompt:e.onPrompt,...e.signal?{signal:e.signal}:{}},{now:this.now,...this.sleep?{sleep:this.sleep}:{}}),n=bS(o,this.now);return await this.store.set(n),dd(n)}async loginWithPat(e,o){if(!Rh(e))throw new cd;let n={kind:"pat",pat:e,organization_id:o,scopes:[...Th],v:1};return await this.store.set(n),dd(n)}async whoami(){let e=await this.store.get();return e?dd(e,this.now):null}async getAccessToken(e=3e4){let o=await this.store.get();if(!o){let r=this.envToken?.()?.trim();if(r&&Rh(r))return r;throw new Ei}if(o.kind==="pat")return o.pat;if(o.access_token!==void 0&&o.expires_at!==void 0&&this.now()+e<o.expires_at)return o.access_token;if(!o.refresh_token)throw new Ei;return await this.refreshSingleFlight(o.refresh_token)}refreshSingleFlight(e){let o=this.inFlightRefresh;if(o)return o;let n=(async()=>{let s;try{s=await this.client.refresh(e)}catch(a){throw zN(a)?(await this.store.clear(),new Ei):new Si}let i=bS(s,this.now);return await this.store.set(i),i.access_token})();this.inFlightRefresh=n;let r=()=>{this.inFlightRefresh===n&&(this.inFlightRefresh=void 0)};return n.then(r,r),n}async logout(){let e=await this.store.get();if(!e)return{revoked:!1};let o=!1;if(e.kind==="device"&&e.refresh_token)try{await this.client.revoke(e.refresh_token),o=!0}catch{o=!1}return await this.store.clear(),{revoked:o}}}});async function kS(t){let e=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken,client_id:t.config.clientId}),o=await KN(t.config.tokenUrl,e,t.fetch,t.now??Date.now);return o.refreshToken===void 0?{...o,refreshToken:t.refreshToken}:o}async function KN(t,e,o,n){let r=await o(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded",accept:"application/json"},body:e.toString()});if(!r.ok){let i="";try{i=await r.text()}catch{i=""}throw new Ka(`token endpoint respondeu ${r.status}`,r.status,VN(i))}let s=await r.json();return YN(s,n)}function YN(t,e){if(typeof t!="object"||t===null)throw new Ka("resposta do token endpoint n\xE3o \xE9 objeto",0);let o=t,n=typeof o.access_token=="string"?o.access_token:void 0;if(n===void 0||n==="")throw new Ka("resposta do token endpoint sem access_token",0);let r={accessToken:n};return typeof o.refresh_token=="string"&&o.refresh_token!==""&&(r.refreshToken=o.refresh_token),typeof o.expires_in=="number"&&Number.isFinite(o.expires_in)&&(r.expiresAt=e()+o.expires_in*1e3),typeof o.scope=="string"&&(r.scope=o.scope),r}function xS(t,e,o=6e4){return t.expiresAt===void 0?!1:t.expiresAt-e()<=o}function VN(t){return t.replace(/[A-Za-z0-9_-]{20,}/g,"***").slice(0,200)}var Ka,ES=S(()=>{"use strict";Ka=class extends Error{status;constructor(e,o,n){super(n!==void 0&&n!==""?`${e}: ${n}`:e),this.name="OAuthError",this.status=o}}});var SS=S(()=>{"use strict";_h();za();Oh();Mh();Lh();Ph();Fh();vS();ES()});var wS=S(()=>{"use strict"});function XN(t){return t===429?!0:t>=500}function Eo(t,e){let o=AS(e)?e:{},n=typeof o.code=="string"?o.code:QN(t),r={status:t,code:n};typeof o.title=="string"&&(r.title=o.title),typeof o.detail=="string"&&(r.detail=o.detail),typeof o.type=="string"&&(r.type=o.type),typeof o.instance=="string"&&(r.instance=o.instance);let s=JN(o.errors);return s!==void 0&&(r.errors=s),typeof o.retryable=="boolean"&&(r.retryable=o.retryable),typeof o.retry_after=="number"&&(r.retry_after=o.retry_after),r}function JN(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(!AS(o))continue;let n={};typeof o.field=="string"&&(n.field=o.field),typeof o.code=="string"&&(n.code=o.code),typeof o.detail=="string"&&(n.detail=o.detail),(n.field!==void 0||n.code!==void 0||n.detail!==void 0)&&e.push(n)}return e.length>0?e:void 0}function QN(t){switch(t){case 401:return"UNAUTHENTICATED";case 402:return"INSUFFICIENT_CREDIT";case 403:return"PERMISSION_DENIED";case 409:return"IDEMPOTENCY_KEY_REUSED";case 422:return"VALIDATION_FAILED";case 429:return"RATE_LIMITED";case 502:return"PROVIDER_ERROR";default:return`HTTP_${t}`}}function AS(t){return typeof t=="object"&&t!==null}var Le,Pe,Ge,So=S(()=>{"use strict";Le=class extends Error{status;code;retryable;retryAfter;problem;constructor(e){super(e.detail??e.title??`broker respondeu ${e.status} (${e.code})`),this.name="BrokerError",this.status=e.status,this.code=e.code,this.retryable=e.retryable??XN(e.status),this.retryAfter=e.retry_after,this.problem=e}get isAuth(){return this.status===401||this.code==="UNAUTHENTICATED"}get isQuota(){return this.status===429||this.status===402}get isToolsUnsupported(){return this.status===422&&this.code==="TOOLS_UNSUPPORTED"}};Pe=class extends Error{constructor(e,o){super(e,o!==void 0?{cause:o}:void 0),this.name="BrokerTransportError"}},Ge=class extends Error{constructor(){super("chamada de modelo cancelada."),this.name="ModelCallAbortedError"}}});var CS=S(()=>{"use strict"});function fd(t){if(t==null)return;let e=t.trim().toLowerCase();if(e==="local")return"local";if(e==="broker")return"broker"}function Ya(t){return fd(t.flag)??fd(t.env)??fd(t.config)??DS}var DS,TS=S(()=>{"use strict";DS="local"});function Ih(){return{toolCalls:new Map,emittedToolCalls:!1}}var Nh=S(()=>{"use strict"});function Va(t){let e=_S.get(t);return e===void 0&&(e={},_S.set(t,e)),e}function t1(t){let e=Va(t),o={request_id:e.requestId??"",tier:"local",provider:"anthropic"};return e.model!==void 0&&(o.model=e.model),e.inputTokens!==void 0&&(o.tokens_in=e.inputTokens),e.outputTokens!==void 0&&(o.tokens_out=e.outputTokens),o}function o1(t){if(t.emittedToolCalls||t.toolCalls.size===0)return[];t.emittedToolCalls=!0;let e=[];for(let o of t.toolCalls.values()){if(o.name==="")continue;let n=a1(o.argsText),r={id:o.id,name:o.name,input:n};e.push({type:"tool_call",call:r})}return e}function RS(t){let e=[];for(let o of t){if(o.role==="tool"){e.push({role:"user",content:[{type:"tool_result",tool_use_id:o.tool_call_id??"",content:o.content}]});continue}if(o.role==="assistant"&&o.tool_calls!==void 0&&o.tool_calls.length>0){let r=[];o.content!==""&&r.push({type:"text",text:o.content});for(let s of o.tool_calls)r.push({type:"tool_use",id:s.id,name:s.name,input:s.input??{}});e.push({role:"assistant",content:r});continue}let n=o.role==="system"?"user":o.role;e.push({role:n,content:o.content})}return e}function n1(t){return{name:t.function.name,description:t.function.description,input_schema:t.function.parameters}}function r1(t){return t==="none"?{type:"none"}:t==="required"?{type:"any"}:{type:"auto"}}function s1(t){return t==="tool_use"?"tool_calls":t==="end_turn"||t===void 0||t===null||t===""?"stop":t}function i1(t){let e=t!==void 0?Po(t,"type"):void 0,o=(t!==void 0?Po(t,"message"):void 0)??"provider error",n=e==="overloaded_error"?529:e==="rate_limit_error"?429:502;return new Le({status:n,code:"PROVIDER_ERROR",detail:o})}function a1(t){if(t.trim()==="")return{};let e=OS(t);return Jo(e)?e:{}}function OS(t){try{return JSON.parse(t)}catch{return}}function Jo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Po(t,e){if(!Jo(t))return;let o=t[e];return typeof o=="string"?o:void 0}function pd(t,e){if(!Jo(t))return;let o=t[e];return typeof o=="number"?o:void 0}var ZN,e1,Xa,_S,MS=S(()=>{"use strict";So();ZN="2023-06-01",e1="oauth-2025-04-20",Xa=class{kind="anthropic";defaultBaseUrl="";allowsBaseUrlOverride=!0;buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/v1/messages`,a={model:o.model,max_tokens:o.maxTokens,messages:RS(o.messages),stream:!0};o.system!==void 0&&o.system!==""&&(a.system=o.system),o.temperature!==void 0&&(a.temperature=o.temperature),o.tools!==void 0&&o.tools.length>0&&(a.tools=o.tools.map(n1),a.tool_choice=r1(o.toolChoice));let l={"content-type":"application/json",accept:"text/event-stream","anthropic-version":ZN};return r.kind==="oauth"?(l.authorization=`Bearer ${r.secret}`,l["anthropic-beta"]=e1):l["x-api-key"]=r.secret,{url:i,headers:l,body:JSON.stringify(a)}}mapSse(e,o,n){let r=OS(o);if(!Jo(r))return[];switch(e!==""?e:Po(r,"type")??""){case"message_start":{let i=[],a=Jo(r.message)?r.message:void 0,l=a!==void 0?Po(a,"id"):void 0;i.push({type:"start",request_id:l??""});let c=a!==void 0&&Jo(a.usage)?a.usage:void 0;if(c!==void 0){let f=pd(c,"input_tokens");f!==void 0&&(Va(n).inputTokens=f)}let u=a!==void 0?Po(a,"model"):void 0;return u!==void 0&&(Va(n).model=u),l!==void 0&&(Va(n).requestId=l),i}case"content_block_start":{let i=Jo(r.content_block)?r.content_block:void 0,a=pd(r,"index")??0;return i!==void 0&&Po(i,"type")==="tool_use"&&n.toolCalls.set(a,{id:Po(i,"id")??"",name:Po(i,"name")??"",argsText:""}),[]}case"content_block_delta":{let i=Jo(r.delta)?r.delta:void 0;if(i===void 0)return[];let a=Po(i,"type");if(a==="text_delta"){let l=Po(i,"text");return l!==void 0&&l!==""?[{type:"delta",content:l}]:[]}if(a==="input_json_delta"){let l=pd(r,"index")??0,c=Po(i,"partial_json")??"",u=n.toolCalls.get(l);return u!==void 0&&(u.argsText+=c),[]}return[]}case"message_delta":{let i=[],a=Jo(r.delta)?r.delta:void 0;i.push(...o1(n));let l=Jo(r.usage)?r.usage:void 0;if(l!==void 0){let u=pd(l,"output_tokens");u!==void 0&&(Va(n).outputTokens=u)}let c=a!==void 0?Po(a,"stop_reason"):void 0;return i.push({type:"usage",usage:t1(n)}),i.push({type:"done",finish_reason:s1(c)}),i}case"error":{let i=Jo(r.error)?r.error:void 0;throw i1(i)}default:return[]}}},_S=new WeakMap});function u1(t,e){for(let o of e){if(!bn(o))continue;let n=typeof o.index=="number"?o.index:0,r=t.toolCalls.get(n)??{id:"",name:"",argsText:""},s=Dr(o,"id");s!==void 0&&s!==""&&(r.id=s);let i=bn(o.function)?o.function:void 0;if(i!==void 0){let a=Dr(i,"name");a!==void 0&&a!==""&&(r.name=a);let l=Dr(i,"arguments");l!==void 0&&(r.argsText+=l)}t.toolCalls.set(n,r)}}function d1(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 m1(t){if(!Array.isArray(t.choices))return;let e=t.choices[0];return bn(e)?e:void 0}function f1(t){let e=hd(t,"code")??hd(t,"status")??502,o=Dr(t,"message")??"provider error";return new Le({status:e,code:"PROVIDER_ERROR",detail:o})}function p1(t){if(t.trim()==="")return{};let e=LS(t);return bn(e)?e:{}}function LS(t){try{return JSON.parse(t)}catch{return}}function bn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Dr(t,e){if(!bn(t))return;let o=t[e];return typeof o=="string"?o:void 0}function hd(t,e){if(!bn(t))return;let o=t[e];return typeof o=="number"?o:void 0}var l1,c1,Ja,PS=S(()=>{"use strict";So();l1="https://github.com/hiperplano/aluy-cli",c1="aluy-cli",Ja=class{kind;defaultBaseUrl;allowsBaseUrlOverride=!0;provider;constructor(e){this.provider=e.provider,this.kind=e.provider,this.defaultBaseUrl=e.defaultBaseUrl}buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/chat/completions`,a=[];o.system!==void 0&&o.system!==""&&a.push({role:"system",content:o.system});for(let u of o.messages)a.push(d1(u));let l={model:o.model,messages:a,max_tokens:o.maxTokens,stream:!0,stream_options:{include_usage:!0}};o.temperature!==void 0&&(l.temperature=o.temperature),o.reasoningEffort!==void 0&&o.reasoningEffort!==""&&(l.reasoning_effort=o.reasoningEffort),o.tools!==void 0&&o.tools.length>0&&(l.tools=o.tools,l.tool_choice=o.toolChoice??"auto");let c={"content-type":"application/json",accept:"text/event-stream"};return r.kind!=="none"&&r.secret!==""&&(c.authorization=`Bearer ${r.secret}`),this.provider==="openrouter"&&(c["http-referer"]=l1,c["x-title"]=c1),{url:i,headers:c,body:JSON.stringify(l)}}mapSse(e,o,n){let r=o.trim();if(r==="")return[];if(r==="[DONE]")return this.flush(n);let s=LS(r);if(!bn(s))return[];if(bn(s.error))throw f1(s.error);let i=[],a=m1(s);if(a!==void 0){let l=bn(a.delta)?a.delta:void 0,c=l!==void 0?Dr(l,"content"):void 0;c!==void 0&&c!==""&&i.push({type:"delta",content:c}),l!==void 0&&Array.isArray(l.tool_calls)&&u1(n,l.tool_calls);let u=Dr(a,"finish_reason");u!=null&&u!==""&&(i.push(...this.flush(n)),i.push({type:"done",finish_reason:u}))}return bn(s.usage)&&i.unshift({type:"usage",usage:this.toUsage(s.usage,s)}),i}flush(e){if(e.emittedToolCalls||e.toolCalls.size===0)return[];e.emittedToolCalls=!0;let o=[];for(let n of e.toolCalls.values()){if(n.name==="")continue;let r=p1(n.argsText),s={id:n.id,name:n.name,input:r};o.push({type:"tool_call",call:s})}return o}toUsage(e,o){let n={request_id:Dr(o,"id")??"",tier:"local",provider:this.provider},r=Dr(o,"model");r!==void 0&&(n.model=r);let s=hd(e,"prompt_tokens");s!==void 0&&(n.tokens_in=s);let i=hd(e,"completion_tokens");return i!==void 0&&(n.tokens_out=i),n}}});async function*Qa(t){let e=new TextDecoder("utf-8"),o="";for await(let r of t){o+=typeof r=="string"?r:e.decode(r,{stream:!0}),o=o.replace(/\r\n/g,`
23
+ `)+H}}}]}var Ar,ph,rS,rd=S(()=>{"use strict";lh();qa();fh();Ar="room_post",ph="room_read",rS=["ask","inform","result","ack"]});function sd(t,e,o){for(let n of t.rules)if(n.tool===e&&(n.match===void 0||aS(n.match,o)))return n}function aS(t,e){let o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*/g,".*");return new RegExp(`^${o}$`).test(e)}var hh,gh=S(()=>{"use strict";hh={rules:[],defaults:{}}});function yh(t,e){let o,n;for(let r of t){let s=r(e);if(s){if(s.decision==="deny")return s;s.decision==="ask"&&!o&&(o=s),s.decision==="allow"&&!n&&(n=s)}}return o??n}var bh=S(()=>{"use strict"});var vi,vh=S(()=>{"use strict";vi=class t{granted=new Set;static keyFor(e){let o=typeof e.input.command=="string"?e.input.command:typeof e.input.path=="string"?e.input.path:"";return`${e.name==="write_file"||e.name==="edit_file"?"file_write":e.name}\0${o}`}has(e){return this.granted.has(t.keyFor(e))}grant(e){this.granted.add(t.keyFor(e))}list(){return[...this.granted]}revoke(e){return this.granted.delete(e)}get size(){return this.granted.size}}});function xh(t,e){return e==="ask"?!0:id.includes(t)}var id,kh,Eh=S(()=>{"use strict";id=["read_file","grep"],kh=[{category:"always-ask:destructive",label:"destrutivo (rm -rf, git push --force, dd)",why:"apaga/sobrescreve dados de forma irreversivel \u2014 pergunta sempre, mostrando o efeito exato. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:network",label:"rede (curl | sh, wget, ssh, scp)",why:"sai da maquina / baixa-e-executa codigo remoto \u2014 o pior caso de injecao. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:escalation",label:"escalada (sudo, su, doas, setuid)",why:"eleva privilegio alem do usuario \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:package-exec",label:"exec de pacote (npm i, npx, pip install)",why:"instala/executa codigo de terceiros \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:config-startup",label:"config/startup (.bashrc, .git/hooks, package.json)",why:"muda o que roda no proximo start do shell/projeto \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:outside-workspace",label:"escrita FORA do workspace",why:"escreve fora do diretorio do projeto (home/system) \u2014 pergunta sempre. So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:sensitive-read",label:"leitura de segredos (~/.ssh, ~/.aws, .env, *.key)",why:"le credenciais/chaves privadas \u2014 pergunta sempre (ou nega os mais criticos). So via --yolo (com o aviso vermelho).",lock:"always-ask"},{category:"always-ask:journal-read-deny",label:"leitura do journal ~/.aluy/ (undo)",why:"o journal guarda o conteudo-ANTES de cada edicao (possivel segredo): NEGADO por qualquer canal, ACIMA ate do --yolo. Nem o bypass total libera.",lock:"deny"},{category:"always-ask:aluy-config-write-deny",label:"escrita na config ~/.aluy/ (hooks.json, commands/)",why:"editar a config de HOOK e ato do USUARIO, nao do agente: senao um README malicioso plantaria um hook que roda sempre. NEGADO por qualquer canal, ACIMA ate do --yolo.",lock:"deny"}]});function Sh(t,e){return{kind:"command",tool:t,exact:`$ ${e}`}}function ad(t,e,o){return{kind:"diff",tool:t,path:e,exact:o}}function Wa(t,e,o){return{kind:"network",tool:t,exact:`$ ${e}`,target:o}}function Cr(t,e){return{kind:"path",tool:t,path:e,exact:e}}function wh(t){let e=t.match(/\bhttps?:\/\/[^\s"';|&]+/);if(e)return e[0];let o=t.match(/\b[\w.-]+@[\w.-]+:[^\s"';|&]*/);if(o)return o[0];let n=t.match(/\b[\w.-]+@[\w.-]+/);if(n)return n[0];let r=t.match(/\b(?:ssh|scp|sftp|telnet|nc|ncat)\s+(?:-\w+\s+)*([\w.-]+)/);if(r?.[1])return r[1]}var Ah=S(()=>{"use strict"});function MN(t,e){if(t===void 0)return e;if(e===void 0)return t;let o=new Set;for(let n of e)t.has(n)&&o.add(n);return o}function Xe(t,e,o,n){return{decision:t,reason:e,category:o,effect:n}}function Ch(t){return t.map(e=>e.reason).join("; ")}function LN(t){return t[0].category}function PN(t){return t==="deny"?"policy:deny":"policy:allow"}function Dh(t){return t.name===Ar?ct(t,"code"):ct(t,"command")||ct(t,"path")||ct(t,"pattern")||""}function ct(t,e){let o=t.input[e];return typeof o=="string"?o:""}var lS,Xt,ki=S(()=>{"use strict";ms();Hp();Xp();fs();Xn();rd();zu();yi();gh();bh();vh();Eh();Ah();lS=new Set(["read_file","grep","glob","change_dir",Vn,ja,yn]);Xt=class t{policy;hooks;grants;diffPreview;modeValue;safeDefaults=new Map;denySpawnAgent;toolScope;roomExemptTools;maxMemoryWrites;memoryWrites=0;constructor(e={}){this.policy=e.policy??hh,this.hooks=e.hooks??[],this.grants=e.sessionGrants??new vi,this.modeValue=e.mode??(e.unsafe?"unsafe":"normal"),e.diffPreview&&(this.diffPreview=e.diffPreview),this.denySpawnAgent=e.denySpawnAgent??!1,e.toolScope!==void 0&&(this.toolScope=e.toolScope),e.roomExemptTools!==void 0&&(this.roomExemptTools=e.roomExemptTools),this.maxMemoryWrites=e.maxMemoryWritesPerSession??oS}forSubAgent(e,o){let n=MN(this.toolScope,e);return new t({policy:this.policy,hooks:this.hooks,mode:this.modeValue,sessionGrants:new vi,denySpawnAgent:!0,...n!==void 0?{toolScope:n}:{},...o!==void 0?{roomExemptTools:o}:{},...this.diffPreview?{diffPreview:this.diffPreview}:{}})}setMode(e){this.modeValue=e}get mode(){return this.modeValue}setUnsafe(e){this.modeValue=e?"unsafe":"normal"}get isUnsafe(){return this.modeValue==="unsafe"}get isPlan(){return this.modeValue==="plan"}get sessionGrants(){return this.grants}decide(e){let o=this.describeEffect(e);if(this.denySpawnAgent&&e.name==="spawn_agent")return Xe("deny","profundidade de sub-agente \u22641 (E-A1): um sub-agente N\xC3O pode criar netos \u2014 spawn_agent negado na catraca","policy:deny",o);if(this.toolScope!==void 0&&!(this.roomExemptTools?.has(e.name)??!1)&&!this.toolScope.has(e.name))return Xe("deny",`tool "${e.name}" fora do toolset declarado do agente (tools \u2286 pai, GS-MD1) \u2014 negada na catraca`,"policy:deny",o);let n=Qu(e.name,e.input);if(e.name===gn&&this.memoryWrites>=this.maxMemoryWrites)return Xe("deny",`teto de grava\xE7\xF5es de mem\xF3ria por sess\xE3o atingido (${this.memoryWrites}/${this.maxMemoryWrites}) \u2014 lembran\xE7a aut\xF4noma barrada para evitar grava\xE7\xF5es em excesso. Use /memory para revisar/podar a mem\xF3ria.`,"memory-write",o);if(this.modeValue==="plan"&&!jp(e))return Xe("deny",`modo Plan (read-only): "${e.name}" tem efeito (ou \xE9 rede) \u2014 s\xF3 leitura local \xE9 permitida`,"mode:plan-deny",o);if(this.modeValue==="unsafe")return Xe("allow","PERMISS\xC3O COMPLETA de sess\xE3o (--yolo)","policy:allow",o);let r=n.find(l=>(l.category==="always-ask:journal-read-deny"||l.category==="always-ask:aluy-config-write-deny")&&l.deny);if(r)return Xe("deny",Ch(n),r.category,o);if(e.name===gn)return Xe("allow","lembran\xE7a aut\xF4noma de mem\xF3ria (allow silencioso; recall = dado, CLI-SEC-15)","memory-write",o);if(e.name===Ar){let l=Dh(e),c=sd(this.policy,e.name,l);return c&&c.decision!=="allow"?Xe(c.decision,`pol\xEDtica do usu\xE1rio (room_post: ${c.match??"qualquer sala"})`,"agent-comms",o):Xe("allow","comunica\xE7\xE3o entre agentes (membership = consentimento, \xA713.1; authz na mesh: writer\u2208writers)","agent-comms",o)}if(this.grants.has(e))return Xe("allow","liberado nesta sess\xE3o (sempre-permitir)","policy:allow",o);let s=yh(this.hooks,e);if(s?.decision==="deny")return Xe("deny",`hook: ${s.reason}`,"hook",o);if(n.length>0){let l=n.find(c=>c.deny);return l?Xe("deny",Ch(n),l.category,o):Xe("ask",Ch(n),LN(n),o)}if(s?.decision==="ask")return Xe("ask",`hook: ${s.reason}`,"hook",o);if(s?.decision==="allow")return Xe("allow",`hook: ${s.reason}`,"hook",o);let i=Dh(e),a=sd(this.policy,e.name,i);if(a){let l=a.match?`${a.match}`:"qualquer input";return Xe(a.decision,`pol\xEDtica do usu\xE1rio (${e.name}: ${l})`,PN(a.decision),o)}return this.defaultFor(e,o)}grantSession(e){return Qu(e.name,e.input).length>0?!1:(this.grants.grant(e),!0)}noteMemoryWrite(){this.memoryWrites+=1}get memoryWriteUsage(){return{used:this.memoryWrites,max:this.maxMemoryWrites}}setSafeToolDefault(e,o){return xh(e,o)?(this.safeDefaults.set(e,o),!0):!1}effectiveSafeDefault(e){let o=this.safeDefaults.get(e);if(o)return o;let n=this.policy.defaults?.[e];return n==="allow"||n==="ask"?n:lS.has(e)?"allow":"ask"}defaultFor(e,o){let n=this.safeDefaults.get(e.name);if(n){let s=this.floor(e.name,n);return Xe(s,`default ajustado no painel (${e.name})`,"default",o)}let r=this.policy.defaults?.[e.name];if(r){let s=this.floor(e.name,r);return Xe(s,`default configurado (${e.name})`,"default",o)}return lS.has(e.name)?Xe("allow",`leitura pura (${e.name}) \u2014 default allow`,"default",o):e.name==="run_command"?Xe("ask","run_command = ask por padr\xE3o (CLI-SEC-3)","default",o):e.name==="edit_file"?Xe("ask","edit_file = ask com diff (CLI-SEC-9)","default",o):e.name==="write_file"?Xe("ask","write_file = ask com diff (CLI-SEC-9)","default",o):Xe("ask",`sem regra expl\xEDcita p/ "${e.name}" \u2014 ask (deny-por-padr\xE3o)`,"default",o)}floor(e,o){return(e==="run_command"||e==="edit_file"||e==="write_file")&&o==="allow"?"ask":o}describeEffect(e){if(e.name==="run_command"){let o=ct(e,"command"),n=wh(o);return n?Wa("run_command",o,n):Sh("run_command",o)}if(e.name==="edit_file"){let o=ct(e,"path"),n=ct(e,"old_string"),r=ct(e,"new_string");return this.diffPreview?ad("edit_file",o,this.diffPreview(o,r,n)):Cr("edit_file",o)}if(e.name==="write_file"){let o=ct(e,"path"),n=ct(e,"content");return this.diffPreview?ad("write_file",o,this.diffPreview(o,n)):Cr("write_file",o)}if(e.name==="read_file"||e.name==="grep")return Cr(e.name,ct(e,"path"));if(e.name==="glob")return Cr("glob",ct(e,"path")||".");if(e.name===gn){let o=ct(e,"fact"),n=ct(e,"scope")||"global";return{kind:"path",tool:gn,exact:`[mem\xF3ria/${n}] ${o}`}}if(e.name==="web_fetch"){let o=ct(e,"url");return Wa("web_fetch",`web_fetch ${o}`,o)}if(e.name==="web_search"){let o=ct(e,"query");return Wa("web_search",`web_search ${o}`,"duckduckgo.com")}if(e.name===Ar){let o=ct(e,"code"),n=ct(e,"to"),r=ct(e,"kind");return{kind:"path",tool:Ar,exact:`[sala ${o}] ${r||"msg"} \u2192 ${n||"?"}`}}return{kind:"command",tool:e.name,exact:`${e.name} ${Dh(e)}`.trim()}}}});var cS,FN,uS=S(()=>{"use strict";cS="\u26A0 MODO YOLO \u2014 PERMISS\xC3O COMPLETA NA M\xC1QUINA. A catraca de aprova\xE7\xE3o est\xE1 DESLIGADA, a cerca de workspace est\xE1 DERRUBADA (disco inteiro acess\xEDvel) e o anti-SSRF de rede interna est\xE1 suspenso. O agente roda QUALQUER comando, l\xEA/escreve QUALQUER arquivo e abre rede para QUALQUER destino SEM PERGUNTAR. Uma \xFAnica inje\xE7\xE3o de prompt (README/issue/p\xE1gina/sa\xEDda de comando) pode comprometer esta m\xE1quina. N\xE3o persiste entre sess\xF5es.",FN=`${cS} Continuar? [s/N]`});var dS=S(()=>{"use strict";ms();ki();Hp();Xp();gh();bh();vh();Eh();Ah();uS()});var Th,_h=S(()=>{"use strict";Th=["assistant:session","llm:call"]});var Xo,ld,Ga,xi,Ei,cd,Si,Jn,za=S(()=>{"use strict";Xo=class extends Error{constructor(e){super(e),this.name=new.target.name}},ld=class extends Xo{constructor(){super("aprova\xE7\xE3o negada no navegador \u2014 login cancelado.")}},Ga=class extends Xo{constructor(){super("o c\xF3digo expirou antes da aprova\xE7\xE3o. Rode `aluy login` de novo.")}},xi=class extends Xo{code;constructor(e,o){super(`falha no device-flow (${e})${o?`: ${o}`:""}`),this.code=e}},Ei=class extends Xo{constructor(){super("a sess\xE3o expirou ou foi revogada. Rode `aluy login` de novo.")}},cd=class extends Xo{constructor(){super("PAT inv\xE1lido: esperado o formato `pat_<id>_<segredo>`.")}},Si=class extends Xo{transient=!0;constructor(){super("n\xE3o consegui renovar a sess\xE3o agora (identity indispon\xEDvel) \u2014 tente de novo; sua credencial foi preservada.")}},Jn=class extends Xo{status;constructor(e,o){super(`identity respondeu ${e} em ${o}.`),this.status=e}}});function NN(t){return[t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function $N(t){if(!t||!t.startsWith(mS))return null;let e=t.slice(mS.length),o=e.indexOf("_");if(o<=0)return null;let n=e.slice(0,o),r=e.slice(o+1);return!IN.test(n)||r.length===0?null:{lookupId:NN(n),secretLength:r.length}}function Rh(t){return $N(t)!==null}var mS,IN,Oh=S(()=>{"use strict";mS="pat_",IN=/^[0-9a-f]{32}$/});function BN(t){try{let e=t.replace(/-/g,"+").replace(/_/g,"/");return Buffer.from(e,"base64").toString("utf8")}catch{return null}}function fS(t){if(!t)return;let e=t.split(".");if(e.length!==3)return;let o=BN(e[1]??"");if(o!==null)try{let n=JSON.parse(o);return typeof n.sub=="string"&&n.sub.length>0?n.sub:void 0}catch{return}}var Mh=S(()=>{"use strict"});function hS(t){return JSON.stringify(t)}function gS(t){try{let e=JSON.parse(t);return e.v!==1||e.kind!=="device"&&e.kind!=="pat"?null:e}catch{return null}}function dd(t,e=Date.now){let o=t.kind==="pat"?"pat_\u2026":"jwt",n=t.kind==="device"?fS(t.access_token):void 0,r=t.kind==="device"&&t.expires_at!==void 0&&t.expires_at<=e();return{kind:t.kind,organization_id:t.organization_id,scopes:t.scopes,...t.expires_at!==void 0?{expires_at:t.expires_at}:{},expired:r,token_hint:o,...n!==void 0?{user:n}:{}}}var ud,pS,Lh=S(()=>{"use strict";Mh();ud="aluy-cli",pS="headless-credential"});var UN,md,Ph=S(()=>{"use strict";za();UN="urn:ietf:params:oauth:grant-type:device_code",md=class{baseUrl;clientId;doFetch;constructor(e){this.baseUrl=e.baseUrl.replace(/\/+$/,""),this.clientId=e.clientId,this.doFetch=e.fetch??globalThis.fetch}url(e){return`${this.baseUrl}${e}`}async readJson(e,o){try{return await e.json()}catch{throw new Jn(200,`${o} (corpo 2xx n\xE3o \xE9 JSON v\xE1lido)`)}}async deviceAuthorize(e){let o=await this.doFetch(this.url("/identity/device/authorize"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_id:this.clientId,organization_id:e.organizationId,scopes:e.scopes??[]})});if(!o.ok)throw new Jn(o.status,"device/authorize");return await this.readJson(o,"device/authorize")}async pollToken(e,o){let n=await this.doFetch(this.url("/identity/token"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:UN,device_code:e,client_id:this.clientId}),...o?{signal:o}:{}});if(n.ok)return{status:"success",tokens:await this.readJson(n,"token")};let r;try{r=await n.json()}catch{r=void 0}let s=r?.error??"";switch(s){case"authorization_pending":return{status:"pending"};case"slow_down":return{status:"slow_down"};case"access_denied":return{status:"denied"};case"expired_token":return{status:"expired"};default:return{status:"error",code:s||`http_${n.status}`,...r?.error_description?{description:r.error_description}:{}}}}async refresh(e){let o=await this.doFetch(this.url("/identity/headless/refresh"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!o.ok)throw new Jn(o.status,"headless/refresh");return await this.readJson(o,"headless/refresh")}async revoke(e){let o=await this.doFetch(this.url("/identity/headless/revoke"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({refresh_token:e})});if(!(o.status===204||o.status===404||o.status===401)&&!o.ok)throw new Jn(o.status,"headless/revoke")}}});function WN(t){let e=typeof t=="number"?t:Number(t);return!Number.isFinite(e)||e<qN?HN:e}async function yS(t,e,o={}){let n=o.now??Date.now,r=o.sleep??GN,s=await t.deviceAuthorize({organizationId:e.organizationId,...e.scopes?{scopes:e.scopes}:{}});await e.onPrompt({userCode:s.user_code,verificationUri:s.verification_uri,verificationUriComplete:s.verification_uri_complete,expiresInSeconds:s.expires_in});let i=Number.isFinite(s.expires_in)?s.expires_in:900,a=n()+i*1e3,l=WN(s.interval);for(;;){if(e.signal?.aborted)throw new xi("cancelled","login cancelado pelo usu\xE1rio.");if(n()>=a)throw new Ga;if(await r(l*1e3,e.signal),e.signal?.aborted)throw new xi("cancelled","login cancelado pelo usu\xE1rio.");let c=await t.pollToken(s.device_code,...e.signal?[e.signal]:[]);switch(c.status){case"success":return c.tokens;case"pending":continue;case"slow_down":l+=jN;continue;case"denied":throw new ld;case"expired":throw new Ga;case"error":throw new xi(c.code,c.description)}}}var jN,HN,qN,GN,Fh=S(()=>{"use strict";za();jN=5,HN=5,qN=1;GN=(t,e)=>new Promise(o=>{if(e?.aborted)return o();let n=setTimeout(()=>{e?.removeEventListener("abort",r),o()},t),r=()=>{clearTimeout(n),o()};e?.addEventListener("abort",r,{once:!0})})});function zN(t){return t instanceof Jn&&(t.status===400||t.status===401||t.status===403)}function bS(t,e){return{kind:"device",access_token:t.access_token,refresh_token:t.refresh_token,organization_id:t.organization_id,scopes:t.scope.split(" ").filter(Boolean),expires_at:e()+t.expires_in*1e3,v:1}}var wi,vS=S(()=>{"use strict";Lh();Fh();za();Ph();Oh();_h();wi=class{client;store;now;sleep;envToken;inFlightRefresh;constructor(e,o={}){this.client=new md(e),this.store=e.store,this.now=o.now??Date.now,this.sleep=o.sleep,this.envToken=o.envToken}async loginWithDeviceFlow(e){let o=await yS(this.client,{organizationId:e.organizationId,scopes:e.scopes??Th,onPrompt:e.onPrompt,...e.signal?{signal:e.signal}:{}},{now:this.now,...this.sleep?{sleep:this.sleep}:{}}),n=bS(o,this.now);return await this.store.set(n),dd(n)}async loginWithPat(e,o){if(!Rh(e))throw new cd;let n={kind:"pat",pat:e,organization_id:o,scopes:[...Th],v:1};return await this.store.set(n),dd(n)}async whoami(){let e=await this.store.get();return e?dd(e,this.now):null}async getAccessToken(e=3e4){let o=await this.store.get();if(!o){let r=this.envToken?.()?.trim();if(r&&Rh(r))return r;throw new Ei}if(o.kind==="pat")return o.pat;if(o.access_token!==void 0&&o.expires_at!==void 0&&this.now()+e<o.expires_at)return o.access_token;if(!o.refresh_token)throw new Ei;return await this.refreshSingleFlight(o.refresh_token)}refreshSingleFlight(e){let o=this.inFlightRefresh;if(o)return o;let n=(async()=>{let s;try{s=await this.client.refresh(e)}catch(a){throw zN(a)?(await this.store.clear(),new Ei):new Si}let i=bS(s,this.now);return await this.store.set(i),i.access_token})();this.inFlightRefresh=n;let r=()=>{this.inFlightRefresh===n&&(this.inFlightRefresh=void 0)};return n.then(r,r),n}async logout(){let e=await this.store.get();if(!e)return{revoked:!1};let o=!1;if(e.kind==="device"&&e.refresh_token)try{await this.client.revoke(e.refresh_token),o=!0}catch{o=!1}return await this.store.clear(),{revoked:o}}}});async function kS(t){let e=new URLSearchParams({grant_type:"refresh_token",refresh_token:t.refreshToken,client_id:t.config.clientId}),o=await KN(t.config.tokenUrl,e,t.fetch,t.now??Date.now);return o.refreshToken===void 0?{...o,refreshToken:t.refreshToken}:o}async function KN(t,e,o,n){let r=await o(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded",accept:"application/json"},body:e.toString()});if(!r.ok){let i="";try{i=await r.text()}catch{i=""}throw new Ka(`token endpoint respondeu ${r.status}`,r.status,VN(i))}let s=await r.json();return YN(s,n)}function YN(t,e){if(typeof t!="object"||t===null)throw new Ka("resposta do token endpoint n\xE3o \xE9 objeto",0);let o=t,n=typeof o.access_token=="string"?o.access_token:void 0;if(n===void 0||n==="")throw new Ka("resposta do token endpoint sem access_token",0);let r={accessToken:n};return typeof o.refresh_token=="string"&&o.refresh_token!==""&&(r.refreshToken=o.refresh_token),typeof o.expires_in=="number"&&Number.isFinite(o.expires_in)&&(r.expiresAt=e()+o.expires_in*1e3),typeof o.scope=="string"&&(r.scope=o.scope),r}function xS(t,e,o=6e4){return t.expiresAt===void 0?!1:t.expiresAt-e()<=o}function VN(t){return t.replace(/[A-Za-z0-9_-]{20,}/g,"***").slice(0,200)}var Ka,ES=S(()=>{"use strict";Ka=class extends Error{status;constructor(e,o,n){super(n!==void 0&&n!==""?`${e}: ${n}`:e),this.name="OAuthError",this.status=o}}});var SS=S(()=>{"use strict";_h();za();Oh();Mh();Lh();Ph();Fh();vS();ES()});var wS=S(()=>{"use strict"});function XN(t){return t===429?!0:t>=500}function Eo(t,e){let o=AS(e)?e:{},n=typeof o.code=="string"?o.code:QN(t),r={status:t,code:n};typeof o.title=="string"&&(r.title=o.title),typeof o.detail=="string"&&(r.detail=o.detail),typeof o.type=="string"&&(r.type=o.type),typeof o.instance=="string"&&(r.instance=o.instance);let s=JN(o.errors);return s!==void 0&&(r.errors=s),typeof o.retryable=="boolean"&&(r.retryable=o.retryable),typeof o.retry_after=="number"&&(r.retry_after=o.retry_after),r}function JN(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(!AS(o))continue;let n={};typeof o.field=="string"&&(n.field=o.field),typeof o.code=="string"&&(n.code=o.code),typeof o.detail=="string"&&(n.detail=o.detail),(n.field!==void 0||n.code!==void 0||n.detail!==void 0)&&e.push(n)}return e.length>0?e:void 0}function QN(t){switch(t){case 401:return"UNAUTHENTICATED";case 402:return"INSUFFICIENT_CREDIT";case 403:return"PERMISSION_DENIED";case 409:return"IDEMPOTENCY_KEY_REUSED";case 422:return"VALIDATION_FAILED";case 429:return"RATE_LIMITED";case 502:return"PROVIDER_ERROR";default:return`HTTP_${t}`}}function AS(t){return typeof t=="object"&&t!==null}var Le,Pe,Ge,So=S(()=>{"use strict";Le=class extends Error{status;code;retryable;retryAfter;problem;constructor(e){super(e.detail??e.title??`broker respondeu ${e.status} (${e.code})`),this.name="BrokerError",this.status=e.status,this.code=e.code,this.retryable=e.retryable??XN(e.status),this.retryAfter=e.retry_after,this.problem=e}get isAuth(){return this.status===401||this.code==="UNAUTHENTICATED"}get isQuota(){return this.status===429||this.status===402}get isToolsUnsupported(){return this.status===422&&this.code==="TOOLS_UNSUPPORTED"}};Pe=class extends Error{constructor(e,o){super(e,o!==void 0?{cause:o}:void 0),this.name="BrokerTransportError"}},Ge=class extends Error{constructor(){super("chamada de modelo cancelada."),this.name="ModelCallAbortedError"}}});var CS=S(()=>{"use strict"});function fd(t){if(t==null)return;let e=t.trim().toLowerCase();if(e==="local")return"local";if(e==="broker")return"broker"}function Ya(t){return fd(t.flag)??fd(t.env)??fd(t.config)??DS}var DS,TS=S(()=>{"use strict";DS="local"});function Ih(){return{toolCalls:new Map,emittedToolCalls:!1}}var Nh=S(()=>{"use strict"});function Va(t){let e=_S.get(t);return e===void 0&&(e={},_S.set(t,e)),e}function t1(t){let e=Va(t),o={request_id:e.requestId??"",tier:"local",provider:"anthropic"};return e.model!==void 0&&(o.model=e.model),e.inputTokens!==void 0&&(o.tokens_in=e.inputTokens),e.outputTokens!==void 0&&(o.tokens_out=e.outputTokens),o}function o1(t){if(t.emittedToolCalls||t.toolCalls.size===0)return[];t.emittedToolCalls=!0;let e=[];for(let o of t.toolCalls.values()){if(o.name==="")continue;let n=a1(o.argsText),r={id:o.id,name:o.name,input:n};e.push({type:"tool_call",call:r})}return e}function RS(t){let e=[];for(let o of t){if(o.role==="tool"){e.push({role:"user",content:[{type:"tool_result",tool_use_id:o.tool_call_id??"",content:o.content}]});continue}if(o.role==="assistant"&&o.tool_calls!==void 0&&o.tool_calls.length>0){let r=[];o.content!==""&&r.push({type:"text",text:o.content});for(let s of o.tool_calls)r.push({type:"tool_use",id:s.id,name:s.name,input:s.input??{}});e.push({role:"assistant",content:r});continue}let n=o.role==="system"?"user":o.role;e.push({role:n,content:o.content})}return e}function n1(t){return{name:t.function.name,description:t.function.description,input_schema:t.function.parameters}}function r1(t){return t==="none"?{type:"none"}:t==="required"?{type:"any"}:{type:"auto"}}function s1(t){return t==="tool_use"?"tool_calls":t==="end_turn"||t===void 0||t===null||t===""?"stop":t}function i1(t){let e=t!==void 0?Po(t,"type"):void 0,o=(t!==void 0?Po(t,"message"):void 0)??"provider error",n=e==="overloaded_error"?529:e==="rate_limit_error"?429:502;return new Le({status:n,code:"PROVIDER_ERROR",detail:o})}function a1(t){if(t.trim()==="")return{};let e=OS(t);return Jo(e)?e:{}}function OS(t){try{return JSON.parse(t)}catch{return}}function Jo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Po(t,e){if(!Jo(t))return;let o=t[e];return typeof o=="string"?o:void 0}function pd(t,e){if(!Jo(t))return;let o=t[e];return typeof o=="number"?o:void 0}var ZN,e1,Xa,_S,MS=S(()=>{"use strict";So();ZN="2023-06-01",e1="oauth-2025-04-20",Xa=class{kind="anthropic";defaultBaseUrl="";allowsBaseUrlOverride=!0;buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/v1/messages`,a={model:o.model,max_tokens:o.maxTokens,messages:RS(o.messages),stream:!0};o.system!==void 0&&o.system!==""&&(a.system=o.system),o.temperature!==void 0&&(a.temperature=o.temperature),o.tools!==void 0&&o.tools.length>0&&(a.tools=o.tools.map(n1),a.tool_choice=r1(o.toolChoice));let l={"content-type":"application/json",accept:"text/event-stream","anthropic-version":ZN};return r.kind==="oauth"?(l.authorization=`Bearer ${r.secret}`,l["anthropic-beta"]=e1):l["x-api-key"]=r.secret,{url:i,headers:l,body:JSON.stringify(a)}}mapSse(e,o,n){let r=OS(o);if(!Jo(r))return[];switch(e!==""?e:Po(r,"type")??""){case"message_start":{let i=[],a=Jo(r.message)?r.message:void 0,l=a!==void 0?Po(a,"id"):void 0;i.push({type:"start",request_id:l??""});let c=a!==void 0&&Jo(a.usage)?a.usage:void 0;if(c!==void 0){let f=pd(c,"input_tokens");f!==void 0&&(Va(n).inputTokens=f)}let u=a!==void 0?Po(a,"model"):void 0;return u!==void 0&&(Va(n).model=u),l!==void 0&&(Va(n).requestId=l),i}case"content_block_start":{let i=Jo(r.content_block)?r.content_block:void 0,a=pd(r,"index")??0;return i!==void 0&&Po(i,"type")==="tool_use"&&n.toolCalls.set(a,{id:Po(i,"id")??"",name:Po(i,"name")??"",argsText:""}),[]}case"content_block_delta":{let i=Jo(r.delta)?r.delta:void 0;if(i===void 0)return[];let a=Po(i,"type");if(a==="text_delta"){let l=Po(i,"text");return l!==void 0&&l!==""?[{type:"delta",content:l}]:[]}if(a==="input_json_delta"){let l=pd(r,"index")??0,c=Po(i,"partial_json")??"",u=n.toolCalls.get(l);return u!==void 0&&(u.argsText+=c),[]}return[]}case"message_delta":{let i=[],a=Jo(r.delta)?r.delta:void 0;i.push(...o1(n));let l=Jo(r.usage)?r.usage:void 0;if(l!==void 0){let u=pd(l,"output_tokens");u!==void 0&&(Va(n).outputTokens=u)}let c=a!==void 0?Po(a,"stop_reason"):void 0;return i.push({type:"usage",usage:t1(n)}),i.push({type:"done",finish_reason:s1(c)}),i}case"error":{let i=Jo(r.error)?r.error:void 0;throw i1(i)}default:return[]}}},_S=new WeakMap});function u1(t,e){for(let o of e){if(!bn(o))continue;let n=typeof o.index=="number"?o.index:0,r=t.toolCalls.get(n)??{id:"",name:"",argsText:""},s=Dr(o,"id");s!==void 0&&s!==""&&(r.id=s);let i=bn(o.function)?o.function:void 0;if(i!==void 0){let a=Dr(i,"name");a!==void 0&&a!==""&&(r.name=a);let l=Dr(i,"arguments");l!==void 0&&(r.argsText+=l)}t.toolCalls.set(n,r)}}function d1(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 m1(t){if(!Array.isArray(t.choices))return;let e=t.choices[0];return bn(e)?e:void 0}function f1(t){let e=hd(t,"code")??hd(t,"status")??502,o=Dr(t,"message")??"provider error";return new Le({status:e,code:"PROVIDER_ERROR",detail:o})}function p1(t){if(t.trim()==="")return{};let e=LS(t);return bn(e)?e:{}}function LS(t){try{return JSON.parse(t)}catch{return}}function bn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Dr(t,e){if(!bn(t))return;let o=t[e];return typeof o=="string"?o:void 0}function hd(t,e){if(!bn(t))return;let o=t[e];return typeof o=="number"?o:void 0}var l1,c1,Ja,PS=S(()=>{"use strict";So();l1="https://github.com/hiperplano/aluy-cli",c1="aluy-cli",Ja=class{kind;defaultBaseUrl;allowsBaseUrlOverride=!0;provider;constructor(e){this.provider=e.provider,this.kind=e.provider,this.defaultBaseUrl=e.defaultBaseUrl}buildRequest(e){let{request:o,baseUrl:n,credential:r}=e,i=`${n.replace(/\/+$/,"")}/chat/completions`,a=[];o.system!==void 0&&o.system!==""&&a.push({role:"system",content:o.system});for(let u of o.messages)a.push(d1(u));let l={model:o.model,messages:a,max_tokens:o.maxTokens,stream:!0,stream_options:{include_usage:!0}};o.temperature!==void 0&&(l.temperature=o.temperature),o.reasoningEffort!==void 0&&o.reasoningEffort!==""&&(l.reasoning_effort=o.reasoningEffort),o.tools!==void 0&&o.tools.length>0&&(l.tools=o.tools,l.tool_choice=o.toolChoice??"auto");let c={"content-type":"application/json",accept:"text/event-stream"};return r.kind!=="none"&&r.secret!==""&&(c.authorization=`Bearer ${r.secret}`),this.provider==="openrouter"&&(c["http-referer"]=l1,c["x-title"]=c1),{url:i,headers:c,body:JSON.stringify(l)}}mapSse(e,o,n){let r=o.trim();if(r==="")return[];if(r==="[DONE]")return this.flush(n);let s=LS(r);if(!bn(s))return[];if(bn(s.error))throw f1(s.error);let i=[],a=m1(s);if(a!==void 0){let l=bn(a.delta)?a.delta:void 0,c=l!==void 0?Dr(l,"content"):void 0;c!==void 0&&c!==""&&i.push({type:"delta",content:c}),l!==void 0&&Array.isArray(l.tool_calls)&&u1(n,l.tool_calls);let u=Dr(a,"finish_reason");u!=null&&u!==""&&(i.push(...this.flush(n)),i.push({type:"done",finish_reason:u}))}return bn(s.usage)&&i.unshift({type:"usage",usage:this.toUsage(s.usage,s)}),i}flush(e){if(e.emittedToolCalls||e.toolCalls.size===0)return[];e.emittedToolCalls=!0;let o=[];for(let n of e.toolCalls.values()){if(n.name==="")continue;let r=p1(n.argsText),s={id:n.id,name:n.name,input:r};o.push({type:"tool_call",call:s})}return o}toUsage(e,o){let n={request_id:Dr(o,"id")??"",tier:"local",provider:this.provider},r=Dr(o,"model");r!==void 0&&(n.model=r);let s=hd(e,"prompt_tokens");s!==void 0&&(n.tokens_in=s);let i=hd(e,"completion_tokens");return i!==void 0&&(n.tokens_out=i),n}}});async function*Qa(t){let e=new TextDecoder("utf-8"),o="";for await(let r of t){o+=typeof r=="string"?r:e.decode(r,{stream:!0}),o=o.replace(/\r\n/g,`
24
24
  `);let s=o.indexOf(`
25
25
 
26
26
  `);for(;s!==-1;){let i=o.slice(0,s);o=o.slice(s+2);let a=FS(i);a&&(yield a),s=o.indexOf(`
@@ -137,7 +137,7 @@ ${t.trim()}`}}function WD(t,e,o=tc){let{older:n,recent:r}=fm(t,o);if(n.length===
137
137
  \u2026[truncado: ${t.length-Ib} chars omitidos]`}function JU(t){return t.length<=$b?t:`${t.slice(0,$b)}\u2026`}function T0(t){let e=D0(t.server,t.descriptor.name),o=JU(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,l){try{let c=await t.transport.callTool(t.descriptor.name,i,l?.signal),u=He(c.content);return c.ok?{ok:!0,observation:C0(u),display:`${e}(${QU(i)})`}:{ok:!1,observation:C0(`MCP "${e}" erro: ${u}`)}}catch(c){return{ok:!1,observation:`MCP "${e}" falhou: ${c instanceof Error?c.message:String(c)}`}}}}}function Bb(t,e){let o=[],n=new Set,r=new Map,s=new Map,i=new Set;for(let a of t){let l=T0(a);if(n.has(l.name))continue;n.add(l.name);let c=a.server;s.set(c,(s.get(c)??0)+1);let u=r.get(c)??0;if(u>=Nb){i.add(c);continue}r.set(c,u+1),o.push(l)}if(e)for(let a of i){let l=s.get(a)??0;e(`server MCP "${a}" exp\xF4s ${l} tools; usando as primeiras ${Nb} (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 QU(t){if(Object.keys(t).length===0)return"";let o=JSON.stringify(t);return o.length<=200?o:`${o.slice(0,200)}\u2026`}var Ib,Nb,$b,_0=S(()=>{"use strict";Vu();tr();Ib=2e4;Nb=128,$b=1024});function M0(t,e){let o=new URL(O0);return t.trim().length>0&&o.searchParams.set("search",t.trim()),o.searchParams.set("limit",String(e2)),e!==void 0&&e.length>0&&o.searchParams.set("cursor",e),o.toString()}async function jb(t,e,o){let n=t.trim(),r=[],s;for(let i=0;i<ZU;i++){let a=M0(n,s),l;try{l=await e(a,o)}catch(f){return{ok:!1,query:n,reason:Em(i2(f))}}if(!l.ok)return{ok:!1,query:n,reason:Em(l.reason)};if(l.status<200||l.status>=300)return{ok:!1,query:n,reason:Em(`HTTP ${l.status}`)};let c;try{c=JSON.parse(l.body)}catch{return{ok:!1,query:n,reason:Em("resposta n\xE3o \xE9 JSON v\xE1lido")}}let u=P0(c);for(let f of u.servers)if(L0(f,n)&&r.push(f),r.length>=Ub)break;if(r.length>=Ub||(s=u.nextCursor,s===void 0||s.length===0))break}return{ok:!0,query:n,results:r}}function Em(t){return`registro MCP indispon\xEDvel (${Gi}): ${t}`}function L0(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 P0(t){if(!sr(t))return{servers:[]};let e=Array.isArray(t.servers)?t.servers:[],o=[];for(let s of e){let i=t2(s);i!==void 0&&o.push(i)}let n=sr(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 t2(t){if(!sr(t))return;let e=sr(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=o2(e);return{name:o,description:n,run:i,...r!==void 0?{title:r}:{},...s!==void 0?{version:s}:{}}}function o2(t){let e=[],o=Array.isArray(t.remotes)?t.remotes:[];for(let r of o)sr(r)&&typeof r.url=="string"&&e.push(r.url);let n=Array.isArray(t.packages)?t.packages:[];for(let r of n){if(!sr(r))continue;let s=n2(r);if(s!==void 0)return{...s,remoteUrls:e}}return{args:[],env:[],remoteUrls:e}}function n2(t){let e=Ms(t.registryType)??Ms(t.registry_name),o=Ms(t.identifier)??Ms(t.name);if(o===void 0)return;let n=Ms(t.version),r=Ms(t.runtimeHint),s=sr(t.transport)?Ms(t.transport.type):void 0,i=s2(t.environmentVariables),a=R0(t.runtimeArguments),l=R0(t.packageArguments),c=n!==void 0?`${o}@${n}`:o;return e==="npm"||r==="npx"?{command:"npx",args:r2(["-y",...a,c,...l]),env:i,...s!==void 0?{transport:s}:{}}:e==="pypi"||r==="uvx"||r==="uv"?{command:"uvx",args:[...a,o,...l],env:i,...s!==void 0?{transport:s}:{}}:e==="oci"||r==="docker"?{command:"docker",args:["run","-i","--rm",...a,c,...l],env:i,...s!==void 0?{transport:s}:{}}:{args:[c],env:i,...s!==void 0?{transport:s}:{}}}function r2(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 R0(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)sr(o)&&typeof o.value=="string"&&e.push(o.value);return e}function s2(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)sr(o)&&typeof o.name=="string"&&o.name.length>0&&e.push({name:o.name,required:o.isRequired===!0});return e}function Ms(t){return typeof t=="string"&&t.trim().length>0?t.trim():void 0}function sr(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function i2(t){return t instanceof Error?t.message:String(t)}var Gi,O0,ZU,e2,Ub,F0=S(()=>{"use strict";Gi="registry.modelcontextprotocol.io",O0=`https://${Gi}/v0/servers`,ZU=5,e2=100,Ub=25});function N0(t){let{command:e,args:o}=t.run;if(e===void 0)return;let n=$0(t.name);return["aluy","mcp","add",I0(n),"--",e,...o.map(I0)].join(" ")}function $0(t){let o=(t.split("/").pop()??t).replace(/[^A-Za-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"");return o.length>0?o:"server"}function I0(t){return/^[A-Za-z0-9_./@:+=-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function Hb(t){if(!t.ok)return`\u26A0 ${t.reason}
138
138
  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(a2(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(`
139
139
  `)}function a2(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(` ${l2(t.description,200)}`);let r=N0(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(`
140
- `)}function l2(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var B0=S(()=>{"use strict"});var U0=S(()=>{"use strict";xm();k0();x0();E0();S0();A0();_0();Vu();F0();B0()});function qb(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 j0(t,e){let o=qb(t),n=qb(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 l=typeof i=="number",c=typeof a=="number";return l&&c?i<a?-1:1:l?-1:c?1:i<a?-1:1}return 0}function Wb(t,e){return j0(t,e)===1}var H0=S(()=>{"use strict"});function Sm(t,e,o){if(e.size===0)return{kind:"discard",reason:"allowlist vazia (default fechado)"};if(!e.has(t.conversation))return{kind:"discard",reason:`canal ${t.conversation} n\xE3o-allowlistado`};if(t.senderIsBot===!0)return{kind:"discard",reason:"remetente \xE9 bot (anti-loop, TC-6)"};let n=t.content.trim();if(n==="")return{kind:"discard",reason:"mensagem sem conte\xFAdo"};if(o.authIsForgeable)return{kind:"data",text:n};if(t.provenance.kind==="third-party-relayed")return{kind:"data",text:n};let r=t.provenance.embeddedThirdParty?.trim();return r?{kind:"instruction",text:n,forwardedData:r}:{kind:"instruction",text:n}}var Gb=S(()=>{"use strict"});function zb(t){let e;if(t.forwarded===!0)e={kind:"third-party-relayed"};else{let o=(t.quotedText??"").trim();e=o?{kind:"author-direct",embeddedThirdParty:o}:{kind:"author-direct"}}return{content:t.text,sender:String(t.fromId),conversation:String(t.chatId),provenance:e,...t.isBot===!0?{senderIsBot:!0}:{}}}function Kb(t){let e=new Set;for(let o of t)typeof o=="number"&&Number.isFinite(o)&&Number.isInteger(o)&&e.add(o);return e}var cc,q0=S(()=>{"use strict";Gb();cc={id:"telegram",displayName:"Telegram",authIsForgeable:!1}});function Yb(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function zi(t){return typeof t=="object"&&t!==null?t:void 0}function Vb(t,e){let o=zi(t);if(!o||o.ok!==!0||!Array.isArray(o.result))return{updates:[],nextOffset:e};let n=[],r=e-1;for(let s of o.result){let i=zi(s);if(!i)continue;let a=Yb(i.update_id);a!==void 0&&a>r&&(r=a);let l=zi(i.message);if(!l)continue;let c=zi(l.chat),u=Yb(c?.id);if(u===void 0||c?.type!=="private")continue;let f=zi(l.from),d=Yb(f?.id)??u,p=f?.is_bot===!0,h=typeof l.text=="string"?l.text:"",y=l.forward_origin!==void 0||l.forward_from!==void 0||l.forward_from_chat!==void 0||l.forward_sender_name!==void 0||l.forward_date!==void 0,g=(()=>{let E=zi(l.quote)?.text;return typeof E=="string"&&E.trim()!==""?E:void 0})();n.push({chatId:u,fromId:d,text:h,...y?{forwarded:!0}:{},...g!==void 0?{quotedText:g}:{},...p?{isBot:!0}:{}})}return{updates:n,nextOffset:r+1}}var W0=S(()=>{"use strict"});var uc,G0=S(()=>{"use strict";uc=class{maxPerWindow;windowMs;stamps=[];constructor(e,o){this.maxPerWindow=e,this.windowMs=o}tryConsume(e){let o=e-this.windowMs;for(;this.stamps.length>0&&this.stamps[0]<=o;)this.stamps.shift();return this.stamps.length>=this.maxPerWindow?!1:(this.stamps.push(e),!0)}get used(){return this.stamps.length}}});function Xb(t){return`connector-${t}-token`}function dc(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)`}function Jb(t,e){let o=e.trim();return o.length<8?t:t.split(o).join("\xABREDACTED\xBB")}var z0=S(()=>{"use strict"});var N=S(()=>{"use strict";HE();dS();SS();Hw();c0();zy();y0();U0();Sb();Qd();H0();Gb();q0();W0();G0();z0()});import{posix as T8}from"node:path";function _8(t){return T8.normalize(t)}function po(t){let e=_8(t);for(let o of R8)if(o.re.test(e))return o.deny?{kind:"deny",why:o.why}:{kind:"ask",why:o.why};return{kind:"allow"}}function hv(t){return po(t).kind==="allow"}var R8,Br=S(()=>{"use strict";R8=[{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 Nv={};Np(Nv,{UserWorkflowsLoader:()=>qr,WORKFLOWS_DIRNAME:()=>Iv});import{homedir as h3}from"node:os";import{join as Fv}from"node:path";import{readdirSync as g3,readFileSync as y3,mkdirSync as b3,statSync as v3}from"node:fs";var k3,Iv,x3,E3,qr,qm=S(()=>{"use strict";N();k3=448,Iv="workflows",x3=64*1024,E3=256,qr=class{dir;constructor(e={}){let o=e.baseDir??Fv(h3(),".aluy");this.dir=Fv(o,Iv)}get workflowsDir(){return this.dir}ensureDir(){try{b3(this.dir,{mode:k3,recursive:!0})}catch{}}load(){let e;try{e=g3(this.dir,{withFileTypes:!0})}catch{return{workflows:[],errors:[]}}let o=e.filter(i=>(i.isFile()||i.isSymbolicLink())&&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>=E3)break;let a=this.readOne(i);if(a!==null){if(jl(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=Fv(this.dir,e);try{let n=v3(o);if(!n.isFile()||n.size>x3)return null;let r=y3(o,"utf8");return Hl(e,r,"global")}catch{return null}}}});var Bv={};Np(Bv,{PROJECT_WORKFLOWS_DIRNAMES:()=>$v,ProjectWorkflowsLoader:()=>Wr});import{join as S3}from"node:path";import{readdirSync as w3,readFileSync as A3,statSync as C3}from"node:fs";var $v,D3,T3,Wr,Wm=S(()=>{"use strict";N();Br();$v=[".claude/workflows",".aluy/workflows"],D3=64*1024,T3=256,Wr=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of $v){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=w3(s,{withFileTypes:!0})}catch{continue}let a=i.filter(l=>(l.isFile()||l.isSymbolicLink())&&l.name.toLowerCase().endsWith(".md")).map(l=>l.name).sort((l,c)=>l.localeCompare(c));for(let l of a){if(o.length>=T3)break;let c=this.readOne(r,s,l);if(c!==null){if(jl(c)){n.push(c);continue}e.has(c.name)||(e.add(c.name),o.push(c))}}}return{workflows:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}`;if(po(r).kind!=="allow")return null;let s=S3(o,n);try{this.workspace.resolveInside(r);let i=C3(s);if(!i.isFile()||i.size>D3)return null;let a=A3(s,"utf8");return Hl(n,a,"project")}catch{return null}}}});var OM=KI((eye,RM)=>{RM.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var Kn="1.0.0-rc.86";N();var K0=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
140
+ `)}function l2(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var B0=S(()=>{"use strict"});var U0=S(()=>{"use strict";xm();k0();x0();E0();S0();A0();_0();Vu();F0();B0()});function qb(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 j0(t,e){let o=qb(t),n=qb(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 l=typeof i=="number",c=typeof a=="number";return l&&c?i<a?-1:1:l?-1:c?1:i<a?-1:1}return 0}function Wb(t,e){return j0(t,e)===1}var H0=S(()=>{"use strict"});function Sm(t,e,o){if(e.size===0)return{kind:"discard",reason:"allowlist vazia (default fechado)"};if(!e.has(t.conversation))return{kind:"discard",reason:`canal ${t.conversation} n\xE3o-allowlistado`};if(t.senderIsBot===!0)return{kind:"discard",reason:"remetente \xE9 bot (anti-loop, TC-6)"};let n=t.content.trim();if(n==="")return{kind:"discard",reason:"mensagem sem conte\xFAdo"};if(o.authIsForgeable)return{kind:"data",text:n};if(t.provenance.kind==="third-party-relayed")return{kind:"data",text:n};let r=t.provenance.embeddedThirdParty?.trim();return r?{kind:"instruction",text:n,forwardedData:r}:{kind:"instruction",text:n}}var Gb=S(()=>{"use strict"});function zb(t){let e;if(t.forwarded===!0)e={kind:"third-party-relayed"};else{let o=(t.quotedText??"").trim();e=o?{kind:"author-direct",embeddedThirdParty:o}:{kind:"author-direct"}}return{content:t.text,sender:String(t.fromId),conversation:String(t.chatId),provenance:e,...t.isBot===!0?{senderIsBot:!0}:{}}}function Kb(t){let e=new Set;for(let o of t)typeof o=="number"&&Number.isFinite(o)&&Number.isInteger(o)&&e.add(o);return e}var cc,q0=S(()=>{"use strict";Gb();cc={id:"telegram",displayName:"Telegram",authIsForgeable:!1}});function Yb(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function zi(t){return typeof t=="object"&&t!==null?t:void 0}function Vb(t,e){let o=zi(t);if(!o||o.ok!==!0||!Array.isArray(o.result))return{updates:[],nextOffset:e};let n=[],r=e-1;for(let s of o.result){let i=zi(s);if(!i)continue;let a=Yb(i.update_id);a!==void 0&&a>r&&(r=a);let l=zi(i.message);if(!l)continue;let c=zi(l.chat),u=Yb(c?.id);if(u===void 0||c?.type!=="private")continue;let f=zi(l.from),d=Yb(f?.id)??u,p=f?.is_bot===!0,h=typeof l.text=="string"?l.text:"",y=l.forward_origin!==void 0||l.forward_from!==void 0||l.forward_from_chat!==void 0||l.forward_sender_name!==void 0||l.forward_date!==void 0,g=(()=>{let E=zi(l.quote)?.text;return typeof E=="string"&&E.trim()!==""?E:void 0})();n.push({chatId:u,fromId:d,text:h,...y?{forwarded:!0}:{},...g!==void 0?{quotedText:g}:{},...p?{isBot:!0}:{}})}return{updates:n,nextOffset:r+1}}var W0=S(()=>{"use strict"});var uc,G0=S(()=>{"use strict";uc=class{maxPerWindow;windowMs;stamps=[];constructor(e,o){this.maxPerWindow=e,this.windowMs=o}tryConsume(e){let o=e-this.windowMs;for(;this.stamps.length>0&&this.stamps[0]<=o;)this.stamps.shift();return this.stamps.length>=this.maxPerWindow?!1:(this.stamps.push(e),!0)}get used(){return this.stamps.length}}});function Xb(t){return`connector-${t}-token`}function dc(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)`}function Jb(t,e){let o=e.trim();return o.length<8?t:t.split(o).join("\xABREDACTED\xBB")}var z0=S(()=>{"use strict"});var N=S(()=>{"use strict";HE();dS();SS();Hw();c0();zy();y0();U0();Sb();Qd();H0();Gb();q0();W0();G0();z0()});import{posix as T8}from"node:path";function _8(t){return T8.normalize(t)}function po(t){let e=_8(t);for(let o of R8)if(o.re.test(e))return o.deny?{kind:"deny",why:o.why}:{kind:"ask",why:o.why};return{kind:"allow"}}function hv(t){return po(t).kind==="allow"}var R8,Br=S(()=>{"use strict";R8=[{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 Nv={};Np(Nv,{UserWorkflowsLoader:()=>qr,WORKFLOWS_DIRNAME:()=>Iv});import{homedir as h3}from"node:os";import{join as Fv}from"node:path";import{readdirSync as g3,readFileSync as y3,mkdirSync as b3,statSync as v3}from"node:fs";var k3,Iv,x3,E3,qr,qm=S(()=>{"use strict";N();k3=448,Iv="workflows",x3=64*1024,E3=256,qr=class{dir;constructor(e={}){let o=e.baseDir??Fv(h3(),".aluy");this.dir=Fv(o,Iv)}get workflowsDir(){return this.dir}ensureDir(){try{b3(this.dir,{mode:k3,recursive:!0})}catch{}}load(){let e;try{e=g3(this.dir,{withFileTypes:!0})}catch{return{workflows:[],errors:[]}}let o=e.filter(i=>(i.isFile()||i.isSymbolicLink())&&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>=E3)break;let a=this.readOne(i);if(a!==null){if(jl(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=Fv(this.dir,e);try{let n=v3(o);if(!n.isFile()||n.size>x3)return null;let r=y3(o,"utf8");return Hl(e,r,"global")}catch{return null}}}});var Bv={};Np(Bv,{PROJECT_WORKFLOWS_DIRNAMES:()=>$v,ProjectWorkflowsLoader:()=>Wr});import{join as S3}from"node:path";import{readdirSync as w3,readFileSync as A3,statSync as C3}from"node:fs";var $v,D3,T3,Wr,Wm=S(()=>{"use strict";N();Br();$v=[".claude/workflows",".aluy/workflows"],D3=64*1024,T3=256,Wr=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of $v){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=w3(s,{withFileTypes:!0})}catch{continue}let a=i.filter(l=>(l.isFile()||l.isSymbolicLink())&&l.name.toLowerCase().endsWith(".md")).map(l=>l.name).sort((l,c)=>l.localeCompare(c));for(let l of a){if(o.length>=T3)break;let c=this.readOne(r,s,l);if(c!==null){if(jl(c)){n.push(c);continue}e.has(c.name)||(e.add(c.name),o.push(c))}}}return{workflows:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}`;if(po(r).kind!=="allow")return null;let s=S3(o,n);try{this.workspace.resolveInside(r);let i=C3(s);if(!i.isFile()||i.size>D3)return null;let a=A3(s,"utf8");return Hl(n,a,"project")}catch{return null}}}});var OM=KI((eye,RM)=>{RM.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var Kn="1.0.0-rc.87";N();var K0=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
141
141
 
142
142
  Uso:
143
143
  aluy ["objetivo"] [--plan | --yolo] [--dense] [--tier <tier>] [--lang <pt-BR|en>]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiperplano/aluy-cli",
3
- "version": "1.0.0-rc.86",
3
+ "version": "1.0.0-rc.87",
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",