@hiperplano/aluy-cli 1.0.0-rc.93 → 1.0.0-rc.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-bundle/bin/aluy.js +36 -36
- package/dist-bundle/index.js +38 -38
- package/package.json +1 -1
package/dist-bundle/bin/aluy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var M8=Object.create;var my=Object.defineProperty;var L8=Object.getOwnPropertyDescriptor;var P8=Object.getOwnPropertyNames;var F8=Object.getPrototypeOf,I8=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 N8=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},ft=(t,e)=>{for(var o in e)my(t,o,{get:e[o],enumerable:!0})},$8=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of P8(e))!I8.call(t,r)&&r!==o&&my(t,r,{get:()=>e[r],enumerable:!(n=L8(e,r))||n.enumerable});return t};var B8=(t,e,o)=>(o=t!=null?M8(F8(t)):{},$8(e||!t||!t.__esModule?my(o,"default",{value:t,enumerable:!0}):o,t));import{homedir as U8}from"node:os";import{join as j8}from"node:path";function oc(t=U8()){return j8(t,".aluy")}var Bm=p(()=>{"use strict"});var nc,TC=p(()=>{"use strict";nc="1.0.0-rc.
|
|
2
|
+
var M8=Object.create;var my=Object.defineProperty;var L8=Object.getOwnPropertyDescriptor;var P8=Object.getOwnPropertyNames;var F8=Object.getPrototypeOf,I8=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 N8=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}},ft=(t,e)=>{for(var o in e)my(t,o,{get:e[o],enumerable:!0})},$8=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of P8(e))!I8.call(t,r)&&r!==o&&my(t,r,{get:()=>e[r],enumerable:!(n=L8(e,r))||n.enumerable});return t};var B8=(t,e,o)=>(o=t!=null?M8(F8(t)):{},$8(e||!t||!t.__esModule?my(o,"default",{value:t,enumerable:!0}):o,t));import{homedir as U8}from"node:os";import{join as j8}from"node:path";function oc(t=U8()){return j8(t,".aluy")}var Bm=p(()=>{"use strict"});var nc,TC=p(()=>{"use strict";nc="1.0.0-rc.94"});function Rr(t,e){return t.decide(e)}var ui=p(()=>{"use strict"});var Xn,Or,Mr=p(()=>{"use strict";Xn="remember",Or="recall"});var fy,H8,ka,py=p(()=>{"use strict";fy=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}}},H8=200,ka=class{nodes=new Map;maxBoxes;now;constructor(e){this.maxBoxes=e?.maxBoxes??H8,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 fy(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 Um(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 RC(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"&&q8.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=RC(u,!1);if(typeof m=="string")return m;c.push(m)}r=c}}}if(o===void 0||o.trim()==="")return G8;let s=o.trim().slice(0,W8);return r?{title:s,status:n,substeps:r}:{title:s,status:n}}function z8(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=RC(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=Um(o).length;return s>DC?{error:`update_plan: no m\xE1ximo ${DC} passos (recebidos ${s}).`}:{steps:o}}function K8(t){let e=Um(t),o=e.filter(r=>r.step.status==="completed").length,n=e.map(r=>`${" ".repeat(r.depth)}${OC[r.step.status]} ${r.step.title}`).join(`
|
|
3
3
|
`);return`plano (${o}/${e.length}):
|
|
4
4
|
${n}`}function V8(t,e){return e<0?"m\xE9dio":t===e?"curto":t>e?"longo":"m\xE9dio"}function X8(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??ka.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=V8(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 J8(t,e){if(!e)return K8(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=Um(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?Y8[m.horizon]:"",h=m?s(m.id):u,g=" ".repeat(h),b=OC[c.status];l.push(`${g}${d} ${b} ${c.title}`)}return l.join(`
|
|
5
5
|
`)}var rc,q8,DC,W8,G8,OC,Y8,_C,Q8,MC,jm=p(()=>{"use strict";py();rc="update_plan";q8=new Set(["pending","in_progress","completed"]),DC=30,W8=120,G8="update_plan: cada passo precisa de um t\xEDtulo (texto) n\xE3o-vazio.";OC={pending:"\u2610",in_progress:"\u25B6",completed:"\u2611"};Y8={longo:"[\u{1F4D0}]",m\u00E9dio:"[\u{1F4CB}]",curto:"[\u{1F4CC}]"};_C=Object.freeze({type:"string",enum:["pending","in_progress","completed"],description:"pending (a fazer) \xB7 in_progress (em curso) \xB7 completed (feito)."}),Q8=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:_C,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:_C},required:["title"],additionalProperties:!1}}},required:["title"],additionalProperties:!1}}},required:["steps"],additionalProperties:!1}),MC={name:rc,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:Q8,async run(t,e){let o=z8(t);return"error"in o?{ok:!1,observation:o.error}:(e.graph&&X8(o.steps,e.graph),e.plan&&e.plan.set(Um(o.steps).map(r=>({title:r.step.title,status:r.step.status}))),{ok:!0,observation:J8(o.steps,e.graph)})}}});function LC(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)?eH(s):void 0;if(typeof i=="string")return{error:i};let a,l=t.kind??t.type;if(typeof l=="string"&&Z8.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 eH(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 tH(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(`
|
|
@@ -138,7 +138,7 @@ ${t.trim()}`}}function IR(t,e,o=wu){let{older:n,recent:r}=cp(t,o);if(n.length===
|
|
|
138
138
|
\u2026[truncado: ${t.length-ax} chars omitidos]`}function G6(t){return t.length<=cx?t:`${t.slice(0,cx)}\u2026`}function gO(t){let e=hO(t.server,t.descriptor.name),o=G6(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=Qe(c.content);return c.ok?{ok:!0,observation:pO(u),display:`${e}(${z6(i)})`}:{ok:!1,observation:pO(`MCP "${e}" erro: ${u}`)}}catch(c){return{ok:!1,observation:`MCP "${e}" falhou: ${c instanceof Error?c.message:String(c)}`}}}}}function ux(t,e){let o=[],n=new Set,r=new Map,s=new Map,i=new Set;for(let a of t){let l=gO(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>=lx){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 ${lx} (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 z6(t){if(Object.keys(t).length===0)return"";let o=JSON.stringify(t);return o.length<=200?o:`${o.slice(0,200)}\u2026`}var ax,lx,cx,yO=p(()=>{"use strict";Wm();Nr();ax=2e4;lx=128,cx=1024});function kO(t,e){let o=new URL(vO);return t.trim().length>0&&o.searchParams.set("search",t.trim()),o.searchParams.set("limit",String(Y6)),e!==void 0&&e.length>0&&o.searchParams.set("cursor",e),o.toString()}async function mx(t,e,o){let n=t.trim(),r=[],s;for(let i=0;i<K6;i++){let a=kO(n,s),l;try{l=await e(a,o)}catch(m){return{ok:!1,query:n,reason:Ep(eG(m))}}if(!l.ok)return{ok:!1,query:n,reason:Ep(l.reason)};if(l.status<200||l.status>=300)return{ok:!1,query:n,reason:Ep(`HTTP ${l.status}`)};let c;try{c=JSON.parse(l.body)}catch{return{ok:!1,query:n,reason:Ep("resposta n\xE3o \xE9 JSON v\xE1lido")}}let u=SO(c);for(let m of u.servers)if(xO(m,n)&&r.push(m),r.length>=dx)break;if(r.length>=dx||(s=u.nextCursor,s===void 0||s.length===0))break}return{ok:!0,query:n,results:r}}function Ep(t){return`registro MCP indispon\xEDvel (${Va}): ${t}`}function xO(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 SO(t){if(!qr(t))return{servers:[]};let e=Array.isArray(t.servers)?t.servers:[],o=[];for(let s of e){let i=V6(s);i!==void 0&&o.push(i)}let n=qr(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 V6(t){if(!qr(t))return;let e=qr(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=X6(e);return{name:o,description:n,run:i,...r!==void 0?{title:r}:{},...s!==void 0?{version:s}:{}}}function X6(t){let e=[],o=Array.isArray(t.remotes)?t.remotes:[];for(let r of o)qr(r)&&typeof r.url=="string"&&e.push(r.url);let n=Array.isArray(t.packages)?t.packages:[];for(let r of n){if(!qr(r))continue;let s=J6(r);if(s!==void 0)return{...s,remoteUrls:e}}return{args:[],env:[],remoteUrls:e}}function J6(t){let e=Li(t.registryType)??Li(t.registry_name),o=Li(t.identifier)??Li(t.name);if(o===void 0)return;let n=Li(t.version),r=Li(t.runtimeHint),s=qr(t.transport)?Li(t.transport.type):void 0,i=Z6(t.environmentVariables),a=bO(t.runtimeArguments),l=bO(t.packageArguments),c=n!==void 0?`${o}@${n}`:o;return e==="npm"||r==="npx"?{command:"npx",args:Q6(["-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 Q6(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 bO(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)qr(o)&&typeof o.value=="string"&&e.push(o.value);return e}function Z6(t){if(!Array.isArray(t))return[];let e=[];for(let o of t)qr(o)&&typeof o.name=="string"&&o.name.length>0&&e.push({name:o.name,required:o.isRequired===!0});return e}function Li(t){return typeof t=="string"&&t.trim().length>0?t.trim():void 0}function qr(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function eG(t){return t instanceof Error?t.message:String(t)}var Va,vO,K6,Y6,dx,wO=p(()=>{"use strict";Va="registry.modelcontextprotocol.io",vO=`https://${Va}/v0/servers`,K6=5,Y6=100,dx=25});function AO(t){let{command:e,args:o}=t.run;if(e===void 0)return;let n=CO(t.name);return["aluy","mcp","add",EO(n),"--",e,...o.map(EO)].join(" ")}function CO(t){let o=(t.split("/").pop()??t).replace(/[^A-Za-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"");return o.length>0?o:"server"}function EO(t){return/^[A-Za-z0-9_./@:+=-]+$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}function fx(t){if(!t.ok)return`\u26A0 ${t.reason}
|
|
139
139
|
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(tG(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(`
|
|
140
140
|
`)}function tG(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(` ${oG(t.description,200)}`);let r=AO(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(`
|
|
141
|
-
`)}function oG(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var TO=p(()=>{"use strict"});var DO=p(()=>{"use strict";wp();lO();cO();uO();dO();fO();yO();Wm();wO();TO()});function px(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 _O(t,e){let o=px(t),n=px(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 hx(t,e){return _O(t,e)===1}var RO=p(()=>{"use strict"});function Ap(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 gx=p(()=>{"use strict"});function yx(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 bx(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 Fu,OO=p(()=>{"use strict";gx();Fu={id:"telegram",displayName:"Telegram",authIsForgeable:!1}});function vx(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Xa(t){return typeof t=="object"&&t!==null?t:void 0}function kx(t,e){let o=Xa(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=Xa(s);if(!i)continue;let a=vx(i.update_id);a!==void 0&&a>r&&(r=a);let l=Xa(i.message);if(!l)continue;let c=Xa(l.chat),u=vx(c?.id);if(u===void 0||c?.type!=="private")continue;let m=Xa(l.from),d=vx(m?.id)??u,h=m?.is_bot===!0,g=typeof l.text=="string"?l.text:"",b=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,y=(()=>{let w=Xa(l.quote)?.text;return typeof w=="string"&&w.trim()!==""?w:void 0})();n.push({chatId:u,fromId:d,text:g,...b?{forwarded:!0}:{},...y!==void 0?{quotedText:y}:{},...h?{isBot:!0}:{}})}return{updates:n,nextOffset:r+1}}var MO=p(()=>{"use strict"});var Iu,LO=p(()=>{"use strict";Iu=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 xx(t){return`connector-${t}-token`}function Sx(t){let e=t.trim();return/^\d{5,}:[A-Za-z0-9_-]{30,}$/.test(e)}function Ds(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 wx(t,e){let o=e.trim();return o.length<8?t:t.split(o).join("\xABREDACTED\xBB")}var PO=p(()=>{"use strict"});var P=p(()=>{"use strict";TC();XC();fT();MD();JR();yk();sO();DO();Xk();Yf();RO();gx();OO();MO();LO();PO()});var Tp,Dp,IO,NO,$O,BO,_p=p(()=>{"use strict";Tp={fg:{color:"#F2EEE8"},fgDim:{color:"#8A7F6D",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},Dp={fg:{color:"#1A1712"},fgDim:{color:"#544B3C"},accent:{color:"#82530F",bold:!0},accentDim:{color:"#82530F",bold:!0},danger:{color:"#B23A2A",bold:!0},success:{color:"#1F6B3A"},depth:{color:"#2E6E69"}},IO={fg:{color:"white"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},NO={fg:{color:"black"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},$O={fg:{color:"#F2EEE8"},fgDim:{color:"#B0A593",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},BO={fg:{},fgDim:{dimColor:!0},accent:{bold:!0},accentDim:{bold:!0},danger:{bold:!0,inverse:!0},success:{},depth:{}}});var UO,jO,HO,qO,WO,GO,zO,Rp=p(()=>{"use strict";UO={you:"\u258C",aluy:"\u039B",tool:"\u23FA",toolInflight:"\u25CB",wave:"~",waveHead:"\u203A",ask:"\u26A0",ok:"\u2713",err:"\u2717",broker:"\u25CF",clock:"\u25F7",gauge:"\u25D4",window:"\u25A1",branch:"\u2387",diffDel:"\u2039",diffAdd:"\u203A",prompt:"\u203A",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u25B0",barEmpty:"\u25B1",pulseBlock:"\u2588"},jO={you:"\u258C",aluy:"\u039B",tool:"\u25CF",toolInflight:"\u25CB",wave:"~",waveHead:">",ask:"!",ok:"\u221A",err:"x",broker:"\u25CF",clock:"o",gauge:"\u25D4",window:"\u25A1",branch:"Y",diffDel:"<",diffAdd:">",prompt:">",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u2588",barEmpty:"\u2591",pulseBlock:"\u2588"},HO={you:">",aluy:"/\\",tool:"o",toolInflight:".",wave:"~",waveHead:">",ask:"!",ok:"[ok]",err:"[x]",broker:"(b)",clock:"t:",gauge:"%:",window:"ctx:",branch:"git:",diffDel:"-",diffAdd:"+",prompt:">",cursor:"*",thinkingCursor:"*",planMode:"[plan]",normalMode:"*",subagents:"(+)",sessionDot:"*",barFull:"#",barEmpty:".",pulseBlock:"#"},qO=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],WO=["-","\\","|","/"],GO={topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u251C",teeRight:"\u2524"},zO={topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+"}});function KO(t){return Ja.includes(t.trim().toLowerCase())}function Op(t){let e=2166136261,o=t.trim().toLowerCase();for(let r=0;r<o.length;r++)e^=o.charCodeAt(r),e=Math.imul(e,16777619);let n=(e>>>0)%Nu.length;return Nu[n].name}function YO(t,e,o){let n=t.trim().toLowerCase(),r=Nu.find(s=>s.name===n)??Nu.find(s=>s.name===Op(n));return e==="mono"?{bold:!0}:e==="truecolor"?{color:o==="light"?r.lightHex:r.darkHex,bold:!0}:{color:r.ansi,bold:!0}}var Nu,Ja,Mp=p(()=>{"use strict";Nu=[{name:"ambar",darkHex:"#DDA13F",lightHex:"#82530F",ansi:"yellow"},{name:"verde",darkHex:"#82CF9E",lightHex:"#1F6B3A",ansi:"green"},{name:"teal",darkHex:"#5BA8A2",lightHex:"#2E6E69",ansi:"cyan"},{name:"azul",darkHex:"#6FA8DC",lightHex:"#1F5C99",ansi:"blue"},{name:"violeta",darkHex:"#B08CD9",lightHex:"#6A3FA6",ansi:"magenta"},{name:"rosa",darkHex:"#E59BC0",lightHex:"#A63D74",ansi:"magenta"},{name:"coral",darkHex:"#E5897C",lightHex:"#B23A2A",ansi:"red"},{name:"ardosia",darkHex:"#9AA7B0",lightHex:"#4A5963",ansi:"gray"}],Ja=Nu.map(t=>t.name)});function Lp(t){return t!==void 0&&t!==""&&t!=="0"&&t.toLowerCase()!=="false"}function pG(t){if(t.NO_COLOR!==void 0)return"mono";let e=(t.COLORTERM??"").toLowerCase();if(e==="truecolor"||e==="24bit")return"truecolor";let o=(t.TERM??"").toLowerCase();return o==="dumb"||o===""?"mono":"ansi16"}function hG(t,e){if(e)return e;let o=t.COLORFGBG;if(o){let n=o.split(";"),r=Number(n[n.length-1]);if(Number.isFinite(r))return r>=8?"light":"dark"}return"dark"}function gG(t){let e=(t.TERM??"").toLowerCase();if(e==="linux"||e==="dumb")return!1;let o=`${t.LC_ALL??""}${t.LC_CTYPE??""}${t.LANG??""}`.toLowerCase();return!(Lp(t.ALUY_ASCII)||o&&!o.includes("utf"))}function yG(t,e){return e!==void 0?e:Lp(t.ALUY_SAFE_GLYPHS)}function bG(t,e,o){return t==="mono"?BO:t==="truecolor"?o??(e==="light"?Dp:Tp):e==="light"?NO:IO}function cn(t={}){let e=t.env??process.env,o=pG(e),n=hG(e,t.theme),r=gG(e),s=r&&yG(e,t.safeGlyphs),i=t.density??(Lp(e.ALUY_DENSITY)&&e.ALUY_DENSITY==="compact"?"compact":"comfortable"),a=t.animate??!Lp(e.ALUY_NO_ANIM),l=bG(o,n,t.truecolorPalette),c=r?s?jO:UO:HO;return{colorMode:o,brightness:n,unicode:r,safeGlyphs:s,density:i,animate:a,role:h=>l[h],sessionColor:h=>YO(h,o,n),glyph:h=>c[h],aluyMark:r?"\u039B":"/\\",spinnerFrames:r&&!s?qO:WO,box:r?GO:zO}}var Pp=p(()=>{"use strict";_p();Rp();Mp()});function _s(t){return Ko.find(e=>e.name===t)}function Wr(t){let e=t.trim().toLowerCase();if(e==="")return;let o=Ko.find(r=>r.name===e);if(o)return o;let n=Ko.find(r=>r.name===`aluy-${e}`);return n||Ko.find(r=>r.label.toLowerCase()===e)}function Pi(t){return t==="light"?"aluy-light":"aluy-dark"}function VO(t,e={}){let o=_s(t)??_s(Cx);return cn({...e,theme:o.brightness,truecolorPalette:o.palette})}var Ko,Cx,Rs=p(()=>{"use strict";Pp();_p();Ko=[{name:"aluy-dark",label:"Aluy Dark",brightness:"dark",summary:"escuro neutro (default) \u2014 fundo quase-preto, accent \xE2mbar",bg:"#070707",palette:Tp},{name:"aluy-light",label:"Aluy Light",brightness:"light",summary:"claro creme \u2014 fundo --stone-50, accent \xE2mbar escurecido (AA)",bg:"#F4ECDC",palette:Dp},{name:"aluy-slate",label:"Aluy Slate",brightness:"dark",summary:"terra escura WARM \u2014 fundo --stone-950, accent \xE2mbar",bg:"#0E0C09",palette:$O}],Cx="aluy-dark"});function Fi(t){return Yt.find(e=>e.code===t)}function Os(t){let e=t.trim().toLowerCase();if(e==="")return;let o=Yt.find(n=>n.code.toLowerCase()===e);if(o)return o;if(e==="pt"||e==="pt_br"||e==="br"||e==="portugu\xEAs"||e==="portugues")return Fi("pt-BR");if(e==="en"||e==="en_us"||e==="english"||e==="ingl\xEAs"||e==="ingles")return Fi("en")}function XO(t){let e=(t.LC_ALL??t.LC_MESSAGES??t.LANG??"").trim().toLowerCase();if(e==="")return sr;let o=e.split(".")[0].split("@")[0].replace("_","-");return o==="c"||o==="posix"?sr:o==="en"||o.startsWith("en-")?"en":sr}function Tx(t,e,o){if(t!==void 0&&t.trim()!==""){let n=Os(t);if(n)return n.code}return e!==void 0?e:XO(o)}var sr,Yt,Qa=p(()=>{"use strict";sr="pt-BR",Yt=[{code:"pt-BR",label:"Portugu\xEAs (Brasil)",summary:"idioma padr\xE3o da TUI"},{code:"en",label:"English",summary:"English interface (opt-in)"}]});import{homedir as vG}from"node:os";import{join as JO}from"node:path";import{randomBytes as kG}from"node:crypto";import{openSync as xG,writeSync as SG,closeSync as QO,readFileSync as wG,mkdirSync as EG,renameSync as AG,unlinkSync as CG,constants as Dx}from"node:fs";function ZO(t){let o=(Array.isArray(t)?t:t!==void 0?[t]:[]).filter(n=>typeof n=="string"&&n.trim()!=="");return o.length>0?o:void 0}function RG(t){if(typeof t!="string")return!1;let e=t.trim().toLowerCase();return e==="localhost"||e==="::1"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function OG(t){return typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=65535}function _x(t){if(typeof t!="object"||t===null)return;let e=t,o={};return RG(e.host)&&(o.host=e.host.trim()),OG(e.port)&&(o.port=e.port),o.host!==void 0||o.port!==void 0?o:void 0}function MG(t){if(typeof t!="object"||t===null)return;let e=t,o=a=>typeof a=="number"&&Number.isInteger(a)&&a>0?a:void 0,n={},r=o(e.maxTokens),s=o(e.maxOutputTokens),i=o(e.maxIterations);return r!==void 0&&(n.maxTokens=r),s!==void 0&&(n.maxOutputTokens=s),i!==void 0&&(n.maxIterations=i),Object.keys(n).length>0?n:void 0}function LG(t){if(typeof t!="object"||t===null)return;let e=t,o={};return typeof e.window=="number"&&Number.isInteger(e.window)&&e.window>0&&(o.window=e.window),typeof e.autocompactAt=="number"&&Number.isFinite(e.autocompactAt)?o.autocompactAt=e.autocompactAt:typeof e.autocompactAt=="string"&&e.autocompactAt.trim()!==""&&(o.autocompactAt=e.autocompactAt.trim()),typeof e.autocompactMax=="number"&&Number.isInteger(e.autocompactMax)&&e.autocompactMax>0&&(o.autocompactMax=e.autocompactMax),Object.keys(o).length>0?o:void 0}function PG(t){if(typeof t!="object"||t===null)return;let e=t,o={};if(typeof e.telegram=="object"&&e.telegram!==null){let n=e.telegram;if(Array.isArray(n.allowlist)){let r=[];for(let s of n.allowlist)typeof s=="number"&&Number.isFinite(s)&&Number.isInteger(s)&&!r.includes(s)&&r.push(s);o.telegram={allowlist:r}}else o.telegram={}}return o.telegram!==void 0?o:void 0}function FG(t){if(typeof t!="object"||t===null)return;let e=t,o={},n=_x(e.ollama),r=_x(e.mem0),s=_x(e.headroom);return n&&(o.ollama=n),r&&(o.mem0=r),s&&(o.headroom=s),Object.keys(o).length>0?o:void 0}function IG(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(typeof o!="object"||o===null)continue;let n=o,r=typeof n.id=="string"?n.id.trim():"",s=typeof n.baseUrl=="string"?n.baseUrl.trim():"",i=typeof n.defaultModel=="string"?n.defaultModel.trim():"",a=typeof n.wireFormat=="string"?n.wireFormat:"";if(r===""||s===""||i===""||!_G.has(a))continue;let l=ZO(n.auth),c=ZO(n.models),u={id:r,wireFormat:a,baseUrl:s,defaultModel:i,...typeof n.label=="string"&&n.label.trim()?{label:n.label.trim()}:{},...l?{auth:l}:{},...c?{models:c}:{}};e.push(u)}return e.length>0?e:void 0}function $u(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>NG?!1:!/[\u0000-\u001F\u007F]/.test(e)}function eM(t){if(typeof t!="object"||t===null)return{};let e=t,o={};if(typeof e.theme=="string"){let l=_s(e.theme);l&&(o.theme=l.name)}if($u(e.tier)&&(o.tier=e.tier.trim()),o.tier==="custom"&&$u(e.model)&&(o.model=e.model.trim()),typeof e.splitView=="boolean"&&(o.splitView=e.splitView),typeof e.lang=="string"){let l=Fi(e.lang);l&&(o.lang=l.code)}if(typeof e.fullscreen=="boolean"&&(o.fullscreen=e.fullscreen),typeof e.suggestions=="boolean"&&(o.suggestions=e.suggestions),(e.backend==="broker"||e.backend==="local")&&(o.backend=e.backend),$u(e.localProvider)&&(o.localProvider=e.localProvider.trim()),$u(e.localModel)&&(o.localModel=e.localModel.trim()),(e.localAuth==="apikey"||e.localAuth==="oauth"||e.localAuth==="none")&&(o.localAuth=e.localAuth),$u(e.localBaseUrl)&&(o.localBaseUrl=e.localBaseUrl.trim()),typeof e.localBudget=="boolean"&&(o.localBudget=e.localBudget),typeof e.rooms=="object"&&e.rooms!==null){let l=e.rooms;if(typeof l.backend=="string"){let c=l.backend.trim().toLowerCase();c.length>0&&c.length<=32&&(o.rooms={backend:c})}}if((e.profile==="turbo"||e.profile==="leve")&&(o.profile=e.profile),typeof e.embedder=="string"&&As(e.embedder.trim())!==void 0&&(o.embedder=e.embedder.trim()),typeof e.recallMinScore=="number"&&Number.isFinite(e.recallMinScore)&&e.recallMinScore>=0&&e.recallMinScore<=1&&(o.recallMinScore=e.recallMinScore),typeof e.sidecarToggles=="object"&&e.sidecarToggles!==null){let l=e.sidecarToggles,c={};typeof l.ollama=="boolean"&&(c.ollama=l.ollama),typeof l.mem0=="boolean"&&(c.mem0=l.mem0),typeof l.headroom=="boolean"&&(c.headroom=l.headroom),Object.keys(c).length>0&&(o.sidecarToggles=c)}let n=IG(e.providers);n&&(o.providers=n);let r=FG(e.services);r&&(o.services=r);let s=PG(e.connectors);s&&(o.connectors=s);let i=MG(e.limits);i&&(o.limits=i);let a=LG(e.context);return a&&(o.context=a),o}function Ms(t){return t.connectors?.telegram?.allowlist??[]}function Fp(t,e){let o=Ms(t);return o.includes(e)?o:[...o,e]}function Ip(t,e){return Ms(t).filter(o=>o!==e)}function Uu(t,e,o){return t!==void 0&&t.trim()!==""?t.trim():e.tier!==void 0&&e.tier.trim()!==""?e.tier.trim():o}function tM(t){return t.lang}function Rx(t,e){return t===!0?!0:e.splitView??!1}function Ox(t,e){return t===!0?!0:e.fullscreen??!1}function oM(t,e=process.env){let o=e.ALUY_SUGGESTIONS?.trim().toLowerCase();return o==="0"||o==="false"||o==="off"||o==="no"?!1:o==="1"||o==="true"||o==="on"||o==="yes"?!0:t.suggestions??!0}function Np(t,e=process.env){let o=e.ALUY_MEM0_EMBEDDER?.trim();return o!==void 0&&o!==""&&As(o)!==void 0?o:t.embedder!==void 0&&As(t.embedder)!==void 0?t.embedder:Ka}var TG,DG,Bu,_G,NG,Ue,ko=p(()=>{"use strict";Rs();Qa();P();TG=448,DG=384,Bu="config.json",_G=new Set(["openai-compat","anthropic","gemini"]);NG=128;Ue=class{base;file;constructor(e={}){this.base=e.baseDir??JO(vG(),".aluy"),this.file=JO(this.base,Bu)}get configPath(){return this.file}load(){let e;try{e=wG(this.file,"utf8")}catch{return{}}let o;try{o=JSON.parse(e)}catch{return{}}return eM(o)}save(e){try{let o=eM({...this.load(),...e});return this.writeAtomic(o),!0}catch{return!1}}saveTheme(e){return this.save({theme:e})}saveLang(e){return this.save({lang:e})}saveTier(e,o){let r=e.trim()==="custom"&&o!==void 0&&o.trim()!==""?o.trim():void 0;return this.save(r!==void 0?{tier:e,model:r}:{tier:e})}saveSplitView(e){return this.save({splitView:e})}saveFullscreen(e){return this.save({fullscreen:e})}saveSuggestions(e){return this.save({suggestions:e})}saveLocalBudget(e){return this.save({localBudget:e})}writeAtomic(e){EG(this.base,{recursive:!0,mode:TG});let o=`${this.file}.${process.pid}.${kG(6).toString("hex")}.tmp`,n=JSON.stringify(e,null,2)+`
|
|
141
|
+
`)}function oG(t,e){return t.length<=e?t:t.slice(0,e-1).trimEnd()+"\u2026"}var TO=p(()=>{"use strict"});var DO=p(()=>{"use strict";wp();lO();cO();uO();dO();fO();yO();Wm();wO();TO()});function px(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 _O(t,e){let o=px(t),n=px(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 hx(t,e){return _O(t,e)===1}var RO=p(()=>{"use strict"});function Ap(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 gx=p(()=>{"use strict"});function yx(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 bx(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 Fu,OO=p(()=>{"use strict";gx();Fu={id:"telegram",displayName:"Telegram",authIsForgeable:!1}});function vx(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Xa(t){return typeof t=="object"&&t!==null?t:void 0}function kx(t,e){let o=Xa(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=Xa(s);if(!i)continue;let a=vx(i.update_id);a!==void 0&&a>r&&(r=a);let l=Xa(i.message);if(!l)continue;let c=Xa(l.chat),u=vx(c?.id);if(u===void 0||c?.type!=="private")continue;let m=Xa(l.from),d=vx(m?.id)??u,h=m?.is_bot===!0,g=typeof l.text=="string"?l.text:"",b=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,y=(()=>{let w=Xa(l.quote)?.text;return typeof w=="string"&&w.trim()!==""?w:void 0})();n.push({chatId:u,fromId:d,text:g,...b?{forwarded:!0}:{},...y!==void 0?{quotedText:y}:{},...h?{isBot:!0}:{}})}return{updates:n,nextOffset:r+1}}var MO=p(()=>{"use strict"});var Iu,LO=p(()=>{"use strict";Iu=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 xx(t){return`connector-${t}-token`}function Sx(t){let e=t.trim();return/^\d{5,}:[A-Za-z0-9_-]{30,}$/.test(e)}function Ds(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 wx(t,e){let o=e.trim();return o.length<8?t:t.split(o).join("\xABREDACTED\xBB")}var PO=p(()=>{"use strict"});var P=p(()=>{"use strict";TC();XC();fT();MD();JR();yk();sO();DO();Xk();Yf();RO();gx();OO();MO();LO();PO()});var Tp,Dp,IO,NO,$O,BO,_p=p(()=>{"use strict";Tp={fg:{color:"#F2EEE8"},fgDim:{color:"#8A7F6D",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentMid:{color:"#C8821E",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},Dp={fg:{color:"#1A1712"},fgDim:{color:"#544B3C"},accent:{color:"#82530F",bold:!0},accentMid:{color:"#82530F",bold:!0},accentDim:{color:"#82530F",bold:!0},danger:{color:"#B23A2A",bold:!0},success:{color:"#1F6B3A"},depth:{color:"#2E6E69"}},IO={fg:{color:"white"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentMid:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},NO={fg:{color:"black"},fgDim:{color:"gray",dimColor:!0},accent:{color:"yellow",bold:!0},accentMid:{color:"yellow",bold:!0},accentDim:{color:"yellow",bold:!0},danger:{color:"red",bold:!0},success:{color:"green"},depth:{color:"cyan"}},$O={fg:{color:"#F2EEE8"},fgDim:{color:"#B0A593",dimColor:!0},accent:{color:"#DDA13F",bold:!0},accentMid:{color:"#C8821E",bold:!0},accentDim:{color:"#A66A14",bold:!0},danger:{color:"#E5897C",bold:!0},success:{color:"#82CF9E"},depth:{color:"#5BA8A2"}},BO={fg:{},fgDim:{dimColor:!0},accent:{bold:!0},accentMid:{bold:!0},accentDim:{bold:!0},danger:{bold:!0,inverse:!0},success:{},depth:{}}});var UO,jO,HO,qO,WO,GO,zO,Rp=p(()=>{"use strict";UO={you:"\u258C",aluy:"\u039B",tool:"\u23FA",toolInflight:"\u25CB",wave:"~",waveHead:"\u203A",ask:"\u26A0",ok:"\u2713",err:"\u2717",broker:"\u25CF",clock:"\u25F7",gauge:"\u25D4",window:"\u25A1",branch:"\u2387",diffDel:"\u2039",diffAdd:"\u203A",prompt:"\u203A",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u25B0",barEmpty:"\u25B1",pulseBlock:"\u2588"},jO={you:"\u258C",aluy:"\u039B",tool:"\u25CF",toolInflight:"\u25CB",wave:"~",waveHead:">",ask:"!",ok:"\u221A",err:"x",broker:"\u25CF",clock:"o",gauge:"\u25D4",window:"\u25A1",branch:"Y",diffDel:"<",diffAdd:">",prompt:">",cursor:"\u25CF",thinkingCursor:"\u25CF",planMode:"\u25D1",normalMode:"\u25C7",subagents:"+",sessionDot:"\u25CF",barFull:"\u2588",barEmpty:"\u2591",pulseBlock:"\u2588"},HO={you:">",aluy:"/\\",tool:"o",toolInflight:".",wave:"~",waveHead:">",ask:"!",ok:"[ok]",err:"[x]",broker:"(b)",clock:"t:",gauge:"%:",window:"ctx:",branch:"git:",diffDel:"-",diffAdd:"+",prompt:">",cursor:"*",thinkingCursor:"*",planMode:"[plan]",normalMode:"*",subagents:"(+)",sessionDot:"*",barFull:"#",barEmpty:".",pulseBlock:"#"},qO=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],WO=["-","\\","|","/"],GO={topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u251C",teeRight:"\u2524"},zO={topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+"}});function KO(t){return Ja.includes(t.trim().toLowerCase())}function Op(t){let e=2166136261,o=t.trim().toLowerCase();for(let r=0;r<o.length;r++)e^=o.charCodeAt(r),e=Math.imul(e,16777619);let n=(e>>>0)%Nu.length;return Nu[n].name}function YO(t,e,o){let n=t.trim().toLowerCase(),r=Nu.find(s=>s.name===n)??Nu.find(s=>s.name===Op(n));return e==="mono"?{bold:!0}:e==="truecolor"?{color:o==="light"?r.lightHex:r.darkHex,bold:!0}:{color:r.ansi,bold:!0}}var Nu,Ja,Mp=p(()=>{"use strict";Nu=[{name:"ambar",darkHex:"#DDA13F",lightHex:"#82530F",ansi:"yellow"},{name:"verde",darkHex:"#82CF9E",lightHex:"#1F6B3A",ansi:"green"},{name:"teal",darkHex:"#5BA8A2",lightHex:"#2E6E69",ansi:"cyan"},{name:"azul",darkHex:"#6FA8DC",lightHex:"#1F5C99",ansi:"blue"},{name:"violeta",darkHex:"#B08CD9",lightHex:"#6A3FA6",ansi:"magenta"},{name:"rosa",darkHex:"#E59BC0",lightHex:"#A63D74",ansi:"magenta"},{name:"coral",darkHex:"#E5897C",lightHex:"#B23A2A",ansi:"red"},{name:"ardosia",darkHex:"#9AA7B0",lightHex:"#4A5963",ansi:"gray"}],Ja=Nu.map(t=>t.name)});function Lp(t){return t!==void 0&&t!==""&&t!=="0"&&t.toLowerCase()!=="false"}function pG(t){if(t.NO_COLOR!==void 0)return"mono";let e=(t.COLORTERM??"").toLowerCase();if(e==="truecolor"||e==="24bit")return"truecolor";let o=(t.TERM??"").toLowerCase();return o==="dumb"||o===""?"mono":"ansi16"}function hG(t,e){if(e)return e;let o=t.COLORFGBG;if(o){let n=o.split(";"),r=Number(n[n.length-1]);if(Number.isFinite(r))return r>=8?"light":"dark"}return"dark"}function gG(t){let e=(t.TERM??"").toLowerCase();if(e==="linux"||e==="dumb")return!1;let o=`${t.LC_ALL??""}${t.LC_CTYPE??""}${t.LANG??""}`.toLowerCase();return!(Lp(t.ALUY_ASCII)||o&&!o.includes("utf"))}function yG(t,e){return e!==void 0?e:Lp(t.ALUY_SAFE_GLYPHS)}function bG(t,e,o){return t==="mono"?BO:t==="truecolor"?o??(e==="light"?Dp:Tp):e==="light"?NO:IO}function cn(t={}){let e=t.env??process.env,o=pG(e),n=hG(e,t.theme),r=gG(e),s=r&&yG(e,t.safeGlyphs),i=t.density??(Lp(e.ALUY_DENSITY)&&e.ALUY_DENSITY==="compact"?"compact":"comfortable"),a=t.animate??!Lp(e.ALUY_NO_ANIM),l=bG(o,n,t.truecolorPalette),c=r?s?jO:UO:HO;return{colorMode:o,brightness:n,unicode:r,safeGlyphs:s,density:i,animate:a,role:h=>l[h],sessionColor:h=>YO(h,o,n),glyph:h=>c[h],aluyMark:r?"\u039B":"/\\",spinnerFrames:r&&!s?qO:WO,box:r?GO:zO}}var Pp=p(()=>{"use strict";_p();Rp();Mp()});function _s(t){return Ko.find(e=>e.name===t)}function Wr(t){let e=t.trim().toLowerCase();if(e==="")return;let o=Ko.find(r=>r.name===e);if(o)return o;let n=Ko.find(r=>r.name===`aluy-${e}`);return n||Ko.find(r=>r.label.toLowerCase()===e)}function Pi(t){return t==="light"?"aluy-light":"aluy-dark"}function VO(t,e={}){let o=_s(t)??_s(Cx);return cn({...e,theme:o.brightness,truecolorPalette:o.palette})}var Ko,Cx,Rs=p(()=>{"use strict";Pp();_p();Ko=[{name:"aluy-dark",label:"Aluy Dark",brightness:"dark",summary:"escuro neutro (default) \u2014 fundo quase-preto, accent \xE2mbar",bg:"#070707",palette:Tp},{name:"aluy-light",label:"Aluy Light",brightness:"light",summary:"claro creme \u2014 fundo --stone-50, accent \xE2mbar escurecido (AA)",bg:"#F4ECDC",palette:Dp},{name:"aluy-slate",label:"Aluy Slate",brightness:"dark",summary:"terra escura WARM \u2014 fundo --stone-950, accent \xE2mbar",bg:"#0E0C09",palette:$O}],Cx="aluy-dark"});function Fi(t){return Yt.find(e=>e.code===t)}function Os(t){let e=t.trim().toLowerCase();if(e==="")return;let o=Yt.find(n=>n.code.toLowerCase()===e);if(o)return o;if(e==="pt"||e==="pt_br"||e==="br"||e==="portugu\xEAs"||e==="portugues")return Fi("pt-BR");if(e==="en"||e==="en_us"||e==="english"||e==="ingl\xEAs"||e==="ingles")return Fi("en")}function XO(t){let e=(t.LC_ALL??t.LC_MESSAGES??t.LANG??"").trim().toLowerCase();if(e==="")return sr;let o=e.split(".")[0].split("@")[0].replace("_","-");return o==="c"||o==="posix"?sr:o==="en"||o.startsWith("en-")?"en":sr}function Tx(t,e,o){if(t!==void 0&&t.trim()!==""){let n=Os(t);if(n)return n.code}return e!==void 0?e:XO(o)}var sr,Yt,Qa=p(()=>{"use strict";sr="pt-BR",Yt=[{code:"pt-BR",label:"Portugu\xEAs (Brasil)",summary:"idioma padr\xE3o da TUI"},{code:"en",label:"English",summary:"English interface (opt-in)"}]});import{homedir as vG}from"node:os";import{join as JO}from"node:path";import{randomBytes as kG}from"node:crypto";import{openSync as xG,writeSync as SG,closeSync as QO,readFileSync as wG,mkdirSync as EG,renameSync as AG,unlinkSync as CG,constants as Dx}from"node:fs";function ZO(t){let o=(Array.isArray(t)?t:t!==void 0?[t]:[]).filter(n=>typeof n=="string"&&n.trim()!=="");return o.length>0?o:void 0}function RG(t){if(typeof t!="string")return!1;let e=t.trim().toLowerCase();return e==="localhost"||e==="::1"||/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e)}function OG(t){return typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=65535}function _x(t){if(typeof t!="object"||t===null)return;let e=t,o={};return RG(e.host)&&(o.host=e.host.trim()),OG(e.port)&&(o.port=e.port),o.host!==void 0||o.port!==void 0?o:void 0}function MG(t){if(typeof t!="object"||t===null)return;let e=t,o=a=>typeof a=="number"&&Number.isInteger(a)&&a>0?a:void 0,n={},r=o(e.maxTokens),s=o(e.maxOutputTokens),i=o(e.maxIterations);return r!==void 0&&(n.maxTokens=r),s!==void 0&&(n.maxOutputTokens=s),i!==void 0&&(n.maxIterations=i),Object.keys(n).length>0?n:void 0}function LG(t){if(typeof t!="object"||t===null)return;let e=t,o={};return typeof e.window=="number"&&Number.isInteger(e.window)&&e.window>0&&(o.window=e.window),typeof e.autocompactAt=="number"&&Number.isFinite(e.autocompactAt)?o.autocompactAt=e.autocompactAt:typeof e.autocompactAt=="string"&&e.autocompactAt.trim()!==""&&(o.autocompactAt=e.autocompactAt.trim()),typeof e.autocompactMax=="number"&&Number.isInteger(e.autocompactMax)&&e.autocompactMax>0&&(o.autocompactMax=e.autocompactMax),Object.keys(o).length>0?o:void 0}function PG(t){if(typeof t!="object"||t===null)return;let e=t,o={};if(typeof e.telegram=="object"&&e.telegram!==null){let n=e.telegram;if(Array.isArray(n.allowlist)){let r=[];for(let s of n.allowlist)typeof s=="number"&&Number.isFinite(s)&&Number.isInteger(s)&&!r.includes(s)&&r.push(s);o.telegram={allowlist:r}}else o.telegram={}}return o.telegram!==void 0?o:void 0}function FG(t){if(typeof t!="object"||t===null)return;let e=t,o={},n=_x(e.ollama),r=_x(e.mem0),s=_x(e.headroom);return n&&(o.ollama=n),r&&(o.mem0=r),s&&(o.headroom=s),Object.keys(o).length>0?o:void 0}function IG(t){if(!Array.isArray(t))return;let e=[];for(let o of t){if(typeof o!="object"||o===null)continue;let n=o,r=typeof n.id=="string"?n.id.trim():"",s=typeof n.baseUrl=="string"?n.baseUrl.trim():"",i=typeof n.defaultModel=="string"?n.defaultModel.trim():"",a=typeof n.wireFormat=="string"?n.wireFormat:"";if(r===""||s===""||i===""||!_G.has(a))continue;let l=ZO(n.auth),c=ZO(n.models),u={id:r,wireFormat:a,baseUrl:s,defaultModel:i,...typeof n.label=="string"&&n.label.trim()?{label:n.label.trim()}:{},...l?{auth:l}:{},...c?{models:c}:{}};e.push(u)}return e.length>0?e:void 0}function $u(t){if(typeof t!="string")return!1;let e=t.trim();return e===""||e.length>NG?!1:!/[\u0000-\u001F\u007F]/.test(e)}function eM(t){if(typeof t!="object"||t===null)return{};let e=t,o={};if(typeof e.theme=="string"){let l=_s(e.theme);l&&(o.theme=l.name)}if($u(e.tier)&&(o.tier=e.tier.trim()),o.tier==="custom"&&$u(e.model)&&(o.model=e.model.trim()),typeof e.splitView=="boolean"&&(o.splitView=e.splitView),typeof e.lang=="string"){let l=Fi(e.lang);l&&(o.lang=l.code)}if(typeof e.fullscreen=="boolean"&&(o.fullscreen=e.fullscreen),typeof e.suggestions=="boolean"&&(o.suggestions=e.suggestions),(e.backend==="broker"||e.backend==="local")&&(o.backend=e.backend),$u(e.localProvider)&&(o.localProvider=e.localProvider.trim()),$u(e.localModel)&&(o.localModel=e.localModel.trim()),(e.localAuth==="apikey"||e.localAuth==="oauth"||e.localAuth==="none")&&(o.localAuth=e.localAuth),$u(e.localBaseUrl)&&(o.localBaseUrl=e.localBaseUrl.trim()),typeof e.localBudget=="boolean"&&(o.localBudget=e.localBudget),typeof e.rooms=="object"&&e.rooms!==null){let l=e.rooms;if(typeof l.backend=="string"){let c=l.backend.trim().toLowerCase();c.length>0&&c.length<=32&&(o.rooms={backend:c})}}if((e.profile==="turbo"||e.profile==="leve")&&(o.profile=e.profile),typeof e.embedder=="string"&&As(e.embedder.trim())!==void 0&&(o.embedder=e.embedder.trim()),typeof e.recallMinScore=="number"&&Number.isFinite(e.recallMinScore)&&e.recallMinScore>=0&&e.recallMinScore<=1&&(o.recallMinScore=e.recallMinScore),typeof e.sidecarToggles=="object"&&e.sidecarToggles!==null){let l=e.sidecarToggles,c={};typeof l.ollama=="boolean"&&(c.ollama=l.ollama),typeof l.mem0=="boolean"&&(c.mem0=l.mem0),typeof l.headroom=="boolean"&&(c.headroom=l.headroom),Object.keys(c).length>0&&(o.sidecarToggles=c)}let n=IG(e.providers);n&&(o.providers=n);let r=FG(e.services);r&&(o.services=r);let s=PG(e.connectors);s&&(o.connectors=s);let i=MG(e.limits);i&&(o.limits=i);let a=LG(e.context);return a&&(o.context=a),o}function Ms(t){return t.connectors?.telegram?.allowlist??[]}function Fp(t,e){let o=Ms(t);return o.includes(e)?o:[...o,e]}function Ip(t,e){return Ms(t).filter(o=>o!==e)}function Uu(t,e,o){return t!==void 0&&t.trim()!==""?t.trim():e.tier!==void 0&&e.tier.trim()!==""?e.tier.trim():o}function tM(t){return t.lang}function Rx(t,e){return t===!0?!0:e.splitView??!1}function Ox(t,e){return t===!0?!0:e.fullscreen??!1}function oM(t,e=process.env){let o=e.ALUY_SUGGESTIONS?.trim().toLowerCase();return o==="0"||o==="false"||o==="off"||o==="no"?!1:o==="1"||o==="true"||o==="on"||o==="yes"?!0:t.suggestions??!0}function Np(t,e=process.env){let o=e.ALUY_MEM0_EMBEDDER?.trim();return o!==void 0&&o!==""&&As(o)!==void 0?o:t.embedder!==void 0&&As(t.embedder)!==void 0?t.embedder:Ka}var TG,DG,Bu,_G,NG,Ue,ko=p(()=>{"use strict";Rs();Qa();P();TG=448,DG=384,Bu="config.json",_G=new Set(["openai-compat","anthropic","gemini"]);NG=128;Ue=class{base;file;constructor(e={}){this.base=e.baseDir??JO(vG(),".aluy"),this.file=JO(this.base,Bu)}get configPath(){return this.file}load(){let e;try{e=wG(this.file,"utf8")}catch{return{}}let o;try{o=JSON.parse(e)}catch{return{}}return eM(o)}save(e){try{let o=eM({...this.load(),...e});return this.writeAtomic(o),!0}catch{return!1}}saveTheme(e){return this.save({theme:e})}saveLang(e){return this.save({lang:e})}saveTier(e,o){let r=e.trim()==="custom"&&o!==void 0&&o.trim()!==""?o.trim():void 0;return this.save(r!==void 0?{tier:e,model:r}:{tier:e})}saveSplitView(e){return this.save({splitView:e})}saveFullscreen(e){return this.save({fullscreen:e})}saveSuggestions(e){return this.save({suggestions:e})}saveLocalBudget(e){return this.save({localBudget:e})}writeAtomic(e){EG(this.base,{recursive:!0,mode:TG});let o=`${this.file}.${process.pid}.${kG(6).toString("hex")}.tmp`,n=JSON.stringify(e,null,2)+`
|
|
142
142
|
`,r;try{r=xG(o,Dx.O_CREAT|Dx.O_EXCL|Dx.O_WRONLY,DG),SG(r,n),QO(r),r=void 0,AG(o,this.file)}catch(s){if(r!==void 0)try{QO(r)}catch{}try{CG(o)}catch{}throw s}}}});function Mx(t){let e=t.env??process.env,o=e[t.urlKey]?.trim();if(o!==void 0&&o!=="")return o;let n=e[t.hostKey]?.trim()||t.cfg?.host||t.defHost,r=e[t.portKey]?.trim(),s=r&&/^\d+$/.test(r)?Number(r):void 0,i=(s!==void 0&&s>=1&&s<=65535?s:void 0)??t.cfg?.port??t.defPort;return`http://${n}:${i}`}function Za(t,e){return Mx({env:t,urlKey:"ALUY_MEM0_URL",hostKey:"ALUY_MEM0_HOST",portKey:"ALUY_MEM0_PORT",cfg:e?.mem0,defHost:ln,defPort:11435})}function el(t,e){return Mx({env:t,urlKey:"ALUY_OLLAMA_URL",hostKey:"ALUY_OLLAMA_HOST",portKey:"ALUY_OLLAMA_PORT",cfg:e?.ollama,defHost:ln,defPort:11434})}function $p(t,e){return Mx({env:t,urlKey:"ALUY_HEADROOM_URL",hostKey:"ALUY_HEADROOM_HOST",portKey:"ALUY_HEADROOM_PORT",cfg:e?.headroom,defHost:ln,defPort:8787})}function nM(t){let e=t.env??{},o=(e.ALUY_HEADROOM_OFF??"").trim().toLowerCase();if(o==="1"||o==="true"||o==="on")return;if((e.ALUY_HEADROOM_URL??"").trim()!=="")return $p(t.env,t.services);let r=t.profile==="turbo"&&t.headroomToggle!==!1,s=t.services?.headroom!==void 0;if(r||s)return $p(t.env,t.services)}var ju=p(()=>{"use strict";P()});import{createHash as BG}from"node:crypto";import{spawn as UG,spawnSync as xo}from"node:child_process";import{existsSync as Ze,mkdirSync as Fx,chmodSync as Ls,writeFileSync as jG,readFileSync as Bp,rmSync as HG,copyFileSync as Up,symlinkSync as qG,unlinkSync as WG,realpathSync as sM}from"node:fs";import{join as xe,dirname as GG}from"node:path";import{homedir as jp,userInfo as zG}from"node:os";import{fileURLToPath as KG}from"node:url";function un(){return xe(jp(),uM)}function Ix(){let t=un();Ze(t)||Fx(t,{mode:tl,recursive:!0});try{Ls(t,tl)}catch{}return t}function VG(t){let e=Ix(),o=xe(e,t);Ze(o)||Fx(o,{mode:tl});try{Ls(o,tl)}catch{}return o}function iM(t){return BG("sha256").update(t).digest("hex")}function Nx(){try{let t=xo("python3",["--version"],{encoding:"utf8",timeout:15e3}),e=(t.stdout||"").trim()||(t.stderr||"").trim(),o=e.match(/Python\s+(\d+)\.(\d+)/);if(!o)return{ok:!1,version:e||"desconhecido"};let n=parseInt(o[1],10),r=parseInt(o[2],10);return{ok:n===3&&r>=10,version:`${n}.${r}`}}catch{return{ok:!1,version:"n\xE3o encontrado"}}}function dM(){try{return xo("zstd",["--version"],{timeout:1e4}).status===0}catch{return!1}}function mM(){try{return xo("tar",["--version"],{timeout:1e4}).status===0}catch{return!1}}function Hu(t){try{return xo(t,["-m","pip","--version"],{timeout:15e3}).status===0}catch{return!1}}async function XG(t,e){let o=t.body;if(!o||typeof o.getReader!="function")return Buffer.from(await t.arrayBuffer());let n=Number(t.headers?.get?.("content-length")??0),r=o.getReader(),s=[],i=0,a=-1,l=!!process.stderr.isTTY;for(;;){let{done:c,value:u}=await r.read();if(c)break;if(!u)continue;s.push(Buffer.from(u)),i+=u.length;let m=(i/1e6).toFixed(1);if(n>0){let d=Math.floor(i/n*100);if(d!==a){a=d;let h=(n/1e6).toFixed(1);process.stderr.write(`${l?"\r":""} baixando ${e}... ${d}% (${m}/${h} MB)${l?"":`
|
|
143
143
|
`}`)}}else process.stderr.write(`${l?"\r":""} baixando ${e}... ${m} MB${l?"":`
|
|
144
144
|
`}`)}return l&&process.stderr.write(`
|
|
@@ -154,7 +154,7 @@ ${t.trim()}`}}function IR(t,e,o=wu){let{older:n,recent:r}=cp(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=xe(un(),jr),c=xe(l,Pn);Ze(l)&&Up(Hp(),c)}catch{}t==="ollama"&&(await d9(),m9()),process.stderr.write(`
|
|
155
155
|
verificando "${t}"\u2026 (alguns segundos; a pr\xF3xima etapa vem em seguida)
|
|
156
156
|
`);let a=await cM(t,process.platform,!0);for(let l=0;l<l9&&!a;l++)await u9(c9),a=await cM(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 u9(t){return new Promise(e=>setTimeout(e,t))}async function d9(){for(let t of[Ln,qp()])try{await(await fetch(`http://${ln}:${rr}/api/pull`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:t,stream:!1})})).text()}catch{}}function m9(){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=jp(),n=["/usr/local/bin/ollama","/usr/bin/ollama","/opt/homebrew/bin/ollama",xe(e,".ollama","bin","ollama"),xe(un(),Cs,"bin","ollama")].find(i=>Ze(i));if(n===void 0)return;let r=xe(e,".local","bin");Fx(r,{recursive:!0});let s=xe(r,"ollama");try{if(sM(s)===sM(n))return;WG(s)}catch{}try{qG(n,s)}catch{}}catch{}}function f9(){try{return xo("python3",["-m","venv","--help"],{timeout:1e4}).status===0}catch{return!1}}function p9(){try{return xo("python3",["-m","pip","--version"],{timeout:1e4}).status===0}catch{return!1}}function h9(t){let e=[],o=[];if(t.has("ollama")&&(dM()||(e.push("zstd (extrair o Ollama)"),o.push("zstd")),mM()||(e.push("tar (extrair o Ollama)"),o.push("tar"))),t.has("mem0")||t.has("headroom")){let r=Nx();r.ok?(f9()||(e.push("m\xF3dulo venv do Python (mem0/headroom criam um virtualenv)"),o.push("python3-venv")),p9()||(e.push("pip do Python (mem0/headroom instalam pacotes)"),o.push("python3-pip"))):(e.push(`python3 >= ${Cu} 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 pM(t,e,o){let n=t??"turbo",r=Hr(e??{}),s=o?.useAgent!==!1,i=new Px({...o?.platform?{platform:o.platform}:{},...s?{agentInstaller:a9}:{}});if(!s)for(let a of h9(r))process.stderr.write(a+`
|
|
157
|
-
`);return i.provisionAll(n,r)}var uM,tl,YG,Pn,aM,Px,lM,s9,l9,c9,$x=p(()=>{"use strict";P();uM=".aluy",tl=448,YG=384;Pn="aluy-mem0-server.py";aM="application/vnd.ollama.image.model";Px=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=xe(un(),Cs,"bin","ollama");return Ze(o)}case"mem0":{let o=xe(un(),jr,"bin","python3");return Ze(o)&&Hu(o)}case"headroom":{let o=xe(un(),Ts,"bin","headroom");return Ze(o)}default:return!1}}async provision(e,o){let n=zG().uid;if(Vk(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 ZG();case"mem0":return n9();case"headroom":return r9();default:return{target:e,hashOk:!1,installed:!1,message:`Alvo desconhecido: ${String(e)}`}}}async provisionAll(e,o){if(!Du(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}}},lM="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",s9="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. ";l9=24,c9=5e3});var dn,nl=p(()=>{"use strict";dn="1.0.0-rc.93"});var vM={};ft(vM,{HELP_TEXT:()=>gM,parseArgs:()=>Bx,suggestFlag:()=>k9,versionText:()=>yM});function ut(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 g9(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 yM(){return`aluy ${dn} (@hiperplano/aluy-cli-core ${nc})`}function v9(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 k9(t){let e,o=3;for(let n of bM){let r=v9(t,n);r<o&&(o=r,e=n)}return e}function x9(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===""||bM.has(s)||o.push(`--${s}`)}return o}function Bx(t){let e=t[0];if(e==="login"&&!t.includes("-h")&&!t.includes("--help")){let q=t.slice(1),ce=ut(q,"token"),vt=ut(q,"org"),Ht=q.includes("--device"),Uo=ut(q,"provider"),Tr=q.includes("--oauth");return{kind:"login",forceDeviceFlow:Ht,...ce!==void 0?{token:ce}:{},...vt!==void 0?{org:vt}:{},...Uo!==void 0?{provider:Uo}:{},...Tr?{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 q=t.includes("--deep")||t.includes("--test"),ce=t.includes("--json");return{kind:"doctor",deep:q,json:ce}}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 q=t.includes("--json"),ce=t.findIndex(Ht=>Ht==="--backend"||Ht.startsWith("--backend=")),vt="both";if(ce!==-1){let Uo=(t[ce].includes("=")?t[ce].slice(10):t[ce+1]??"").trim().toLowerCase();Uo==="local"?vt="local":Uo==="broker"&&(vt="broker")}return{kind:"models",scope:vt,json:q,which:e==="providers"?"providers":"models"}}if(e==="telegram"&&!t.includes("-h")&&!t.includes("--help")){let q=t[1];if(q===void 0||!["login","logout","allow","deny","status"].includes(q))return{kind:"usage-error",message:"uso: aluy telegram <login|logout|allow|deny|status>",exitCode:2};let vt=t.slice(2);if(q==="login"){let Ht=ut(vt,"token");return{kind:"telegram",sub:"login",...Ht!==void 0?{token:Ht}:{}}}if(q==="allow"||q==="deny"){let Ht=vt.find(Tr=>!Tr.startsWith("-")),Uo=Ht!==void 0&&/^-?\d+$/.test(Ht)?Number(Ht):void 0;return Uo===void 0?{kind:"usage-error",message:`uso: aluy telegram ${q} <chat-id> (um inteiro)`,exitCode:2}:{kind:"telegram",sub:q,chatId:Uo}}return{kind:"telegram",sub:q}}if(e==="mcp"&&t[1]==="search"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"mcp-search",query:t.slice(2).filter(ce=>!ce.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:yM()};if(t.includes("-h")||t.includes("--help"))return{kind:"help",text:gM};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=ut(t,"tier"),h=ut(t,"lang"),g=ut(t,"max-tokens"),b=ut(t,"max-iterations"),y=ut(t,"max-output-tokens"),w=!(t.includes("--no-subagents")||t.includes("--no-subagent")),A=t.includes("--no-self-check")?"0":t.includes("--self-check")?"1":void 0,T=t.includes("--no-autocompact")?"off":ut(t,"autocompact-at"),O=t.includes("--quiet")?!0:void 0,N=t.includes("--cycle")?!0:void 0,G=ut(t,"cycles"),V=ut(t,"cycle-for"),z=ut(t,"backend"),B=ut(t,"local-provider"),X=ut(t,"local-model"),oe=ut(t,"local-auth"),ne=ut(t,"local-base-url"),M=ut(t,"model"),j=ut(t,"provider");if((t.includes("--provider")||t.some(q=>q.startsWith("--provider=")))&&(M===void 0||M.trim()===""))return{kind:"usage-error",message:"aluy: --provider exige --model (ex.: --provider <provider> --model <slug>)",exitCode:2};if((M===void 0||M.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 se=ut(t,"effort"),he=t.includes("--effort")||t.some(q=>q.startsWith("--effort=")),ie;if(se!==void 0){if(se.trim()==="")return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};if(se.length>32)return{kind:"usage-error",message:"aluy: --effort aceita no m\xE1ximo 32 caracteres",exitCode:2};ie=se}else if(he)return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};let fe=t.includes("-p")||t.includes("--print")||t.includes("--exec")||t.some(q=>q.startsWith("-p=")||q.startsWith("--print=")||q.startsWith("--exec=")),R=fe?ut(t,"print",{allowDashValue:!0})??ut(t,"exec",{allowDashValue:!0})??g9(t,"p")??void 0:void 0,de=fe?ut(t,"output-format"):void 0;if(de!==void 0&&!["text","json","stream-json"].includes(de.trim()))return{kind:"usage-error",message:`aluy: --output-format inv\xE1lido "${de}" (use text | json | stream-json)`,exitCode:2};let ae=t.includes("--new"),Y=t.includes("--continue"),Oe=t.indexOf("--resume"),yt=t.find(q=>q.startsWith("--resume=")),et=Oe>=0||yt!==void 0,Le;if(yt!==void 0)Le=yt.slice(9);else if(Oe>=0){let q=t[Oe+1];q!==void 0&&!q.startsWith("-")&&(Le=q)}let Rt=d!==void 0?t.indexOf("--tier")+1:-1,wt=h!==void 0&&!t.some(q=>q.startsWith("--lang="))?t.indexOf("--lang")+1:-1,Te=Le!==void 0&&yt===void 0?Oe+1:-1,rt=g!==void 0&&!t.some(q=>q.startsWith("--max-tokens="))?t.indexOf("--max-tokens")+1:-1,K=b!==void 0&&!t.some(q=>q.startsWith("--max-iterations="))?t.indexOf("--max-iterations")+1:-1,Ee=G!==void 0&&!t.some(q=>q.startsWith("--cycles="))?t.indexOf("--cycles")+1:-1,Fe=V!==void 0&&!t.some(q=>q.startsWith("--cycle-for="))?t.indexOf("--cycle-for")+1:-1,H=y!==void 0&&!t.some(q=>q.startsWith("--max-output-tokens="))?t.indexOf("--max-output-tokens")+1:-1,Ot=T!==void 0&&!t.includes("--no-autocompact")&&!t.some(q=>q.startsWith("--autocompact-at="))?t.indexOf("--autocompact-at")+1:-1,cs=z!==void 0&&!t.some(q=>q.startsWith("--backend="))?t.indexOf("--backend")+1:-1,Zo=(q,ce)=>ce!==void 0&&!t.some(vt=>vt.startsWith(`--${q}=`))?t.indexOf(`--${q}`)+1:-1,k=Zo("local-provider",B),Ut=Zo("local-model",X),Ar=Zo("local-auth",oe),At=Zo("local-base-url",ne),en=M!==void 0&&!t.some(q=>q.startsWith("--model="))?t.indexOf("--model")+1:-1,us=j!==void 0&&!t.some(q=>q.startsWith("--provider="))?t.indexOf("--provider")+1:-1,ai=ie!==void 0&&!t.some(q=>q.startsWith("--effort="))?t.indexOf("--effort")+1:-1,tn=de!==void 0&&!t.some(q=>q.startsWith("--output-format="))?t.indexOf("--output-format")+1:-1,wn=R!==void 0&&!t.some(q=>q.startsWith("-p=")||q.startsWith("--print=")||q.startsWith("--exec="))?Math.max(t.indexOf("-p"),t.indexOf("--print"),t.indexOf("--exec"))+1:-1,on=t.find((q,ce)=>!q.startsWith("-")&&ce!==Rt&&ce!==wt&&ce!==cs&&ce!==k&&ce!==Ut&&ce!==Ar&&ce!==At&&ce!==en&&ce!==us&&ce!==ai&&ce!==tn&&ce!==wn&&ce!==Te&&ce!==rt&&ce!==K&&ce!==H&&ce!==Ot&&ce!==Ee&&ce!==Fe),Bo=(R??on??"").trim();if(Bo!==""&&!/\s/.test(Bo)&&b9.has(Bo.toLowerCase()))return{kind:"usage-error",message:`aluy: "${Bo}" \xE9 um comando de SESS\xC3O, n\xE3o um objetivo. Use /${Bo} 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 "${Bo} o arquivo X"\`).`,exitCode:2};let Cr=Y?{kind:"continue"}:et?{kind:"resume",...Le!==void 0?{id:Le}:{}}:void 0,Gn=new Set([Rt,wt,cs,k,Ut,Ar,At,en,us,ai,tn,wn,Te,rt,K,H,Ot,Ee,Fe].filter(q=>q>=0));for(let q of y9){let ce=t.indexOf(q);ce>=0&&!t[ce].includes("=")&&Gn.add(ce+1)}let jt=x9(t,Gn);return{kind:"launch",mode:s,unsafe:s==="unsafe",unsafeAliasUsed:n,...jt.length>0?{unknownFlags:jt}:{},dense:i,fresh:ae,subAgents:w,safeGlyphs:a,telegram:l,print:fe,...c!==void 0?{split:c}:{},...u!==void 0?{fullscreen:u}:{},...m!==void 0?{budget:m}:{},...on!==void 0?{goal:on}:{},...d!==void 0?{tier:d}:{},...z!==void 0?{backend:z}:{},...B!==void 0?{localProvider:B}:{},...X!==void 0?{localModel:X}:{},...oe!==void 0?{localAuth:oe}:{},...ne!==void 0?{localBaseUrl:ne}:{},...M!==void 0?{model:M}:{},...j!==void 0?{provider:j}:{},...ie!==void 0?{effort:ie}:{},...R!==void 0?{printArg:R}:{},...de!==void 0?{outputFormat:de}:{},...h!==void 0?{lang:h}:{},...Cr!==void 0?{resume:Cr}:{},...g!==void 0?{maxTokens:g}:{},...b!==void 0?{maxIterations:b}:{},...y!==void 0?{maxOutputTokens:y}:{},...A!==void 0?{selfCheck:A}:{},...T!==void 0?{autoCompactAt:T}:{},...O!==void 0?{quiet:O}:{},...N!==void 0?{cycle:N}:{},...G!==void 0?{cycles:G}:{},...V!==void 0?{cycleFor:V}:{}}}var gM,bM,y9,b9,Ux=p(()=>{"use strict";P();nl();gM=`aluy \u2014 agente de terminal que roda na sua m\xE1quina, com o seu provider de LLM
|
|
157
|
+
`);return i.provisionAll(n,r)}var uM,tl,YG,Pn,aM,Px,lM,s9,l9,c9,$x=p(()=>{"use strict";P();uM=".aluy",tl=448,YG=384;Pn="aluy-mem0-server.py";aM="application/vnd.ollama.image.model";Px=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=xe(un(),Cs,"bin","ollama");return Ze(o)}case"mem0":{let o=xe(un(),jr,"bin","python3");return Ze(o)&&Hu(o)}case"headroom":{let o=xe(un(),Ts,"bin","headroom");return Ze(o)}default:return!1}}async provision(e,o){let n=zG().uid;if(Vk(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 ZG();case"mem0":return n9();case"headroom":return r9();default:return{target:e,hashOk:!1,installed:!1,message:`Alvo desconhecido: ${String(e)}`}}}async provisionAll(e,o){if(!Du(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}}},lM="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",s9="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. ";l9=24,c9=5e3});var dn,nl=p(()=>{"use strict";dn="1.0.0-rc.94"});var vM={};ft(vM,{HELP_TEXT:()=>gM,parseArgs:()=>Bx,suggestFlag:()=>k9,versionText:()=>yM});function ut(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 g9(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 yM(){return`aluy ${dn} (@hiperplano/aluy-cli-core ${nc})`}function v9(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 k9(t){let e,o=3;for(let n of bM){let r=v9(t,n);r<o&&(o=r,e=n)}return e}function x9(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===""||bM.has(s)||o.push(`--${s}`)}return o}function Bx(t){let e=t[0];if(e==="login"&&!t.includes("-h")&&!t.includes("--help")){let q=t.slice(1),ce=ut(q,"token"),vt=ut(q,"org"),Ht=q.includes("--device"),Uo=ut(q,"provider"),Tr=q.includes("--oauth");return{kind:"login",forceDeviceFlow:Ht,...ce!==void 0?{token:ce}:{},...vt!==void 0?{org:vt}:{},...Uo!==void 0?{provider:Uo}:{},...Tr?{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 q=t.includes("--deep")||t.includes("--test"),ce=t.includes("--json");return{kind:"doctor",deep:q,json:ce}}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 q=t.includes("--json"),ce=t.findIndex(Ht=>Ht==="--backend"||Ht.startsWith("--backend=")),vt="both";if(ce!==-1){let Uo=(t[ce].includes("=")?t[ce].slice(10):t[ce+1]??"").trim().toLowerCase();Uo==="local"?vt="local":Uo==="broker"&&(vt="broker")}return{kind:"models",scope:vt,json:q,which:e==="providers"?"providers":"models"}}if(e==="telegram"&&!t.includes("-h")&&!t.includes("--help")){let q=t[1];if(q===void 0||!["login","logout","allow","deny","status"].includes(q))return{kind:"usage-error",message:"uso: aluy telegram <login|logout|allow|deny|status>",exitCode:2};let vt=t.slice(2);if(q==="login"){let Ht=ut(vt,"token");return{kind:"telegram",sub:"login",...Ht!==void 0?{token:Ht}:{}}}if(q==="allow"||q==="deny"){let Ht=vt.find(Tr=>!Tr.startsWith("-")),Uo=Ht!==void 0&&/^-?\d+$/.test(Ht)?Number(Ht):void 0;return Uo===void 0?{kind:"usage-error",message:`uso: aluy telegram ${q} <chat-id> (um inteiro)`,exitCode:2}:{kind:"telegram",sub:q,chatId:Uo}}return{kind:"telegram",sub:q}}if(e==="mcp"&&t[1]==="search"&&!t.includes("-h")&&!t.includes("--help"))return{kind:"mcp-search",query:t.slice(2).filter(ce=>!ce.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:yM()};if(t.includes("-h")||t.includes("--help"))return{kind:"help",text:gM};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=ut(t,"tier"),h=ut(t,"lang"),g=ut(t,"max-tokens"),b=ut(t,"max-iterations"),y=ut(t,"max-output-tokens"),w=!(t.includes("--no-subagents")||t.includes("--no-subagent")),A=t.includes("--no-self-check")?"0":t.includes("--self-check")?"1":void 0,T=t.includes("--no-autocompact")?"off":ut(t,"autocompact-at"),O=t.includes("--quiet")?!0:void 0,N=t.includes("--cycle")?!0:void 0,G=ut(t,"cycles"),V=ut(t,"cycle-for"),z=ut(t,"backend"),B=ut(t,"local-provider"),X=ut(t,"local-model"),oe=ut(t,"local-auth"),ne=ut(t,"local-base-url"),M=ut(t,"model"),j=ut(t,"provider");if((t.includes("--provider")||t.some(q=>q.startsWith("--provider=")))&&(M===void 0||M.trim()===""))return{kind:"usage-error",message:"aluy: --provider exige --model (ex.: --provider <provider> --model <slug>)",exitCode:2};if((M===void 0||M.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 se=ut(t,"effort"),he=t.includes("--effort")||t.some(q=>q.startsWith("--effort=")),ie;if(se!==void 0){if(se.trim()==="")return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};if(se.length>32)return{kind:"usage-error",message:"aluy: --effort aceita no m\xE1ximo 32 caracteres",exitCode:2};ie=se}else if(he)return{kind:"usage-error",message:"aluy: --effort requer um valor (ex.: --effort low)",exitCode:2};let fe=t.includes("-p")||t.includes("--print")||t.includes("--exec")||t.some(q=>q.startsWith("-p=")||q.startsWith("--print=")||q.startsWith("--exec=")),R=fe?ut(t,"print",{allowDashValue:!0})??ut(t,"exec",{allowDashValue:!0})??g9(t,"p")??void 0:void 0,de=fe?ut(t,"output-format"):void 0;if(de!==void 0&&!["text","json","stream-json"].includes(de.trim()))return{kind:"usage-error",message:`aluy: --output-format inv\xE1lido "${de}" (use text | json | stream-json)`,exitCode:2};let ae=t.includes("--new"),Y=t.includes("--continue"),Oe=t.indexOf("--resume"),yt=t.find(q=>q.startsWith("--resume=")),et=Oe>=0||yt!==void 0,Le;if(yt!==void 0)Le=yt.slice(9);else if(Oe>=0){let q=t[Oe+1];q!==void 0&&!q.startsWith("-")&&(Le=q)}let Rt=d!==void 0?t.indexOf("--tier")+1:-1,wt=h!==void 0&&!t.some(q=>q.startsWith("--lang="))?t.indexOf("--lang")+1:-1,Te=Le!==void 0&&yt===void 0?Oe+1:-1,rt=g!==void 0&&!t.some(q=>q.startsWith("--max-tokens="))?t.indexOf("--max-tokens")+1:-1,K=b!==void 0&&!t.some(q=>q.startsWith("--max-iterations="))?t.indexOf("--max-iterations")+1:-1,Ee=G!==void 0&&!t.some(q=>q.startsWith("--cycles="))?t.indexOf("--cycles")+1:-1,Fe=V!==void 0&&!t.some(q=>q.startsWith("--cycle-for="))?t.indexOf("--cycle-for")+1:-1,H=y!==void 0&&!t.some(q=>q.startsWith("--max-output-tokens="))?t.indexOf("--max-output-tokens")+1:-1,Ot=T!==void 0&&!t.includes("--no-autocompact")&&!t.some(q=>q.startsWith("--autocompact-at="))?t.indexOf("--autocompact-at")+1:-1,cs=z!==void 0&&!t.some(q=>q.startsWith("--backend="))?t.indexOf("--backend")+1:-1,Zo=(q,ce)=>ce!==void 0&&!t.some(vt=>vt.startsWith(`--${q}=`))?t.indexOf(`--${q}`)+1:-1,k=Zo("local-provider",B),Ut=Zo("local-model",X),Ar=Zo("local-auth",oe),At=Zo("local-base-url",ne),en=M!==void 0&&!t.some(q=>q.startsWith("--model="))?t.indexOf("--model")+1:-1,us=j!==void 0&&!t.some(q=>q.startsWith("--provider="))?t.indexOf("--provider")+1:-1,ai=ie!==void 0&&!t.some(q=>q.startsWith("--effort="))?t.indexOf("--effort")+1:-1,tn=de!==void 0&&!t.some(q=>q.startsWith("--output-format="))?t.indexOf("--output-format")+1:-1,wn=R!==void 0&&!t.some(q=>q.startsWith("-p=")||q.startsWith("--print=")||q.startsWith("--exec="))?Math.max(t.indexOf("-p"),t.indexOf("--print"),t.indexOf("--exec"))+1:-1,on=t.find((q,ce)=>!q.startsWith("-")&&ce!==Rt&&ce!==wt&&ce!==cs&&ce!==k&&ce!==Ut&&ce!==Ar&&ce!==At&&ce!==en&&ce!==us&&ce!==ai&&ce!==tn&&ce!==wn&&ce!==Te&&ce!==rt&&ce!==K&&ce!==H&&ce!==Ot&&ce!==Ee&&ce!==Fe),Bo=(R??on??"").trim();if(Bo!==""&&!/\s/.test(Bo)&&b9.has(Bo.toLowerCase()))return{kind:"usage-error",message:`aluy: "${Bo}" \xE9 um comando de SESS\xC3O, n\xE3o um objetivo. Use /${Bo} 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 "${Bo} o arquivo X"\`).`,exitCode:2};let Cr=Y?{kind:"continue"}:et?{kind:"resume",...Le!==void 0?{id:Le}:{}}:void 0,Gn=new Set([Rt,wt,cs,k,Ut,Ar,At,en,us,ai,tn,wn,Te,rt,K,H,Ot,Ee,Fe].filter(q=>q>=0));for(let q of y9){let ce=t.indexOf(q);ce>=0&&!t[ce].includes("=")&&Gn.add(ce+1)}let jt=x9(t,Gn);return{kind:"launch",mode:s,unsafe:s==="unsafe",unsafeAliasUsed:n,...jt.length>0?{unknownFlags:jt}:{},dense:i,fresh:ae,subAgents:w,safeGlyphs:a,telegram:l,print:fe,...c!==void 0?{split:c}:{},...u!==void 0?{fullscreen:u}:{},...m!==void 0?{budget:m}:{},...on!==void 0?{goal:on}:{},...d!==void 0?{tier:d}:{},...z!==void 0?{backend:z}:{},...B!==void 0?{localProvider:B}:{},...X!==void 0?{localModel:X}:{},...oe!==void 0?{localAuth:oe}:{},...ne!==void 0?{localBaseUrl:ne}:{},...M!==void 0?{model:M}:{},...j!==void 0?{provider:j}:{},...ie!==void 0?{effort:ie}:{},...R!==void 0?{printArg:R}:{},...de!==void 0?{outputFormat:de}:{},...h!==void 0?{lang:h}:{},...Cr!==void 0?{resume:Cr}:{},...g!==void 0?{maxTokens:g}:{},...b!==void 0?{maxIterations:b}:{},...y!==void 0?{maxOutputTokens:y}:{},...A!==void 0?{selfCheck:A}:{},...T!==void 0?{autoCompactAt:T}:{},...O!==void 0?{quiet:O}:{},...N!==void 0?{cycle:N}:{},...G!==void 0?{cycles:G}:{},...V!==void 0?{cycleFor:V}:{}}}var gM,bM,y9,b9,Ux=p(()=>{"use strict";P();nl();gM=`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>]
|
|
@@ -471,7 +471,7 @@ Op\xE7\xF5es:
|
|
|
471
471
|
${e}${o}${n}
|
|
472
472
|
|
|
473
473
|
Responda APENAS com JSON no formato:
|
|
474
|
-
{"chosen": "<id da op\xE7\xE3o escolhida>", "confidence": <0.0 a 1.0>, "reasoning": "<racioc\xEDnio curto>"}`}function R4(t,e){let o={chosen:e[0]??"continuar",confidence:0,reasoning:"fallback: parse mal-sucedido, default primeira op\xE7\xE3o",fallback:!0},n=lS(t);if(n&&cS(n,e))return uS(n,!1);let r=n!==void 0,s=t.match(/```(?:json)?\s*([\s\S]*?)```/);if(s?.[1]){let a=lS(s[1].trim());if(a&&cS(a,e))return uS(a,!1);if(a!==void 0)return{...o,fallback:!0}}let i=t.match(/\{[\s\S]*"chosen"[\s\S]*\}/);if(i){let a=lS(i[0]);if(a&&cS(a,e))return uS(a,!1);if(a!==void 0)return{...o,fallback:!0}}if(r)return{...o,fallback:!0};for(let a of e)if(t.includes(a))return{chosen:a,confidence:.5,reasoning:"fallback: id encontrado no texto",fallback:!0};return{...o,fallback:!0}}function lS(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}catch{return}}function cS(t,e){let o=t.chosen;if(typeof o!="string"||!e.includes(o))return!1;let n=t.confidence;return!(typeof n!="number"||!Number.isFinite(n)||typeof t.reasoning!="string")}function uS(t,e){return{chosen:String(t.chosen),confidence:Number(t.confidence),reasoning:String(t.reasoning),fallback:e}}function O4(t,e,o){let n="11434";try{let s=new URL(o).port;s&&(n=s)}catch{}let r=t.includes(":")?`[${t}]`:t;return`${e}://${r}:${n}/api/chat`}function M4(t){try{let e=JSON.parse(t),o=e?.message?.content;if(typeof o=="string"&&o.trim().length>0)return o.trim();let n=e?.response;return typeof n=="string"&&n.trim().length>0?n.trim():void 0}catch{return}}function L4(t){return Math.max(0,Math.min(1,t))}function P4(t){return t.length<=300?t:t.slice(0,297)+"..."}var SL,wL,EL,
|
|
474
|
+
{"chosen": "<id da op\xE7\xE3o escolhida>", "confidence": <0.0 a 1.0>, "reasoning": "<racioc\xEDnio curto>"}`}function R4(t,e){let o={chosen:e[0]??"continuar",confidence:0,reasoning:"fallback: parse mal-sucedido, default primeira op\xE7\xE3o",fallback:!0},n=lS(t);if(n&&cS(n,e))return uS(n,!1);let r=n!==void 0,s=t.match(/```(?:json)?\s*([\s\S]*?)```/);if(s?.[1]){let a=lS(s[1].trim());if(a&&cS(a,e))return uS(a,!1);if(a!==void 0)return{...o,fallback:!0}}let i=t.match(/\{[\s\S]*"chosen"[\s\S]*\}/);if(i){let a=lS(i[0]);if(a&&cS(a,e))return uS(a,!1);if(a!==void 0)return{...o,fallback:!0}}if(r)return{...o,fallback:!0};for(let a of e)if(t.includes(a))return{chosen:a,confidence:.5,reasoning:"fallback: id encontrado no texto",fallback:!0};return{...o,fallback:!0}}function lS(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}catch{return}}function cS(t,e){let o=t.chosen;if(typeof o!="string"||!e.includes(o))return!1;let n=t.confidence;return!(typeof n!="number"||!Number.isFinite(n)||typeof t.reasoning!="string")}function uS(t,e){return{chosen:String(t.chosen),confidence:Number(t.confidence),reasoning:String(t.reasoning),fallback:e}}function O4(t,e,o){let n="11434";try{let s=new URL(o).port;s&&(n=s)}catch{}let r=t.includes(":")?`[${t}]`:t;return`${e}://${r}:${n}/api/chat`}function M4(t){try{let e=JSON.parse(t),o=e?.message?.content;if(typeof o=="string"&&o.trim().length>0)return o.trim();let n=e?.response;return typeof n=="string"&&n.trim().length>0?n.trim():void 0}catch{return}}function L4(t){return Math.max(0,Math.min(1,t))}function P4(t){return t.length<=300?t:t.slice(0,297)+"..."}var SL,wL,EL,Sge,rh,AL=p(()=>{"use strict";P();Bs();SL=Yk,wL="qwen2.5:0.5b",EL=2500,Sge=Object.freeze({baseUrl:SL,model:wL,timeoutMs:EL});rh=class{baseUrl;model;timeoutMs;resolver;fetchFn;constructor(e={}){this.baseUrl=e.baseUrl??SL,this.model=e.model??wL,this.timeoutMs=e.timeoutMs??EL,this.resolver=e.resolver??new lo,this.fetchFn=e.fetchFn??globalThis.fetch}async judge(e){try{let o=await _i(this.baseUrl,this.resolver);if(!o.ok)return this.fallback(e,`destino recusado: ${o.reason}`);let n=_4(e),r=O4(o.pinnedIp,o.scheme,this.baseUrl),s=new AbortController,i=setTimeout(()=>s.abort(),this.timeoutMs);i.unref?.();let a;try{a=await this.fetchFn(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.model,messages:[{role:"user",content:n}],stream:!1}),signal:s.signal})}finally{clearTimeout(i)}if(!a.ok)return this.fallback(e,`Ollama respondeu HTTP ${a.status} (modelo "${this.model}" pode estar ausente \u2014 sem auto-pull)`);let l=await a.text(),c=M4(l);if(!c)return this.fallback(e,"resposta do Ollama sem conte\xFAdo parse\xE1vel");let u=e.options.map(d=>d.id),m=R4(c,u);return m.fallback?this.fallback(e,"parseVerdict usou fallback \u2014 resposta LLM n\xE3o estruturalmente v\xE1lida"):u.includes(m.chosen)?{chosen:m.chosen,confidence:L4(m.confidence),reasons:[{optionId:m.chosen,rationale:P4(m.reasoning)}],mode:"llm"}:this.fallback(e,`chosen "${m.chosen}" n\xE3o est\xE1 nas op\xE7\xF5es v\xE1lidas`)}catch(o){let n=o instanceof Error?o.message:String(o),r=n.includes("abort")||n.includes("timeout")||n.includes("cancelado");return this.fallback(e,r?`timeout (${this.timeoutMs}ms)`:`erro: ${n}`)}}fallback(e,o){let n=e.options[0],r=n?.id??"continuar",s=n?.label??"continuar";return{chosen:r,confidence:.5,reasons:[{optionId:r,rationale:`[degrada\xE7\xE3o heur\xEDstica] ${o}. Fallback para op\xE7\xE3o default "${s}".`}],mode:"heuristic"}}}});import{join as CL}from"node:path";import{mkdirSync as TL}from"node:fs";import{homedir as F4}from"node:os";var I4,DL,N4,_L,$4,B4,ed,dS=p(()=>{"use strict";P();Bs();I4="memory",DL=448,N4=`http://127.0.0.1:${11435}`,_L=5e3,$4=1048576,B4="aluy-vau/0.1 (Mem0MemoryEngine; EST-1132)",ed=class{mem0Url;base;memoryDir;resolver;fetcher;deleteFetch;targetCache;constructor(e={}){let o=e.mem0Url??N4;try{new URL(o)}catch{throw new Error(`Mem0MemoryEngine: URL inv\xE1lida \u2014 ${o}`)}this.mem0Url=o.replace(/\/$/,""),this.resolver=e.resolver??new lo,this.fetcher=e.fetcher??new $s,this.deleteFetch=e.deleteFetch??((n,r)=>fetch(n,r)),this.base=e.baseDir??CL(F4(),".aluy"),this.memoryDir=CL(this.base,I4),this.ensureMemoryDir()}async add(e){let{content:o,scope:n,metadata:r}=e,s=o.map(a=>({role:"user",content:a.text})),i={user_id:n,messages:s};r&&(i.metadata=r);try{let a=await this.pinnedJson("/v1/memories/",{method:"POST",body:JSON.stringify(i)});return{ids:o.map((c,u)=>a.id?`${a.id}-${u}`:`${n}-${Date.now()}-${u}`)}}catch{return{ids:[]}}}async search(e){let{scopes:o,query:n,limit:r=10}=e,s=o.length>0?o:["default"];return{hits:(await Promise.all(s.map(async c=>{try{let u=new URLSearchParams({user_id:c,query:n,limit:String(Math.max(1,r))});return(await this.pinnedJson(`/v1/memories/?${u.toString()}`,{method:"GET"})).results??[]}catch{return[]}}))).flat().map(c=>({id:c.id,text:c.memory,score:c.score??0,...c.metadata!==void 0?{metadata:c.metadata}:{}})).sort((c,u)=>u.score-c.score).slice(0,r)}}async scope(e){let{operation:o}=e;switch(o.kind){case"list":try{return{scopes:((await this.pinnedJson("/v1/users/",{method:"GET"})).users??[]).map(s=>({scope:s.user_id,itemCount:s.memory_count??0,...s.created_at?{createdAt:new Date(s.created_at).getTime()}:{}}))}}catch{return{scopes:[]}}case"info":try{let r=(await this.pinnedJson(`/v1/memories/?user_id=${encodeURIComponent(o.scope)}&query=&limit=1000`,{method:"GET"})).results??[];return{scopes:[{scope:o.scope,itemCount:r.length}]}}catch{return{scopes:[{scope:o.scope,itemCount:0}]}}case"delete":try{return await this.pinnedDelete(`/v1/memories/?user_id=${encodeURIComponent(o.scope)}`),{deleted:!0}}catch{return{deleted:!1}}default:return{scopes:[]}}}async ensureTarget(){this.targetCache||(this.targetCache=_i(this.mem0Url,this.resolver));let e=await this.targetCache;if(!e.ok)throw new Error(`Mem0MemoryEngine: egress s\xF3 loopback (CA-G2-6). ${e.reason}. Use 127.0.0.1.`);return e}buildPinnedUrl(e){let o=new URL(this.mem0Url).port,n=e.pinnedIp.includes(":")?`[${e.pinnedIp}]`:e.pinnedIp;return`${e.scheme}://${n}${o?`:${o}`:""}`}async pinnedJson(e,o){let n=await this.ensureTarget(),r=this.buildPinnedUrl(n),s=await this.fetcher.fetchPinned({url:`${r}${e}`,host:n.host,pinnedIp:n.pinnedIp,maxBytes:$4,timeoutMs:_L,method:o.method,...o.body!==void 0?{body:o.body,contentType:"application/json"}:{}});if(s.status!==200&&s.status!==201)throw new Error(`Mem0 HTTP ${s.status}`);let i=s.body;return!i||!i.trim()?{}:JSON.parse(i)}async pinnedDelete(e){let o=await this.ensureTarget(),n=this.buildPinnedUrl(o),r=new AbortController,s=setTimeout(()=>r.abort(),_L);try{let i=await this.deleteFetch(`${n}${e}`,{method:"DELETE",signal:r.signal,headers:{"Content-Type":"application/json","User-Agent":B4}});if(!i.ok)throw new Error(`Mem0 HTTP ${i.status}`);await i.text()}finally{clearTimeout(s)}}ensureMemoryDir(){let e=this.base;try{TL(e,{mode:DL,recursive:!0})}catch{}try{TL(this.memoryDir,{mode:DL})}catch(o){o.code}}}});import{createHash as U4}from"node:crypto";import{basename as j4,resolve as H4}from"node:path";function RL(t){return t.replace(q4,"_").replace(W4,"")}function G4(t){return`proj_${RL(t)}`}function OL(t){let e=H4(t),o=U4("sha256").update(e).digest("hex").slice(0,12),r=`proj_${RL(j4(e))||"root"}_${o}`,s=G4(t);return{scope:r,legacy:s,recallScopes:r===s?[r]:[r,s]}}var q4,W4,ML=p(()=>{"use strict";q4=/[^a-zA-Z0-9]+/g,W4=/^_+|_+$/g});function sh(t={}){let e=t.env??process.env,o=e.ALUY_MAESTRO,n=e.ALUY_MAESTRO_OFF;if(n&&n!=="0"&&n!=="false"||o==="0"||o==="false")return;let r=Hr({ollama:e.ALUY_MAESTRO_OLLAMA!=="0",mem0:e.ALUY_MAESTRO_MEM0!=="0"}),s=t.bus??new up,i=t.judge??new rh({baseUrl:el(t.env,t.services),model:Ln});async function a(l){let c=WR(l);if(r.has("ollama")&&l.length>=2)try{let u=await i.judge({question:"Dados os sinais de supervis\xE3o, qual a decis\xE3o de reg\xEAncia?",options:[{id:"continuar",label:"Continuar normalmente"},{id:"pausar",label:"Pausar o loop"},{id:"recuperar",label:"Recuperar contexto"},{id:"parar",label:"Parar o loop"}],context:l.map(m=>`${m.origin}/${m.severity}: ${JSON.stringify(m.payload)}`).join(`
|
|
475
475
|
`),hint:"Prefira seguran\xE7a e continuidade."});if(u.mode==="llm"&&u.confidence>.6)return u.chosen==="continuar"&&u.chosen!==c.decision.action&&u.confidence>.8?{action:"continuar",signals:l,reason:`motor-a:${c.decision.action} + judge:continuar@${u.confidence.toFixed(2)} \u2014 judge preferiu FLUIR (Inv. I)`,ts:Date.now()}:{...c.decision,reason:`${c.decision.reason} | judge:${u.chosen}@${u.confidence.toFixed(2)}`}}catch{}return c.decision}return{bus:s,rege:a}}function mS(t,e,o){if(t===void 0||t==="")return o;let n=Number(t);return!Number.isFinite(n)||!Number.isInteger(n)||n<e?o:n}function LL(t){let e=t?.env??process.env,o=e.ALUY_MEM_OFF;if(o&&o!=="0"&&o!=="false"||e.ALUY_MAESTRO_MEM0==="0")return;let n=t?.cwd??process.cwd(),{scope:r,recallScopes:s}=OL(n);return{memory:t?.memory??new ed({mem0Url:Za(e,t?.services)}),memoryScope:r,memoryRecallScopes:s}}function PL(t){let e=t??process.env,o=e.ALUY_CONT_OFF;if(o&&o!=="0"&&o!=="false")return;let n=e.ALUY_CONT;if(n==="0"||n==="false")return;let r=mS(e.ALUY_CONT_MAX,1,6),s=mS(e.ALUY_CONT_NUDGE_AT,1,1),i=Math.min(mS(e.ALUY_CONT_GIVEUP_AT,1,4),r);return{maxContinuations:r,nudgeAt:s,giveUpAt:i}}var fS=p(()=>{"use strict";P();AL();dS();ju();ML()});import{homedir as NL}from"node:os";import{join as td}from"node:path";import{statSync as $L,readFileSync as pS}from"node:fs";function ul(t){return t.aluyHome??td(NL(),".aluy")}async function Z4(t){let e=t.env??process.env;if(ah(t))return{present:!1,keychainAvailable:!0,localSkip:!0};try{let o=Lo(e),n=new io,s=await new ro({...o,baseUrl:o.identityBaseUrl,store:n}).whoami();if(!s)return{present:!1,keychainAvailable:!0};let i={present:!0,keychainAvailable:!0,...s.user!==void 0?{user:s.user}:{},org:s.organization_id,kind:s.kind},a=await eK(t);return{...i,...a}}catch(o){return o instanceof Vt?{present:!1,keychainAvailable:!1}:{present:!1,keychainAvailable:!0}}}async function eK(t){if(!t.getAccessToken)return{};let e=t.env??process.env,{brokerBaseUrl:o}=mn(e),n;try{n=await t.getAccessToken()}catch{return{}}let r=await cl(`${o}${V4}`,ih(t),{headers:{authorization:`Bearer ${n}`}});return!r.reached||r.status===void 0?{}:r.status>=200&&r.status<300?{authValidated:!0,authStatus:r.status}:r.status===401||r.status===403?{authValidated:!1,authStatus:r.status}:{authStatus:r.status}}function UL(t,e){return{method:"GET",headers:{accept:"application/json",...e??{}},signal:t}}async function cl(t,e,o){let n=new AbortController,r=setTimeout(()=>n.abort(),BL);try{return{reached:!0,status:(await e(t,UL(n.signal,o?.headers))).status}}catch{return{reached:!1}}finally{clearTimeout(r)}}function ih(t){return t.fetch??globalThis.fetch}function ah(t){let e=t.env??process.env,o;try{o=new Ue({baseDir:ul(t)}).load().backend}catch{}return Pr({env:e.ALUY_BACKEND,config:o})==="local"}async function tK(t){let e=t.env??process.env,{brokerBaseUrl:o}=mn(e);if(ah(t))return{url:o,probe:{reached:!1},localSkip:!0};let n=await cl(`${o}${z4}`,ih(t));return{url:o,probe:n}}async function oK(t){let e=t.env??process.env;if(ah(t))return{tiers:{reached:!1},custom:{reached:!1},localSkip:!0};let{brokerBaseUrl:o}=mn(e),n=ih(t),r;if(t.getAccessToken)try{r={authorization:`Bearer ${await t.getAccessToken()}`}}catch{r=void 0}let[s,i]=await Promise.all([cl(`${o}${K4}`,n,r?{headers:r}:{}),nK(`${o}${Y4}`,n,r)]);return{tiers:s,custom:i.probe,...i.count!==void 0?{customCount:i.count}:{}}}async function nK(t,e,o){let n=new AbortController,r=setTimeout(()=>n.abort(),BL);try{let s=await e(t,UL(n.signal,o));if(s.status<200||s.status>=300)return{probe:{reached:!0,status:s.status}};let i;try{let l=(await s.json())?.data;Array.isArray(l)&&(i=l.length)}catch{i=void 0}return{probe:{reached:!0,status:s.status},...i!==void 0?{count:i}:{}}}catch{return{probe:{reached:!1}}}finally{clearTimeout(r)}}async function rK(t){let e=ul(t),o=t.workspaceRoot??process.cwd(),n=new fn({baseDir:aK(t)}).load(),r=new Xr({baseDir:e}).load(),s=lK(o),i=[n.error,r.error,s.error].filter(m=>typeof m=="string"&&m.length>0),a=[{origin:"codex",config:n.config},{origin:"aluy-global",config:r.config},{origin:"project",config:s.config}],l=Oi(a),c=t.makeMcpTransport?await sK(a,t.makeMcpTransport):void 0;return{servers:l.map(m=>{let d=Mi(m),h=d!==void 0,g=m.state.kind==="disabled",b=c?.get(m.name);return{name:m.name,origin:m.origin,invalid:h,...h?{invalidWarning:d}:{},disabled:g,...b&&!h&&!g?{connected:b.ok,...b.ok?{toolCount:b.toolCount??0}:{connectError:b.error??"falha no handshake"}}:{}}}),configErrors:i}}async function sK(t,e){let o=Ou(...t.map(a=>a.config)),r=Pu(o,a=>iK(e(a),X4)),s;try{s=await Promise.race([r,new Promise((a,l)=>setTimeout(()=>l(new Error(`timeout global de ${Math.round(FL/1e3)}s`)),FL))])}catch{return r.then(a=>IL(a.transports),()=>{}),new Map}let i=new Map;for(let a of s.servers)i.set(a.server,a.ok?{ok:!0,toolCount:a.tools.length}:{ok:!1,error:a.error??"falha no handshake"});return await IL(s.transports),i}async function IL(t){await Promise.all(t.map(async e=>{try{await Promise.race([e.close(),new Promise(o=>setTimeout(o,J4))])}catch{}}))}function iK(t,e){return{async connect(o){let n,r=new Promise((s,i)=>{n=setTimeout(()=>i(new Error(`timeout de ${Math.round(e/1e3)}s no handshake`)),e)});try{return await Promise.race([t.connect(o),r])}finally{n&&clearTimeout(n)}},callTool:(o,n)=>t.callTool(o,n),close:()=>t.close()}}function aK(t){return(t.env??process.env).CODEX_HOME??td(NL(),".codex")}function lK(t){let e=td(t,Yo),o;try{let r=$L(e);if(!r.isFile()||r.size>Q4)return{config:De};o=pS(e,"utf8")}catch{return{config:De}}let n;try{n=JSON.parse(o)}catch{return{config:De,error:`${e}: JSON inv\xE1lido.`}}try{return{config:zo(n)}}catch(r){return{config:De,error:r instanceof be?r.message:String(r)}}}function cK(t){let o=new Jr({baseDir:ul(t)}).load();return{validCount:o.profiles.length,rejected:o.errors.map(n=>({file:n.file,reason:n.reason}))}}function uK(t){let e=t.env??process.env,o=td(ul(t),Bu),n=!1,r=!1,s,i;try{if($L(o).isFile()){n=!0;let u=pS(o,"utf8");try{let m=JSON.parse(u);typeof m.theme=="string"&&(s=m.theme),typeof m.tier=="string"&&(i=m.tier)}catch{r=!0}}}catch{n=!1}let a=Vm(void 0,e.ALUY_MAX_TOKENS),l=Xm(void 0,e.ALUY_MAX_ITERATIONS);return{exists:n,corrupted:r,...s!==void 0?{theme:s,themeKnown:_s(s)!==void 0}:{},...i!==void 0?{tier:i,tierKnown:rS(i)!==void 0}:{},maxTokens:a,maxIterations:l,flags:dK(e,t.extraFlags)}}function dK(t,e){let o=[...e??[]];return(t.ALUY_NATIVE_TOOLS_OFF==="1"||t.ALUY_NATIVE_TOOLS_OFF==="true")&&o.push("ALUY_NATIVE_TOOLS_OFF"),t.ALUY_OVERWRITE_RENDER==="0"&&o.push("ALUY_OVERWRITE_RENDER=0"),t.ALUY_SAFE_GLYPHS==="1"&&o.push("ALUY_SAFE_GLYPHS"),o}function mK(){return{aluy:dn,node:process.version}}async function fK(t){if(!t.memory)return{accessible:!0,count:0};try{let e=await t.memory.count();return e===null?{accessible:!1,count:0}:{accessible:!0,count:e}}catch{return{accessible:!1,count:0}}}async function pK(t){let e=ih(t),o=t.env??process.env,n;try{n=new Ue({baseDir:ul(t)}).load().services}catch{}let[r,s,i]=await Promise.all([cl(`${$p(o,n)}/health`,e),cl(`${el(o,n)}/api/tags`,e),cl(`${Za(o,n)}/health`,e)]),a="turbo",l=["ollama","mem0","headroom"];try{let c=ul(t),u=pS(td(c,Bu),"utf8"),m=JSON.parse(u);(m.profile==="leve"||m.profile==="turbo")&&(a=m.profile);let d=Hr(m.sidecarToggles??{}),h=[];d.has("ollama")&&h.push("ollama"),d.has("mem0")&&h.push("mem0"),d.has("headroom")&&h.push("headroom"),l=h}catch{}return{headroom:r,ollama:s,mem0:i,profile:a,toggles:l}}async function hK(t){let e=t.env??process.env;return{enabled:sh({env:e})!==void 0}}async function od(t={}){let e={},o=r=>t.onCheck?.(r,{...e}),n=(r,s,i)=>s.then(a=>{e[i]=a,o(r)});return e.version=mK(),o("version"),await Promise.all([n("auth",(t.gatherAuth??(()=>Z4(t)))(),"auth"),n("broker",(t.gatherBroker??(()=>tK(t)))(),"broker"),n("catalog",(t.gatherCatalog??(()=>oK(t)))(),"catalog"),n("memory",(t.gatherMemory??(()=>fK(t)))(),"memory"),n("mcp",(t.gatherMcp??(()=>rK(t)))(),"mcp"),n("agents",(t.gatherAgents??(()=>Promise.resolve(cK(t))))(),"agents"),n("config",(t.gatherConfig??(()=>Promise.resolve(uK(t))))(),"config"),n("sidecars",(t.gatherSidecars??(()=>pK(t)))(),"sidecars"),n("maestro",(t.gatherMaestro??(()=>hK(t)))(),"maestro")]),t.tierTester&&(ah(t)?e.tier={tier:"(local)",responded:!1,localSkip:!0}:await n("tier",t.tierTester().then(r=>r),"tier")),{auth:e.auth,broker:e.broker,catalog:e.catalog,mcp:e.mcp,agents:e.agents,config:e.config,version:e.version,memory:e.memory,sidecars:e.sidecars,maestro:e.maestro,...e.tier!==void 0?{tier:e.tier}:{}}}var z4,K4,Y4,V4,BL,X4,FL,J4,Q4,hS=p(()=>{"use strict";P();Rs();ju();Vr();Fs();lr();Ii();Ni();Ju();th();oh();ko();nl();fS();z4="/healthz",K4="/v1/tiers/catalog",Y4="/v1/models/custom",V4="/v1/quota",BL=4e3,X4=6e3,FL=15e3,J4=2e3,Q4=256*1024});function HL(t){if(t.localSkip)return{id:"auth",label:"credencial",status:"ok",detail:"N/A (backend local \u2014 credencial BYO via keychain/env, sem broker)"};if(!t.keychainAvailable)return{id:"auth",label:"credencial",status:"fail",detail:"keychain do SO indispon\xEDvel",fix:"instale um keychain (libsecret/Keychain/Credential Manager) e rode `aluy login`."};if(!t.present)return{id:"auth",label:"credencial",status:"fail",detail:"n\xE3o autenticado",fix:"rode `aluy login`."};let e=t.user??(t.kind==="pat"?"PAT":"\u2014"),o=t.org!==void 0?` \xB7 org ${t.org}`:"";if(t.authValidated===!1)return{id:"auth",label:"credencial",status:"fail",detail:`${e}${o} \xB7 broker recusou (${t.authStatus??"401"})`,fix:"credencial inv\xE1lida/expirada \u2014 rode `aluy login`."};let n=t.authValidated===!0?" \xB7 autenticado":" \xB7 presente (n\xE3o-validado)";return{id:"auth",label:"credencial",status:"ok",detail:`${e}${o}${n}`}}function qL(t){if(t.localSkip)return{id:"broker",label:"broker",status:"ok",detail:"N/A (backend local \u2014 BYO, sem broker)"};let e=yK(t.url),o=t.probe;if(!o.reached){let n=e===gK;return{id:"broker",label:"broker",status:"fail",detail:n?`${e} \xB7 inalcan\xE7\xE1vel (placeholder)`:`${e} \xB7 inalcan\xE7\xE1vel`,fix:n?"ALUY_BROKER_URL n\xE3o configurado \u2014 `broker.dev.aluy.example` \xE9 um placeholder de dev. Defina ALUY_BROKER_URL p/ o seu broker (ex.: `export ALUY_BROKER_URL=http://127.0.0.1:8121` em dev).":"cheque a rede e o ALUY_BROKER_URL; o broker pode estar fora."}}return o.status!==void 0&&o.status>=200&&o.status<300?{id:"broker",label:"broker",status:"ok",detail:`${e} \xB7 ${o.status}`}:o.status===401||o.status===403?{id:"broker",label:"broker",status:"fail",detail:`${e} \xB7 ${o.status}`,fix:"credencial recusada \u2014 rode `aluy login`."}:{id:"broker",label:"broker",status:"warn",detail:`${e} \xB7 ${o.status??"?"}`,fix:"broker respondeu, mas n\xE3o-ok no /healthz \u2014 verifique o status do servi\xE7o."}}function WL(t){if(t.localSkip)return{id:"catalog",label:"cat\xE1logo/tiers",status:"ok",detail:"N/A (backend local \u2014 modelo/base_url v\xEAm da config BYO)"};let e=t.tiers,o=t.custom,n=o.reached&&o.status!==void 0&&nd(o.status),r=e.reached&&e.status!==void 0&&nd(e.status);if(!e.reached&&!o.reached)return{id:"catalog",label:"cat\xE1logo/tiers",status:"warn",detail:"broker fora \u2014 usando o cat\xE1logo fallback",fix:"sem o cat\xE1logo do broker o /model usa os tiers conhecidos; cheque o broker."};if(r&&n)return{id:"catalog",label:"cat\xE1logo/tiers",status:"ok",detail:`cat\xE1logo ok \xB7 ${t.customCount??0} modelo(s) custom`};let s=r?"cat\xE1logo de tier ok":`cat\xE1logo de tier indispon\xEDvel (${jL(e)})`,i=n?`${t.customCount??0} modelo(s) custom`:`custom indispon\xEDvel (${jL(o)})`;return{id:"catalog",label:"cat\xE1logo/tiers",status:"warn",detail:`${s} \xB7 ${i} \u2014 usando fallback`,fix:"o /model cai no cat\xE1logo fallback; rode `aluy login` se for falta de scope."}}function GL(t){let e=t.servers.length,o=t.servers.filter(a=>a.invalid),n=t.servers.filter(a=>a.disabled&&!a.invalid),r=e-o.length-n.length;if(t.configErrors.length>0)return{id:"mcp",label:"MCP",status:"fail",detail:`config inv\xE1lida: ${t.configErrors[0]}`,fix:"conserte o JSON do mcp.json (~/.aluy/mcp.json ou .mcp.json do projeto)."};if(e===0)return{id:"mcp",label:"MCP",status:"ok",detail:"nenhum server configurado"};if(o.length>0){let a=o[0]?.invalidWarning??`server "${o[0]?.name}" com command inv\xE1lido`;return{id:"mcp",label:"MCP",status:"warn",detail:`${e} server(es) \xB7 ${o.length} com config inv\xE1lida`,fix:a}}if(r>0&&t.servers.some(a=>a.connected!==void 0)){let a=t.servers.filter(m=>m.connected===!1),l=t.servers.filter(m=>m.connected===!0),c=l.map(m=>`${m.name} \xB7 ${m.toolCount??0} tools`).join(", ");if(a.length>0){let m=a[0],d=l.length>0?` \xB7 ok: ${c}`:"";return{id:"mcp",label:"MCP",status:"fail",detail:`${a.length}/${r} falhou ao conectar \u2014 ${m.name}: ${m.connectError??"erro"}${d}`,fix:"cheque o command/args do server no mcp.json e se o bin\xE1rio est\xE1 instalado."}}let u=n.length>0?` \xB7 ${n.length} desativado(s)`:"";return{id:"mcp",label:"MCP",status:"ok",detail:`${l.length} conectado(s): ${c}${u}`}}let i=[`${r} ativo(s)`];return n.length>0&&i.push(`${n.length} desativado(s)`),{id:"mcp",label:"MCP",status:"ok",detail:`${e} server(es) \xB7 ${i.join(", ")}`}}function zL(t){if(t.rejected.length>0){let e=t.rejected[0];return{id:"agents",label:"perfis de agente",status:"warn",detail:`${t.validCount} v\xE1lido(s) \xB7 ${t.rejected.length} rejeitado(s): ${e?.file} (${e?.reason})`,fix:"conserte o frontmatter do .md (ex.: `tools:` precisa ser uma lista leg\xEDvel \u2014 RES-MD-3 falha fechada)."}}return{id:"agents",label:"perfis de agente",status:"ok",detail:t.validCount===0?"nenhum perfil":`${t.validCount} v\xE1lido(s)`}}function KL(t){let e=`max-tokens ${t.maxTokens} \xB7 max-iterations ${t.maxIterations}`,o=t.flags.length>0?` \xB7 flags: ${t.flags.join(", ")}`:"";if(t.corrupted)return{id:"config",label:"config",status:"fail",detail:`~/.aluy/config.json corrompido (JSON inv\xE1lido) \u2014 usando defaults \xB7 ${e}${o}`,fix:"conserte ou apague ~/.aluy/config.json (ser\xE1 recriado pelo /theme e /model)."};let n=[];t.theme!==void 0&&n.push(`tema ${t.theme}`),t.tier!==void 0&&n.push(`tier ${t.tier}`);let r=t.exists&&n.length>0?n.join(", "):"defaults",s=t.theme!==void 0&&t.themeKnown===!1,i=t.tier!==void 0&&t.tierKnown===!1;if(s||i){let a=[];return s&&a.push(`tema "${t.theme}" n\xE3o est\xE1 no cat\xE1logo`),i&&a.push(`tier "${t.tier}" desconhecido`),{id:"config",label:"config",status:"warn",detail:`${a.join(" \xB7 ")} \u2014 usando defaults \xB7 ${e}${o}`,fix:s?"rode `/theme` p/ escolher um tema v\xE1lido (dark/light/slate).":"rode `/model` p/ escolher um tier conhecido."}}return{id:"config",label:"config",status:"ok",detail:`${r} \xB7 ${e}${o}`}}function YL(t){return t.localSkip?{id:"tier",label:"tier (--deep)",status:"ok",detail:"N/A (backend local \u2014 modelo BYO; use um turno real p/ testar)"}:t.responded?{id:"tier",label:"tier (--deep)",status:"ok",detail:`${t.tier} respondeu ao modelo`}:{id:"tier",label:"tier (--deep)",status:"fail",detail:`${t.tier} n\xE3o respondeu${t.error?` \xB7 ${t.error}`:""}`,fix:"o tier n\xE3o respondeu ao modelo \u2014 cheque cr\xE9dito (`/usage`), o broker e o `/model`."}}function VL(t){return{id:"version",label:"vers\xE3o",status:"ok",detail:`aluy ${t.aluy} \xB7 node ${t.node}`}}function XL(t){return t.accessible?{id:"memory",label:"mem\xF3ria",status:"ok",detail:t.count===0?"store ok \xB7 0 fato":`store ok \xB7 ${t.count} fato(s)`}:{id:"memory",label:"mem\xF3ria",status:"fail",detail:"store de mem\xF3ria ileg\xEDvel",fix:"cheque permiss\xF5es de ~/.aluy/ (deve ser 0700, seu)."}}function JL(t){let e=[],o=!1,n=!1;t.headroom.reached&&t.headroom.status!==void 0&&nd(t.headroom.status)?e.push(`headroom \u2713 (${t.headroom.status})`):t.headroom.reached?(e.push(`headroom \u26A0 (${t.headroom.status??"?"})`),n=!0):(e.push("headroom \u2717 (fora)"),o=!0),t.ollama.reached&&t.ollama.status!==void 0&&nd(t.ollama.status)?e.push(`ollama \u2713 (${t.ollama.status})`):t.ollama.reached?(e.push(`ollama \u26A0 (${t.ollama.status??"?"})`),n=!0):(e.push("ollama \u2717 (fora)"),o=!0),t.mem0.reached&&t.mem0.status!==void 0&&nd(t.mem0.status)?e.push(`mem0 \u2713 (${t.mem0.status})`):t.mem0.reached?(e.push(`mem0 \u26A0 (${t.mem0.status??"?"})`),n=!0):(e.push("mem0 \u2717 (fora)"),o=!0);let r=t.toggles.length>0?t.toggles.join(", "):"nenhum";e.push(`perfil ${t.profile.toUpperCase()} (toggles: ${r})`);let s=o?"fail":n?"warn":"ok",i=o?"sidecar(es) fora \u2014 provisione/suba com `aluy bootstrap` (perfil TURBO; mem0/headroom precisam de python3.10+/pip/venv). No boot eles sobem sozinhos se j\xE1 instalados.":n?"sidecar(es) com status inesperado \u2014 cheque os logs do Maestro.":void 0;return{id:"sidecars",label:"sidecars/Maestro",status:s,detail:e.join(" \xB7 "),...i!==void 0?{fix:i}:{}}}function QL(t){return{id:"maestro",label:"Maestro",status:"ok",detail:t.enabled?"ligado":"desligado"}}function rd(t){let e=[HL(t.auth),qL(t.broker),WL(t.catalog),GL(t.mcp),zL(t.agents),KL(t.config),VL(t.version),XL(t.memory),JL(t.sidecars),QL(t.maestro)];return t.tier!==void 0&&e.push(YL(t.tier)),{checks:e}}function lh(t=!1){let e=[{id:"auth",label:"credencial"},{id:"broker",label:"broker"},{id:"catalog",label:"cat\xE1logo/tiers"},{id:"mcp",label:"MCP"},{id:"agents",label:"perfis de agente"},{id:"config",label:"config"},{id:"version",label:"vers\xE3o"},{id:"memory",label:"mem\xF3ria"},{id:"sidecars",label:"sidecars/Maestro"},{id:"maestro",label:"Maestro"}];return t?[...e,{id:"tier",label:"tier (--deep)"}]:e}function gS(t){return t.checks.some(e=>e.status==="fail")}function ch(t,e){switch(t){case"auth":return e.auth?HL(e.auth):void 0;case"broker":return e.broker?qL(e.broker):void 0;case"catalog":return e.catalog?WL(e.catalog):void 0;case"mcp":return e.mcp?GL(e.mcp):void 0;case"agents":return e.agents?zL(e.agents):void 0;case"config":return e.config?KL(e.config):void 0;case"version":return e.version?VL(e.version):void 0;case"memory":return e.memory?XL(e.memory):void 0;case"sidecars":return e.sidecars?JL(e.sidecars):void 0;case"maestro":return e.maestro?QL(e.maestro):void 0;case"tier":return e.tier?YL(e.tier):void 0;default:return}}function uh(t){let e=0,o=0,n=0;for(let r of t)r.status==="ok"?e++:r.status==="warn"?o++:n++;return`${e} ok \xB7 ${o} aviso \xB7 ${n} falha`}function nd(t){return t>=200&&t<300}function jL(t){return t.reached?t.status!==void 0?String(t.status):"?":"broker fora"}function yK(t){try{return new URL(t).host}catch{return t}}var gK,dh=p(()=>{"use strict";Ii();gK=(()=>{try{return new URL(Vp).host}catch{return Vp}})()});function bK(t,e){return t==="ok"?e.ok:t==="warn"?e.warn:e.fail}function ZL(t,e){let o=[];for(let n of t.checks)o.push(`${bK(n.status,e)} ${n.label}: ${n.detail}`),n.status!=="ok"&&n.fix!==void 0&&o.push(` \u2192 ${n.fix}`);return o.push(""),o.push(`resumo: ${uh(t.checks)}`),o}var sd,eP=p(()=>{"use strict";dh();sd={ok:"[ok]",warn:"[!]",fail:"[x]"}});async function mh(t){let e=t.env??process.env,{brokerBaseUrl:o}=mn(e),n=Oc({brokerBaseUrl:o,login:t.login,...t.fetch?{fetch:t.fetch}:{}}),r=new er({client:n,tier:t.tier,...t.tier==="custom"&&t.model!==void 0?{model:t.model}:{},maxTokens:kK}),s=new AbortController,i=setTimeout(()=>s.abort(),t.timeoutMs??2e4);try{return typeof(await r.call({messages:[{role:"user",content:vK}],idempotencyKey:`doctor-deep-${Date.now()}`,signal:s.signal})).content=="string"?{tier:t.tier,responded:!0}:{tier:t.tier,responded:!1,error:"resposta vazia do broker"}}catch(a){return{tier:t.tier,responded:!1,error:xK(a)}}finally{clearTimeout(i)}}function xK(t){return t instanceof Error?t.message:String(t)}var vK,kK,yS=p(()=>{"use strict";P();Ii();vK='Responda apenas com a palavra "ok".',kK=8});async function fh(t,e,o,n={}){let r=n.resolver??new lo,s=n.fetchFn??globalThis.fetch;if(typeof s!="function")return{ok:!1,reason:"fetch indispon\xEDvel neste runtime."};let i=await _i(t,r);if(!i.ok)return{ok:!1,reason:i.reason};let a="";try{a=new URL(t).port}catch{}let l=i.pinnedIp.includes(":")?`[${i.pinnedIp}]`:i.pinnedIp,c=`${i.scheme}://${l}${a!==""?`:${a}`:""}${e}`;return{ok:!0,response:await s(c,o)}}var bS=p(()=>{"use strict";P();Bs()});function AK(t){let e=t.hash;return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function CK(t){let e=t.query;return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function tP(t){let e={...t.resolver?{resolver:t.resolver}:{},...t.fetchFn?{fetchFn:t.fetchFn}:{}},o=`${t.baseUrl.replace(/\/+$/,"")}/v1/retrieve`;return{name:"headroom_retrieve",effect:"network",description:EK,parameters:wK,async run(n,r,s){let i=AK(n);if(i===void 0)return{ok:!1,observation:"headroom_retrieve: `hash` \xE9 obrigat\xF3rio (copie o valor do marcador `\u2026 hash=\u2026`)."};let a=CK(n),l=`headroom_retrieve POST ${o} hash=${i}${a?` query=${JSON.stringify(a)}`:""}`,c=new AbortController,u=!1,m=t.timeoutMs??SK,d=setTimeout(()=>{u=!0,c.abort()},m),h=()=>c.abort();s?.signal?.addEventListener("abort",h,{once:!0}),s?.signal?.aborted&&c.abort();try{let g=await fh(t.baseUrl,"/v1/retrieve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(a!==void 0?{hash:i,query:a}:{hash:i}),signal:c.signal},e);if(!g.ok)return{ok:!1,display:l,observation:`headroom_retrieve: destino recusado (${g.reason}).`};let b=g.response;if(b.status===404)return{ok:!1,display:l,observation:`headroom_retrieve: conte\xFAdo do hash "${i}" EXPIROU (TTL do cache ou rein\xEDcio do proxy). N\xE3o h\xE1 o que recuperar \u2014 RErode o comando/tool original p/ regerar.`};if(!b.ok)return{ok:!1,display:l,observation:`headroom_retrieve: o proxy respondeu HTTP ${b.status}.`};let y=await b.json(),w=y.original_content;if(typeof w!="string"||w==="")return{ok:!1,display:l,observation:"headroom_retrieve: resposta sem `original_content` utiliz\xE1vel."};let A=typeof y.original_tokens=="number"?y.original_tokens:void 0,T=typeof y.tool_name=="string"?y.tool_name:void 0,O=`[headroom_retrieve \xB7 hash=${i}${T?` \xB7 tool=${T}`:""}${A!==void 0?` \xB7 ${A} tokens`:""}]`;return{ok:!0,display:l,observation:`${O}
|
|
476
476
|
${Mn(w)}`}}catch(g){let b=u?`o proxy n\xE3o respondeu em ${m}ms (timeout)`:g instanceof Error?g.message:String(g);return{ok:!1,display:l,observation:`headroom_retrieve: falha ao falar com o proxy (${b}).`}}finally{clearTimeout(d),s?.signal?.removeEventListener("abort",h)}}}}var SK,wK,EK,oP=p(()=>{"use strict";P();bS();SK=2500,wK={type:"object",properties:{hash:{type:"string",description:"O hash do marcador de compress\xE3o (ex.: `[\u2026 hash=abc123]`). Obrigat\xF3rio."},query:{type:"string",description:"Opcional: busca BM25 DENTRO do conte\xFAdo cacheado \u2014 recorta resultados grandes p/ s\xF3 o trecho relevante."}},required:["hash"],additionalProperties:!1},EK='Recupera o conte\xFAdo ORIGINAL que a compress\xE3o headroom dedupou/truncou. Quando uma observa\xE7\xE3o de tool trouxer um marcador como `[N items compressed \u2026 hash=abc123]` e voc\xEA precisar do conte\xFAdo completo, chame com `{hash:"abc123"}`. Passe `query` p/ buscar (BM25) s\xF3 o trecho relevante dentro de um cache grande.'});import{spawnSync as TK}from"node:child_process";import{existsSync as nP,readFileSync as DK}from"node:fs";import{arch as _K,platform as RK,release as OK}from"node:os";function MK(t){try{let e=t("bwrap",["--version"],{timeout:3e3,encoding:"utf8"});return e.error?{ok:!1,detail:`bwrap n\xE3o execut\xE1vel (${e.error.message})`}:e.status!==0?{ok:!1,detail:"bwrap retornou status != 0"}:{ok:!0,detail:(e.stdout??"").trim()||"bwrap presente"}}catch(e){return{ok:!1,detail:`bwrap ausente (${e instanceof Error?e.message:String(e)})`}}}function LK(t){let e=t("/proc/sys/user/max_user_namespaces");if(e!==void 0&&/^\s*0\s*$/.test(e))return{ok:!1,detail:"max_user_namespaces=0 (userns desativado)"};let o=t("/proc/sys/kernel/unprivileged_userns_clone");return o!==void 0&&/^\s*0\s*$/.test(o)?{ok:!1,detail:"unprivileged_userns_clone=0 (userns rootless bloqueado)"}:{ok:!0,detail:"userns dispon\xEDvel"}}function PK(t,e){if(!kp(t))return{ok:!1,detail:`seccomp: arch ${t} n\xE3o mapeada (sem filtro)`};let o=e("/proc/self/status");return o!==void 0&&!/\bSeccomp:/.test(o)?{ok:!1,detail:"seccomp n\xE3o compilado no kernel"}:{ok:!0,detail:"seccomp-bpf dispon\xEDvel"}}function FK(t){try{let e=t("systemd-run",["--user","--version"],{timeout:3e3,encoding:"utf8"});return e.error?{ok:!1,detail:`systemd-run --user indispon\xEDvel (${e.error.message})`}:e.status!==0?{ok:!1,detail:"systemd-run --user retornou status != 0 (sem bus de usu\xE1rio?)"}:{ok:!0,detail:"systemd-run --user (cgroup v2 rootless) dispon\xEDvel"}}catch(e){return{ok:!1,detail:`systemd-run ausente (${e instanceof Error?e.message:String(e)})`}}}function IK(t){let e=t("/proc/self/lsm");return!!(e!==void 0&&/\blandlock\b/.test(e)||nP("/sys/kernel/security/landlock"))}function NK(t){try{return nP(t)?DK(t,"utf8"):void 0}catch{return}}function vS(t={}){let e=t.platform??RK(),o=t.arch??_K(),n=t.readFile??NK,r=(()=>{try{return OK()}catch{return}})();if(e!=="linux")return{platform:e,bwrap:!1,userns:!1,seccomp:!1,landlock:!1,cgroupLimits:!1,...r?{kernel:r}:{},unavailableReason:`Fase 1 do sandbox \xE9 Linux (D-SB-1); plataforma ${e} ainda sem piso de SO`};let s=t.spawnSyncFn??TK,i=MK(s),a=LK(n),l=PK(o,n),c=IK(n),u=FK(s),m=[];return i.ok||m.push(i.detail),a.ok||m.push(a.detail),l.ok||m.push(l.detail),{platform:e,bwrap:i.ok,userns:a.ok,seccomp:l.ok,landlock:c,cgroupLimits:u.ok,...r?{kernel:r}:{},...m.length>0?{unavailableReason:m.join("; ")}:{}}}var kS=p(()=>{"use strict";P()});import{spawn as $K}from"node:child_process";import{closeSync as BK,mkdtempSync as rP,openSync as UK,realpathSync as jK,rmSync as sP,writeFileSync as iP}from"node:fs";import{tmpdir as aP}from"node:os";import{join as ph,resolve as HK}from"node:path";function lP(t){return`'${t.replace(/'/g,"'\\''")}'`}function hh(t){let e=HK(t);return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}function cP(t){try{return hh(jK(t))}catch{return hh(t)}}function uP(t,e){let o=hh(t),n=hh(e);return o===n||o.startsWith(`${n}/`)}function WK(t,e){let o=Array.isArray(t)?[...t]:[t??"pipe","pipe","pipe"];for(;o.length<e;)o.push("ignore");return o[e]=e,o}var qK,id,Us,xS=p(()=>{"use strict";P();Bm();qK=Object.freeze(["/usr","/bin","/sbin","/lib","/lib64","/lib32","/etc/alternatives","/etc/ssl","/etc/ca-certificates","/etc/resolv.conf","/etc/nsswitch.conf"]);id=class{capability;env;unsafeNoSandbox;arch;spawnFn;aluyHome;bwrapPath;systemdRunPath;constructor(e){this.capability=e.capability,this.env=e.env,this.unsafeNoSandbox=e.unsafeNoSandbox??!1,this.arch=e.arch??process.arch,this.spawnFn=e.spawnFn??$K,this.aluyHome=cP(e.aluyHome??oc()),this.bwrapPath=e.bwrapPath??"bwrap",this.systemdRunPath=e.systemdRunPath??"systemd-run"}decide(){return Zk(this.capability,this.env,this.unsafeNoSandbox)}assertNoAluyHome(e){let o=[...e.workspaceRoots,e.cwd,...e.roBinds??[],...e.rwBinds??[]];for(let n of o){let r=cP(n);if(uP(r,this.aluyHome)||uP(this.aluyHome,r))throw new Us(`recusado: bind/cwd "${n}" alcan\xE7a ~/.aluy/ (${this.aluyHome}) \u2014 o sandbox NUNCA monta o diret\xF3rio do agente (journal/mem\xF3ria/config) no namespace (ADR-0065 \xA72).`)}}buildBwrapArgs(e,o){let n=["--unshare-all","--die-with-parent","--new-session"];e.network===!0&&n.push("--share-net");for(let r of qK)n.push("--ro-bind-try",r,r);n.push("--tmpfs","/tmp");for(let r of e.workspaceRoots)n.push("--bind",r,r);for(let r of e.roBinds??[])n.push("--ro-bind",r,r);for(let r of e.rwBinds??[])n.push("--bind",r,r);return n.push("--proc","/proc","--dev","/dev"),o!==void 0&&n.push("--seccomp",String(o)),n.push("--chdir",e.cwd),n}buildSystemdRunPrefix(e){if(this.capability.cgroupLimits!==!0)return[];let o={tasksMax:e.resourceLimits?.tasksMax??_u.tasksMax,memoryMax:e.resourceLimits?.memoryMax??_u.memoryMax,cpuQuota:e.resourceLimits?.cpuQuota??_u.cpuQuota};return["--user","--scope","--quiet","--collect","-p",`TasksMax=${o.tasksMax}`,"-p",`MemoryMax=${o.memoryMax}`,"-p",`CPUQuota=${o.cpuQuota}`,"--"]}cgroupUnavailableWarning(){return`\u26A0 SEM CONFINAMENTO DE RECURSO NESTA M\xC1QUINA \u2014 o sandbox confina FUGA (FS/rede/syscall via bwrap) MAS n\xE3o o RECURSO (cgroup v2 via systemd-run ausente): um fork-bomb/\`cat /dev/zero\` confinado ainda pode esgotar CPU/RAM/PIDs da m\xE1quina (ADR-0065 \xA713.2). O comando RODA MESMO ASSIM \u2014 confinamento de recurso \xE9 hardening aditivo, n\xE3o gate duro. Motivo: ${this.capability.unavailableReason??"systemd-run --user indispon\xEDvel"}.`}buildConfinedInvocation(e,o){if(e.length===0)throw new Us("buildConfinedInvocation: command vazio (sem programa a confinar).");this.assertNoAluyHome(o);let n=this.decide();if(n.action==="refuse")return{decision:n,cleanup:()=>{}};if(n.action!=="confine")return{decision:n,command:e[0],args:e.slice(1),cleanup:()=>{}};let r=xp(this.arch);if(!r)throw new Us(`sem filtro seccomp p/ arch ${this.arch} \u2014 recusando confinar server MCP sem o piso de syscalls (c).`);let s=rP(ph(aP(),"aluy-mcp-sb-")),i=ph(s,"seccomp.bpf");iP(i,r,{mode:384});let a=3,l=this.buildBwrapArgs(o,a),c=[this.bwrapPath,...l,"--",...e],u=this.buildSystemdRunPrefix(o),m=u.length>0,h=`exec ${(m?[this.systemdRunPath,...u,...c]:c).map(lP).join(" ")} ${a}< ${lP(i)}`,g=m?void 0:this.cgroupUnavailableWarning();return{decision:n,command:"/bin/sh",args:["-c",h],...g?{warning:g}:{},cleanup:()=>{try{sP(s,{recursive:!0,force:!0})}catch{}}}}spawnConfined(e,o,n={}){if(e.length===0)throw new Us("spawnConfined: command vazio (sem programa a executar).");this.assertNoAluyHome(o);let r=this.decide();if(r.action==="refuse")return{decision:r};let s=n.env??process.env,i=n.stdio??["ignore","pipe","pipe"],a={env:s,stdio:i,detached:!0,...n.signal?{signal:n.signal}:{},...n.launcherCwd?{cwd:n.launcherCwd}:{}};if(r.action==="confine")return this.spawnInBwrap(e,o,a,r);let l=this.spawnFn(e[0],e.slice(1),{...a,cwd:o.cwd});return{decision:r,process:l}}spawnInBwrap(e,o,n,r){let s=xp(this.arch);if(!s)throw new Us(`sem filtro seccomp p/ arch ${this.arch} \u2014 recusando confinar sem o piso de syscalls (c).`);let i=rP(ph(aP(),"aluy-sb-")),a=ph(i,"seccomp.bpf"),l=-1;try{iP(a,s,{mode:384}),l=UK(a,"r");let c=this.buildBwrapArgs(o,l),u=[this.bwrapPath,...c,"--",...e],m=this.buildSystemdRunPrefix(o),d=m.length>0,h=d?this.systemdRunPath:this.bwrapPath,g=d?[...m,...u]:u.slice(1),b=this.spawnFn(h,g,{...n,stdio:WK(n.stdio,l)}),y=d?void 0:this.cgroupUnavailableWarning();return{decision:r,process:b,...y?{warning:y}:{}}}finally{if(l>=0)try{BK(l)}catch{}try{sP(i,{recursive:!0,force:!0})}catch{}}}};Us=class extends Error{constructor(e){super(e),this.name="SandboxConfinementError"}}});function gh(t={}){let e=t.processEnv??process.env,o=vS(),n=t.env??ex(e),r=tx(t.unsafeNoSandbox??!1,e);return new id({capability:o,env:n,unsafeNoSandbox:r})}var SS=p(()=>{"use strict";P();kS();xS();kS();xS();Bm()});import{createReadStream as GK}from"node:fs";function wS(t,e=dP){let o=Math.min(t.byteLength,e);for(let n=0;n<o;n++)if(t[n]===0)return!0;return!1}function mP(t,e){return`[arquivo bin\xE1rio: ${t} \u2014 ${e} bytes, n\xE3o lido como texto]`}function fP(t,e=dP){let o=Math.max(1,Math.floor(e));return new Promise((n,r)=>{let s=[],i=0,a=GK(t,{start:0,end:o-1});a.on("data",c=>{let u=typeof c=="string"?Buffer.from(c):c;s.push(u),i+=u.byteLength,i>=o&&a.destroy()}),a.on("error",r);let l=()=>n(wS(Buffer.concat(s),o));a.on("close",l),a.on("end",l)})}var dP,yh=p(()=>{"use strict";dP=8*1024});import{statSync as zK,createReadStream as KK}from"node:fs";async function dl(t,e,o=YK){let n=zK(t).size,r=n>e,i=await VK(t,r?e:n,o);return wS(i,i.byteLength)?{content:"",truncated:r,totalBytes:n,binary:!0}:{content:i.toString("utf8"),truncated:r,totalBytes:n,binary:!1}}function VK(t,e,o){return e<=0?Promise.resolve(Buffer.alloc(0)):new Promise((n,r)=>{let s=[],i=0,a=o(t,{start:0,end:e-1});a.on("data",l=>{let c=typeof l=="string"?Buffer.from(l):l,u=e-i;u<=0||(c.byteLength>u?(s.push(c.subarray(0,u)),i=e,a.destroy()):(s.push(c),i+=c.byteLength))}),a.on("error",r),a.on("close",()=>n(Buffer.concat(s))),a.on("end",()=>n(Buffer.concat(s)))})}var YK,bh=p(()=>{"use strict";yh();YK=(t,e)=>KK(t,e)});import{writeFile as XK,mkdir as JK}from"node:fs/promises";import{existsSync as QK}from"node:fs";import{dirname as ZK}from"node:path";var e7,js,pP=p(()=>{"use strict";bh();yh();e7=5*1024*1024,js=class{workspace;maxReadBytes;constructor(e){this.workspace=e.workspace,this.maxReadBytes=e.maxReadBytes??e7}async readFile(e){let o=this.workspace.resolveInside(e),{content:n,truncated:r,totalBytes:s,binary:i}=await dl(o,this.maxReadBytes);return i?mP(e,s):r?`${n}
|
|
477
477
|
[arquivo truncado: lidos ${this.maxReadBytes} de ${s} bytes]`:n}async readFileMeta(e){let o=this.workspace.resolveInside(e),{content:n,truncated:r,binary:s}=await dl(o,this.maxReadBytes);return s||r?{content:n,complete:!1}:{content:n,complete:!0}}async writeFile(e,o){let n=this.workspace.resolveInside(e);await JK(ZK(n),{recursive:!0}),await XK(n,o,"utf8")}async exists(e){try{let o=this.workspace.resolveInside(e);return QK(o)}catch{return!1}}}});import{spawn as t7}from"node:child_process";import{StringDecoder as hP}from"node:string_decoder";function ml(t){return t.length<=$i?t:`${t.slice(0,$i)}
|
|
@@ -494,7 +494,7 @@ ${r.text}`).join(`
|
|
|
494
494
|
|
|
495
495
|
`),n=Af(o);return{...n!==void 0?{instructions:n}:{},sources:e.map(r=>r.filename)}}var Ui,UP,PS=p(()=>{"use strict";P();Ns();Ui="ALUY.md",UP=["ALUY.md","AGENT.md","AGENTS.md","CLAUDE.md"]});import{homedir as V7}from"node:os";import{join as FS,basename as X7}from"node:path";import{openSync as J7,writeSync as Q7,closeSync as jP,mkdirSync as Z7,renameSync as eY,unlinkSync as tY,constants as IS}from"node:fs";function sY(t,e){if(t===void 0||t.trim()==="")return e;let o=X7(t.trim());return o=o.replace(/[-/\\]/g,""),o===""||o==="."||o===".."?e:(/\.md$/i.test(o)||(o+=".md"),o)}function iY(t){return t.toISOString().replace(/[:.]/g,"-").replace(/-\d{3}Z$/,"Z")}var oY,nY,HP,rY,bd,qP=p(()=>{"use strict";oY=448,nY=384,HP="exports",rY=(t,e,o)=>Q7(t,e,o,e.length-o);bd=class{base;now;writeChunk;constructor(e={}){this.base=FS(e.baseDir??FS(V7(),".aluy"),HP),this.now=e.now??(()=>new Date),this.writeChunk=e.writeChunk??rY}get dir(){return this.base}write(e,o={}){let n=`${(o.sessionId??"sessao").slice(0,40)}-${iY(this.now())}.md`,r=sY(o.fileName,n),s=FS(this.base,r),i=`${s}.${process.pid}.tmp`,a;try{Z7(this.base,{recursive:!0,mode:oY}),a=J7(i,IS.O_CREAT|IS.O_EXCL|IS.O_WRONLY,nY);let l=Buffer.from(e,"utf8"),c=0;for(;c<l.length;){let u=this.writeChunk(a,l,c);if(u<=0)throw new Error(`escrita parou em ${c}/${l.length} bytes (writeSync devolveu ${u})`);c+=u}return jP(a),a=void 0,eY(i,s),{ok:!0,path:s}}catch(l){if(a!==void 0)try{jP(a)}catch{}try{tY(i)}catch{}return{ok:!1,error:`falha ao exportar: ${String(l)}`}}}}});function Tt(t){return typeof t=="string"}function WP(t){return typeof t=="number"&&Number.isInteger(t)&&t>=0}function lY(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function cY(t){return t==="ok"||t==="warn"||t==="fail"?t:"warn"}function uY(t){if(typeof t!="object"||t===null)return null;let e=t;return!Tt(e.id)||!Tt(e.label)?null:{id:e.id,label:e.label,status:cY(e.status),...Tt(e.detail)?{detail:e.detail}:{},...Tt(e.fix)?{fix:e.fix}:{}}}function GP(t){if(typeof t!="object"||t===null)return null;let e=t,o=e.kind;if(typeof o!="string"||!aY.has(o))return null;switch(o){case"you":return Tt(e.text)?{kind:"you",text:e.text}:null;case"aluy":return Tt(e.text)?{kind:"aluy",text:e.text,streaming:!1}:null;case"tool":{if(!Tt(e.verb)||!Tt(e.target)||!Tt(e.result))return null;let n=e.status==="ok"||e.status==="err"?e.status:"err";return{kind:"tool",verb:e.verb,target:e.target,result:e.result,status:n,...Tt(e.output)?{output:e.output}:{},...Tt(e.verbGerund)?{verbGerund:e.verbGerund}:{},...WP(e.added)?{added:e.added}:{},...WP(e.removed)?{removed:e.removed}:{}}}case"deny":return Tt(e.verb)&&Tt(e.exact)?{kind:"deny",verb:e.verb,exact:e.exact}:null;case"bang":{if(!Tt(e.command))return null;let n=e.status==="ok"||e.status==="err"||e.status==="blocked"?e.status:"err";return{kind:"bang",command:e.command,status:n,...Tt(e.output)?{output:e.output}:{}}}case"broker-error":return Tt(e.message)?{kind:"broker-error",message:e.message,...typeof e.status=="number"?{status:e.status}:{}}:null;case"note":return Tt(e.title)&&lY(e.lines)?{kind:"note",title:e.title,lines:e.lines}:null;case"inject":return Tt(e.text)?{kind:"inject",text:e.text}:null;case"doctor":{if(!Array.isArray(e.checks))return null;let n=e.checks.map(uY).filter(r=>r!==null);return n.length===0?null:{kind:"doctor",checks:n,...Tt(e.summary)?{summary:e.summary}:{}}}default:return null}}function Eh(t){if(!Array.isArray(t))return[];let e=[];for(let o of t){let n=GP(o);n&&e.push(n)}return e}function ji(t){let e=[];for(let o of t)switch(o.kind){case"you":e.push({role:"goal",text:o.text});break;case"inject":o.text.trim()!==""&&e.push({role:"goal",text:o.text});break;case"aluy":o.text.trim()!==""&&e.push({role:"model",text:o.text});break;case"tool":{let n=[`${o.verb} ${o.target} \u2192 ${o.result||o.status}`];o.output&&n.push(o.output),e.push({role:"observation",toolName:NS,text:n.join(`
|
|
496
496
|
`)});break}case"bang":{let n=[`! ${o.command} (${o.status})`];o.output&&n.push(o.output),e.push({role:"observation",toolName:NS,text:n.join(`
|
|
497
|
-
`)});break}case"broker-error":e.push({role:"observation",toolName:NS,text:`(${o.backend==="local"?"erro do provider local":"erro de broker"} anterior: ${o.message})`});break;case"note":case"deny":case"subagents":case"doctor":break}return e}var aY,NS,$S=p(()=>{"use strict";aY=new Set(["you","aluy","tool","deny","bang","broker-error","note","inject","doctor"]);NS="sess\xE3o-anterior"});function fY(t){return t.kind==="tool"&&mY.has(t.verb)}function zP(t){let e=!1,o=t.map(n=>{if(n.kind==="tool"&&fY(n)){let r=Qe(n.result),s=n.output!==void 0?Qe(n.output):void 0,i=n.liveOutput!==void 0?Qe(n.liveOutput):void 0;return r===n.result&&s===n.output&&i===n.liveOutput?n:(e=!0,{...n,result:r,...s!==void 0?{output:s}:{},...i!==void 0?{liveOutput:i}:{}})}if(n.kind==="bang"){let r=vo(n.command);return r===n.command?n:(e=!0,{...n,command:r})}if(n.kind==="tool"&&dY.has(n.verb)){let r=vo(n.target);return r===n.target?n:(e=!0,{...n,target:r})}return n});return e?o:t}var dY,mY,KP=p(()=>{"use strict";P();dY=new Set(["bash","run_command"]),mY=new Set(["read","grep","attach","headroom_retrieve"])});import{homedir as pY}from"node:os";import{join as BS}from"node:path";import{randomBytes as hY}from"node:crypto";import{openSync as gY,writeSync as yY,closeSync as YP,readFileSync as bY,readdirSync as VP,mkdirSync as vY,renameSync as kY,unlinkSync as XP,statSync as xY,existsSync as
|
|
497
|
+
`)});break}case"broker-error":e.push({role:"observation",toolName:NS,text:`(${o.backend==="local"?"erro do provider local":"erro de broker"} anterior: ${o.message})`});break;case"note":case"deny":case"subagents":case"doctor":break}return e}var aY,NS,$S=p(()=>{"use strict";aY=new Set(["you","aluy","tool","deny","bang","broker-error","note","inject","doctor"]);NS="sess\xE3o-anterior"});function fY(t){return t.kind==="tool"&&mY.has(t.verb)}function zP(t){let e=!1,o=t.map(n=>{if(n.kind==="tool"&&fY(n)){let r=Qe(n.result),s=n.output!==void 0?Qe(n.output):void 0,i=n.liveOutput!==void 0?Qe(n.liveOutput):void 0;return r===n.result&&s===n.output&&i===n.liveOutput?n:(e=!0,{...n,result:r,...s!==void 0?{output:s}:{},...i!==void 0?{liveOutput:i}:{}})}if(n.kind==="bang"){let r=vo(n.command);return r===n.command?n:(e=!0,{...n,command:r})}if(n.kind==="tool"&&dY.has(n.verb)){let r=vo(n.target);return r===n.target?n:(e=!0,{...n,target:r})}return n});return e?o:t}var dY,mY,KP=p(()=>{"use strict";P();dY=new Set(["bash","run_command"]),mY=new Set(["read","grep","attach","headroom_retrieve"])});import{homedir as pY}from"node:os";import{join as BS}from"node:path";import{randomBytes as hY}from"node:crypto";import{openSync as gY,writeSync as yY,closeSync as YP,readFileSync as bY,readdirSync as VP,mkdirSync as vY,renameSync as kY,unlinkSync as XP,statSync as xY,existsSync as Fbe,constants as US}from"node:fs";function _Y(t,e){let o=[...t];return o.length>e?o.slice(0,e).join(""):t}function Ch(t){if(typeof t!="string")return;let e="";for(let n of t){let r=n.codePointAt(0)??0;e+=r<32||r===127?" ":n}let o=e.replace(/\s+/g," ").trim();if(o!=="")return _Y(o,DY)}function RY(t){for(let e of t)if(e.kind==="you"){let o=e.text.replace(/\s+/g," ").trim();if(o==="")return;let n=[...o];return n.length>60?n.slice(0,57).join("")+"\u2026":o}}var SY,wY,JP,QP,EY,AY,jS,CY,TY,Ah,DY,vd,ZP=p(()=>{"use strict";$S();KP();SY=448,wY=384,JP="sessions",QP=1,EY=720*60*60*1e3,AY=50,jS=8*1024*1024,CY=jS*8,TY=Math.floor(jS*.9),Ah=/^[A-Za-z0-9_-]{1,128}$/,DY=64;vd=class{base;dir;now;createdAtCache=new Map;constructor(e={}){this.base=e.baseDir??BS(pY(),".aluy"),this.dir=BS(this.base,JP),this.now=e.now??(()=>Date.now())}get sessionsDir(){return this.dir}pathFor(e){return BS(this.dir,`${e}.json`)}save(e){if(!Ah.test(e.id))return!1;try{let o=this.now(),n=this.resolveCreatedAt(e.id,o),r=e.tier==="custom"&&typeof e.model=="string"&&e.model.trim()!=="",s=r&&typeof e.provider=="string"&&e.provider.trim()!=="",i=Ch(e.label),a=i!==void 0?Ch(e.labelColor):void 0,l={id:e.id,version:QP,createdAt:n,updatedAt:o,cwd:e.cwd,tier:e.tier,...r?{model:e.model.trim()}:{},...s?{provider:e.provider.trim()}:{},...i!==void 0?{label:i}:{},...a!==void 0?{labelColor:a}:{}},c=this.fitBlocks(l,zP(Eh(e.blocks))),u={...l,blocks:c};return this.writeAtomic(u),!0}catch{return!1}}resolveCreatedAt(e,o){let n=this.createdAtCache.get(e);if(n!==void 0)return n;let r=this.load(e)?.createdAt??o;return this.createdAtCache.set(e,r),r}load(e){if(!Ah.test(e))return null;let o=this.pathFor(e),n,r=!1;try{let a=xY(o);if(a.size>CY)return null;r=a.size>jS,n=bY(o,"utf8")}catch{return null}let s;try{s=JSON.parse(n)}catch{return null}let i=this.sanitizeRecord(s);if(i&&r){let{blocks:a,...l}=i,c=this.fitBlocks(l,a),u=a.length-c.length,m={kind:"note",title:"sess\xE3o grande \u2014 contexto antigo omitido no resume",lines:[`Esta sess\xE3o era grande demais p/ recarregar inteira; ${u} bloco(s) antigo(s) foram omitidos e a parte recente foi preservada.`,"O contexto restante ser\xE1 resumido automaticamente na pr\xF3xima intera\xE7\xE3o."]};i={...i,blocks:u>0?[m,...c]:c}}return i&&this.createdAtCache.set(i.id,i.createdAt),i}list(){let e;try{e=VP(this.dir)}catch{return[]}let o=[];for(let n of e){if(!n.endsWith(".json"))continue;let r=n.slice(0,-5),s=this.load(r);s&&o.push({id:s.id,createdAt:s.createdAt,updatedAt:s.updatedAt,cwd:s.cwd,tier:s.tier,...s.model!==void 0?{model:s.model}:{},...s.provider!==void 0?{provider:s.provider}:{},...s.label!==void 0?{label:s.label}:{},...s.labelColor!==void 0?{labelColor:s.labelColor}:{},blockCount:s.blocks.length,title:RY(s.blocks)})}return o.sort((n,r)=>r.updatedAt-n.updatedAt),o}latestForCwd(e){let o;try{o=VP(this.dir)}catch{return null}let n=null;for(let r of o){if(!r.endsWith(".json"))continue;let s=r.slice(0,-5),i=this.load(s);!i||i.cwd!==e||(n===null||i.updatedAt>n.updatedAt)&&(n=i)}return n}remove(e){if(Ah.test(e)){this.createdAtCache.delete(e);try{XP(this.pathFor(e))}catch{}}}gc(e={}){let o=e.maxAgeMs??EY,n=e.maxCount??AY,r=this.list(),s=this.now()-o;r.forEach((i,a)=>{(i.updatedAt<s||a>=n)&&this.remove(i.id)})}sanitizeRecord(e){if(typeof e!="object"||e===null)return null;let o=e;if(typeof o.id!="string"||!Ah.test(o.id)||!Array.isArray(o.blocks))return null;let n=typeof o.createdAt=="number"&&o.createdAt>=0?o.createdAt:0,r=typeof o.updatedAt=="number"&&o.updatedAt>=0?o.updatedAt:n,s=typeof o.cwd=="string"?o.cwd:"",i=typeof o.tier=="string"&&o.tier.trim()!==""?o.tier:"",a=typeof o.version=="number"?o.version:0,l=i==="custom"&&typeof o.model=="string"&&o.model.trim()!==""?o.model.trim():void 0,c=l!==void 0&&typeof o.provider=="string"&&o.provider.trim()!==""?o.provider.trim():void 0,u=Ch(o.label),m=u!==void 0?Ch(o.labelColor):void 0;return{id:o.id,version:a,createdAt:n,updatedAt:r,cwd:s,tier:i,...l!==void 0?{model:l}:{},...c!==void 0?{provider:c}:{},...u!==void 0?{label:u}:{},...m!==void 0?{labelColor:m}:{},blocks:Eh(o.blocks)}}fitBlocks(e,o){let n=i=>Buffer.byteLength(JSON.stringify({...e,blocks:i})+`
|
|
498
498
|
`,"utf8")<=TY;if(n(o))return o;let r=1,s=o.length;for(;r<s;){let i=r+s>>1;n(o.slice(i))?s=i:r=i+1}return o.slice(r)}writeAtomic(e){vY(this.dir,{recursive:!0,mode:SY});let o=this.pathFor(e.id),n=`${o}.${process.pid}.${hY(6).toString("hex")}.tmp`,r=JSON.stringify(e)+`
|
|
499
499
|
`,s;try{s=gY(n,US.O_CREAT|US.O_EXCL|US.O_WRONLY,wY),yY(s,r),YP(s),s=void 0,kY(n,o)}catch(i){if(s!==void 0)try{YP(s)}catch{}try{XP(n)}catch{}throw i}}}});import{homedir as OY}from"node:os";import{join as HS}from"node:path";import{readdirSync as MY,readFileSync as LY,mkdirSync as PY,statSync as FY}from"node:fs";var IY,eF,NY,$Y,kd,tF=p(()=>{"use strict";P();IY=448,eF="commands",NY=64*1024,$Y=256,kd=class{dir;constructor(e={}){let o=e.baseDir??HS(OY(),".aluy");this.dir=HS(o,eF)}get commandsDir(){return this.dir}ensureDir(){try{PY(this.dir,{mode:IY,recursive:!0})}catch{}}load(){let e;try{e=MY(this.dir,{withFileTypes:!0})}catch{return[]}let o=e.filter(s=>(s.isFile()||s.isSymbolicLink())&&s.name.toLowerCase().endsWith(".md")).map(s=>s.name).sort((s,i)=>s.localeCompare(i)),n=new Set,r=[];for(let s of o){if(r.length>=$Y)break;let i=this.readOne(s);i&&(n.has(i.name)||(n.add(i.name),r.push(i)))}return r}readOne(e){let o=HS(this.dir,e);try{let n=FY(o);if(!n.isFile()||n.size>NY)return null;let r=LY(o,"utf8");return fu(e,r)}catch{return null}}}});import{join as BY}from"node:path";import{readdirSync as UY,readFileSync as jY,statSync as HY}from"node:fs";function qS(t,e){let o=new Map;for(let n of t)o.set(n.name,n);for(let n of e)o.set(n.name,n);return[...o.values()]}var oF,qY,WY,xd,nF=p(()=>{"use strict";P();Ns();oF=[".claude/commands",".aluy/commands"],qY=64*1024,WY=256,xd=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[];for(let n of oF){let r;try{r=this.workspace.resolveInside(n)}catch{continue}let s;try{s=UY(r,{withFileTypes:!0})}catch{continue}let i=s.filter(a=>(a.isFile()||a.isSymbolicLink())&&a.name.toLowerCase().endsWith(".md")).map(a=>a.name).sort((a,l)=>a.localeCompare(l));for(let a of i){if(o.length>=WY)break;let l=this.readOne(n,r,a);l&&(e.has(l.name)||(e.add(l.name),o.push(l)))}}return o}readOne(e,o,n){let r=`${e}/${n}`;if(Fo(r).kind!=="allow")return null;let s=BY(o,n);try{this.workspace.resolveInside(r);let i=HY(s);if(!i.isFile()||i.size>qY)return null;let a=jY(s,"utf8");return fu(n,a)}catch{return null}}}});import{join as GY}from"node:path";import{readdirSync as zY,readFileSync as KY,statSync as YY}from"node:fs";var rF,VY,XY,Hi,WS=p(()=>{"use strict";P();Ns();rF=[".claude/agents",".aluy/agents"],VY=64*1024,XY=256,Hi=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of rF){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=zY(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>=XY)break;let c=this.readOne(r,s,l);if(c!==null){if(nu(c)){n.push(c);continue}e.has(c.name)||(e.add(c.name),o.push(c))}}}return{profiles:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}`;if(Fo(r).kind!=="allow")return null;let s=GY(o,n);try{this.workspace.resolveInside(r);let i=YY(s);if(!i.isFile()||i.size>VY)return null;let a=KY(s,"utf8");return ru(n,a,"project")}catch{return null}}}});var zS={};ft(zS,{UserWorkflowsLoader:()=>ur,WORKFLOWS_DIRNAME:()=>pl});import{homedir as JY}from"node:os";import{join as GS}from"node:path";import{readdirSync as QY,readFileSync as ZY,mkdirSync as e5,statSync as t5}from"node:fs";var o5,pl,n5,r5,ur,Sd=p(()=>{"use strict";P();o5=448,pl="workflows",n5=64*1024,r5=256,ur=class{dir;constructor(e={}){let o=e.baseDir??GS(JY(),".aluy");this.dir=GS(o,pl)}get workflowsDir(){return this.dir}ensureDir(){try{e5(this.dir,{mode:o5,recursive:!0})}catch{}}load(){let e;try{e=QY(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>=r5)break;let a=this.readOne(i);if(a!==null){if(cu(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=GS(this.dir,e);try{let n=t5(o);if(!n.isFile()||n.size>n5)return null;let r=ZY(o,"utf8");return uu(e,r,"global")}catch{return null}}}});var YS={};ft(YS,{PROJECT_WORKFLOWS_DIRNAMES:()=>KS,ProjectWorkflowsLoader:()=>dr});import{join as s5}from"node:path";import{readdirSync as i5,readFileSync as a5,statSync as l5}from"node:fs";var KS,c5,u5,dr,wd=p(()=>{"use strict";P();Ns();KS=[".claude/workflows",".aluy/workflows"],c5=64*1024,u5=256,dr=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of KS){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=i5(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>=u5)break;let c=this.readOne(r,s,l);if(c!==null){if(cu(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(Fo(r).kind!=="allow")return null;let s=s5(o,n);try{this.workspace.resolveInside(r);let i=l5(s);if(!i.isFile()||i.size>c5)return null;let a=a5(s,"utf8");return uu(n,a,"project")}catch{return null}}}});import{homedir as d5}from"node:os";import{join as VS}from"node:path";import{readdirSync as m5,readFileSync as f5,mkdirSync as p5,statSync as h5}from"node:fs";var g5,Ed,Ad,y5,b5,es,Th=p(()=>{"use strict";P();g5=448,Ed="skills",Ad="SKILL.md",y5=256*1024,b5=256,es=class{dir;constructor(e={}){let o=e.baseDir??VS(d5(),".aluy");this.dir=VS(o,Ed)}get skillsDir(){return this.dir}ensureDir(){try{p5(this.dir,{mode:g5,recursive:!0})}catch{}}load(){let e;try{e=m5(this.dir,{withFileTypes:!0})}catch{return{skills:[],errors:[]}}let o=e.filter(i=>i.isDirectory()).map(i=>i.name).sort((i,a)=>i.localeCompare(a)),n=new Set,r=[],s=[];for(let i of o){if(r.length>=b5)break;let a=this.readOne(i);if(a!==null){if(iu(a)){s.push(a);continue}n.has(a.name)||(n.add(a.name),r.push(a))}}return{skills:r,errors:s}}readOne(e){let o=VS(this.dir,e,Ad);try{let n=h5(o);if(!n.isFile()||n.size>y5)return null;let r=f5(o,"utf8");return au(e,r,"global")}catch{return null}}}});import{join as v5}from"node:path";import{readdirSync as k5,readFileSync as x5,statSync as S5}from"node:fs";var sF,w5,E5,ts,XS=p(()=>{"use strict";P();Th();sF=[".claude/skills",".aluy/skills"],w5=256*1024,E5=256,ts=class{workspace;constructor(e){this.workspace=e.workspace}load(){let e=new Set,o=[],n=[];for(let r of sF){let s;try{s=this.workspace.resolveInside(r)}catch{continue}let i;try{i=k5(s,{withFileTypes:!0})}catch{continue}let a=i.filter(l=>l.isDirectory()).map(l=>l.name).sort((l,c)=>l.localeCompare(c));for(let l of a){if(o.length>=E5)break;let c=this.readOne(r,s,l);if(c!==null){if(iu(c)){n.push(c);continue}e.has(c.name)||(e.add(c.name),o.push(c))}}}return{skills:o,errors:n}}readOne(e,o,n){let r=`${e}/${n}/${Ad}`,s=v5(o,n,Ad);try{this.workspace.resolveInside(r);let i=S5(s);if(!i.isFile()||i.size>w5)return null;let a=x5(s,"utf8");return au(n,a,"project")}catch{return null}}}});import{homedir as A5}from"node:os";import{join as JS}from"node:path";import{readFileSync as C5,statSync as T5}from"node:fs";var iF,D5,_5,Cd,aF=p(()=>{"use strict";P();iF="hooks.json",D5="settings.json",_5=256*1024,Cd=class{file;claudeProjectFile;constructor(e={}){let o=e.baseDir??JS(A5(),".aluy");this.file=JS(o,iF),e.workspaceRoot!==void 0&&(this.claudeProjectFile=JS(e.workspaceRoot,".claude",D5))}get configPath(){return this.file}load(){let e=rk(this.readJson(this.file));if(this.claudeProjectFile===void 0)return e;let o=ik(this.readJson(this.claudeProjectFile));return ak(e,o)}readJson(e){let o;try{let n=T5(e);if(!n.isFile()||n.size>_5)return;o=C5(e,"utf8")}catch{return}try{return JSON.parse(o)}catch{return}}}});var Td=p(()=>{"use strict";al();pP();bh();yP();xP();AP();xh();Bs();PP();eS();dS();NP();$P();MS();PS();ko();qP();ZP();$S();tF();nF();oh();WS();Sd();wd();Th();XS();aF()});function Dd(t,e){let o=t.toLowerCase(),n=e.toLowerCase();if(o==="")return{score:0,matched:[]};let r=[],s=0,i=0,a=-1,l=e.lastIndexOf("/")+1;for(let u=0;u<o.length;u++){let m=o[u],d=n.indexOf(m,s);if(d===-1)return null;r.push(d),a>=0&&d===a+1?i+=5:i+=1,d>=l&&(i+=2);let h=d>0?e[d-1]:"/";(h==="/"||h==="-"||h==="_"||h===".")&&(i+=3),a=d,s=d+1}let c=(r[r.length-1]??0)-(r[0]??0);return i-=c*.1,i-=e.length*.01,{score:i,matched:r}}function QS(t,e){let o=t.trim();if(o==="")return e.map(r=>({path:r,score:0,matched:[]}));let n=[];for(let r of e){let s=Dd(o,r);s&&n.push({path:r,score:s.score,matched:s.matched})}return n.sort((r,s)=>s.score-r.score||r.path.length-s.path.length||r.path.localeCompare(s.path)),n}var ZS=p(()=>{"use strict"});function O5(t){return t.replace(/\\ /g," ")}function M5(t){return t.includes("/")?!0:/\.[A-Za-z0-9]+$/.test(t)}function L5(t){let e=t.replace(/\.+$/,"");return{token:e,trimmed:t.length-e.length}}function qi(t){let e=[];for(let o of t.matchAll(R5)){let n=o[1],r=o[4],s=o[2]??o[3]??r,{token:i,trimmed:a}=r!==void 0?L5(s):{token:s,trimmed:0},l=O5(i);if(!M5(l))continue;let c=(o.index??0)+o[0].indexOf(n);e.push({path:l,start:c,end:c+n.length-a})}return e}function ew(t,e){if(e.length===0)return t;let o=t;for(let n of[...e].sort((r,s)=>s.start-r.start))o=o.slice(0,n.start)+o.slice(n.end);return o.replace(/\s{2,}/g," ").trim()}var R5,lF=p(()=>{"use strict";R5=/(?:^|\s)(@(?:"([^"]+)"|'([^']+)'|((?:[\p{L}\p{N}._/-]|\\ )+)))/gu});function Dh(t){let e=t.lastIndexOf("@");if(e<0)return null;let o=e>0?t[e-1]:" ";if(o!==" "&&o!==`
|
|
500
500
|
`&&o!==" ")return null;let n=t.slice(e+1);return/\s/.test(n)?null:{at:e,query:n}}function tw(t){let e=Dh(t);return e?t.slice(0,e.at).replace(/\s+$/,""):t}var cF=p(()=>{"use strict"});import{relative as P5,sep as F5,isAbsolute as I5}from"node:path";var uF,N5,_d,dF=p(()=>{"use strict";P();Ns();yh();uF=16e3,N5=5*1024*1024,_d=class{workspace;fs;maxChars;sniffBytes;constructor(e){this.workspace=e.workspace,this.fs=e.fs,this.maxChars=e.maxChars??uF,this.sniffBytes=e.sniffBytes??N5}async attach(e,o={}){let n=e,r;try{r=this.workspace.resolveInside(e)}catch{return{kind:"rejected",path:n,reason:"caminho fora do workspace \u2014 recusado (o @ s\xF3 acessa a raiz do projeto)."}}let s=P5(this.workspace.root,r).split(F5).join("/");if(s===""||s.startsWith("..")||I5(s))return{kind:"rejected",path:n,reason:"caminho inv\xE1lido p/ o workspace."};let i=Fo(s);if(i.kind==="deny")return{kind:"rejected",path:s,reason:`bloqueado: ${i.why} \u2014 esse tipo de arquivo nunca \xE9 anexado ao contexto.`};if(i.kind==="ask"&&o.confirmSensitive!==!0)return{kind:"rejected",path:s,reason:`sens\xEDvel: ${i.why} \u2014 confirme explicitamente p/ anexar (fora do picker por padr\xE3o).`};try{if(await fP(r,this.sniffBytes))return{kind:"rejected",path:s,reason:"arquivo bin\xE1rio \u2014 n\xE3o anexado (conte\xFAdo n\xE3o \xE9 texto; evita lixo no contexto)."}}catch{}let a;try{a=await this.fs.readFile(s)}catch{return{kind:"rejected",path:s,reason:"n\xE3o foi poss\xEDvel ler o arquivo (sumiu/ileg\xEDvel)."}}let l=!1;return a.length>this.maxChars&&(a=a.slice(0,this.maxChars)+`
|
|
@@ -527,7 +527,7 @@ ${r.join(`
|
|
|
527
527
|
`}if(this.maxBytes>0&&(await je.stat(this.filePath(e))).size+Buffer.byteLength(u,"utf-8")>this.maxBytes)throw new Error(`limite de tamanho da sala excedido (${this.maxBytes} bytes). Evicte salas expiradas ou reduza o volume de mensagens.`);await je.appendFile(this.filePath(e),u)}}finally{await this.releaseLock(e,n)}}async remove(e){try{return await je.unlink(this.filePath(e)),!0}catch(o){if(o.code==="ENOENT")return!1;throw o}}async evictDead(e){let o=e??Date.now(),n;try{n=await je.readdir(this.baseDir,{withFileTypes:!0})}catch(s){if(s.code==="ENOENT")return 0;throw s}let r=0;for(let s of n){if(!s.isFile()||!s.name.endsWith(".jsonl"))continue;let i=s.name.slice(0,-6);if(!/^[a-f0-9]{32}$/.test(i))continue;let a=gl.join(this.baseDir,s.name);try{let l=await Nh(a,i);(l.revoked||hs(l,o))&&(await je.unlink(a),r+=1)}catch{try{await je.unlink(a),r+=1}catch{}}}return r}}});function zF(t){if(t.config.hooks.some(o=>o.event==="pre-tool"&&o.gate===!0))return async(o,n)=>{let r=sk(t.config,o.name);if(r.length===0)return{blocked:!1};let s=await t.runner.runGate(r,n);return s.blocked?{blocked:!0,observation:`A tool "${o.name}" foi VETADA por um hook de pre-tool (gate) \u2014 isto N\xC3O \xE9 um erro t\xE9cnico nem um bloqueio da catraca: a pol\xEDtica do dono (hook \`${s.command}\`) decidiu barrar esta chamada (o hook terminou com c\xF3digo de sa\xEDda \u2260 0). N\xC3O repita a mesma chamada \u2014 siga por outro caminho. Sa\xEDda do hook (DADO): ${gV(s.observation)}`}:{blocked:!1}}}function gV(t){return typeof t.text=="string"?t.text:""}var KF=p(()=>{"use strict";P()});function VF(t={}){let e=t.env??process.env,o=Lo(e),n=t.store??new io,r=new ro({baseUrl:o.identityBaseUrl,clientId:Yx,store:n,...t.identityFetch?{fetch:t.identityFetch}:{}},{envToken:()=>e.ALUY_TOKEN}),s=mn(e),i=t.brokerClient??Oc({brokerBaseUrl:s.brokerBaseUrl,login:r,...t.brokerFetch?{fetch:t.brokerFetch}:{}}),a=t.catalogClient??Mc({brokerBaseUrl:s.brokerBaseUrl,login:r,...t.brokerFetch?{fetch:t.brokerFetch}:{}}),l=t.customModelClient??Lc({brokerBaseUrl:s.brokerBaseUrl,login:r,...t.brokerFetch?{fetch:t.brokerFetch}:{}}),c=t.providersClient??Pc({brokerBaseUrl:s.brokerBaseUrl,login:r,...t.brokerFetch?{fetch:t.brokerFetch}:{}}),u=t.quotaClient??Lb({brokerBaseUrl:s.brokerBaseUrl,login:r,...t.brokerFetch?{fetch:t.brokerFetch}:{}}),m=t.mode??(t.unsafe?"unsafe":"normal"),d=m==="unsafe",h=new ao({...t.workspaceRoot!==void 0?{root:t.workspaceRoot}:{},...d?{unconfined:!0}:{}}),g=t.sessionId??La(),b=new fd({sessionId:g,...t.journalBaseDir!==void 0?{baseDir:t.journalBaseDir}:{}});b.gcOrphans();let y=new ku({store:b,workspace:h,restoreWriter:new hd({workspace:h}),currentReader:new gd({workspace:h})}),w=new xu({journal:y}),A=new js({workspace:h}),T=new Bi(t.egressAllow!==void 0?{allow:t.egressAllow}:{}),O=Tk(e.ALUY_WEB_FETCH_MAX_CHARS),N=aS({egress:T,policy:{maxObservationChars:O,...d?{allowInternalHosts:!0}:{}}}),G=new Kr({workspace:h,...t.memoryBaseDir!==void 0?{baseDir:t.memoryBaseDir}:{}}),V=new Di({store:G}),z=new pd({...t.todoBaseDir!==void 0?{baseDir:t.todoBaseDir}:{},sessionId:g}),B=process.env.ALUY_SANDBOX_BASH?gh():void 0,X=new Oh,oe=new ka,ne={fs:A,shell:new ad({workspace:h,timeoutMs:yV,...B?{sandboxLauncher:B}:{},egressAllows:H=>{let ue=T.inspect(H);return ue.hasNetwork&&!ue.outsideAllowlist}}),search:new ld({workspace:h}),journal:y.toolPort,web:N,cwd:h,memory:{remember:(H,ue,Ot)=>V.remember(H,ue,Ot),searchFacts:(H,ue)=>V.searchFacts(H,ue)},todo:z,question:X,graph:oe},M=new cd({workspace:h}),j=new _d({workspace:h,fs:A}),Ae=new bo({mode:m,diffPreview:(H,ue,Ot)=>Ot!==void 0?$a(H,Ot,ue,!0):$a(H,"",ue,!1),...t.maxMemoryWritesPerSession!==void 0?{maxMemoryWritesPerSession:t.maxMemoryWritesPerSession}:{}}),se=new Rh(t.askTimeoutMs!==void 0?{timeoutMs:t.askTimeoutMs}:{}),he=(t.hooksConfigStore??new Cd({workspaceRoot:t.workspaceRoot??process.cwd()})).load(),ie=new hu({permission:Ae,ports:ne,askResolver:se}),fe=zF({runner:ie,config:he}),R=t.tier??gn,de=Zp(R,e,void 0,t.context?.window),ae=R==="custom"?t.model:void 0,Y=ae!==void 0?t.provider:void 0,Oe=t.effort,et=(t.effectiveBackend!=="local"?(t.localBudget===!1&&t.onConfigWarn?.("aluy: budget OFF n\xE3o se aplica ao backend broker \u2014 o or\xE7amento de sess\xE3o est\xE1 SEMPRE ativo no broker. Use --backend local para deslig\xE1-lo (BYO)."),!0):t.localBudget!==!1)?{...Oo,maxIterations:Xm(t.maxIterations,e.ALUY_MAX_ITERATIONS,t.limits?.maxIterations),maxTokens:Vm(t.maxTokens,e.ALUY_MAX_TOKENS,t.limits?.maxTokens)}:{maxIterations:1e4,maxToolCalls:1e4*2},Le=UC(t.maxOutputTokens,e.ALUY_MAX_OUTPUT_TOKENS,t.limits?.maxOutputTokens,t.onConfigWarn),Rt=Xb({flag:t.selfCheck,env:e.ALUY_SELF_CHECK,tier:R,everyKEnv:e.ALUY_SELF_CHECK_EVERY,maxVerificationsEnv:e.ALUY_SELF_CHECK_MAX}),Qo={cwd:h.cwd,tier:R,...ae!==void 0?{model:ae}:{},...t.effectiveBackend!==void 0?{backend:t.effectiveBackend}:{},tokens:0,windowPct:0},wt=null,Te=new Mh({client:i,tier:R,...t.headroomUrl!==void 0?{headroomUrl:t.headroomUrl}:{},...ae!==void 0?{model:ae}:{},...Y!==void 0?{provider:Y}:{},...Oe!==void 0?{effort:Oe}:{},...Le!==void 0?{maxTokens:Le}:{},sink:{onStart:()=>wt?.sink.onStart?.(),onDelta:H=>wt?.sink.onDelta(H),onUsage:H=>wt?.sink.onUsage?.(H),onQuota:H=>wt?.sink.onQuota?.(H),onDone:()=>wt?.sink.onDone?.()}}),Et=new er({client:i,tier:R,tierSource:Te,maxTokens:ap}),rt=new er({client:i,tier:R,tierSource:Te,maxTokens:2048}),I=t.subAgents?.enabled?new er({client:i,tier:R,tierSource:Te,...Le!==void 0?{maxTokens:Le}:{}}):void 0,K=new Map,ye,Ee=t.subAgents?.enabled?H=>{let ue=K.get(H);if(ue)return ue;let Ot=new er({client:i,tier:H,...Le!==void 0?{maxTokens:Le}:{}});return ye&&Ot.attachNativeTools(ye),K.set(H,Ot),Ot}:void 0,Pe=wk(e.ALUY_ROOM_BACKEND,t.roomsBackend);Pe.warning&&t.onConfigWarn&&t.onConfigWarn(Pe.warning);let Fe=(()=>{switch(Pe.backend){case"memory":return new Br;case"file":return new $h;case"loopback":case"broker":throw new Error(`Room backend "${Pe.backend}" n\xE3o implementado ainda. Use "memory" ou "file", ou deixe o default.`);default:return new Br}})(),J=new Ih({model:Te,compactionModel:Et,sideQueryModel:rt,permission:Ae,roomStore:Fe,ports:ne,askResolver:se,questionResolver:X,...fe?{preToolGate:fe}:{},...Lt(he,"user-prompt-submit").length>0?{onUserPromptSubmit:()=>{ie.runAll(Lt(he,"user-prompt-submit"))}}:{},meta:Qo,limits:et,...Rt.enabled?{selfCheck:Rt}:{},...t.autoCompactAt!==void 0?{autoCompactAt:t.autoCompactAt}:{},...t.context?{contextConfig:t.context}:{},contextWindow:de,...t.projectInstructions!==void 0?{projectInstructions:t.projectInstructions}:{},...t.availableAgents!==void 0?{availableAgents:t.availableAgents}:{},...t.sessionCommands!==void 0?{sessionCommands:t.sessionCommands}:{},...t.mcpTools!==void 0?{mcpTools:t.mcpTools}:{},...t.headroomUrl!==void 0?{headroomRetrieveTool:tP({baseUrl:t.headroomUrl})}:{},...t.subAgents?.enabled?{subAgents:{...t.subAgents,env:t.subAgents.env??e,...Lt(he,"subagent-stop").length>0?{observer:{onChildEnd:()=>{ie.runAll(Lt(he,"subagent-stop"))}}}:{}}}:{},...t.subAgents?.enabled&&t.agentRegistry?{agentRegistry:t.agentRegistry}:{},...t.subAgents?.enabled&&t.reloadProjectAgents?{reloadProjectAgents:t.reloadProjectAgents}:{},...I?{subAgentModel:I}:{},...Ee?{callerForTier:Ee}:{},disableNativeTools:e.ALUY_NATIVE_TOOLS_OFF==="1"||e.ALUY_NATIVE_TOOLS_OFF==="true",watchdogEnv:e,quotaFetcher:()=>u.fetchQuota(),...t.memoryMonitor!==void 0?{memory:{heapLimitMb:t.memoryMonitor.heapLimitMb,sampleHeapUsed:t.memoryMonitor.sampleHeapUsed,env:e,...t.memoryMonitor.sampleIntervalMs!==void 0?{sampleIntervalMs:t.memoryMonitor.sampleIntervalMs}:{}}}:{},onUserPrompt:(H,ue)=>{w.markPrompt(H,ue)},...(()=>{let H=sh({env:e,...t.services?{services:t.services}:{}});if(!H)return{};let ue=PL(e);return ue?{maestro:H,continuationConfig:ue}:{maestro:H}})(),...(()=>{let H=LL({env:e,...t.services?{services:t.services}:{}});return H?{memoryEngine:H.memory,memoryScope:H.memoryScope,memoryRecallScopes:H.memoryRecallScopes}:{}})(),onToolsReady:H=>{Te.attachNativeTools(H),I?.attachNativeTools(H),ye=H;for(let ue of K.values())ue.attachNativeTools(H)}});return wt=J,{controller:J,login:r,engine:Ae,egress:T,workspace:h,askResolver:se,questionResolver:X,journal:y,journalStore:b,checkpoints:w,fileIndex:M,attachReader:j,catalogClient:a,customModelClient:l,providersClient:c,quotaClient:u,ports:ne,memory:V,todoStore:z,hookRunner:ie,hooksConfig:he}}var gn,yV,Md=p(()=>{"use strict";P();Fs();Ii();oP();lr();SS();Td();Rd();mF();fF();gF();mw();Td();GF();KF();P();Vr();fS();gn="aluy-flux",yV=12e4});var JF={};ft(JF,{runDoctor:()=>bV});async function bV(t={}){let e=t.io??Pt(),o=t.env??process.env,n=t.json===!0,r=t.probe??vV(o,t.deep===!0),s=r.tierTester!==void 0;if(!n){e.out("aluy doctor \u2014 diagn\xF3stico"),e.out("");for(let h of lh(s))e.out(`\u25F7 ${h.label}: testando\u2026`);let c={...r,onCheck:(h,g)=>{let b=ch(h,g);if(!b)return;let y=b.status==="ok"?sd.ok:b.status==="warn"?sd.warn:sd.fail;e.out(`${y} ${b.label}: ${b.detail}`),b.status!=="ok"&&b.fix!==void 0&&e.out(` \u2192 ${b.fix}`)}},u=await od(c),m=rd(u),d=ZL(m,sd);return e.out(""),e.out(d[d.length-1]??""),gS(m)?1:0}let i=await od(r),a=rd(i),l=a.checks.map(c=>({id:c.id,status:c.status,label:c.label,detail:c.detail}));return e.out(JSON.stringify(l)),gS(a)?1:0}function vV(t,e){return{env:t,getAccessToken:()=>kV(t),memory:SV(),makeMcpTransport:()=>new Yr({cwd:process.cwd(),parentEnv:t}),...e?{tierTester:()=>mh({tier:xV(),login:XF(t),env:t})}:{}}}function XF(t){let e=Lo(t),o=new io;return new ro({...e,baseUrl:e.identityBaseUrl,store:o})}function kV(t){return XF(t).getAccessToken()}function xV(){try{let t=new Ue({}).load();return Uu(void 0,t,gn)}catch{return gn}}function SV(){return{async count(){try{let t=new ao({}),e=new Kr({workspace:t});return(await new Di({store:e}).list()).length}catch{return null}}}}var QF=p(()=>{"use strict";P();ir();Fs();lr();al();eS();Xu();hS();dh();eP();yS();ko();Md()});function wV(t){return(t.entries.find(o=>o.wave===1)??t.entries[0])?.id??"anthropic"}function Bh(t){return Pr({flag:t.flag,env:t.env.ALUY_BACKEND,config:t.config.backend})}function hw(t,e){return t==null?void 0:Rn(e,t)?.id}function gw(t){if(t==null)return;let e=t.trim().toLowerCase();if(e==="apikey"||e==="oauth"||e==="none")return e}function EV(t,e){let o=Rn(e,t)?.auth;return o!==void 0&&o.length>0&&o.every(n=>n==="none")?"none":"apikey"}function yl(t){if(t==null)return;let e=t.trim();return e!==""?e:void 0}function bl(t){let e=t.flags??{},o=t.catalog??Zn(),n=hw(e.localProvider,o)??hw(t.env.ALUY_LOCAL_PROVIDER,o)??hw(t.config.localProvider,o)??wV(o),r=Rn(o,n)?.defaultModel??n,s=yl(e.localModel)??yl(t.env.ALUY_LOCAL_MODEL)??yl(t.config.localModel)??r,i=gw(e.localAuth)??gw(t.env.ALUY_LOCAL_AUTH)??gw(t.config.localAuth)??EV(n,o),a=yl(e.localBaseUrl)??yl(t.env.ALUY_LOCAL_BASE_URL)??yl(t.config.localBaseUrl);return{provider:n,model:s,auth:i,...a!==void 0?{baseUrl:a}:{}}}var Uh=p(()=>{"use strict";P()});var eI={};ft(eI,{collectSettings:()=>ZF,runConfig:()=>OV});import{existsSync as TV}from"node:fs";import{homedir as DV}from"node:os";import{join as jh}from"node:path";function qs(t,e,o,n,r,s){let i=o?.trim();return i!==void 0&&i!==""?{key:t,value:i,origin:"env",source:e}:n!=null?{key:t,value:String(n),origin:"config.json",source:s??`config.${t}`}:{key:t,value:r,origin:"default",source:"\u2014"}}function vl(t,e,o){return e!=null?{key:t,value:String(e),origin:"config.json",source:`config.${t}`}:{key:t,value:o,origin:"default",source:"\u2014"}}function ZF(t,e){let o=bl({env:{},config:{}}),n=o.baseUrl??"\u2014";return[qs("backend","ALUY_BACKEND",t.ALUY_BACKEND,e.backend,Bh({env:{},config:{}})),qs("localProvider","ALUY_LOCAL_PROVIDER",t.ALUY_LOCAL_PROVIDER,e.localProvider,o.provider),qs("localModel","ALUY_LOCAL_MODEL",t.ALUY_LOCAL_MODEL,e.localModel,o.model),qs("localAuth","ALUY_LOCAL_AUTH",t.ALUY_LOCAL_AUTH,e.localAuth,o.auth),qs("localBaseUrl","ALUY_LOCAL_BASE_URL",t.ALUY_LOCAL_BASE_URL,e.localBaseUrl,n),vl("profile",e.profile,"turbo"),vl("sidecar.ollama",e.sidecarToggles?.ollama,"on (default)"),vl("sidecar.mem0",e.sidecarToggles?.mem0,"on (default)"),vl("sidecar.headroom",e.sidecarToggles?.headroom,"on (default)"),vl("lang",e.lang,"auto"),vl("theme",e.theme,"default"),qs("maxTokens","ALUY_MAX_TOKENS",t.ALUY_MAX_TOKENS,e.limits?.maxTokens,String(1e7),"config.limits.maxTokens"),qs("maxOutputTokens","ALUY_MAX_OUTPUT_TOKENS",t.ALUY_MAX_OUTPUT_TOKENS,e.limits?.maxOutputTokens,"\u2014 (do servidor/tier)","config.limits.maxOutputTokens"),qs("maxIterations","ALUY_MAX_ITERATIONS",t.ALUY_MAX_ITERATIONS,e.limits?.maxIterations,String(300),"config.limits.maxIterations")]}function _V(t){let e=(o,n)=>{let r=jh(t,o);return{path:r,role:n,exists:TV(r)}};return[e("config.json","configura\xE7\xE3o dur\xE1vel (este comando)"),e("mcp.json","servers MCP (interop; sem credencial \u2014 CLI-SEC-7)"),e("hooks.json","hooks (fronteira de execu\xE7\xE3o; o agente nunca escreve)"),e("providers.json","cat\xE1logo de providers (override do usu\xE1rio)"),e("update-check.json","estado/cache (reescrito pela m\xE1quina)"),e("sessions","hist\xF3rico das sess\xF5es/conversas (retom\xE1vel com --resume)"),e("audit.jsonl","trilha de auditoria dos efeitos (append-only \u2014 CLI-SEC)"),e("cron","tarefas agendadas (aluy cron)"),e("exports","transcri\xE7\xF5es exportadas (/export)"),e("undo","pilha de undo das edi\xE7\xF5es do agente"),e("memory","store do mem0 (chromadb + history)"),e("logs","logs dos sidecars (mem0/ollama/headroom)")]}function OV(t={}){let e=t.io??Pt(),o=t.env??process.env,n=t.baseDir??jh(DV(),".aluy"),s=(t.configStore??new Ue({baseDir:n})).load(),i=ZF(o,s),a=_V(n);if(t.json===!0)return e.out(JSON.stringify({configPath:jh(n,"config.json"),settings:i.map(u=>({key:u.key,value:u.value,origin:u.origin,source:u.source})),files:a.map(u=>({path:u.path,role:u.role,exists:u.exists}))},null,2)),0;e.out("aluy config \u2014 configura\xE7\xE3o efetiva (read-only)"),e.out(` arquivo dur\xE1vel: ${jh(n,"config.json")}`),e.out(" preced\xEAncia: flag > env (ALUY_*) > config.json > default"),e.out("");let l=Math.max(...i.map(u=>u.key.length),3),c=Math.max(...i.map(u=>u.value.length),5);for(let u of i){let m=RV[u.origin],d=u.origin==="default"?"":` (${u.source})`;e.out(` ${u.key.padEnd(l)} ${u.value.padEnd(c)} [${m}]${d}`)}e.out(""),e.out(" outros arquivos (fora do config.json de prop\xF3sito \u2014 segredo/interop/execu\xE7\xE3o):");for(let u of a){let m=u.exists?"\xB7":"\u25CB";e.out(` ${m} ${u.path} \u2014 ${u.role}`)}return e.out(""),e.out(" segredos (chave de API/token) ficam no keychain do SO, NUNCA no config.json."),0}var RV,tI=p(()=>{"use strict";P();ir();ko();Uh();RV={env:"env","config.json":"config",default:"default"}});var nI={};ft(nI,{defaultUserAgentsDir:()=>FV,runAgents:()=>PV});import{homedir as MV}from"node:os";import{join as oI}from"node:path";function LV(){return oI("~",".aluy",Zu)}function PV(t={}){let e=t.out??(a=>process.stdout.write(a+`
|
|
528
528
|
`)),o=t.loadGlobal??(()=>new Jr().load()),n=t.loadProject??(()=>new Hi({workspace:new ao}).load()),r=o(),s=n(),i=su({profiles:[...r.profiles,...s.profiles],errors:[...r.errors,...s.errors],globalDir:t.globalDir??LV()});e(i.title==="agents"?"aluy agents \u2014 perfis .md mapeados":i.title);for(let a of i.lines)e(a);return 0}function FV(){return oI(MV(),".aluy",Zu)}var rI=p(()=>{"use strict";P();oh();WS();al()});var iI={};ft(iI,{defaultUserSkillsDir:()=>BV,runSkills:()=>$V});import{homedir as IV}from"node:os";import{join as sI}from"node:path";function NV(){return sI("~",".aluy",Ed)}function $V(t={}){let e=t.out??(a=>process.stdout.write(a+`
|
|
529
529
|
`)),o=t.loadGlobal??(()=>new es().load()),n=t.loadProject??(()=>new ts({workspace:new ao}).load()),r=o(),s=n(),i=lu({skills:[...r.skills,...s.skills],errors:[...r.errors,...s.errors],globalDir:t.globalDir??NV()});e("aluy skills \u2014 capacidades SKILL.md mapeadas");for(let a of i.lines)e(a);return 0}function BV(){return sI(IV(),".aluy",Ed)}var aI=p(()=>{"use strict";P();Th();XS();al()});var cI={};ft(cI,{defaultUserWorkflowsDir:()=>qV,runWorkflows:()=>HV});import{homedir as UV}from"node:os";import{join as lI}from"node:path";function jV(){return lI("~",".aluy",pl)}function HV(t={}){let e=t.out??(a=>process.stdout.write(a+`
|
|
530
|
-
`)),o=t.loadGlobal??(()=>new ur().load()),n=t.loadProject??(()=>new dr({workspace:new ao}).load()),r=o(),s=n(),i=du({workflows:[...r.workflows,...s.workflows],errors:[...r.errors,...s.errors],globalDir:t.globalDir??jV(),projectDir:t.projectDir??".claude/workflows"});e("workflows \u2014 fluxos .md mapeados");for(let a of i.lines)e(a);return 0}function qV(){return lI(UV(),".aluy",pl)}var uI=p(()=>{"use strict";P();Sd();wd();al()});var fI={};ft(fI,{probeModelReachable:()=>dI,runFirstRunWizard:()=>mI,runInit:()=>zV});import{Entry as WV}from"@napi-rs/keyring";async function dI(t){let{config:e,env:o}=t,n=bl({env:o,config:e}),r=Rn(Zn(),n.provider)?.baseUrl,s=n.baseUrl??r;if(s===void 0||s==="")return!0;let i=t.fetchImpl??globalThis.fetch,a=t.timeoutMs??4e3,l=new AbortController,c=setTimeout(()=>l.abort(),a);try{return await i(`${s.replace(/\/+$/,"")}/models`,{signal:l.signal}),!0}catch{return!1}finally{clearTimeout(c)}}async function mI(t){let{config:e,configStore:o,prompt:n,out:r,err:s,entryFactory:i,isInteractive:a}=t,l=e.localProvider!==void 0,c=e.localModel!==void 0,u=!1,m=e.localProvider;if(m)try{let h=(i??GV)(ar,Gp(m)).getPassword();u=h!==""&&h!==void 0}catch{}if(l&&c&&u)return!0;if(!a)return s("aluy bootstrap: configura\xE7\xE3o de 1\xAA execu\xE7\xE3o necess\xE1ria (provider + chave + modelo)."),l||s(" \u2717 Falta provider local em ~/.aluy/config.json."),c||s(" \u2717 Falta modelo local em ~/.aluy/config.json."),u||s(" \u2717 Falta chave de API no keychain do SO."),s(""),s(" Rode `aluy bootstrap` interativamente (num terminal com TTY) para o wizard,"),s(" ou configure manualmente:"),s(" 1. `aluy login --provider <anthropic|openrouter|openai>` (grava a chave no keychain)"),s(" 2. Edite ~/.aluy/config.json e adicione:"),s(' "localProvider": "<provider>",'),s(' "localModel": "<modelo-nativo>"'),s(""),!1;if(r(""),r("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),r("\u2551 Configura\xE7\xE3o de 1\xAA execu\xE7\xE3o \u2014 provider + chave + modelo \u2551"),r("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),r(""),r("O `aluy bootstrap --agent` usa um modelo de linguagem para instalar"),r("depend\xEAncias. Precisamos de provider, chave de API e modelo."),r("(As credenciais ficam no keychain do SO \u2014 nunca em texto.)"),r(""),l)r(`Provider: ${m} (j\xE1 configurado)`);else{let d=(await n(`Provider (${yw.join("/")}): `)).trim().toLowerCase();if(!yw.includes(d))return s(`Provider inv\xE1lido "${d}". Use: ${yw.join(", ")}.`),!1;m=d,r("")}if(u)r("\u2713 Chave j\xE1 est\xE1 no keychain.");else{let d=m,h=(await n(`API key de ${d}: `,{secret:!0})).trim();if(h==="")return s("Chave vazia \u2014 abortando."),!1;try{if(rl(d,h,i),r("\u2713 Chave guardada no keychain do SO."),Kp({service:ar}))for(let g of Yp(qu(d)))s(g)}catch(g){return s(`Falha ao gravar no keychain: ${g instanceof Error?g.message:String(g)}`),s("(Por seguran\xE7a, a credencial nunca \xE9 gravada em texto. Instale o Secret Service no Linux.)"),!1}r("")}if(!c){let d=m,h=(await n("Modelo nativo (ex.: claude-sonnet-4-8): ")).trim();if(h==="")return s("Modelo vazio \u2014 abortando."),!1;o.save({localProvider:d,localModel:h}),r(`\u2713 Provider "${d}" + modelo "${h}" salvos em ~/.aluy/config.json.`),r("")}return r("Configura\xE7\xE3o conclu\xEDda. Seguindo para o provisionamento\u2026"),r(""),!0}function GV(t,e){return new WV(t,e)}async function zV(t){let{out:e,err:o}=t,n=t.configStore??new Ue,r,s,i;try{i=n.load(),r=i.profile,s=i.sidecarToggles}catch{i={}}let a=t.isInteractive!==void 0?t.isInteractive:process.stdin.isTTY===!0&&process.stdout.isTTY===!0;if(t.prompt!==void 0||!a){let u=t.prompt??(async()=>"");if(!await mI({config:i,configStore:n,prompt:u,out:e,err:o,...t.entryFactory!==void 0?{entryFactory:t.entryFactory}:{},isInteractive:a}))return 0}if(e("O Aluy CLI j\xE1 est\xE1 instalado e pronto para uso."),e(""),e("Esta etapa instala os COMPLEMENTOS opcionais (modo turbo): mem\xF3ria, modelos"),e("locais e gest\xE3o de contexto. Eles enriquecem a experi\xEAncia, mas n\xE3o s\xE3o"),e("obrigat\xF3rios \u2014 se algum n\xE3o instalar, voc\xEA usa o Aluy CLI normalmente sem ele."),e(""),e(` Perfil escolhido: ${r??"turbo"}`),r==="leve")return e(" Perfil LEVE: nenhum complemento ser\xE1 instalado \u2014 o Aluy CLI j\xE1 est\xE1 pronto."),e(" Para instal\xE1-los depois, rode `aluy bootstrap` ou troque para o perfil turbo."),0;let l=t.agent!==!1;l&&(await(t.modelProbe??((d,h)=>dI({config:d,env:h})))(i,t.env??process.env)||(e(" \u26A0 O modelo local n\xE3o respondeu \u2014 o instalador via agente precisa dele para rodar."),e(" Caindo no caminho DIRETO (--no-agent), que provisiona sem usar modelo."),e(""),l=!1)),l?(e(" Instalando os complementos com o pr\xF3prio aluy \u2014 ele detecta o sistema, instala o que"),e(" faltar (Python, pip, etc.) e os complementos. \u26A0 Acesso total \xE0 m\xE1quina (com sudo quando"),e(" preciso). Voc\xEA ver\xE1 o progresso de cada um abaixo.")):e(" Instalando os complementos pelo caminho direto (--no-agent; requer Python j\xE1 pronto)..."),e(""),process.env.ALUY_MEM0_EMBEDDER=Np(i);let c=await pM(r,s,{useAgent:l});for(let u of c.targets){let m=u.installed?"\u2713":"\u2717";e(` ${m} ${u.target}: ${u.message}`)}return e(""),c.anySuccess?(e("Complementos instalados. O Aluy CLI est\xE1 pronto, agora com o modo turbo."),c.allFailed&&e("Observa\xE7\xE3o: alguns complementos n\xE3o instalaram \u2014 o Aluy CLI funciona sem eles."),0):c.targets.length===0?(e("Nenhum complemento a instalar \u2014 o Aluy CLI j\xE1 est\xE1 pronto."),0):(o("Nenhum complemento foi instalado agora \u2014 sem problema, o Aluy CLI funciona"),o("normalmente. Voc\xEA pode tentar de novo depois com `aluy bootstrap`."),1)}var yw,pI=p(()=>{"use strict";ko();$x();sl();Hx();Uh();P();yw=["anthropic","openrouter","openai"]});var hI={};ft(hI,{runUninstall:()=>QV});import{homedir as KV}from"node:os";import{join as Hh}from"node:path";import{rmSync as YV,existsSync as VV}from"node:fs";import{spawnSync as XV}from"node:child_process";function JV(t){return[{label:"ollama (instala\xE7\xE3o local em ~/.aluy)",path:Hh(t,Cs)},{label:"mem0 (venv)",path:Hh(t,jr)},{label:"headroom (venv)",path:Hh(t,Ts)}]}function QV(t={},e={}){let o=e.io??Pt(),n=e.baseDir??Hh(KV(),".aluy"),r=e.remove??(i=>YV(i,{recursive:!0,force:!0})),s=e.exists??VV;o.out("Removendo os complementos gerenciados pelo aluy (em ~/.aluy/)\u2026");for(let i of JV(n)){if(!s(i.path)){o.out(` \xB7 ${i.label}: n\xE3o estava instalado`);continue}try{r(i.path),o.out(` \u2713 ${i.label}: removido`)}catch{o.err(` \u2717 ${i.label}: falha ao remover (${i.path})`)}}return o.out(""),t.agent?eX(o):(o.out("Se o Ollama foi instalado no SISTEMA (via curl/winget), ele N\xC3O fica em ~/.aluy e"),o.out("continua instalado. Para remov\xEA-lo tamb\xE9m: `aluy uninstall --agent` (o aluy remove"),o.out("via o pr\xF3prio agente \u2014 \u26A0 acesso total + sudo). O CLI em si sai com `npm uninstall -g"),o.out("@hiperplano/aluy-cli`; sua config (~/.aluy/config.json) e credenciais N\xC3O s\xE3o tocadas."),0)}function ZV(){return"DESINSTALE o Ollama instalado no SISTEMA (fora de ~/.aluy), detectando o SO. No Linux: pare/desabilite o servi\xE7o (`sudo systemctl stop ollama; sudo systemctl disable ollama` se existir), remova o bin\xE1rio (`sudo rm -f /usr/local/bin/ollama` ou onde estiver no PATH) e o usu\xE1rio/servi\xE7o se o install oficial criou. No macOS: encerre o app/servi\xE7o e remova-o. No Windows: `winget uninstall --id Ollama.Ollama`. Pacotes de sistema exigem privil\xE9gio: tente `sudo -n true`; se pedir senha, PE\xC7A ao usu\xE1rio. Opcional: remova os modelos baixados (`~/.ollama/models`). Confirme que `ollama` n\xE3o responde mais em http://127.0.0.1:11434/api/tags. Seja conciso."}function eX(t){let e=process.argv[1];return e?(t.out(" \u2500\u2500 Removendo o Ollama de sistema com o pr\xF3prio aluy \u2500\u2500 (acompanhe abaixo)"),t.out(""),XV(process.execPath,[e,"-p",ZV(),"--yolo","--no-self-check"],{stdio:"inherit",timeout:6e5,env:{...process.env,ALUY_NO_WEAK_YOLO_WARN:"1",ALUY_PRINT_VERBOSE:"1"}}),0):(t.err("n\xE3o foi poss\xEDvel localizar o bin\xE1rio do aluy p/ delegar ao agente."),0)}var gI=p(()=>{"use strict";P();ir()});function oX(t){let e=/^#?([0-9a-f]{6})$/i.exec(t.trim());return e?`\x1B]11;#${e[1].toUpperCase()}\x07`:""}function nX(t){if(t.NO_COLOR!==void 0)return!1;let e=t.ALUY_SET_BG;if(e===void 0)return!0;let o=e.trim().toLowerCase();return!(o==="0"||o==="false"||o==="no"||o==="off")}function sX(t){if(!t)return null;let e=/rgb:([0-9a-f]{1,4})\/([0-9a-f]{1,4})\/([0-9a-f]{1,4})/i.exec(t);if(e)return{r:bw(e[1]),g:bw(e[2]),b:bw(e[3])};let o=/#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i.exec(t);return o?{r:parseInt(o[1],16),g:parseInt(o[2],16),b:parseInt(o[3],16)}:null}function bw(t){let e=parseInt(t,16),o=16**t.length-1;return Math.round(e/o*255)}function iX(t){let e=o=>{let n=o/255;return n<=.03928?n/12.92:((n+.055)/1.055)**2.4};return .2126*e(t.r)+.7152*e(t.g)+.0722*e(t.b)}function aX(t){return iX(t)>=rX?"light":"dark"}function lX(t){let e=sX(t);return e?aX(e):null}function cX(t=process.env){let e=t.ALUY_OSC11_TIMEOUT_MS;if(e!==void 0){let n=Number.parseInt(e,10);if(Number.isFinite(n)&&n>0)return Math.min(n,5e3)}return!!(t.SSH_CONNECTION||t.SSH_TTY||t.SSH_CLIENT)?1e3:500}async function bI(t){let e=t.env??process.env;if(e.NO_COLOR!==void 0||t.stdout.isTTY!==!0||t.stdin.isTTY!==!0)return null;let o=t.timeoutMs??cX(e),n=t.stdin,r=n.isRaw===!0;return await new Promise(s=>{let i="",a=!1,l={},c=()=>{l.id&&clearTimeout(l.id),n.off("data",m);try{r||n.setRawMode(!1),n.pause()}catch{}},u=d=>{a||(a=!0,c(),s(d))},m=d=>{i+=typeof d=="string"?d:d.toString("utf8");let h=lX(i);h!==null&&u(h)};try{n.setRawMode(!0),n.resume(),n.on("data",m),t.stdout.write(tX)}catch{u(null);return}l.id=setTimeout(()=>u(null),o)})}var tX,yI,qh,rX,vI=p(()=>{"use strict";tX="\x1B]11;?\x07",yI="\x1B]111\x07";qh=class{stdout;enabled;applied=!1;didReset=!1;constructor(e){let o=e.env??process.env;this.stdout=e.stdout,this.enabled=e.stdout.isTTY===!0&&nX(o)}get active(){return this.enabled}apply(e){if(!this.enabled)return"";let o=oX(e);return o===""?"":(this.stdout.write(o),this.applied=!0,this.didReset=!1,o)}reset(){return!this.enabled||!this.applied||this.didReset?"":(this.didReset=!0,this.stdout.write(yI),yI)}},rX=.5});import{createContext as uX,useContext as dX}from"react";import{Text as kI}from"ink";import{jsx as Wh}from"react/jsx-runtime";function Wi(t){return Wh(xI.Provider,{value:t.theme,children:t.children})}function Z(){return dX(xI)}function f(t){let o=Z().role(t.name),n={};return o.color!==void 0&&(n.color=o.color),o.bold!==void 0&&(n.bold=o.bold),o.dimColor!==void 0&&(n.dimColor=o.dimColor),o.inverse!==void 0&&(n.inverse=o.inverse),Wh(kI,{...n,children:t.children})}function F(t){let o=Z().glyph(t.name);return t.role?Wh(f,{name:t.role,children:o}):Wh(kI,{children:o})}var xI,SI=p(()=>{"use strict";Pp();xI=uX(cn())});var te=p(()=>{"use strict";_p();Rp();Pp();Mp();Rs();vI();SI()});import"react";import{Box as Gh}from"ink";import{jsx as kl,jsxs as wI}from"react/jsx-runtime";function os(t){let e=Z(),n=(t.columns??80)<Pd,r=e.unicode?"\u039B":"/\\";if(n)return wI(Gh,{children:[kl(f,{name:"accent",children:r}),kl(f,{name:"accent",children:" luy"})]});let s=e.unicode?xl:EI,i=e.unicode?Ld:AI;return wI(Gh,{flexDirection:"row",children:[kl(Gh,{flexDirection:"column",children:s.map((a,l)=>kl(f,{name:"accent",children:a},l))}),kl(Gh,{flexDirection:"column",children:i.map((a,l)=>kl(f,{name:"accent",children:mX+a},l))})]})}var xl,Ld,EI,AI,mX,Pd,vw,Gi=p(()=>{"use strict";te();Rp();xl=[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2588\u2588\u2588 ","\u2588\u2588\u2588 \u2588\u2588\u2588"," "],Ld=["\u2588\u2588 ","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588"," \u2588\u2588\u2588\u2588 "],EI=[" /\\ "," / \\ "," / \\ "," / \\ ","/ \\"," "],AI=["## ","## ## ## ## ##","## ## ## ## ##","## ## ## #####","## ##### ##"," #### "],mX=" ",Pd=28,vw=xl.length});async function CI(t){let e=t.fetchImpl??fetch,o=t.baseUrl.replace(/\/+$/,""),n=new AbortController,r=setTimeout(()=>n.abort(),t.timeoutMs??15e3);try{let s=t.wireFormat==="anthropic"?await e(`${o}/v1/messages`,{method:"POST",signal:n.signal,headers:{"content-type":"application/json","x-api-key":t.key,"anthropic-version":"2023-06-01"},body:JSON.stringify({model:t.model,max_tokens:1,messages:[{role:"user",content:"ping"}]})}):await e(`${o}/chat/completions`,{method:"POST",signal:n.signal,headers:{"content-type":"application/json",authorization:`Bearer ${t.key}`},body:JSON.stringify({model:t.model,max_tokens:1,messages:[{role:"user",content:"ping"}]})});if(s.ok)return{ok:!0,detail:`HTTP ${s.status}`};let i="";try{i=(await s.text()).replace(/\s+/g," ").slice(0,160)}catch{}let a=s.status===401||s.status===403?" \u2014 chave inv\xE1lida?":s.status===404?" \u2014 modelo ou baseURL errado?":"";return{ok:!1,detail:`HTTP ${s.status}${a} ${i}`.trim()}}catch(s){return{ok:!1,detail:`n\xE3o conectou (baseURL/rede?): ${s instanceof Error?s.message:String(s)}`}}finally{clearTimeout(r)}}var TI=p(()=>{"use strict"});import{mkdirSync as fX,readFileSync as pX,renameSync as hX,statSync as gX,writeFileSync as yX}from"node:fs";import{dirname as bX,join as vX}from"node:path";function DI(t){let e={};for(let o of t.servers){let n={command:o.command,args:[...o.args]};Object.keys(o.env).length>0&&(n.env={...o.env}),o.disabled===!0&&(n.disabled=!0),e[o.name]=n}return JSON.stringify({mcpServers:e},null,2)+`
|
|
530
|
+
`)),o=t.loadGlobal??(()=>new ur().load()),n=t.loadProject??(()=>new dr({workspace:new ao}).load()),r=o(),s=n(),i=du({workflows:[...r.workflows,...s.workflows],errors:[...r.errors,...s.errors],globalDir:t.globalDir??jV(),projectDir:t.projectDir??".claude/workflows"});e("workflows \u2014 fluxos .md mapeados");for(let a of i.lines)e(a);return 0}function qV(){return lI(UV(),".aluy",pl)}var uI=p(()=>{"use strict";P();Sd();wd();al()});var fI={};ft(fI,{probeModelReachable:()=>dI,runFirstRunWizard:()=>mI,runInit:()=>zV});import{Entry as WV}from"@napi-rs/keyring";async function dI(t){let{config:e,env:o}=t,n=bl({env:o,config:e}),r=Rn(Zn(),n.provider)?.baseUrl,s=n.baseUrl??r;if(s===void 0||s==="")return!0;let i=t.fetchImpl??globalThis.fetch,a=t.timeoutMs??4e3,l=new AbortController,c=setTimeout(()=>l.abort(),a);try{return await i(`${s.replace(/\/+$/,"")}/models`,{signal:l.signal}),!0}catch{return!1}finally{clearTimeout(c)}}async function mI(t){let{config:e,configStore:o,prompt:n,out:r,err:s,entryFactory:i,isInteractive:a}=t,l=e.localProvider!==void 0,c=e.localModel!==void 0,u=!1,m=e.localProvider;if(m)try{let h=(i??GV)(ar,Gp(m)).getPassword();u=h!==""&&h!==void 0}catch{}if(l&&c&&u)return!0;if(!a)return s("aluy bootstrap: configura\xE7\xE3o de 1\xAA execu\xE7\xE3o necess\xE1ria (provider + chave + modelo)."),l||s(" \u2717 Falta provider local em ~/.aluy/config.json."),c||s(" \u2717 Falta modelo local em ~/.aluy/config.json."),u||s(" \u2717 Falta chave de API no keychain do SO."),s(""),s(" Rode `aluy bootstrap` interativamente (num terminal com TTY) para o wizard,"),s(" ou configure manualmente:"),s(" 1. `aluy login --provider <anthropic|openrouter|openai>` (grava a chave no keychain)"),s(" 2. Edite ~/.aluy/config.json e adicione:"),s(' "localProvider": "<provider>",'),s(' "localModel": "<modelo-nativo>"'),s(""),!1;if(r(""),r("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),r("\u2551 Configura\xE7\xE3o de 1\xAA execu\xE7\xE3o \u2014 provider + chave + modelo \u2551"),r("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),r(""),r("O `aluy bootstrap --agent` usa um modelo de linguagem para instalar"),r("depend\xEAncias. Precisamos de provider, chave de API e modelo."),r("(As credenciais ficam no keychain do SO \u2014 nunca em texto.)"),r(""),l)r(`Provider: ${m} (j\xE1 configurado)`);else{let d=(await n(`Provider (${yw.join("/")}): `)).trim().toLowerCase();if(!yw.includes(d))return s(`Provider inv\xE1lido "${d}". Use: ${yw.join(", ")}.`),!1;m=d,r("")}if(u)r("\u2713 Chave j\xE1 est\xE1 no keychain.");else{let d=m,h=(await n(`API key de ${d}: `,{secret:!0})).trim();if(h==="")return s("Chave vazia \u2014 abortando."),!1;try{if(rl(d,h,i),r("\u2713 Chave guardada no keychain do SO."),Kp({service:ar}))for(let g of Yp(qu(d)))s(g)}catch(g){return s(`Falha ao gravar no keychain: ${g instanceof Error?g.message:String(g)}`),s("(Por seguran\xE7a, a credencial nunca \xE9 gravada em texto. Instale o Secret Service no Linux.)"),!1}r("")}if(!c){let d=m,h=(await n("Modelo nativo (ex.: claude-sonnet-4-8): ")).trim();if(h==="")return s("Modelo vazio \u2014 abortando."),!1;o.save({localProvider:d,localModel:h}),r(`\u2713 Provider "${d}" + modelo "${h}" salvos em ~/.aluy/config.json.`),r("")}return r("Configura\xE7\xE3o conclu\xEDda. Seguindo para o provisionamento\u2026"),r(""),!0}function GV(t,e){return new WV(t,e)}async function zV(t){let{out:e,err:o}=t,n=t.configStore??new Ue,r,s,i;try{i=n.load(),r=i.profile,s=i.sidecarToggles}catch{i={}}let a=t.isInteractive!==void 0?t.isInteractive:process.stdin.isTTY===!0&&process.stdout.isTTY===!0;if(t.prompt!==void 0||!a){let u=t.prompt??(async()=>"");if(!await mI({config:i,configStore:n,prompt:u,out:e,err:o,...t.entryFactory!==void 0?{entryFactory:t.entryFactory}:{},isInteractive:a}))return 0}if(e("O Aluy CLI j\xE1 est\xE1 instalado e pronto para uso."),e(""),e("Esta etapa instala os COMPLEMENTOS opcionais (modo turbo): mem\xF3ria, modelos"),e("locais e gest\xE3o de contexto. Eles enriquecem a experi\xEAncia, mas n\xE3o s\xE3o"),e("obrigat\xF3rios \u2014 se algum n\xE3o instalar, voc\xEA usa o Aluy CLI normalmente sem ele."),e(""),e(` Perfil escolhido: ${r??"turbo"}`),r==="leve")return e(" Perfil LEVE: nenhum complemento ser\xE1 instalado \u2014 o Aluy CLI j\xE1 est\xE1 pronto."),e(" Para instal\xE1-los depois, rode `aluy bootstrap` ou troque para o perfil turbo."),0;let l=t.agent!==!1;l&&(await(t.modelProbe??((d,h)=>dI({config:d,env:h})))(i,t.env??process.env)||(e(" \u26A0 O modelo local n\xE3o respondeu \u2014 o instalador via agente precisa dele para rodar."),e(" Caindo no caminho DIRETO (--no-agent), que provisiona sem usar modelo."),e(""),l=!1)),l?(e(" Instalando os complementos com o pr\xF3prio aluy \u2014 ele detecta o sistema, instala o que"),e(" faltar (Python, pip, etc.) e os complementos. \u26A0 Acesso total \xE0 m\xE1quina (com sudo quando"),e(" preciso). Voc\xEA ver\xE1 o progresso de cada um abaixo.")):e(" Instalando os complementos pelo caminho direto (--no-agent; requer Python j\xE1 pronto)..."),e(""),process.env.ALUY_MEM0_EMBEDDER=Np(i);let c=await pM(r,s,{useAgent:l});for(let u of c.targets){let m=u.installed?"\u2713":"\u2717";e(` ${m} ${u.target}: ${u.message}`)}return e(""),c.anySuccess?(e("Complementos instalados. O Aluy CLI est\xE1 pronto, agora com o modo turbo."),c.allFailed&&e("Observa\xE7\xE3o: alguns complementos n\xE3o instalaram \u2014 o Aluy CLI funciona sem eles."),0):c.targets.length===0?(e("Nenhum complemento a instalar \u2014 o Aluy CLI j\xE1 est\xE1 pronto."),0):(o("Nenhum complemento foi instalado agora \u2014 sem problema, o Aluy CLI funciona"),o("normalmente. Voc\xEA pode tentar de novo depois com `aluy bootstrap`."),1)}var yw,pI=p(()=>{"use strict";ko();$x();sl();Hx();Uh();P();yw=["anthropic","openrouter","openai"]});var hI={};ft(hI,{runUninstall:()=>QV});import{homedir as KV}from"node:os";import{join as Hh}from"node:path";import{rmSync as YV,existsSync as VV}from"node:fs";import{spawnSync as XV}from"node:child_process";function JV(t){return[{label:"ollama (instala\xE7\xE3o local em ~/.aluy)",path:Hh(t,Cs)},{label:"mem0 (venv)",path:Hh(t,jr)},{label:"headroom (venv)",path:Hh(t,Ts)}]}function QV(t={},e={}){let o=e.io??Pt(),n=e.baseDir??Hh(KV(),".aluy"),r=e.remove??(i=>YV(i,{recursive:!0,force:!0})),s=e.exists??VV;o.out("Removendo os complementos gerenciados pelo aluy (em ~/.aluy/)\u2026");for(let i of JV(n)){if(!s(i.path)){o.out(` \xB7 ${i.label}: n\xE3o estava instalado`);continue}try{r(i.path),o.out(` \u2713 ${i.label}: removido`)}catch{o.err(` \u2717 ${i.label}: falha ao remover (${i.path})`)}}return o.out(""),t.agent?eX(o):(o.out("Se o Ollama foi instalado no SISTEMA (via curl/winget), ele N\xC3O fica em ~/.aluy e"),o.out("continua instalado. Para remov\xEA-lo tamb\xE9m: `aluy uninstall --agent` (o aluy remove"),o.out("via o pr\xF3prio agente \u2014 \u26A0 acesso total + sudo). O CLI em si sai com `npm uninstall -g"),o.out("@hiperplano/aluy-cli`; sua config (~/.aluy/config.json) e credenciais N\xC3O s\xE3o tocadas."),0)}function ZV(){return"DESINSTALE o Ollama instalado no SISTEMA (fora de ~/.aluy), detectando o SO. No Linux: pare/desabilite o servi\xE7o (`sudo systemctl stop ollama; sudo systemctl disable ollama` se existir), remova o bin\xE1rio (`sudo rm -f /usr/local/bin/ollama` ou onde estiver no PATH) e o usu\xE1rio/servi\xE7o se o install oficial criou. No macOS: encerre o app/servi\xE7o e remova-o. No Windows: `winget uninstall --id Ollama.Ollama`. Pacotes de sistema exigem privil\xE9gio: tente `sudo -n true`; se pedir senha, PE\xC7A ao usu\xE1rio. Opcional: remova os modelos baixados (`~/.ollama/models`). Confirme que `ollama` n\xE3o responde mais em http://127.0.0.1:11434/api/tags. Seja conciso."}function eX(t){let e=process.argv[1];return e?(t.out(" \u2500\u2500 Removendo o Ollama de sistema com o pr\xF3prio aluy \u2500\u2500 (acompanhe abaixo)"),t.out(""),XV(process.execPath,[e,"-p",ZV(),"--yolo","--no-self-check"],{stdio:"inherit",timeout:6e5,env:{...process.env,ALUY_NO_WEAK_YOLO_WARN:"1",ALUY_PRINT_VERBOSE:"1"}}),0):(t.err("n\xE3o foi poss\xEDvel localizar o bin\xE1rio do aluy p/ delegar ao agente."),0)}var gI=p(()=>{"use strict";P();ir()});function oX(t){let e=/^#?([0-9a-f]{6})$/i.exec(t.trim());return e?`\x1B]11;#${e[1].toUpperCase()}\x07`:""}function nX(t){if(t.NO_COLOR!==void 0)return!1;let e=t.ALUY_SET_BG;if(e===void 0)return!0;let o=e.trim().toLowerCase();return!(o==="0"||o==="false"||o==="no"||o==="off")}function sX(t){if(!t)return null;let e=/rgb:([0-9a-f]{1,4})\/([0-9a-f]{1,4})\/([0-9a-f]{1,4})/i.exec(t);if(e)return{r:bw(e[1]),g:bw(e[2]),b:bw(e[3])};let o=/#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i.exec(t);return o?{r:parseInt(o[1],16),g:parseInt(o[2],16),b:parseInt(o[3],16)}:null}function bw(t){let e=parseInt(t,16),o=16**t.length-1;return Math.round(e/o*255)}function iX(t){let e=o=>{let n=o/255;return n<=.03928?n/12.92:((n+.055)/1.055)**2.4};return .2126*e(t.r)+.7152*e(t.g)+.0722*e(t.b)}function aX(t){return iX(t)>=rX?"light":"dark"}function lX(t){let e=sX(t);return e?aX(e):null}function cX(t=process.env){let e=t.ALUY_OSC11_TIMEOUT_MS;if(e!==void 0){let n=Number.parseInt(e,10);if(Number.isFinite(n)&&n>0)return Math.min(n,5e3)}return!!(t.SSH_CONNECTION||t.SSH_TTY||t.SSH_CLIENT)?1e3:500}async function bI(t){let e=t.env??process.env;if(e.NO_COLOR!==void 0||t.stdout.isTTY!==!0||t.stdin.isTTY!==!0)return null;let o=t.timeoutMs??cX(e),n=t.stdin,r=n.isRaw===!0;return await new Promise(s=>{let i="",a=!1,l={},c=()=>{l.id&&clearTimeout(l.id),n.off("data",m);try{r||n.setRawMode(!1),n.pause()}catch{}},u=d=>{a||(a=!0,c(),s(d))},m=d=>{i+=typeof d=="string"?d:d.toString("utf8");let h=lX(i);h!==null&&u(h)};try{n.setRawMode(!0),n.resume(),n.on("data",m),t.stdout.write(tX)}catch{u(null);return}l.id=setTimeout(()=>u(null),o)})}var tX,yI,qh,rX,vI=p(()=>{"use strict";tX="\x1B]11;?\x07",yI="\x1B]111\x07";qh=class{stdout;enabled;applied=!1;didReset=!1;constructor(e){let o=e.env??process.env;this.stdout=e.stdout,this.enabled=e.stdout.isTTY===!0&&nX(o)}get active(){return this.enabled}apply(e){if(!this.enabled)return"";let o=oX(e);return o===""?"":(this.stdout.write(o),this.applied=!0,this.didReset=!1,o)}reset(){return!this.enabled||!this.applied||this.didReset?"":(this.didReset=!0,this.stdout.write(yI),yI)}},rX=.5});import{createContext as uX,useContext as dX}from"react";import{Text as kI}from"ink";import{jsx as Wh}from"react/jsx-runtime";function Wi(t){return Wh(xI.Provider,{value:t.theme,children:t.children})}function Q(){return dX(xI)}function f(t){let o=Q().role(t.name),n={};return o.color!==void 0&&(n.color=o.color),o.bold!==void 0&&(n.bold=o.bold),o.dimColor!==void 0&&(n.dimColor=o.dimColor),o.inverse!==void 0&&(n.inverse=o.inverse),Wh(kI,{...n,children:t.children})}function F(t){let o=Q().glyph(t.name);return t.role?Wh(f,{name:t.role,children:o}):Wh(kI,{children:o})}var xI,SI=p(()=>{"use strict";Pp();xI=uX(cn())});var te=p(()=>{"use strict";_p();Rp();Pp();Mp();Rs();vI();SI()});import"react";import{Box as Gh}from"ink";import{jsx as kl,jsxs as wI}from"react/jsx-runtime";function os(t){let e=Q(),n=(t.columns??80)<Pd,r=e.unicode?"\u039B":"/\\";if(n)return wI(Gh,{children:[kl(f,{name:"accent",children:r}),kl(f,{name:"accent",children:" luy"})]});let s=e.unicode?xl:EI,i=e.unicode?Ld:AI;return wI(Gh,{flexDirection:"row",children:[kl(Gh,{flexDirection:"column",children:s.map((a,l)=>kl(f,{name:"accent",children:a},l))}),kl(Gh,{flexDirection:"column",children:i.map((a,l)=>kl(f,{name:"accent",children:mX+a},l))})]})}var xl,Ld,EI,AI,mX,Pd,vw,Gi=p(()=>{"use strict";te();Rp();xl=[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2588\u2588\u2588 ","\u2588\u2588\u2588 \u2588\u2588\u2588"," "],Ld=["\u2588\u2588 ","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588","\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588"," \u2588\u2588\u2588\u2588 "],EI=[" /\\ "," / \\ "," / \\ "," / \\ ","/ \\"," "],AI=["## ","## ## ## ## ##","## ## ## ## ##","## ## ## #####","## ##### ##"," #### "],mX=" ",Pd=28,vw=xl.length});async function CI(t){let e=t.fetchImpl??fetch,o=t.baseUrl.replace(/\/+$/,""),n=new AbortController,r=setTimeout(()=>n.abort(),t.timeoutMs??15e3);try{let s=t.wireFormat==="anthropic"?await e(`${o}/v1/messages`,{method:"POST",signal:n.signal,headers:{"content-type":"application/json","x-api-key":t.key,"anthropic-version":"2023-06-01"},body:JSON.stringify({model:t.model,max_tokens:1,messages:[{role:"user",content:"ping"}]})}):await e(`${o}/chat/completions`,{method:"POST",signal:n.signal,headers:{"content-type":"application/json",authorization:`Bearer ${t.key}`},body:JSON.stringify({model:t.model,max_tokens:1,messages:[{role:"user",content:"ping"}]})});if(s.ok)return{ok:!0,detail:`HTTP ${s.status}`};let i="";try{i=(await s.text()).replace(/\s+/g," ").slice(0,160)}catch{}let a=s.status===401||s.status===403?" \u2014 chave inv\xE1lida?":s.status===404?" \u2014 modelo ou baseURL errado?":"";return{ok:!1,detail:`HTTP ${s.status}${a} ${i}`.trim()}}catch(s){return{ok:!1,detail:`n\xE3o conectou (baseURL/rede?): ${s instanceof Error?s.message:String(s)}`}}finally{clearTimeout(r)}}var TI=p(()=>{"use strict"});import{mkdirSync as fX,readFileSync as pX,renameSync as hX,statSync as gX,writeFileSync as yX}from"node:fs";import{dirname as bX,join as vX}from"node:path";function DI(t){let e={};for(let o of t.servers){let n={command:o.command,args:[...o.args]};Object.keys(o.env).length>0&&(n.env={...o.env}),o.disabled===!0&&(n.disabled=!0),e[o.name]=n}return JSON.stringify({mcpServers:e},null,2)+`
|
|
531
531
|
`}var kX,Jt,mr,Fd=p(()=>{"use strict";P();kX=256*1024,Jt=class extends Error{constructor(e){super(e),this.name="McpWriteError"}},mr=class{file;constructor(e){this.file=e.file}get configPath(){return this.file}load(){let e;try{let n=gX(this.file);if(!n.isFile())throw new Jt(`${this.file}: n\xE3o \xE9 um arquivo regular.`);if(n.size>kX)throw new Jt(`${this.file}: grande demais p/ editar com seguran\xE7a.`);e=pX(this.file,"utf8")}catch(n){if(n instanceof Jt)throw n;return De}let o;try{o=JSON.parse(e)}catch{throw new Jt(`${this.file}: JSON inv\xE1lido \u2014 conserte \xE0 m\xE3o antes de usar 'aluy mcp'.`)}try{return zo(o)}catch(n){let r=n instanceof be?n.message:String(n);throw new Jt(r)}}add(e,o={}){if(!Ya(e.name))throw new Jt(`nome de server inv\xE1lido "${e.name}" \u2014 use s\xF3 [A-Za-z0-9_-] (vira prefixo de tool).`);if(e.command.trim().length===0)throw new Jt(`server "${e.name}": "command" n\xE3o pode ser vazio.`);if(e.command.trim()==="--")throw new Jt(`server "${e.name}": "--" n\xE3o \xE9 um command (\xE9 o separador do 'aluy mcp add'). Use: aluy mcp add ${e.name} -- <command> [args...].`);let n=this.load(),r=n.servers.find(i=>i.name===e.name);if(r&&!o.force)throw new Jt(`server "${e.name}" j\xE1 existe em ${this.file} \u2014 use --force p/ sobrescrever.`);let s=[...n.servers.filter(i=>i.name!==e.name),e];return this.write({servers:s}),{replaced:r!==void 0}}remove(e){let o=this.load(),n=o.servers.length,r=o.servers.filter(s=>s.name!==e);return r.length===n?{removed:!1}:(this.write({servers:r}),{removed:!0})}setDisabled(e,o){let n=this.load(),r=n.servers.find(i=>i.name===e);if(!r)return{found:!1};let s={name:r.name,command:r.command,args:r.args,env:r.env,...o?{disabled:!0}:{}};return this.write({servers:n.servers.map(i=>i.name===e?s:i)}),{found:!0}}write(e){let o=bX(this.file);fX(o,{recursive:!0});let n=DI(e),r=vX(o,`.mcp.json.${process.pid}.${Date.now()}.tmp`);yX(r,n,{encoding:"utf8",mode:384}),hX(r,this.file)}}});var MI={};ft(MI,{mcpCatalog:()=>OI,runOnboard:()=>DX});import{useEffect as xX,useMemo as _I,useState as So}from"react";import{render as SX,Box as ot,useApp as wX,useInput as EX}from"ink";import{homedir as RI}from"node:os";import{join as AX}from"node:path";import{jsx as me,jsxs as kt}from"react/jsx-runtime";function OI(){return[{id:"playwright",label:"Playwright",hintPt:"automa\xE7\xE3o de navegador (oficial)",hintEn:"browser automation (official)",command:"npx",args:["-y","@playwright/mcp@latest"]},{id:"sequential-thinking",label:"Sequential Thinking",hintPt:"racioc\xEDnio passo-a-passo",hintEn:"step-by-step reasoning",command:"npx",args:["-y","@modelcontextprotocol/server-sequential-thinking"]},{id:"memory",label:"Memory",hintPt:"grafo de conhecimento persistente",hintEn:"persistent knowledge graph",command:"npx",args:["-y","@modelcontextprotocol/server-memory"]},{id:"filesystem",label:"Filesystem",hintPt:"arquivos (escopo: sua home)",hintEn:"files (scope: your home)",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem",RI()]},{id:"rpa",label:"RPA (Aluy)",hintPt:"automa\xE7\xE3o visual de desktop \u2014 OCR/clica/digita \xB7 via uvx",hintEn:"visual desktop automation \u2014 OCR/click/type \xB7 via uvx",command:"uvx",args:["aluy-mcp-rpa"]}]}function CX(t){let e=wX(),o=t.store.load(),n=_I(()=>Ps().entries,[]),[r,s]=So("lang"),[i,a]=So(o.lang??"pt-BR"),[l,c]=So("local"),[u,m]=So("anthropic"),[d,h]=So({id:"",url:"",model:""}),[g,b]=So(""),[y,w]=So(""),[A,T]=So("leve"),[O,N]=So(Ka),[G,V]=So(""),z=_I(()=>OI(),[]),[B,X]=So(new Set),[oe,ne]=So(0),[M,j]=So(Math.max(0,Yt.findIndex(I=>I.code===i))),[Ae,se]=So(""),[he,ie]=So([]),fe=i==="pt-BR",R=(I,K)=>fe?I:K,de=[{value:"local",label:R("Local (sua chave / BYO)","Local (your key / BYO)"),hint:R("direto no provider","direct to provider")},{value:"broker",label:R("Broker (conta Aluy)","Broker (Aluy account)"),hint:R("autentica depois com aluy login","authenticate later with aluy login")}],ae=[...n.map(I=>({value:I.id,label:I.label,hint:I.defaultModel})),{value:"__custom__",label:R("+ custom (OpenAI-compat\xEDvel)","+ custom (OpenAI-compatible)"),hint:R("ex.: TokenRouter, vLLM\u2026","e.g. TokenRouter, vLLM\u2026")}],Y=[{value:"turbo",label:R("Turbo \u2014 instala tudo","Turbo \u2014 install all"),hint:R("ollama + mem0 + headroom \xB7 pede m\xE1quina razo\xE1vel","ollama + mem0 + headroom \xB7 needs a decent machine")},{value:"leve",label:R("Leve \u2014 nada agora","Lite \u2014 nothing now"),hint:R("liga depois com aluy bootstrap","enable later with aluy bootstrap")}],Oe=gp.map(I=>({value:I.model,label:I.model,hint:R(I.hintPt,I.hintEn)})),yt=I=>I==="lang"?Yt.length:I==="backend"?de.length:I==="provider"?ae.length:I==="sidecars"?Y.length:I==="embedder"?Oe.length:0;function et(I,K=""){se(K),s(I)}function Le(){j(Math.max(0,Y.findIndex(I=>I.value==="leve"))),s("sidecars")}function Rt(){ne(0),s("mcp")}function Qo(){let I=u==="__custom__",K=n.find(ye=>ye.id===u);return{wireFormat:I?"openai-compat":K?.wireFormat??"openai-compat",baseUrl:I?d.url.trim():K?.baseUrl??"",model:(I?d.model:y.trim()||K?.defaultModel||"").trim(),key:g.trim()}}xX(()=>{if(r!=="validating")return;let I=Qo();if(l!=="local"||I.key===""||I.baseUrl===""||I.model===""){Rt();return}let K=!1;return CI(I).then(ye=>{K||(ye.ok?(V(""),Rt()):(V(ye.detail),s("validate-failed")))}),()=>{K=!0}},[r]);function wt(I,K){let ye=[],Ee={lang:i,backend:l};if(l==="local"){Ee.localProvider=u==="__custom__"?d.id.trim():u;let Fe=u==="__custom__"?d.model:y;Fe.trim()!==""&&(Ee.localModel=Fe.trim())}if(Ee.profile=I,I==="turbo"&&K!==void 0&&K!==""&&(Ee.embedder=K),t.store.save(Ee),ye.push(`\u2713 ${R("config","config")}: backend ${l}`),l==="local"&&u==="__custom__"&&d.id.trim()!==""&&d.url.trim()!=="")try{TM({id:d.id.trim(),wireFormat:"openai-compat",baseUrl:d.url.trim(),defaultModel:d.model.trim()||d.id.trim()}),ye.push(R(`\u2713 provider custom "${d.id.trim()}" registrado`,`\u2713 custom provider "${d.id.trim()}" registered`))}catch(Fe){ye.push(`\u26A0 providers.json: ${String(Fe)}`)}if(l==="local"&&g.trim()!==""){let Fe=u==="__custom__"?d.id.trim():u;try{rl(Fe,g.trim()),ye.push(R(`\u2713 chave de "${Fe}" no keychain`,`\u2713 "${Fe}" key in keychain`))}catch{ye.push(R(`\u26A0 keychain indispon\xEDvel \u2014 rode: aluy login --provider ${Fe}`,`\u26A0 keychain unavailable \u2014 run: aluy login --provider ${Fe}`))}}let Pe=z.filter((Fe,J)=>B.has(J));if(Pe.length>0)try{let Fe=new mr({file:AX(RI(),".aluy","mcp.json")});for(let J of Pe)Fe.add({name:J.id,command:J.command,args:[...J.args],env:{}},{force:!0});ye.push(R(`\u2713 ${Pe.length} MCP(s) registrado(s): ${Pe.map(J=>J.id).join(", ")}`,`\u2713 ${Pe.length} MCP(s) registered: ${Pe.map(J=>J.id).join(", ")}`))}catch(Fe){ye.push(`\u26A0 mcp.json: ${String(Fe)}`)}ye.push(`\u2713 sidecars: ${I}`),I==="turbo"&&K!==void 0&&K!==""&&ye.push(` \u2192 embedder: ${K}`),I==="turbo"&&ye.push(R(" \u2192 instale agora: aluy bootstrap"," \u2192 install now: aluy bootstrap")),G!==""&&ye.push(R("\u26A0 modelo N\xC3O validado \u2014 pode n\xE3o funcionar","\u26A0 model NOT validated \u2014 may not work")),l==="broker"&&ye.push(R("\u2192 broker: autentique com `aluy login`","\u2192 broker: authenticate with `aluy login`")),ie(ye),s("done")}EX((I,K)=>{if(r==="done"){(K.return||K.escape||I)&&e.exit();return}if(r==="validating")return;if(r==="validate-failed"){if(K.escape){e.exit();return}let Ee=(I||"").toLowerCase();K.return||Ee==="r"?s("validating"):Ee==="k"?et("key",""):Ee==="u"&&u==="__custom__"?et("custom-url",d.url):Ee==="c"&&Rt();return}if(K.escape){e.exit();return}if(r==="mcp"){K.upArrow?ne(Ee=>Math.max(0,Ee-1)):K.downArrow?ne(Ee=>Math.min(z.length-1,Ee+1)):I===" "?X(Ee=>{let Pe=new Set(Ee);return Pe.has(oe)?Pe.delete(oe):Pe.add(oe),Pe}):K.return&&Le();return}if(r==="lang"||r==="backend"||r==="provider"||r==="sidecars"||r==="embedder"){let Ee=yt(r);K.upArrow?j(Pe=>Math.max(0,Pe-1)):K.downArrow?j(Pe=>Math.min(Ee-1,Pe+1)):K.return&&Te();return}if(K.return){Et();return}if(K.backspace||K.delete){se(Ee=>Ee.slice(0,-1));return}I&&!K.ctrl&&!K.meta&&!K.upArrow&&!K.downArrow&&!K.leftArrow&&!K.rightArrow&&se(Ee=>Ee+I)});function Te(){if(r==="lang"){let I=Yt[M].code;t.store.saveLang(I),a(I),j(0),s("backend")}else if(r==="backend"){let I=de[M].value;c(I),I==="broker"?Rt():(j(0),s("provider"))}else if(r==="provider"){let I=ae[M].value;if(m(I),I==="__custom__")et("custom-id","");else{let K=n.find(Ee=>Ee.id===I);K?.auth?.length===1&&K.auth[0]==="none"?(b(""),et("model",K?.defaultModel??"")):et("key","")}}else if(r==="sidecars"){let I=Y[M].value;T(I),I==="turbo"?(j(0),s("embedder")):wt(I)}else if(r==="embedder"){let I=Oe[M].value;N(I),wt("turbo",I)}}function Et(){let I=Ae.trim();if(r==="custom-id")h(K=>({...K,id:I})),et("custom-url","");else if(r==="custom-url")h(K=>({...K,url:I})),et("custom-model","");else if(r==="custom-model")h(K=>({...K,model:I})),et("key","");else if(r==="key")if(b(Ae),u==="__custom__")s("validating");else{let K=n.find(ye=>ye.id===u)?.defaultModel??"";et("model",K)}else r==="model"&&(w(I),s("validating"))}let rt=()=>({lang:"1/8",backend:"2/8",provider:"3/8","custom-id":"3/8","custom-url":"3/8","custom-model":"3/8",key:"4/8",model:"5/8",validating:"6/8","validate-failed":"6/8",mcp:"7/8",sidecars:"8/8"})[r]??"";return kt(ot,{flexDirection:"column",paddingY:1,children:[me(os,{columns:80}),me(ot,{paddingTop:1,children:kt(f,{name:"fgDim",children:["aluy v",dn," \xB7 ",R("configura\xE7\xE3o inicial","first-run setup"),r!=="done"?` \xB7 ${rt()}`:""]})}),kt(ot,{paddingTop:1,flexDirection:"column",children:[r==="lang"&&me(Id,{title:R("Idioma","Language"),opts:Yt.map(I=>({value:I.code,label:I.label})),cursor:M,active:i}),r==="backend"&&me(Id,{title:R("Backend do modelo","Model backend"),opts:de,cursor:M}),r==="provider"&&me(Id,{title:R("Provider","Provider"),opts:ae,cursor:M,active:u}),r==="mcp"&&me(TX,{title:R("MCPs (opcional) \u2014 quais instalar?","MCPs (optional) \u2014 which to install?"),entries:z,cursor:oe,selected:B,pt:fe}),r==="sidecars"&&kt(ot,{flexDirection:"column",children:[me(Id,{title:R("Complementos (modo turbo)","Complements (turbo mode)"),opts:Y,cursor:M,active:A}),kt(ot,{paddingTop:1,flexDirection:"column",children:[me(f,{name:"fgDim",children:R("Turbo roda modelos locais (Ollama) + mem\xF3ria \u2014 pede uma m\xE1quina razo\xE1vel:","Turbo runs local models (Ollama) + memory \u2014 needs a decent machine:")}),me(f,{name:"fgDim",children:R(" ~8GB+ de RAM, alguns GB de disco e uma boa conex\xE3o (baixa o Ollama + modelos)."," ~8GB+ RAM, a few GB of disk and a good connection (downloads Ollama + models).")}),me(f,{name:"fgDim",children:R(" Em m\xE1quina fraca, escolha Leve \u2014 o aluy funciona normal e voc\xEA liga o turbo depois."," On a weak machine, pick Lite \u2014 aluy works fine and you can enable turbo later.")})]})]}),r==="embedder"&&kt(ot,{flexDirection:"column",children:[me(Id,{title:R("Modelo de embedding (mem\xF3ria)","Embedding model (memory)"),opts:Oe,cursor:M,active:O}),kt(ot,{paddingTop:1,flexDirection:"column",children:[me(f,{name:"fgDim",children:R("O embedder transforma suas mem\xF3rias em vetores p/ o recall sem\xE2ntico do mem0.","The embedder turns your memories into vectors for mem0\u2019s semantic recall.")}),me(f,{name:"fgDim",children:R(" bge-m3 \xE9 o mais forte (multil\xEDngue, melhor em PT) \u2014 por\xE9m o maior download."," bge-m3 is the strongest (multilingual) \u2014 but the biggest download.")})]})]}),r==="custom-id"&&me(Nd,{label:R("id do provider (ex.: tokenrouter)","provider id (e.g. tokenrouter)"),value:Ae}),r==="custom-url"&&me(Nd,{label:R("base URL (https, .../v1)","base URL (https, .../v1)"),value:Ae}),r==="custom-model"&&me(Nd,{label:R("modelo default","default model"),value:Ae}),r==="key"&&me(Nd,{label:R(`API key de ${u==="__custom__"?d.id:u} (oculta)`,`${u==="__custom__"?d.id:u} API key (hidden)`),value:Ae,mask:!0}),r==="model"&&kt(ot,{flexDirection:"column",children:[me(Nd,{label:R("modelo (enter = default)","model (enter = default)"),value:Ae}),(()=>{let I=n.find(K=>K.id===u)?.models??[];return I.length>0?me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:R("sugest\xF5es: ","suggestions: ")+I.join(" \xB7 ")})}):null})()]}),r==="validating"&&kt(ot,{flexDirection:"column",children:[me(f,{name:"fg",children:R("Testando o modelo\u2026","Testing the model\u2026")}),me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:R("chamada real ao provider (n\xE3o prossigo se falhar)","real call to the provider (won't proceed if it fails)")})})]}),r==="validate-failed"&&kt(ot,{flexDirection:"column",children:[me(f,{name:"fg",children:R("\u2717 o modelo N\xC3O respondeu","\u2717 the model did NOT respond")}),me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:G})}),me(ot,{paddingTop:1,children:kt(f,{name:"fgDim",children:[R("enter/r tentar de novo \xB7 k trocar chave","enter/r retry \xB7 k change key"),u==="__custom__"?R(" \xB7 u trocar baseURL"," \xB7 u change baseURL"):"",R(" \xB7 c seguir mesmo assim \xB7 esc sair"," \xB7 c continue anyway \xB7 esc quit")]})})]}),r==="done"&&kt(ot,{flexDirection:"column",children:[he.map((I,K)=>me(f,{name:I.startsWith("\u26A0")?"fg":"accent",children:I},K)),me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:R("enter p/ entrar no aluy","enter to launch aluy")})})]})]}),r!=="done"&&r!=="validating"&&r!=="validate-failed"&&me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:r==="lang"||r==="backend"||r==="provider"||r==="sidecars"||r==="embedder"?`\u2191\u2193 ${R("navegar","move")} \xB7 enter ${R("escolher","select")} \xB7 esc ${R("sair","quit")}`:`${R("digite","type")} \xB7 enter ${R("confirmar","confirm")} \xB7 esc ${R("sair","quit")}`})})]})}function Id(t){return kt(ot,{flexDirection:"column",children:[me(f,{name:"fg",children:t.title}),me(ot,{flexDirection:"column",paddingTop:1,children:t.opts.map((e,o)=>kt(ot,{children:[me(f,{name:o===t.cursor?"accent":"fgDim",children:o===t.cursor?"\u276F ":" "}),me(f,{name:o===t.cursor?"accent":"fg",children:e.label}),e.hint?kt(f,{name:"fgDim",children:[" \xB7 ",e.hint]}):null,t.active!==void 0&&e.value===t.active?me(f,{name:"fgDim",children:" \u25CF"}):null]},e.value))})]})}function TX(t){return kt(ot,{flexDirection:"column",children:[me(f,{name:"fg",children:t.title}),me(ot,{flexDirection:"column",paddingTop:1,children:t.entries.map((e,o)=>{let n=t.selected.has(o),r=o===t.cursor;return kt(ot,{children:[me(f,{name:r?"accent":"fgDim",children:r?"\u276F ":" "}),me(f,{name:n?"accent":"fgDim",children:n?"[x] ":"[ ] "}),me(f,{name:r?"accent":"fg",children:e.label}),kt(f,{name:"fgDim",children:[" \xB7 ",t.pt?e.hintPt:e.hintEn]})]},e.id)})}),me(ot,{paddingTop:1,children:me(f,{name:"fgDim",children:t.pt?"ESPA\xC7O marca/desmarca \xB7 ENTER segue (pode seguir sem nenhum) \xB7 baixam na 1\xAA vez (npx/uvx)":"SPACE toggles \xB7 ENTER continues (none is fine) \xB7 fetched on first use (npx/uvx)"})})]})}function Nd(t){let e=t.mask?"\u2022".repeat(t.value.length):t.value;return kt(ot,{children:[kt(f,{name:"fg",children:[t.label,": "]}),me(f,{name:"accent",children:e}),me(f,{name:"accent",children:"\u258F"})]})}async function DX(){if(!process.stdin.isTTY||!process.stdout.isTTY)return process.stdout.write(`aluy onboard precisa de um terminal interativo.
|
|
532
532
|
Abra um terminal e rode: aluy onboard
|
|
533
533
|
`),0;let t=new Ue,e=cn({});return await SX(me(Wi,{theme:e,children:me(CX,{store:t})})).waitUntilExit(),0}var LI=p(()=>{"use strict";Gi();te();nl();Qa();ko();Wu();sl();TI();Fd();P()});var PI={};ft(PI,{runModels:()=>MX});function _X(t){return t.entries.map(e=>({provider:e.id,authModes:e.auth,defaultModel:e.defaultModel,...e.catalogHint!==void 0?{catalogHint:e.catalogHint}:{}}))}function RX(t){return(t instanceof Error?t.name:"")==="SessionExpiredError"?"fa\xE7a `aluy login` (sem sess\xE3o).":"broker fora ou sem conex\xE3o (cheque a ALUY_BROKER_URL)."}async function kw(t){try{return{ok:!0,data:await t()}}catch(e){return{ok:!1,reason:RX(e)}}}async function OX(t,e){let o=Lo(e),n=mn(e),r=t.store??new io,s=new ro({...o,baseUrl:o.identityBaseUrl,store:r},{envToken:()=>e.ALUY_TOKEN}),i=t.brokerFetch?{fetch:t.brokerFetch}:{},a=Mc({brokerBaseUrl:n.brokerBaseUrl,login:s,...i}),l=Pc({brokerBaseUrl:n.brokerBaseUrl,login:s,...i}),c=Lc({brokerBaseUrl:n.brokerBaseUrl,login:s,...i}),[u,m,d]=await Promise.all([kw(()=>a.list()),kw(()=>l.list()),kw(()=>c.list())]);return{tiers:u,providers:m,custom:d}}async function MX(t={}){let e=t.env??process.env,o=t.out??(m=>process.stdout.write(m+`
|
|
@@ -606,27 +606,27 @@ Notas:
|
|
|
606
606
|
`),!0;case"show":return o.currentLabel!==void 0?e.write(`[rename] sess\xE3o: \u25CF ${o.currentLabel}${o.currentColor?` (${o.currentColor})`:""}
|
|
607
607
|
`):e.write(`[rename] sem r\xF3tulo. use \`/rename <nome> [--cor <cor>]\`. cores: ${Ja.join(", ")}.
|
|
608
608
|
`),!0;case"error":return e.write(`[rename] ${s.message}
|
|
609
|
-
`),!0}}var fN,hN=p(()=>{"use strict";Mp();Dt();fN=32});function vJ(t){return`\x1B]0;${Array.from(t).filter(o=>{let n=o.charCodeAt(0);return n>=32&&n!==127}).join("").replace(/\s+/g," ").trim()}\x07`}function Lw(t,e=process.stdout){if(e.isTTY)try{e.write(t!==void 0&&t.trim()!==""?vJ(t):kJ)}catch{}}var kJ,gN=p(()=>{"use strict";kJ="\x1B]0;\x07"});import{existsSync as xJ,mkdirSync as SJ,readFileSync as wJ,writeFileSync as EJ}from"node:fs";import{homedir as AJ}from"node:os";import{join as yN}from"node:path";function kN(t){return t.ALUY_NO_UPDATE_CHECK==="1"||t.NO_UPDATE_NOTIFIER==="1"||t.CI==="true"}function xN(){try{if(!xJ(Pw))return null;let t=JSON.parse(wJ(Pw,"utf8"));if(typeof t.lastCheck=="number"&&typeof t.latest=="string")return{lastCheck:t.lastCheck,latest:t.latest}}catch{}return null}function SN(t,e){if(kN(e))return;let o=xN();if(o&&hx(o.latest,t))return`nova vers\xE3o ${o.latest} dispon\xEDvel (voc\xEA tem ${t}) \u2014 atualize: npm i -g ${bN}`}async function wN(t,e){if(kN(e))return;let o=xN();if(!(o&&Date.now()-o.lastCheck<CJ))try{let n=`https://registry.npmjs.org/${bN.replace("/","%2f")}/latest`,r=await fetch(n,{signal:AbortSignal.timeout(4e3)});if(!r.ok)return;let i=(await r.json()).version;if(typeof i!="string")return;SJ(vN,{recursive:!0}),EJ(Pw,JSON.stringify({lastCheck:Date.now(),latest:i}),{mode:384})}catch{}}var bN,vN,Pw,CJ,EN=p(()=>{"use strict";P();bN="@hiperplano/aluy-cli",vN=yN(AJ(),".aluy"),Pw=yN(vN,"update-check.json"),CJ=1440*60*1e3});var Jh,Fw=p(()=>{"use strict";Jh={"composer.placeholder":"digite um objetivo ou /comando\u2026","composer.shellHint":"\u203A atr\xE1s da catraca \xB7 Enter roda \xB7 catraca pergunta no efeito","composer.moreLines":"linhas","hints.idle":"enter envia \xB7 / comandos \xB7 ctrl-p paleta \xB7 \u2191 hist\xF3rico \xB7 ctrl-c\xD72 sair","hints.thinking":"esc interromper \xB7 ctrl-c\xD72 sair","hints.streaming":"esc interromper \xB7 ctrl-c\xD72 sair","hints.ask":"a aprova \xB7 s sempre \xB7 n nega \xB7 e edita \xB7 esc cancela","hints.askDestructive":"n nega (recomendado) \xB7 a aprova mesmo assim \xB7 esc cancela","hints.slash":"\u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","hints.palette":"digite p/ buscar \xB7 \u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","hints.budget":"c continua \xB7 n encerra","hints.error":"r tentar \xB7 esc cancela","hints.workSubagents":"esc para o pai \xB7 F8 para tudo \xB7 ctrl-t ver/parar \xB7 ctrl-c\xD72 sair","hints.idleSubagents":"enter envia \xB7 F8 para os sub-agentes \xB7 ctrl-t ver/parar \xB7 ctrl-c\xD72 sair","hints.ctrlcAgain":"pressione ctrl-c de novo para sair","hints.cockpit":"tab foca \xB7 pgup/pgdn rola \xB7 ctrl-s exporta \xB7 /fullscreen sai \xB7 ctrl-c\xD72 sair","hints.suggest":"tab aceita a sugest\xE3o","suggest.runTests":"rode os testes e me mostre o resultado","suggest.fixFailing":"investigue e corrija os testes que falharam","suggest.summarize":"resuma o que mudou neste turno","suggest.retryDifferent":"tente outra abordagem para resolver isso","suggest.implement":"implemente a mudan\xE7a que discutimos","suggest.explain":"explique o que voc\xEA fez e por qu\xEA","suggest.nextStep":"o que devo revisar ou fazer a seguir?","cockpit.conversa":"conversa","cockpit.log":"log","cockpit.welcomeTitle":"\u039Bluy \u2014 cockpit","cockpit.welcomeHint":"digite um objetivo abaixo para come\xE7ar \xB7 /help \xB7 /fullscreen sai","cockpit.entered":"modo cockpit (tela cheia) \u2014 tab alterna conversa\u21C4log \xB7 pgup/pgdn rola \xB7 ctrl-s exporta \xB7 /fullscreen sai","cockpit.left":"modo inline restaurado (scrollback nativo).","cockpit.refuseNarrow":"terminal estreito (<80 col): cockpit indispon\xEDvel, usando inline.","cockpit.refuseShort":"terminal baixo (poucas linhas): cockpit indispon\xEDvel, usando inline.","cockpit.exported":"transcript exportado (redigido) para","mode.label":"modo","mode.plan.caption":"read-only \u2014 s\xF3 leitura, nenhum efeito","mode.normal.caption":"catraca padr\xE3o (aprova\xE7\xE3o por efeito)","mode.unsafe.caption":"aprova\xE7\xE3o DESLIGADA","banner.yolo":"MODO YOLO \u2014 aprova\xE7\xE3o DESLIGADA, o agente roda QUALQUER comando sem perguntar","banner.yolo.narrow":"MODO YOLO \u2014 aprova\xE7\xE3o DESLIGADA","statusbar.brokerError":"erro de broker","statusbar.window":"janela","statusbar.session":"sess\xE3o","statusbar.quota":"quota","statusbar.cycle":"ciclo","statusbar.subcycles":"subciclos","flowtree.cycle":"ciclo","flowtree.subcycles":"subciclos","flowtree.turn":"turno","boot.broker":"broker","boot.tagline":"Aluy Cli \xB7 agente de terminal","boot.connecting":"conectando","boot.entering":"entrando","picker.theme.help":"trocar tema \xB7 \u2191\u2193 navega \xB7 enter troca \xB7 esc fecha","picker.lang.help":"trocar idioma \xB7 \u2191\u2193 navega \xB7 enter troca \xB7 esc fecha","picker.provider.help":"setar o provider do modelo Custom \xB7 \u2191\u2193 navega \xB7 enter seta \xB7 esc fecha","picker.provider.default":"padr\xE3o","picker.provider.fallback":"\u26A0 n\xE3o foi poss\xEDvel listar os cadastrados \u2014 mostrando os conhecidos","picker.provider.more":"\u2026 {count} providers a mais (\u2191\u2193 rola)","picker.model.help":"trocar modelo \xB7 \u2191\u2193 navega \xB7 enter seleciona \xB7 esc fecha","picker.model.loading":"carregando tiers do broker\u2026","picker.model.customLine":"navegar/filtrar os modelos","picker.model.fallback":"cat\xE1logo do broker indispon\xEDvel \u2014 mostrando os tiers conhecidos","picker.model.browseHelp":"modelos Custom \xB7 digite p/ filtrar \xB7 \u2191\u2193 navega \xB7 ^T s\xF3-tools \xB7 enter seleciona \xB7 esc volta","picker.model.browseCount":"{filtered} de {total}","picker.model.toolsOnlySuffix":" \xB7 s\xF3 com tools","picker.model.moreAbove":"\u2191 mais acima","picker.model.moreBelow":"\u2193 mais abaixo","picker.model.noFilterMatch":"nenhum modelo casa o filtro \u2014 enter usa o texto digitado (slug livre)","picker.model.noTools":"\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem","picker.model.freeHelp":"modelo Custom \xB7 digite/cole o slug \xB7 enter confirma \xB7 esc cancela","picker.model.outOfCatalog":"\u26A0 fora do cat\xE1logo curado \u2014 pode ter custo/qualidade vari\xE1vel (enter usa assim mesmo)","picker.effort.help":"esfor\xE7o de racioc\xEDnio \xB7 \u2191\u2193 navega \xB7 enter aplica \xB7 esc volta","picker.effort.keep":"manter (n\xE3o mudar o esfor\xE7o atual)","picker.effort.low":"low (baixo)","picker.effort.medium":"medium (m\xE9dio)","picker.effort.high":"high (alto)","picker.effort.custom":"custom (digitar um valor)","picker.effort.customHelp":"esfor\xE7o custom \xB7 digite o valor \xB7 enter confirma \xB7 esc volta","picker.effort.warnEmpty":"\u26A0 digite um valor (n\xE3o pode ser vazio)","picker.effort.warnTooLong":"\u26A0 no m\xE1ximo 32 caracteres","picker.history.help":"retomar sess\xE3o \xB7 \u2191\u2193 navega \xB7 enter retoma \xB7 esc cancela","picker.history.empty":"nenhuma sess\xE3o anterior","picker.history.more":"\u2026 {count} sess\xF5es a mais (\u2191\u2193 rola)","picker.rewind.help":"voltar a um ponto \xB7 \u2191\u2193 navega \xB7 enter escolhe \xB7 esc cancela","picker.rewind.empty":"nenhum ponto de restaura\xE7\xE3o nesta sess\xE3o","picker.rewind.more":"\u2026 {count} pontos a mais (\u2191\u2193 rola)","picker.rewind.action.help":"o que restaurar? \xB7 \u2191\u2193 navega \xB7 enter confirma \xB7 esc volta","picker.rewind.action.both":"c\xF3digo + conversa","picker.rewind.action.conversation":"s\xF3 a conversa","picker.rewind.action.code":"s\xF3 o c\xF3digo","picker.rewind.barrier.warn":"comando(s) rodaram depois deste ponto \u2014 o efeito de shell N\xC3O \xE9 desfeito","picker.file.help":"@ para anexar arquivo \xB7 \u2191\u2193 navega \xB7 enter anexa \xB7 esc fecha","picker.file.empty":'nenhum arquivo casa "{query}"',"picker.file.more":"\u2026 {count} arquivos a mais (refine o filtro)","picker.palette.help":"\u2318 comandos \xB7 \u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","picker.palette.search":"buscar comando\u2026","picker.palette.empty":'nenhum comando casa "{query}"',"picker.palette.more":"\u2026 {count} comandos a mais (refine a busca)","lang.changed":"idioma trocado para {label}","lang.unknown":"idioma desconhecido: {input}","lang.current":"idioma atual: {label}","lang.listTitle":"idiomas dispon\xEDveis","cmd.help":"mostra esta lista","cmd.login":"entrar na conta","cmd.logout":"sair da conta","cmd.whoami":"conta, org e escopos atuais","cmd.telegram":"conector Telegram \xB7 status/allow/deny/logout (setup na sess\xE3o)","cmd.model":"trocar o tier","cmd.provider":"seta o provider do modelo Custom","cmd.effort":"seta o reasoning_effort (low/medium/high/custom) \xB7 passthrough \u226432 chars","cmd.theme":"trocar o tema (dark/light) \xB7 auto-detecta no boot","cmd.lang":"trocar o idioma (pt-BR/en) \xB7 auto-detecta no boot","cmd.usage":"tokens e janela desta sess\xE3o","cmd.rename":"d\xE1 um nome + cor de identifica\xE7\xE3o \xE0 sess\xE3o \xB7 \u25CFnome no composer","cmd.history":"navega e RETOMA uma sess\xE3o anterior \xB7 sem sair do aluy","cmd.notify":"liga/desliga o sino de aten\xE7\xE3o (on/off)","cmd.undo":"desfaz a \xFAltima edi\xE7\xE3o de arquivo do agente","cmd.redo":"refaz a \xFAltima edi\xE7\xE3o desfeita","cmd.rewind":"volta a um ponto da sess\xE3o (c\xF3digo e/ou conversa) \xB7 Esc Esc","cmd.clear":"limpa a sess\xE3o (contexto) \xB7 full tamb\xE9m APAGA a mem\xF3ria do agente","cmd.compact":"compacta o contexto (resume a conversa e continua)","cmd.cycle":"roda uma tarefa em ciclos \xB7 com tetos duros e parada (anti-runaway)","cmd.permissions":"painel \xB7 modo, grants e tools seguras (sempre-ask travado)","cmd.addDir":"autoriza um diret\xF3rio EXTRA p/ o agente (sess\xE3o) \xB7 sem args lista","cmd.init":"cria um ALUY.md neste projeto","cmd.memory":"v\xEA/edita/esquece/fixa a mem\xF3ria do agente (global + projeto)","cmd.mcp":"lista/gerencia servers MCP (add/remove/disable/enable \xB7 search <termo>)","cmd.doctor":"diagn\xF3stico da instala\xE7\xE3o \xB7 credencial, broker, MCP, config (read-only)","cmd.fullscreen":"modo cockpit (tela cheia, alt-screen)","cmd.export":"exporta o transcript REDIGIDO desta sess\xE3o p/ ~/.aluy/exports/ (0600)","cmd.quit":"sair do aluy","cmd.workflows":"fluxos de atividades que coordenam o agente \u2014 lista, executa e ativa","cmd.tools":"invent\xE1rio unificado das ferramentas \xB7 nativas, MCP, permiss\xE3o (read-only)","cmd.todo":"v\xEA/gerencia o backlog de tarefas anotadas (done/clear)"}});var Iw,Nw=p(()=>{"use strict";Iw={"composer.placeholder":"type a goal or /command\u2026","composer.shellHint":"\u203A behind the gate \xB7 Enter runs \xB7 the gate asks on effect","composer.moreLines":"lines","hints.idle":"enter sends \xB7 / commands \xB7 ctrl-p palette \xB7 \u2191 history \xB7 ctrl-c\xD72 quit","hints.thinking":"esc interrupt \xB7 ctrl-c\xD72 quit","hints.streaming":"esc interrupt \xB7 ctrl-c\xD72 quit","hints.ask":"a approve \xB7 s always \xB7 n deny \xB7 e edit \xB7 esc cancel","hints.askDestructive":"n deny (recommended) \xB7 a approve anyway \xB7 esc cancel","hints.slash":"\u2191\u2193 navigate \xB7 enter run \xB7 esc close","hints.palette":"type to search \xB7 \u2191\u2193 navigate \xB7 enter run \xB7 esc close","hints.budget":"c continue \xB7 n end","hints.error":"r retry \xB7 esc cancel","hints.workSubagents":"esc stops the parent \xB7 F8 stops all \xB7 ctrl-t view/stop \xB7 ctrl-c\xD72 quit","hints.idleSubagents":"enter sends \xB7 F8 stops the sub-agents \xB7 ctrl-t view/stop \xB7 ctrl-c\xD72 quit","hints.ctrlcAgain":"press ctrl-c again to quit","hints.cockpit":"tab focuses \xB7 pgup/pgdn scroll \xB7 ctrl-s export \xB7 /fullscreen exits \xB7 ctrl-c\xD72 quit","hints.suggest":"tab accepts the suggestion","suggest.runTests":"run the tests and show me the result","suggest.fixFailing":"investigate and fix the failing tests","suggest.summarize":"summarize what changed in this turn","suggest.retryDifferent":"try a different approach to solve this","suggest.implement":"implement the change we discussed","suggest.explain":"explain what you did and why","suggest.nextStep":"what should I review or do next?","cockpit.conversa":"conversation","cockpit.log":"log","cockpit.welcomeTitle":"\u039Bluy \u2014 cockpit","cockpit.welcomeHint":"type a goal below to get started \xB7 /help \xB7 /fullscreen exits","cockpit.entered":"cockpit mode (full screen) \u2014 tab switches chat\u21C4log \xB7 pgup/pgdn scroll \xB7 ctrl-s export \xB7 /fullscreen exits","cockpit.left":"inline mode restored (native scrollback).","cockpit.refuseNarrow":"narrow terminal (<80 col): cockpit unavailable, using inline.","cockpit.refuseShort":"short terminal (too few rows): cockpit unavailable, using inline.","cockpit.exported":"transcript exported (redacted) to","mode.label":"mode","mode.plan.caption":"read-only \u2014 view only, no effects","mode.normal.caption":"default gate (approval on effect)","mode.unsafe.caption":"approval OFF","banner.yolo":"YOLO MODE \u2014 approval OFF, the agent runs ANY command without asking","banner.yolo.narrow":"YOLO MODE \u2014 approval OFF","statusbar.brokerError":"broker error","statusbar.window":"window","statusbar.session":"session","statusbar.quota":"quota","statusbar.cycle":"cycle","statusbar.subcycles":"subcycles","boot.broker":"broker","boot.tagline":"Aluy Cli \xB7 terminal agent","boot.connecting":"connecting","boot.entering":"signing in","picker.theme.help":"change theme \xB7 \u2191\u2193 navigate \xB7 enter switch \xB7 esc close","picker.lang.help":"change language \xB7 \u2191\u2193 navigate \xB7 enter switch \xB7 esc close","picker.provider.help":"set the Custom model provider \xB7 \u2191\u2193 navigate \xB7 enter set \xB7 esc close","picker.provider.default":"default","picker.provider.fallback":"\u26A0 could not list the registered ones \u2014 showing the known providers","picker.provider.more":"\u2026 {count} more providers (\u2191\u2193 scroll)","picker.model.help":"change model \xB7 \u2191\u2193 navigate \xB7 enter select \xB7 esc close","picker.model.loading":"loading tiers from the broker\u2026","picker.model.customLine":"browse/filter the models","picker.model.fallback":"broker catalog unavailable \u2014 showing the known tiers","picker.model.browseHelp":"Custom models \xB7 type to filter \xB7 \u2191\u2193 navigate \xB7 ^T tools-only \xB7 enter select \xB7 esc back","picker.model.browseCount":"{filtered} of {total}","picker.model.toolsOnlySuffix":" \xB7 tools only","picker.model.moreAbove":"\u2191 more above","picker.model.moreBelow":"\u2193 more below","picker.model.noFilterMatch":"no model matches the filter \u2014 enter uses the typed text (free slug)","picker.model.noTools":"\u26A0 this model doesn't support tools \u2014 the agent falls back to the text parser / may not use MCP/tools well","picker.model.freeHelp":"Custom model \xB7 type/paste the slug \xB7 enter confirm \xB7 esc cancel","picker.model.outOfCatalog":"\u26A0 outside the curated catalog \u2014 cost/quality may vary (enter uses it anyway)","picker.effort.help":"reasoning effort \xB7 \u2191\u2193 navigate \xB7 enter apply \xB7 esc back","picker.effort.keep":"keep (do not change the current effort)","picker.effort.low":"low","picker.effort.medium":"medium","picker.effort.high":"high","picker.effort.custom":"custom (type a value)","picker.effort.customHelp":"custom effort \xB7 type the value \xB7 enter confirm \xB7 esc back","picker.effort.warnEmpty":"\u26A0 type a value (cannot be empty)","picker.effort.warnTooLong":"\u26A0 at most 32 characters","picker.history.help":"resume session \xB7 \u2191\u2193 navigate \xB7 enter resume \xB7 esc cancel","picker.history.empty":"no previous session","picker.history.more":"\u2026 {count} more sessions (\u2191\u2193 scroll)","picker.rewind.help":"rewind to a point \xB7 \u2191\u2193 navigate \xB7 enter choose \xB7 esc cancel","picker.rewind.empty":"no restore point in this session","picker.rewind.more":"\u2026 {count} more points (\u2191\u2193 scroll)","picker.rewind.action.help":"restore what? \xB7 \u2191\u2193 navigate \xB7 enter confirm \xB7 esc back","picker.rewind.action.both":"code + conversation","picker.rewind.action.conversation":"conversation only","picker.rewind.action.code":"code only","picker.rewind.barrier.warn":"command(s) ran after this point \u2014 shell effects are NOT undone","picker.file.help":"@ to attach a file \xB7 \u2191\u2193 navigate \xB7 enter attach \xB7 esc close","picker.file.empty":'no file matches "{query}"',"picker.file.more":"\u2026 {count} more files (refine the filter)","picker.palette.help":"\u2318 commands \xB7 \u2191\u2193 navigate \xB7 enter run \xB7 esc close","picker.palette.search":"search command\u2026","picker.palette.empty":'no command matches "{query}"',"picker.palette.more":"\u2026 {count} more commands (refine the search)","lang.changed":"language changed to {label}","lang.unknown":"unknown language: {input}","lang.current":"current language: {label}","lang.listTitle":"available languages","cmd.help":"show this list","cmd.login":"sign in","cmd.logout":"sign out","cmd.whoami":"current account, org and scopes","cmd.telegram":"Telegram connector \xB7 status/allow/deny/logout (in-session setup)","cmd.model":"switch the tier","cmd.provider":"set the Custom model provider","cmd.effort":"set the reasoning_effort (low/medium/high/custom) \xB7 passthrough \u226432 chars","cmd.theme":"switch the theme (dark/light) \xB7 auto-detected on boot","cmd.lang":"switch the language (pt-BR/en) \xB7 auto-detected on boot","cmd.usage":"tokens and window for this session","cmd.rename":"name + color-tag the session \xB7 \u25CFname in the composer","cmd.history":"browse and RESUME a previous session \xB7 without leaving aluy","cmd.notify":"toggle the attention bell (on/off)","cmd.undo":"undo the agent's last file edit","cmd.redo":"redo the last undone edit","cmd.rewind":"rewind the session to a point (code and/or conversation) \xB7 Esc Esc","cmd.clear":"clear the session (context) \xB7 full also WIPES the agent's memory","cmd.compact":"compact the context (summarize the conversation and continue)","cmd.cycle":"run a task in cycles \xB7 with hard caps and a stop (anti-runaway)","cmd.permissions":"panel \xB7 mode, grants and safe tools (always-ask locked)","cmd.addDir":"authorize an EXTRA directory for the agent (session) \xB7 no args lists","cmd.init":"create an ALUY.md in this project","cmd.memory":"view/edit/forget/pin the agent's memory (global + project)","cmd.mcp":"list/manage MCP servers (add/remove/disable/enable \xB7 search <term>)","cmd.doctor":"diagnose the install \xB7 credential, broker, MCP, config (read-only)","cmd.fullscreen":"cockpit mode (full screen, alt-screen)","cmd.export":"export this session REDACTED transcript to ~/.aluy/exports/ (0600)","cmd.quit":"quit aluy","cmd.workflows":"list mapped .md workflows (global + project \xB7 valid + rejected)","cmd.todo":"list the backlog (the agent notes items; done <id> / clear)"}});function CN(t,e){return e===void 0?t:t.replace(/\{(\w+)\}/g,(o,n)=>{let r=e[n];return r===void 0?o:String(r)})}function TN(t,e){let n=TJ[t][e];if(n!==void 0)return n;let r=DJ[e];return r!==void 0?r:(_J(e),e)}function Gs(t,e,o){return CN(TN(t,e),o)}function Ki(t=sr){return{lang:t,t:(e,o)=>Gs(t,e,o)}}function _J(t){process.env.NODE_ENV!=="production"&&(AN.has(t)||(AN.add(t),console.warn(`[i18n] missing key (no catalog entry): ${t}`)))}var TJ,DJ,AN,$w=p(()=>{"use strict";Qa();Fw();Nw();TJ={"pt-BR":Jh,en:Iw},DJ=Jh;AN=new Set});import{createContext as RJ,useContext as OJ}from"react";import{jsx as MJ}from"react/jsx-runtime";function Bw(t){return MJ(DN.Provider,{value:t.value,children:t.children})}function Se(){return OJ(DN)}var DN,_N=p(()=>{"use strict";$w();Qa();DN=RJ(Ki(sr))});var pt=p(()=>{"use strict";Qa();Fw();Nw();$w();_N()});import"react";import{Box as Uw,Text as RN}from"ink";import{Fragment as zs,jsx as dt,jsxs as wo}from"react/jsx-runtime";function LJ(t){return wo(Uw,{children:[dt(f,{name:"fg",children:MN}),t.sub!==void 0&&t.sub!==""?wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fgDim",children:t.sub})]}):wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 Terminal "}),t.version!==void 0&&t.version!==""&&wo(f,{name:"depth",children:["v",t.version]})]}),!t.narrow&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"broker",role:"depth"}),wo(f,{name:"depth",children:[" ",t.backend==="local"?"local":"broker"]})]}),t.error&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"ask",role:"danger"})]})]})}function PJ(t){return wo(Uw,{children:[dt(F,{name:"aluy",role:"accent"}),dt(RN,{children:" "}),dt(f,{name:"fg",children:MN}),t.sub!==void 0&&t.sub!==""&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fgDim",children:t.sub})]}),!t.narrow&&t.version!==void 0&&t.version!==""&&wo(zs,{children:[dt(RN,{children:" "}),wo(f,{name:"depth",children:["v",t.version]})]}),dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fg",children:t.tier}),!t.narrow&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"broker",role:"depth"}),wo(f,{name:"depth",children:[" ",t.backend==="local"?"local":"broker"]})]}),t.error&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"ask",role:"danger"})]})]})}function Wd(t){let e=Z(),o=t.columns??80,n=t.rows??24,r=o<60;return e.density!=="compact"&&!r&&n>=ON?wo(Uw,{flexDirection:"column",children:[dt(os,{columns:o}),dt(LJ,{...t.sub!==void 0?{sub:t.sub}:{},...t.version!==void 0?{version:t.version}:{},...t.backend!==void 0?{backend:t.backend}:{},narrow:r,error:t.error})]}):dt(PJ,{tier:t.tier,...t.sub!==void 0?{sub:t.sub}:{},...t.version!==void 0?{version:t.version}:{},...t.backend!==void 0?{backend:t.backend}:{},narrow:r,error:t.error})}var ON,MN,LN=p(()=>{"use strict";te();Gi();ON=vw+13,MN="Aluy Cli"});import"react";import{Box as FJ}from"ink";import{jsx as PN}from"react/jsx-runtime";function IN(t,e){let o=Math.max(1,Math.trunc(e));if(o===1)return 1;let n=Number.isFinite(t)?Math.trunc(t):0,r=2*(o-1),s=(n%r+r)%r;return s<o?s+1:2*o-1-s}function IJ(t,e){return t>=e?"accentDim":t===e-1?"accent":"depth"}function jw(t){let e=Z(),o=Math.max(1,t.width??FN),n=e.glyph("pulseBlock"),r=e.animate?IN(t.frame??0,o):0;return PN(FJ,{children:Array.from({length:o},(s,i)=>PN(f,{name:IJ(i,r),children:n},i))})}var FN,Hw=p(()=>{"use strict";te();FN=7});import"react";import{Box as NJ,Text as Yi}from"ink";import{Fragment as rs,jsx as Ft,jsxs as st}from"react/jsx-runtime";function $J(t){return t.agents+t.commands+t.skills+t.workflows+t.memory}function BJ(t){return t>90?"danger":t>=75?"accent":"fgDim"}function UJ(t){return t>=100?"danger":t>=_y?"accent":"fgDim"}function jJ(t){return t==="crit"?"danger":t==="warn"?"accent":"fgDim"}function Gd(t){let{t:e}=Se(),o=BJ(t.windowPct),n=t.budgetPct!==void 0,r=n?UJ(t.budgetPct):"fgDim",s=n&&t.budgetPct>=_y,a=t.isDefaultTier??!0?"fg":"accent",l=(t.columns??80)<60,c=!l,u=!l,m=!l,d=(t.columns??NN)>=NN,h=t.quotaPct!==void 0,g=jJ(t.quotaLevel??"ok");return st(NJ,{children:[Ft(F,{name:"clock",role:a}),st(f,{name:a,children:[" ",t.tier]}),t.model!==void 0&&t.model!==""&&d&&st(rs,{children:[Ft(f,{name:"fgDim",children:" \xB7 "}),Ft(f,{name:"depth",children:t.model})]}),t.focus!==void 0&&t.focus!==""&&st(f,{name:"accent",children:[" \u25CE foco: ",t.focus]}),t.cycleProgress!==void 0&&st(f,{name:"accent",children:[" ","\u21BB ",e("statusbar.cycle")," ",t.cycleProgress.iteration,"/",t.cycleProgress.max,t.cycleProgress.subcyclesTotal>0&&` \xB7 ${e("statusbar.subcycles")} ${t.cycleProgress.subcyclesDone}/${t.cycleProgress.subcyclesTotal}`]}),m&&st(rs,{children:[Ft(Yi,{children:" "}),t.branch!==void 0&&t.branch!==""&&st(rs,{children:[Ft(F,{name:"branch",role:"fgDim"}),st(f,{name:"fgDim",children:[" ",t.branch," "]})]}),Ft(f,{name:"fgDim",children:t.cwd})]}),m&&t.governance!==void 0&&$J(t.governance)>0&&st(rs,{children:[Ft(Yi,{children:" "}),st(f,{name:"fgDim",children:["\u2301 ",t.governance.agents,"a\xB7",t.governance.commands,"c\xB7",t.governance.skills,"s\xB7",t.governance.workflows,"w\xB7",t.governance.memory,"m"]})]}),Ft(Yi,{children:" "}),Ft(F,{name:"window",role:o}),st(f,{name:o,children:[" ",t.windowPct,"%"]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.window")]}),Ft(Yi,{children:" "}),Ft(F,{name:"gauge",role:r}),n?st(rs,{children:[st(f,{name:r,children:[" ",t.budgetPct,"%"]}),s&&Ft(f,{name:"accent",children:" \u26A0"}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.session")]}),u&&st(f,{name:"fgDim",children:[" (",Xt(t.tokens),")"]})]}):st(rs,{children:[st(f,{name:"fgDim",children:[" ",Xt(t.tokens)]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.session")]})]}),h&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(F,{name:"gauge",role:g}),st(f,{name:g,children:[" ",t.quotaPct,"%"]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.quota")]})]}),t.error&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(F,{name:"ask",role:"danger"})]}),t.busy===!0&&!l&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(jw,{...t.frame!==void 0?{frame:t.frame}:{}})]})]})}var NN,$N=p(()=>{"use strict";P();te();Hw();hn();pt();NN=90});function _t(t,e){return e<0?0:e>t.length?t.length:e}function BN(t,e){if(e<2)return!1;let o=t.charCodeAt(e-1),n=t.charCodeAt(e-2);return o>=56320&&o<=57343&&n>=55296&&n<=56319}function HJ(t,e){if(e+1>=t.length)return!1;let o=t.charCodeAt(e),n=t.charCodeAt(e+1);return o>=55296&&o<=56319&&n>=56320&&n<=57343}function Vi(t,e){let o=_t(t.text,t.cursor);return{text:t.text.slice(0,o)+e+t.text.slice(o),cursor:o+e.length}}function qw(t){let e=_t(t.text,t.cursor);if(e===0)return{text:t.text,cursor:0};let o=BN(t.text,e)?2:1;return{text:t.text.slice(0,e-o)+t.text.slice(e),cursor:e-o}}function Ww(t){let e=_t(t.text,t.cursor),o=BN(t.text,e)?2:1;return _t(t.text,e-o)}function Gw(t){let e=_t(t.text,t.cursor),o=HJ(t.text,e)?2:1;return _t(t.text,e+o)}function UN(t){let e=_t(t.text,t.cursor);return{text:t.text.slice(e),cursor:0}}function jN(t){let e=_t(t.text,t.cursor);return{text:t.text.slice(0,e),cursor:e}}function HN(t){let e=_t(t.text,t.cursor),o=Kd({text:t.text,cursor:e});return{text:t.text.slice(0,o)+t.text.slice(e),cursor:o}}function qN(t){if(t.includes("\x1B[H")||t.includes("\x1BOH")||t.includes("\x1B[1~")||t.includes("\x1B[7~"))return"home";if(t.includes("\x1B[F")||t.includes("\x1BOF")||t.includes("\x1B[4~")||t.includes("\x1B[8~"))return"end"}function WN(t,e){return t.length>0?"clear":e?"exit":"arm"}function zd(t,e){let o=t;for(let n=0;n<e.length;n++){let r=e[n];if(r==="\r"||r===`
|
|
609
|
+
`),!0}}var fN,hN=p(()=>{"use strict";Mp();Dt();fN=32});function vJ(t){return`\x1B]0;${Array.from(t).filter(o=>{let n=o.charCodeAt(0);return n>=32&&n!==127}).join("").replace(/\s+/g," ").trim()}\x07`}function Lw(t,e=process.stdout){if(e.isTTY)try{e.write(t!==void 0&&t.trim()!==""?vJ(t):kJ)}catch{}}var kJ,gN=p(()=>{"use strict";kJ="\x1B]0;\x07"});import{existsSync as xJ,mkdirSync as SJ,readFileSync as wJ,writeFileSync as EJ}from"node:fs";import{homedir as AJ}from"node:os";import{join as yN}from"node:path";function kN(t){return t.ALUY_NO_UPDATE_CHECK==="1"||t.NO_UPDATE_NOTIFIER==="1"||t.CI==="true"}function xN(){try{if(!xJ(Pw))return null;let t=JSON.parse(wJ(Pw,"utf8"));if(typeof t.lastCheck=="number"&&typeof t.latest=="string")return{lastCheck:t.lastCheck,latest:t.latest}}catch{}return null}function SN(t,e){if(kN(e))return;let o=xN();if(o&&hx(o.latest,t))return`nova vers\xE3o ${o.latest} dispon\xEDvel (voc\xEA tem ${t}) \u2014 atualize: npm i -g ${bN}`}async function wN(t,e){if(kN(e))return;let o=xN();if(!(o&&Date.now()-o.lastCheck<CJ))try{let n=`https://registry.npmjs.org/${bN.replace("/","%2f")}/latest`,r=await fetch(n,{signal:AbortSignal.timeout(4e3)});if(!r.ok)return;let i=(await r.json()).version;if(typeof i!="string")return;SJ(vN,{recursive:!0}),EJ(Pw,JSON.stringify({lastCheck:Date.now(),latest:i}),{mode:384})}catch{}}var bN,vN,Pw,CJ,EN=p(()=>{"use strict";P();bN="@hiperplano/aluy-cli",vN=yN(AJ(),".aluy"),Pw=yN(vN,"update-check.json"),CJ=1440*60*1e3});var Jh,Fw=p(()=>{"use strict";Jh={"composer.placeholder":"digite um objetivo ou /comando\u2026","composer.shellHint":"\u203A atr\xE1s da catraca \xB7 Enter roda \xB7 catraca pergunta no efeito","composer.moreLines":"linhas","hints.idle":"enter envia \xB7 / comandos \xB7 ctrl-p paleta \xB7 \u2191 hist\xF3rico \xB7 ctrl-c\xD72 sair","hints.thinking":"esc interromper \xB7 ctrl-c\xD72 sair","hints.streaming":"esc interromper \xB7 ctrl-c\xD72 sair","hints.ask":"a aprova \xB7 s sempre \xB7 n nega \xB7 e edita \xB7 esc cancela","hints.askDestructive":"n nega (recomendado) \xB7 a aprova mesmo assim \xB7 esc cancela","hints.slash":"\u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","hints.palette":"digite p/ buscar \xB7 \u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","hints.budget":"c continua \xB7 n encerra","hints.error":"r tentar \xB7 esc cancela","hints.workSubagents":"esc para o pai \xB7 F8 para tudo \xB7 ctrl-t ver/parar \xB7 ctrl-c\xD72 sair","hints.idleSubagents":"enter envia \xB7 F8 para os sub-agentes \xB7 ctrl-t ver/parar \xB7 ctrl-c\xD72 sair","hints.ctrlcAgain":"pressione ctrl-c de novo para sair","hints.cockpit":"tab foca \xB7 pgup/pgdn rola \xB7 ctrl-s exporta \xB7 /fullscreen sai \xB7 ctrl-c\xD72 sair","hints.suggest":"tab aceita a sugest\xE3o","suggest.runTests":"rode os testes e me mostre o resultado","suggest.fixFailing":"investigue e corrija os testes que falharam","suggest.summarize":"resuma o que mudou neste turno","suggest.retryDifferent":"tente outra abordagem para resolver isso","suggest.implement":"implemente a mudan\xE7a que discutimos","suggest.explain":"explique o que voc\xEA fez e por qu\xEA","suggest.nextStep":"o que devo revisar ou fazer a seguir?","cockpit.conversa":"conversa","cockpit.log":"log","cockpit.welcomeTitle":"\u039Bluy \u2014 cockpit","cockpit.welcomeHint":"digite um objetivo abaixo para come\xE7ar \xB7 /help \xB7 /fullscreen sai","cockpit.entered":"modo cockpit (tela cheia) \u2014 tab alterna conversa\u21C4log \xB7 pgup/pgdn rola \xB7 ctrl-s exporta \xB7 /fullscreen sai","cockpit.left":"modo inline restaurado (scrollback nativo).","cockpit.refuseNarrow":"terminal estreito (<80 col): cockpit indispon\xEDvel, usando inline.","cockpit.refuseShort":"terminal baixo (poucas linhas): cockpit indispon\xEDvel, usando inline.","cockpit.exported":"transcript exportado (redigido) para","mode.label":"modo","mode.plan.caption":"read-only \u2014 s\xF3 leitura, nenhum efeito","mode.normal.caption":"catraca padr\xE3o (aprova\xE7\xE3o por efeito)","mode.unsafe.caption":"aprova\xE7\xE3o DESLIGADA","banner.yolo":"MODO YOLO \u2014 aprova\xE7\xE3o DESLIGADA, o agente roda QUALQUER comando sem perguntar","banner.yolo.narrow":"MODO YOLO \u2014 aprova\xE7\xE3o DESLIGADA","statusbar.brokerError":"erro de broker","statusbar.window":"janela","statusbar.session":"sess\xE3o","statusbar.quota":"quota","statusbar.cycle":"ciclo","statusbar.subcycles":"subciclos","flowtree.cycle":"ciclo","flowtree.subcycles":"subciclos","flowtree.turn":"turno","boot.broker":"broker","boot.tagline":"Aluy Cli \xB7 agente de terminal","boot.connecting":"conectando","boot.entering":"entrando","picker.theme.help":"trocar tema \xB7 \u2191\u2193 navega \xB7 enter troca \xB7 esc fecha","picker.lang.help":"trocar idioma \xB7 \u2191\u2193 navega \xB7 enter troca \xB7 esc fecha","picker.provider.help":"setar o provider do modelo Custom \xB7 \u2191\u2193 navega \xB7 enter seta \xB7 esc fecha","picker.provider.default":"padr\xE3o","picker.provider.fallback":"\u26A0 n\xE3o foi poss\xEDvel listar os cadastrados \u2014 mostrando os conhecidos","picker.provider.more":"\u2026 {count} providers a mais (\u2191\u2193 rola)","picker.model.help":"trocar modelo \xB7 \u2191\u2193 navega \xB7 enter seleciona \xB7 esc fecha","picker.model.loading":"carregando tiers do broker\u2026","picker.model.customLine":"navegar/filtrar os modelos","picker.model.fallback":"cat\xE1logo do broker indispon\xEDvel \u2014 mostrando os tiers conhecidos","picker.model.browseHelp":"modelos Custom \xB7 digite p/ filtrar \xB7 \u2191\u2193 navega \xB7 ^T s\xF3-tools \xB7 enter seleciona \xB7 esc volta","picker.model.browseCount":"{filtered} de {total}","picker.model.toolsOnlySuffix":" \xB7 s\xF3 com tools","picker.model.moreAbove":"\u2191 mais acima","picker.model.moreBelow":"\u2193 mais abaixo","picker.model.noFilterMatch":"nenhum modelo casa o filtro \u2014 enter usa o texto digitado (slug livre)","picker.model.noTools":"\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem","picker.model.freeHelp":"modelo Custom \xB7 digite/cole o slug \xB7 enter confirma \xB7 esc cancela","picker.model.outOfCatalog":"\u26A0 fora do cat\xE1logo curado \u2014 pode ter custo/qualidade vari\xE1vel (enter usa assim mesmo)","picker.effort.help":"esfor\xE7o de racioc\xEDnio \xB7 \u2191\u2193 navega \xB7 enter aplica \xB7 esc volta","picker.effort.keep":"manter (n\xE3o mudar o esfor\xE7o atual)","picker.effort.low":"low (baixo)","picker.effort.medium":"medium (m\xE9dio)","picker.effort.high":"high (alto)","picker.effort.custom":"custom (digitar um valor)","picker.effort.customHelp":"esfor\xE7o custom \xB7 digite o valor \xB7 enter confirma \xB7 esc volta","picker.effort.warnEmpty":"\u26A0 digite um valor (n\xE3o pode ser vazio)","picker.effort.warnTooLong":"\u26A0 no m\xE1ximo 32 caracteres","picker.history.help":"retomar sess\xE3o \xB7 \u2191\u2193 navega \xB7 enter retoma \xB7 esc cancela","picker.history.empty":"nenhuma sess\xE3o anterior","picker.history.more":"\u2026 {count} sess\xF5es a mais (\u2191\u2193 rola)","picker.rewind.help":"voltar a um ponto \xB7 \u2191\u2193 navega \xB7 enter escolhe \xB7 esc cancela","picker.rewind.empty":"nenhum ponto de restaura\xE7\xE3o nesta sess\xE3o","picker.rewind.more":"\u2026 {count} pontos a mais (\u2191\u2193 rola)","picker.rewind.action.help":"o que restaurar? \xB7 \u2191\u2193 navega \xB7 enter confirma \xB7 esc volta","picker.rewind.action.both":"c\xF3digo + conversa","picker.rewind.action.conversation":"s\xF3 a conversa","picker.rewind.action.code":"s\xF3 o c\xF3digo","picker.rewind.barrier.warn":"comando(s) rodaram depois deste ponto \u2014 o efeito de shell N\xC3O \xE9 desfeito","picker.file.help":"@ para anexar arquivo \xB7 \u2191\u2193 navega \xB7 enter anexa \xB7 esc fecha","picker.file.empty":'nenhum arquivo casa "{query}"',"picker.file.more":"\u2026 {count} arquivos a mais (refine o filtro)","picker.palette.help":"\u2318 comandos \xB7 \u2191\u2193 navega \xB7 enter executa \xB7 esc fecha","picker.palette.search":"buscar comando\u2026","picker.palette.empty":'nenhum comando casa "{query}"',"picker.palette.more":"\u2026 {count} comandos a mais (refine a busca)","lang.changed":"idioma trocado para {label}","lang.unknown":"idioma desconhecido: {input}","lang.current":"idioma atual: {label}","lang.listTitle":"idiomas dispon\xEDveis","cmd.help":"mostra esta lista","cmd.login":"entrar na conta","cmd.logout":"sair da conta","cmd.whoami":"conta, org e escopos atuais","cmd.telegram":"conector Telegram \xB7 status/allow/deny/logout (setup na sess\xE3o)","cmd.model":"trocar o tier","cmd.provider":"seta o provider do modelo Custom","cmd.effort":"seta o reasoning_effort (low/medium/high/custom) \xB7 passthrough \u226432 chars","cmd.theme":"trocar o tema (dark/light) \xB7 auto-detecta no boot","cmd.lang":"trocar o idioma (pt-BR/en) \xB7 auto-detecta no boot","cmd.usage":"tokens e janela desta sess\xE3o","cmd.rename":"d\xE1 um nome + cor de identifica\xE7\xE3o \xE0 sess\xE3o \xB7 \u25CFnome no composer","cmd.history":"navega e RETOMA uma sess\xE3o anterior \xB7 sem sair do aluy","cmd.notify":"liga/desliga o sino de aten\xE7\xE3o (on/off)","cmd.undo":"desfaz a \xFAltima edi\xE7\xE3o de arquivo do agente","cmd.redo":"refaz a \xFAltima edi\xE7\xE3o desfeita","cmd.rewind":"volta a um ponto da sess\xE3o (c\xF3digo e/ou conversa) \xB7 Esc Esc","cmd.clear":"limpa a sess\xE3o (contexto) \xB7 full tamb\xE9m APAGA a mem\xF3ria do agente","cmd.compact":"compacta o contexto (resume a conversa e continua)","cmd.cycle":"roda uma tarefa em ciclos \xB7 com tetos duros e parada (anti-runaway)","cmd.permissions":"painel \xB7 modo, grants e tools seguras (sempre-ask travado)","cmd.addDir":"autoriza um diret\xF3rio EXTRA p/ o agente (sess\xE3o) \xB7 sem args lista","cmd.init":"cria um ALUY.md neste projeto","cmd.memory":"v\xEA/edita/esquece/fixa a mem\xF3ria do agente (global + projeto)","cmd.mcp":"lista/gerencia servers MCP (add/remove/disable/enable \xB7 search <termo>)","cmd.doctor":"diagn\xF3stico da instala\xE7\xE3o \xB7 credencial, broker, MCP, config (read-only)","cmd.fullscreen":"modo cockpit (tela cheia, alt-screen)","cmd.export":"exporta o transcript REDIGIDO desta sess\xE3o p/ ~/.aluy/exports/ (0600)","cmd.quit":"sair do aluy","cmd.workflows":"fluxos de atividades que coordenam o agente \u2014 lista, executa e ativa","cmd.tools":"invent\xE1rio unificado das ferramentas \xB7 nativas, MCP, permiss\xE3o (read-only)","cmd.todo":"v\xEA/gerencia o backlog de tarefas anotadas (done/clear)"}});var Iw,Nw=p(()=>{"use strict";Iw={"composer.placeholder":"type a goal or /command\u2026","composer.shellHint":"\u203A behind the gate \xB7 Enter runs \xB7 the gate asks on effect","composer.moreLines":"lines","hints.idle":"enter sends \xB7 / commands \xB7 ctrl-p palette \xB7 \u2191 history \xB7 ctrl-c\xD72 quit","hints.thinking":"esc interrupt \xB7 ctrl-c\xD72 quit","hints.streaming":"esc interrupt \xB7 ctrl-c\xD72 quit","hints.ask":"a approve \xB7 s always \xB7 n deny \xB7 e edit \xB7 esc cancel","hints.askDestructive":"n deny (recommended) \xB7 a approve anyway \xB7 esc cancel","hints.slash":"\u2191\u2193 navigate \xB7 enter run \xB7 esc close","hints.palette":"type to search \xB7 \u2191\u2193 navigate \xB7 enter run \xB7 esc close","hints.budget":"c continue \xB7 n end","hints.error":"r retry \xB7 esc cancel","hints.workSubagents":"esc stops the parent \xB7 F8 stops all \xB7 ctrl-t view/stop \xB7 ctrl-c\xD72 quit","hints.idleSubagents":"enter sends \xB7 F8 stops the sub-agents \xB7 ctrl-t view/stop \xB7 ctrl-c\xD72 quit","hints.ctrlcAgain":"press ctrl-c again to quit","hints.cockpit":"tab focuses \xB7 pgup/pgdn scroll \xB7 ctrl-s export \xB7 /fullscreen exits \xB7 ctrl-c\xD72 quit","hints.suggest":"tab accepts the suggestion","suggest.runTests":"run the tests and show me the result","suggest.fixFailing":"investigate and fix the failing tests","suggest.summarize":"summarize what changed in this turn","suggest.retryDifferent":"try a different approach to solve this","suggest.implement":"implement the change we discussed","suggest.explain":"explain what you did and why","suggest.nextStep":"what should I review or do next?","cockpit.conversa":"conversation","cockpit.log":"log","cockpit.welcomeTitle":"\u039Bluy \u2014 cockpit","cockpit.welcomeHint":"type a goal below to get started \xB7 /help \xB7 /fullscreen exits","cockpit.entered":"cockpit mode (full screen) \u2014 tab switches chat\u21C4log \xB7 pgup/pgdn scroll \xB7 ctrl-s export \xB7 /fullscreen exits","cockpit.left":"inline mode restored (native scrollback).","cockpit.refuseNarrow":"narrow terminal (<80 col): cockpit unavailable, using inline.","cockpit.refuseShort":"short terminal (too few rows): cockpit unavailable, using inline.","cockpit.exported":"transcript exported (redacted) to","mode.label":"mode","mode.plan.caption":"read-only \u2014 view only, no effects","mode.normal.caption":"default gate (approval on effect)","mode.unsafe.caption":"approval OFF","banner.yolo":"YOLO MODE \u2014 approval OFF, the agent runs ANY command without asking","banner.yolo.narrow":"YOLO MODE \u2014 approval OFF","statusbar.brokerError":"broker error","statusbar.window":"window","statusbar.session":"session","statusbar.quota":"quota","statusbar.cycle":"cycle","statusbar.subcycles":"subcycles","boot.broker":"broker","boot.tagline":"Aluy Cli \xB7 terminal agent","boot.connecting":"connecting","boot.entering":"signing in","picker.theme.help":"change theme \xB7 \u2191\u2193 navigate \xB7 enter switch \xB7 esc close","picker.lang.help":"change language \xB7 \u2191\u2193 navigate \xB7 enter switch \xB7 esc close","picker.provider.help":"set the Custom model provider \xB7 \u2191\u2193 navigate \xB7 enter set \xB7 esc close","picker.provider.default":"default","picker.provider.fallback":"\u26A0 could not list the registered ones \u2014 showing the known providers","picker.provider.more":"\u2026 {count} more providers (\u2191\u2193 scroll)","picker.model.help":"change model \xB7 \u2191\u2193 navigate \xB7 enter select \xB7 esc close","picker.model.loading":"loading tiers from the broker\u2026","picker.model.customLine":"browse/filter the models","picker.model.fallback":"broker catalog unavailable \u2014 showing the known tiers","picker.model.browseHelp":"Custom models \xB7 type to filter \xB7 \u2191\u2193 navigate \xB7 ^T tools-only \xB7 enter select \xB7 esc back","picker.model.browseCount":"{filtered} of {total}","picker.model.toolsOnlySuffix":" \xB7 tools only","picker.model.moreAbove":"\u2191 more above","picker.model.moreBelow":"\u2193 more below","picker.model.noFilterMatch":"no model matches the filter \u2014 enter uses the typed text (free slug)","picker.model.noTools":"\u26A0 this model doesn't support tools \u2014 the agent falls back to the text parser / may not use MCP/tools well","picker.model.freeHelp":"Custom model \xB7 type/paste the slug \xB7 enter confirm \xB7 esc cancel","picker.model.outOfCatalog":"\u26A0 outside the curated catalog \u2014 cost/quality may vary (enter uses it anyway)","picker.effort.help":"reasoning effort \xB7 \u2191\u2193 navigate \xB7 enter apply \xB7 esc back","picker.effort.keep":"keep (do not change the current effort)","picker.effort.low":"low","picker.effort.medium":"medium","picker.effort.high":"high","picker.effort.custom":"custom (type a value)","picker.effort.customHelp":"custom effort \xB7 type the value \xB7 enter confirm \xB7 esc back","picker.effort.warnEmpty":"\u26A0 type a value (cannot be empty)","picker.effort.warnTooLong":"\u26A0 at most 32 characters","picker.history.help":"resume session \xB7 \u2191\u2193 navigate \xB7 enter resume \xB7 esc cancel","picker.history.empty":"no previous session","picker.history.more":"\u2026 {count} more sessions (\u2191\u2193 scroll)","picker.rewind.help":"rewind to a point \xB7 \u2191\u2193 navigate \xB7 enter choose \xB7 esc cancel","picker.rewind.empty":"no restore point in this session","picker.rewind.more":"\u2026 {count} more points (\u2191\u2193 scroll)","picker.rewind.action.help":"restore what? \xB7 \u2191\u2193 navigate \xB7 enter confirm \xB7 esc back","picker.rewind.action.both":"code + conversation","picker.rewind.action.conversation":"conversation only","picker.rewind.action.code":"code only","picker.rewind.barrier.warn":"command(s) ran after this point \u2014 shell effects are NOT undone","picker.file.help":"@ to attach a file \xB7 \u2191\u2193 navigate \xB7 enter attach \xB7 esc close","picker.file.empty":'no file matches "{query}"',"picker.file.more":"\u2026 {count} more files (refine the filter)","picker.palette.help":"\u2318 commands \xB7 \u2191\u2193 navigate \xB7 enter run \xB7 esc close","picker.palette.search":"search command\u2026","picker.palette.empty":'no command matches "{query}"',"picker.palette.more":"\u2026 {count} more commands (refine the search)","lang.changed":"language changed to {label}","lang.unknown":"unknown language: {input}","lang.current":"current language: {label}","lang.listTitle":"available languages","cmd.help":"show this list","cmd.login":"sign in","cmd.logout":"sign out","cmd.whoami":"current account, org and scopes","cmd.telegram":"Telegram connector \xB7 status/allow/deny/logout (in-session setup)","cmd.model":"switch the tier","cmd.provider":"set the Custom model provider","cmd.effort":"set the reasoning_effort (low/medium/high/custom) \xB7 passthrough \u226432 chars","cmd.theme":"switch the theme (dark/light) \xB7 auto-detected on boot","cmd.lang":"switch the language (pt-BR/en) \xB7 auto-detected on boot","cmd.usage":"tokens and window for this session","cmd.rename":"name + color-tag the session \xB7 \u25CFname in the composer","cmd.history":"browse and RESUME a previous session \xB7 without leaving aluy","cmd.notify":"toggle the attention bell (on/off)","cmd.undo":"undo the agent's last file edit","cmd.redo":"redo the last undone edit","cmd.rewind":"rewind the session to a point (code and/or conversation) \xB7 Esc Esc","cmd.clear":"clear the session (context) \xB7 full also WIPES the agent's memory","cmd.compact":"compact the context (summarize the conversation and continue)","cmd.cycle":"run a task in cycles \xB7 with hard caps and a stop (anti-runaway)","cmd.permissions":"panel \xB7 mode, grants and safe tools (always-ask locked)","cmd.addDir":"authorize an EXTRA directory for the agent (session) \xB7 no args lists","cmd.init":"create an ALUY.md in this project","cmd.memory":"view/edit/forget/pin the agent's memory (global + project)","cmd.mcp":"list/manage MCP servers (add/remove/disable/enable \xB7 search <term>)","cmd.doctor":"diagnose the install \xB7 credential, broker, MCP, config (read-only)","cmd.fullscreen":"cockpit mode (full screen, alt-screen)","cmd.export":"export this session REDACTED transcript to ~/.aluy/exports/ (0600)","cmd.quit":"quit aluy","cmd.workflows":"list mapped .md workflows (global + project \xB7 valid + rejected)","cmd.todo":"list the backlog (the agent notes items; done <id> / clear)"}});function CN(t,e){return e===void 0?t:t.replace(/\{(\w+)\}/g,(o,n)=>{let r=e[n];return r===void 0?o:String(r)})}function TN(t,e){let n=TJ[t][e];if(n!==void 0)return n;let r=DJ[e];return r!==void 0?r:(_J(e),e)}function Gs(t,e,o){return CN(TN(t,e),o)}function Ki(t=sr){return{lang:t,t:(e,o)=>Gs(t,e,o)}}function _J(t){process.env.NODE_ENV!=="production"&&(AN.has(t)||(AN.add(t),console.warn(`[i18n] missing key (no catalog entry): ${t}`)))}var TJ,DJ,AN,$w=p(()=>{"use strict";Qa();Fw();Nw();TJ={"pt-BR":Jh,en:Iw},DJ=Jh;AN=new Set});import{createContext as RJ,useContext as OJ}from"react";import{jsx as MJ}from"react/jsx-runtime";function Bw(t){return MJ(DN.Provider,{value:t.value,children:t.children})}function Se(){return OJ(DN)}var DN,_N=p(()=>{"use strict";$w();Qa();DN=RJ(Ki(sr))});var pt=p(()=>{"use strict";Qa();Fw();Nw();$w();_N()});import"react";import{Box as Uw,Text as RN}from"ink";import{Fragment as zs,jsx as dt,jsxs as wo}from"react/jsx-runtime";function LJ(t){return wo(Uw,{children:[dt(f,{name:"fg",children:MN}),t.sub!==void 0&&t.sub!==""?wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fgDim",children:t.sub})]}):wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 Terminal "}),t.version!==void 0&&t.version!==""&&wo(f,{name:"depth",children:["v",t.version]})]}),!t.narrow&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"broker",role:"depth"}),wo(f,{name:"depth",children:[" ",t.backend==="local"?"local":"broker"]})]}),t.error&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"ask",role:"danger"})]})]})}function PJ(t){return wo(Uw,{children:[dt(F,{name:"aluy",role:"accent"}),dt(RN,{children:" "}),dt(f,{name:"fg",children:MN}),t.sub!==void 0&&t.sub!==""&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fgDim",children:t.sub})]}),!t.narrow&&t.version!==void 0&&t.version!==""&&wo(zs,{children:[dt(RN,{children:" "}),wo(f,{name:"depth",children:["v",t.version]})]}),dt(f,{name:"fgDim",children:" \xB7 "}),dt(f,{name:"fg",children:t.tier}),!t.narrow&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"broker",role:"depth"}),wo(f,{name:"depth",children:[" ",t.backend==="local"?"local":"broker"]})]}),t.error&&wo(zs,{children:[dt(f,{name:"fgDim",children:" \xB7 "}),dt(F,{name:"ask",role:"danger"})]})]})}function Wd(t){let e=Q(),o=t.columns??80,n=t.rows??24,r=o<60;return e.density!=="compact"&&!r&&n>=ON?wo(Uw,{flexDirection:"column",children:[dt(os,{columns:o}),dt(LJ,{...t.sub!==void 0?{sub:t.sub}:{},...t.version!==void 0?{version:t.version}:{},...t.backend!==void 0?{backend:t.backend}:{},narrow:r,error:t.error})]}):dt(PJ,{tier:t.tier,...t.sub!==void 0?{sub:t.sub}:{},...t.version!==void 0?{version:t.version}:{},...t.backend!==void 0?{backend:t.backend}:{},narrow:r,error:t.error})}var ON,MN,LN=p(()=>{"use strict";te();Gi();ON=vw+13,MN="Aluy Cli"});import"react";import{Box as FJ}from"ink";import{jsx as PN}from"react/jsx-runtime";function IN(t,e){let o=Math.max(1,Math.trunc(e));if(o===1)return 1;let n=Number.isFinite(t)?Math.trunc(t):0,r=2*(o-1),s=(n%r+r)%r;return s<o?s+1:2*o-1-s}function IJ(t,e){return t>=e?"accentDim":t===e-1?"accent":"accentMid"}function jw(t){let e=Q(),o=Math.max(1,t.width??FN),n=e.glyph("pulseBlock"),r=e.animate?IN(t.frame??0,o):0;return PN(FJ,{children:Array.from({length:o},(s,i)=>PN(f,{name:IJ(i,r),children:n},i))})}var FN,Hw=p(()=>{"use strict";te();FN=7});import"react";import{Box as NJ,Text as Yi}from"ink";import{Fragment as rs,jsx as Ft,jsxs as st}from"react/jsx-runtime";function $J(t){return t.agents+t.commands+t.skills+t.workflows+t.memory}function BJ(t){return t>90?"danger":t>=75?"accent":"fgDim"}function UJ(t){return t>=100?"danger":t>=_y?"accent":"fgDim"}function jJ(t){return t==="crit"?"danger":t==="warn"?"accent":"fgDim"}function Gd(t){let{t:e}=Se(),o=BJ(t.windowPct),n=t.budgetPct!==void 0,r=n?UJ(t.budgetPct):"fgDim",s=n&&t.budgetPct>=_y,a=t.isDefaultTier??!0?"fg":"accent",l=(t.columns??80)<60,c=!l,u=!l,m=!l,d=(t.columns??NN)>=NN,h=t.quotaPct!==void 0,g=jJ(t.quotaLevel??"ok");return st(NJ,{children:[Ft(F,{name:"clock",role:a}),st(f,{name:a,children:[" ",t.tier]}),t.model!==void 0&&t.model!==""&&d&&st(rs,{children:[Ft(f,{name:"fgDim",children:" \xB7 "}),Ft(f,{name:"depth",children:t.model})]}),t.focus!==void 0&&t.focus!==""&&st(f,{name:"accent",children:[" \u25CE foco: ",t.focus]}),t.cycleProgress!==void 0&&st(f,{name:"accent",children:[" ","\u21BB ",e("statusbar.cycle")," ",t.cycleProgress.iteration,"/",t.cycleProgress.max,t.cycleProgress.subcyclesTotal>0&&` \xB7 ${e("statusbar.subcycles")} ${t.cycleProgress.subcyclesDone}/${t.cycleProgress.subcyclesTotal}`]}),m&&st(rs,{children:[Ft(Yi,{children:" "}),t.branch!==void 0&&t.branch!==""&&st(rs,{children:[Ft(F,{name:"branch",role:"fgDim"}),st(f,{name:"fgDim",children:[" ",t.branch," "]})]}),Ft(f,{name:"fgDim",children:t.cwd})]}),m&&t.governance!==void 0&&$J(t.governance)>0&&st(rs,{children:[Ft(Yi,{children:" "}),st(f,{name:"fgDim",children:["\u2301 ",t.governance.agents,"a\xB7",t.governance.commands,"c\xB7",t.governance.skills,"s\xB7",t.governance.workflows,"w\xB7",t.governance.memory,"m"]})]}),Ft(Yi,{children:" "}),Ft(F,{name:"window",role:o}),st(f,{name:o,children:[" ",t.windowPct,"%"]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.window")]}),Ft(Yi,{children:" "}),Ft(F,{name:"gauge",role:r}),n?st(rs,{children:[st(f,{name:r,children:[" ",t.budgetPct,"%"]}),s&&Ft(f,{name:"accent",children:" \u26A0"}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.session")]}),u&&st(f,{name:"fgDim",children:[" (",Xt(t.tokens),")"]})]}):st(rs,{children:[st(f,{name:"fgDim",children:[" ",Xt(t.tokens)]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.session")]})]}),h&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(F,{name:"gauge",role:g}),st(f,{name:g,children:[" ",t.quotaPct,"%"]}),c&&st(f,{name:"fgDim",children:[" ",e("statusbar.quota")]})]}),t.error&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(F,{name:"ask",role:"danger"})]}),t.busy===!0&&!l&&st(rs,{children:[Ft(Yi,{children:" "}),Ft(jw,{...t.frame!==void 0?{frame:t.frame}:{}})]})]})}var NN,$N=p(()=>{"use strict";P();te();Hw();hn();pt();NN=90});function _t(t,e){return e<0?0:e>t.length?t.length:e}function BN(t,e){if(e<2)return!1;let o=t.charCodeAt(e-1),n=t.charCodeAt(e-2);return o>=56320&&o<=57343&&n>=55296&&n<=56319}function HJ(t,e){if(e+1>=t.length)return!1;let o=t.charCodeAt(e),n=t.charCodeAt(e+1);return o>=55296&&o<=56319&&n>=56320&&n<=57343}function Vi(t,e){let o=_t(t.text,t.cursor);return{text:t.text.slice(0,o)+e+t.text.slice(o),cursor:o+e.length}}function qw(t){let e=_t(t.text,t.cursor);if(e===0)return{text:t.text,cursor:0};let o=BN(t.text,e)?2:1;return{text:t.text.slice(0,e-o)+t.text.slice(e),cursor:e-o}}function Ww(t){let e=_t(t.text,t.cursor),o=BN(t.text,e)?2:1;return _t(t.text,e-o)}function Gw(t){let e=_t(t.text,t.cursor),o=HJ(t.text,e)?2:1;return _t(t.text,e+o)}function UN(t){let e=_t(t.text,t.cursor);return{text:t.text.slice(e),cursor:0}}function jN(t){let e=_t(t.text,t.cursor);return{text:t.text.slice(0,e),cursor:e}}function HN(t){let e=_t(t.text,t.cursor),o=Kd({text:t.text,cursor:e});return{text:t.text.slice(0,o)+t.text.slice(e),cursor:o}}function qN(t){if(t.includes("\x1B[H")||t.includes("\x1BOH")||t.includes("\x1B[1~")||t.includes("\x1B[7~"))return"home";if(t.includes("\x1B[F")||t.includes("\x1BOF")||t.includes("\x1B[4~")||t.includes("\x1B[8~"))return"end"}function WN(t,e){return t.length>0?"clear":e?"exit":"arm"}function zd(t,e){let o=t;for(let n=0;n<e.length;n++){let r=e[n];if(r==="\r"||r===`
|
|
610
610
|
`)return{state:o,newlineIndex:n,newline:r};if(r===qJ||r===WJ){o=qw(o);continue}o=Vi(o,r)}return{state:o,newlineIndex:-1,newline:""}}function GJ(t,e,o,n){let r=_t(e,o),s=0;for(let d=0;d<r;d++)e[d]===`
|
|
611
611
|
`&&s++;let i=Math.max(0,s-(n-1)),a=i+n;a>t.length&&(a=t.length,i=Math.max(0,a-n));let c=t.slice(i,a).join(`
|
|
612
612
|
`),u=0;for(let d=0;d<i;d++)u+=t[d].length+1;let m=_t(c,r-u);return{text:c,cursor:m,hiddenAbove:i,hiddenBelow:t.length-a}}function GN(t,e,o,n){let r=_t(t,e);if(o<=0||Vo(t,n)<=o)return{text:t,cursor:r,hiddenAbove:0,hiddenBelow:0};let s=t.split(`
|
|
613
613
|
`),i=s.length>o?GJ(s,t,r,o):{text:t,cursor:r,hiddenAbove:0,hiddenBelow:0};return Vo(i.text,n)<=o?i:zJ(i,o,n)}function zJ(t,e,o){let n=t.text.split(`
|
|
614
614
|
`),r=0,s=0,i=t.cursor;for(let M=0;M<n.length;M++){let j=n[M].length;if(t.cursor<=r+j){s=M,i=t.cursor-r;break}r+=j+1,s=M+1,i=0}let a=n[s]??"",l=Array.from(a),c=0;{let M=0;for(let j of l){if(M>=i)break;M+=j.length,c++}}let u=e*o,m=(M,j)=>ve(l.slice(M,j).join("")),d=Math.max(1,u-2),h=c,g=c;g<l.length&&g++;let b=!0;for(;b;)b=!1,h>0&&m(h-1,g)<=d&&(h--,b=!0),g<l.length&&m(h,g+1)<=d&&(g++,b=!0);let y=h>0,w=g<l.length,A="\u2026",T=l.slice(h,g).join(""),O=(y?A:"")+T+(w?A:""),N=n.slice();N[s]=O;let G=N.join(`
|
|
615
|
-
`),V=(y?A.length:0)+l.slice(h,c).join("").length,z=0;for(let M=0;M<s;M++)z+=N[M].length+1;let B=_t(G,z+V),X=Math.max(1,o),oe=y?Math.max(1,Math.ceil(m(0,h)/X)):0,ne=w?Math.max(1,Math.ceil(m(g,l.length)/X)):0;return{text:G,cursor:B,hiddenAbove:t.hiddenAbove+oe,hiddenBelow:t.hiddenBelow+ne}}function Kd(t){let e=_t(t.text,t.cursor);for(;e>0&&!Qh.test(t.text[e-1]);)e--;for(;e>0&&Qh.test(t.text[e-1]);)e--;return e}function Zh(t){let e=t.text.length,o=_t(t.text,t.cursor);for(;o<e&&!Qh.test(t.text[o]);)o++;for(;o<e&&Qh.test(t.text[o]);)o++;return o}var zw,qJ,WJ,Qh,eg=p(()=>{"use strict";Dt();zw=2500,qJ="\x7F",WJ="\b";Qh=/[\p{L}\p{N}_]/u});import"react";import{Box as Kw,Text as Xi}from"ink";import{Fragment as Yd,jsx as ht,jsxs as pr}from"react/jsx-runtime";function zN(t){let{text:e,showCursor:o,active:n,cursorGlyph:r}=t,s=n?"fg":"fgDim",i=t.pos<0?0:t.pos>e.length?e.length:t.pos;if(!o)return ht(f,{name:s,children:e});if(i>=e.length)return pr(Yd,{children:[ht(f,{name:s,children:e}),ht(f,{name:"fg",children:r})]});let l=e.codePointAt(i)>65535?2:1,c=e.slice(0,i),u=e.slice(i,i+l),m=e.slice(i+l);return pr(Yd,{children:[c!==""&&ht(f,{name:s,children:c}),ht(Xi,{inverse:!0,children:u}),m!==""&&ht(f,{name:s,children:m})]})}function KN(t){let e=Z(),o=(t.label??"").trim();if(o==="")return null;let n=e.glyph("sessionDot"),r=e.sessionColor(t.color??o),s={};return r.color!==void 0&&(s.color=r.color),r.bold!==void 0&&(s.bold=r.bold),pr(Yd,{children:[ht(Xi,{...s,children:n}),ht(Xi,{children:" "}),ht(f,{name:"fg",children:o}),ht(Xi,{children:" "})]})}function Vd(t){let e=Z(),{t:o}=Se(),n=t.placeholder??o("composer.placeholder"),r=e.glyph("cursor"),s=t.cursorPos??t.value.length;if(t.shellMode){let y=t.active&&t.showCursor!==!1;return pr(Kw,{children:[ht(KN,{...t.sessionLabel!==void 0?{label:t.sessionLabel}:{},...t.sessionColor!==void 0?{color:t.sessionColor}:{}}),pr(f,{name:"danger",children:[e.glyph("ask")," shell "]}),ht(zN,{text:t.value,pos:s,showCursor:y,active:t.active,cursorGlyph:r}),ht(Xi,{children:" "}),ht(f,{name:"fgDim",children:o("composer.shellHint")})]})}let a=t.value===""&&t.active,l=t.active&&t.showCursor!==!1,c=ht(f,{name:"fg",children:r}),u=t.maxRows,m=Yh(t.sessionLabel),d=t.columns!==void 0&&t.columns>m?t.columns-m:t.columns??0,h=u!==void 0&&Vo(t.value,d>0?d:0)>u,g=h?Math.max(1,u-1):0,b=h?GN(t.value,s,g,d):{text:t.value,cursor:s,hiddenAbove:0,hiddenBelow:0};return pr(Kw,{flexDirection:"column",children:[pr(Kw,{children:[ht(KN,{...t.sessionLabel!==void 0?{label:t.sessionLabel}:{},...t.sessionColor!==void 0?{color:t.sessionColor}:{}}),ht(F,{name:"prompt",role:"accent"}),ht(Xi,{children:" "}),a?pr(Yd,{children:[l&&c,ht(f,{name:"fgDim",children:n})]}):ht(zN,{text:b.text,pos:b.cursor,showCursor:l,active:t.active,cursorGlyph:r}),!t.active&&t.hint&&pr(Yd,{children:[ht(Xi,{children:" "}),ht(f,{name:"fgDim",children:t.hint})]})]}),h&&pr(f,{name:"fgDim",children:[b.hiddenAbove>0?`\u2191${b.hiddenAbove}`:"",b.hiddenAbove>0&&b.hiddenBelow>0?" \xB7 ":"",b.hiddenBelow>0?`\u2193${b.hiddenBelow}`:"",` ${o("composer.moreLines")}`]})]})}var YN=p(()=>{"use strict";te();pt();eg();Dt()});function Ji(t,e){if(e<=0)return"";if(ve(t)<=e)return t;let o=e-1,n="",r=0;for(let s of t){let i=ve(s);if(r+i>o)break;n+=s,r+=i}return n+"\u2026"}function Xw(t,e,o){let n=Math.max(0,e-ve(t));if(n===0)return t;if(o==="right")return" ".repeat(n)+t;if(o==="center"){let r=Math.floor(n/2);return" ".repeat(r)+t+" ".repeat(n-r)}return t+" ".repeat(n)}function VN(t,e,o,n){let r=[];for(let u=0;u<o;u++){let m=ve(t[u]??"");for(let d of e)m=Math.max(m,ve(d[u]??""));r.push(Math.max(Yw,m))}if(!n||n<=0)return r;let s=o>0?(o-1)*Vw:0,i=Math.max(o*Yw,n-s),a=r.reduce((u,m)=>u+m,0);if(a<=i)return r;let l=[...r],c=a*2+10;for(;a>i&&c-- >0;){let u=-1,m=Yw;for(let d=0;d<o;d++)l[d]>m&&(m=l[d],u=d);if(u<0)break;l[u]-=1,a-=1}return l}var Vw,Yw,tg=p(()=>{"use strict";Dt();Vw=3,Yw=1});import"react";import{Box as ss}from"ink";import{jsx as Eo,jsxs as tE}from"react/jsx-runtime";function Jw(t){let e=t.replace(/\s+/g," ").trim();return Ji(e,KJ)}function Xd(t){if(t<=0)return 0;let e=Math.min(t,Sl),o=t>Sl?1:0;return 1+e+o}function Qw(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u229F ${e.length} na fila \xB7 enviada(s) ao terminar o turno`}),o.map((r,s)=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u203A ${Jw(r)}`})},s)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} na fila`})})]})}function Zw(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u21B3 ${e.length} encaixando\u2026 \xB7 incorporada(s) na pr\xF3xima itera\xE7\xE3o`}),o.map((r,s)=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u203A ${Jw(r)}`})},s)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} encaixando`})})]})}function eE(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u2197 ${e.length} /ask em paralelo \xB7 respondendo (canal lateral, sem parar o trabalho)`}),o.map(r=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2197 ${Jw(r.question)}`})},r.id)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} /ask`})})]})}var Sl,KJ,XN=p(()=>{"use strict";te();tg();Sl=3,KJ=48});function JN(t){let e=t.regex,o={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});let r={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},s=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,o,r]};r.contains.push(a);let l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},u={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,o]},d=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=t.SHEBANG({binary:`(${d.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],y=["true","false"],w={match:/(\/[a-z._-]+)+/},A=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],T=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],O=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],N=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:y,built_in:[...A,...T,"set","shopt",...O,...N]},contains:[h,t.SHEBANG(),g,m,s,i,w,a,l,c,u,o]}}var QN=p(()=>{});function ZN(t){let e=t.regex,o=YJ(t),n={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",s=/@-?\w[\w]*(-\w+)*/,i="[a-zA-Z-][a-zA-Z0-9_-]*",a=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[o.BLOCK_COMMENT,n,o.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+i,relevance:0},o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ZJ.join("|")+")"},{begin:":(:)?("+eQ.join("|")+")"}]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+tQ.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[o.BLOCK_COMMENT,o.HEXCOLOR,o.IMPORTANT,o.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},o.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:QJ.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,o.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+JJ.join("|")+")\\b"}]}}var YJ,VJ,XJ,JJ,QJ,ZJ,eQ,tQ,e$=p(()=>{YJ=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),VJ=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],XJ=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JJ=[...VJ,...XJ],QJ=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ZJ=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),eQ=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),tQ=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse()});function t$(t){let e=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:e.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:e.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}var o$=p(()=>{});function n$(t){let s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",variants:[t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:s,illegal:/["']/}]}]}}var r$=p(()=>{});function c$(t){let e=t.regex,o=(ie,{after:fe})=>{let R="</"+ie[0].slice(1);return ie.input.indexOf(R,fe)!==-1},n=s$,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ie,fe)=>{let R=ie[0].length+ie.index,de=ie.input[R];if(de==="<"||de===","){fe.ignoreMatch();return}de===">"&&(o(ie,{after:R})||fe.ignoreMatch());let ae,Y=ie.input.substring(R);if(ae=Y.match(/^\s*=/)){fe.ignoreMatch();return}if((ae=Y.match(/^\s+extends\s+/))&&ae.index===0){fe.ignoreMatch();return}}},a={$pattern:s$,keyword:oQ,literal:nQ,built_in:sQ,"variable.language":rQ},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"graphql"}},y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,d]},A={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},T=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,{match:/\$\d+/},m];d.contains=T.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(T)});let O=[].concat(A,d.contains),N=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(O)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N},V={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},z={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i$,...a$]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},X={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},oe={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(ie){return e.concat("(?!",ie.join("|"),")")}let M={match:e.concat(/\b/,ne([...l$,"super","import"].map(ie=>`${ie}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},j={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ae={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",he={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:z},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,A,{match:/\$\d+/},m,z,{scope:"attr",match:n+e.lookahead(":"),relevance:0},he,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,t.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},X,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},j,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},M,oe,V,Ae,{match:/\$[(.]/}]}}var s$,oQ,nQ,i$,a$,l$,rQ,sQ,u$=p(()=>{s$="[A-Za-z$_][0-9A-Za-z$_]*",oQ=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],nQ=["true","false","null","undefined","NaN","Infinity"],i$=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a$=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],l$=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],rQ=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],sQ=[].concat(l$,i$,a$)});function d$(t){let e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},o={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],r={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[e,o,t.QUOTE_STRING_MODE,r,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var m$=p(()=>{});function f$(t){let e=t.regex,o={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=t.inherit(c,{contains:[]}),d=t.inherit(u,{contains:[]});c.contains.push(d),u.contains.push(m);let h=[o,l];return[c,u,m,d].forEach(w=>{w.contains=w.contains.concat(h)}),h=h.concat(c,u),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},o,s,c,u,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},r,n,l,i,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}var p$=p(()=>{});function h$(t){let e=t.regex,o=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},u={begin:/\{\{/,relevance:0},m={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,u,c]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},d="[0-9](_?[0-9])*",h=`(\\b(${d}))?\\.(${d})|\\b(${d})\\.`,g=`\\b|${n.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${d})|(${h}))[eE][+-]?(${d})[jJ]?(?=${g})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${d})[jJ](?=${g})`}]},y={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},w={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,m,t.HASH_COMMENT_MODE]}]};return c.contains=[m,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,y,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,o],scope:{1:"keyword",3:"title.function"},contains:[w]},{variants:[{match:[/\bclass/,/\s+/,o,/\s*/,/\(\s*/,o,/\s*\)/]},{match:[/\bclass/,/\s+/,o]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,w,m]}]}}var g$=p(()=>{});function y$(t){let e=t.regex,o=/(r#)?/,n=e.concat(o,t.UNDERSCORE_IDENT_RE),r=e.concat(o,t.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,e.lookahead(/\s*\(/))},i="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],u=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:u,keyword:a,literal:l,built_in:c},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+i},{begin:"\\b0o([0-7_]+)"+i},{begin:"\\b0x([A-Fa-f0-9_]+)"+i},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+i}],relevance:0},{begin:[/fn/,/\s+/,n],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,n],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,n,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:c,type:u}},{className:"punctuation",begin:"->"},s]}}var b$=p(()=>{});function v$(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}var k$=p(()=>{});function x$(t){let e=t.regex,o=t.COMMENT("--","$"),n={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],i=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],u=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],m=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],d=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=u,g=[...c,...l].filter(N=>!u.includes(N)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},y={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},w={match:e.concat(/\b/,e.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function A(N){return e.concat(/\b/,e.either(...N.map(G=>G.replace(/\s+/,"\\s+"))),/\b/)}let T={scope:"keyword",match:A(d),relevance:0};function O(N,{exceptions:G,when:V}={}){let z=V;return G=G||[],N.map(B=>B.match(/\|\d+$/)||G.includes(B)?B:z(B)?`${B}|0`:B)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:O(g,{when:N=>N.length<3}),literal:s,type:a,built_in:m},contains:[{scope:"type",match:A(i)},T,w,b,n,r,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,o,y]}}var S$=p(()=>{});function iQ(t){let e=t.regex,o=(ie,{after:fe})=>{let R="</"+ie[0].slice(1);return ie.input.indexOf(R,fe)!==-1},n=og,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ie,fe)=>{let R=ie[0].length+ie.index,de=ie.input[R];if(de==="<"||de===","){fe.ignoreMatch();return}de===">"&&(o(ie,{after:R})||fe.ignoreMatch());let ae,Y=ie.input.substring(R);if(ae=Y.match(/^\s*=/)){fe.ignoreMatch();return}if((ae=Y.match(/^\s+extends\s+/))&&ae.index===0){fe.ignoreMatch();return}}},a={$pattern:og,keyword:w$,literal:E$,built_in:_$,"variable.language":D$},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"graphql"}},y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,d]},A={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},T=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,{match:/\$\d+/},m];d.contains=T.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(T)});let O=[].concat(A,d.contains),N=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(O)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N},V={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},z={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...A$,...C$]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},X={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},oe={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(ie){return e.concat("(?!",ie.join("|"),")")}let M={match:e.concat(/\b/,ne([...T$,"super","import"].map(ie=>`${ie}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},j={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ae={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",he={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:z},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,A,{match:/\$\d+/},m,z,{scope:"attr",match:n+e.lookahead(":"),relevance:0},he,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,t.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},X,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},j,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},M,oe,V,Ae,{match:/\$[(.]/}]}}function R$(t){let e=t.regex,o=iQ(t),n=og,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},i={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[o.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:og,keyword:w$.concat(l),literal:E$,built_in:_$.concat(r),"variable.language":D$},u={className:"meta",begin:"@"+n},m=(b,y,w)=>{let A=b.contains.findIndex(T=>T.label===y);if(A===-1)throw new Error("can not find mode to replace");b.contains.splice(A,1,w)};Object.assign(o.keywords,c),o.exports.PARAMS_CONTAINS.push(u);let d=o.contains.find(b=>b.scope==="attr"),h=Object.assign({},d,{match:e.concat(n,e.lookahead(/\s*\?:/))});o.exports.PARAMS_CONTAINS.push([o.exports.CLASS_REFERENCE,d,h]),o.contains=o.contains.concat([u,s,i,h]),m(o,"shebang",t.SHEBANG()),m(o,"use_strict",a);let g=o.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(o,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),o}var og,w$,E$,A$,C$,T$,D$,_$,O$=p(()=>{og="[A-Za-z$_][0-9A-Za-z$_]*",w$=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],E$=["true","false","null","undefined","NaN","Infinity"],A$=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],C$=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],T$=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],D$=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],_$=[].concat(T$,A$,C$)});function M$(t){let e=t.regex,o=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=t.inherit(s,{begin:/\(/,end:/\)/}),a=t.inherit(t.APOS_STRING_MODE,{className:"string"}),l=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[s,l,a,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[s,i,l,a]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(o,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:o,relevance:0,starts:c}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(o,/>/))),contains:[{className:"name",begin:o,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}var L$=p(()=>{});function P$(t){let e="true false yes no null",o="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},i={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,r]},a=t.inherit(i,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),d={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},g={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},y=[n,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+o},{className:"type",begin:"!<"+o+">"},{className:"type",begin:"!"+o},{className:"type",begin:"!!"+o},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},d,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},g,b,s,i],w=[...y];return w.pop(),w.push(a),h.contains=w,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:y}}var F$=p(()=>{});import{createLowlight as aQ}from"lowlight";function wl(t){if(!t)return null;let e=t.trim().toLowerCase();if(e==="")return null;let o=lQ[e]??e;return I$.registered(o)?o:null}function cQ(t){if(!t)return"fg";let e=t.replace(/^hljs-/,"");switch(e.split(/[.\s]/)[0]??e){case"keyword":case"built_in":case"literal":case"operator":return"accent";case"string":case"regexp":case"char":case"subst":case"addition":return"success";case"comment":case"quote":case"meta":return"fgDim";case"number":case"symbol":case"bullet":case"link":return"accentDim";case"title":case"function":case"class":case"name":case"tag":case"attr":case"attribute":case"type":case"params":case"property":case"selector":case"section":case"variable":return"depth";case"deletion":return"danger";default:return"fg"}}function uQ(t){let e=t.properties?.className;if(Array.isArray(e))return e[e.length-1];if(typeof e=="string")return e}function N$(t,e,o){if(t.type==="text"){let i=t.value;i!==""&&o.push({text:i,role:e});return}let n=t,r=n.type==="element"?cQ(uQ(n)):e,s=n.type==="element"&&r!=="fg"?r:e;for(let i of n.children??[])N$(i,s,o)}function dQ(t){let e=[];for(let o of t){let n=e[e.length-1];n&&n.role===o.role?e[e.length-1]={text:n.text+o.text,role:o.role}:e.push(o)}return e}function Jd(t,e){if(t==="")return[];let o=wl(e);if(!o)return[{text:t,role:"fg"}];try{let n=I$.highlight(o,t),r=[];N$(n,"fg",r);let s=dQ(r);return s.length>0?s:[{text:t,role:"fg"}]}catch{return[{text:t,role:"fg"}]}}var I$,lQ,oE=p(()=>{"use strict";QN();e$();o$();r$();u$();m$();p$();g$();b$();k$();S$();O$();L$();F$();I$=aQ({bash:JN,css:ZN,diff:t$,go:n$,javascript:c$,json:d$,markdown:f$,python:h$,rust:y$,shell:v$,sql:x$,typescript:R$,xml:M$,yaml:P$}),lQ={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",sh:"bash",zsh:"bash",shell:"shell",console:"shell",py:"python",rs:"rust",golang:"go",yml:"yaml",html:"xml",htm:"xml",svg:"xml",md:"markdown",markdown:"markdown",patch:"diff"}});import"react";import{Box as ng,Text as $$}from"ink";import{jsx as El,jsxs as Qi}from"react/jsx-runtime";function nE(t){let o=Z().box,n=wl(t.lang),r=(n??t.lang??"code")+(t.open?" \u2026":""),s=t.code.split(`
|
|
615
|
+
`),V=(y?A.length:0)+l.slice(h,c).join("").length,z=0;for(let M=0;M<s;M++)z+=N[M].length+1;let B=_t(G,z+V),X=Math.max(1,o),oe=y?Math.max(1,Math.ceil(m(0,h)/X)):0,ne=w?Math.max(1,Math.ceil(m(g,l.length)/X)):0;return{text:G,cursor:B,hiddenAbove:t.hiddenAbove+oe,hiddenBelow:t.hiddenBelow+ne}}function Kd(t){let e=_t(t.text,t.cursor);for(;e>0&&!Qh.test(t.text[e-1]);)e--;for(;e>0&&Qh.test(t.text[e-1]);)e--;return e}function Zh(t){let e=t.text.length,o=_t(t.text,t.cursor);for(;o<e&&!Qh.test(t.text[o]);)o++;for(;o<e&&Qh.test(t.text[o]);)o++;return o}var zw,qJ,WJ,Qh,eg=p(()=>{"use strict";Dt();zw=2500,qJ="\x7F",WJ="\b";Qh=/[\p{L}\p{N}_]/u});import"react";import{Box as Kw,Text as Xi}from"ink";import{Fragment as Yd,jsx as ht,jsxs as pr}from"react/jsx-runtime";function zN(t){let{text:e,showCursor:o,active:n,cursorGlyph:r}=t,s=n?"fg":"fgDim",i=t.pos<0?0:t.pos>e.length?e.length:t.pos;if(!o)return ht(f,{name:s,children:e});if(i>=e.length)return pr(Yd,{children:[ht(f,{name:s,children:e}),ht(f,{name:"fg",children:r})]});let l=e.codePointAt(i)>65535?2:1,c=e.slice(0,i),u=e.slice(i,i+l),m=e.slice(i+l);return pr(Yd,{children:[c!==""&&ht(f,{name:s,children:c}),ht(Xi,{inverse:!0,children:u}),m!==""&&ht(f,{name:s,children:m})]})}function KN(t){let e=Q(),o=(t.label??"").trim();if(o==="")return null;let n=e.glyph("sessionDot"),r=e.sessionColor(t.color??o),s={};return r.color!==void 0&&(s.color=r.color),r.bold!==void 0&&(s.bold=r.bold),pr(Yd,{children:[ht(Xi,{...s,children:n}),ht(Xi,{children:" "}),ht(f,{name:"fg",children:o}),ht(Xi,{children:" "})]})}function Vd(t){let e=Q(),{t:o}=Se(),n=t.placeholder??o("composer.placeholder"),r=e.glyph("cursor"),s=t.cursorPos??t.value.length;if(t.shellMode){let y=t.active&&t.showCursor!==!1;return pr(Kw,{children:[ht(KN,{...t.sessionLabel!==void 0?{label:t.sessionLabel}:{},...t.sessionColor!==void 0?{color:t.sessionColor}:{}}),pr(f,{name:"danger",children:[e.glyph("ask")," shell "]}),ht(zN,{text:t.value,pos:s,showCursor:y,active:t.active,cursorGlyph:r}),ht(Xi,{children:" "}),ht(f,{name:"fgDim",children:o("composer.shellHint")})]})}let a=t.value===""&&t.active,l=t.active&&t.showCursor!==!1,c=ht(f,{name:"fg",children:r}),u=t.maxRows,m=Yh(t.sessionLabel),d=t.columns!==void 0&&t.columns>m?t.columns-m:t.columns??0,h=u!==void 0&&Vo(t.value,d>0?d:0)>u,g=h?Math.max(1,u-1):0,b=h?GN(t.value,s,g,d):{text:t.value,cursor:s,hiddenAbove:0,hiddenBelow:0};return pr(Kw,{flexDirection:"column",children:[pr(Kw,{children:[ht(KN,{...t.sessionLabel!==void 0?{label:t.sessionLabel}:{},...t.sessionColor!==void 0?{color:t.sessionColor}:{}}),ht(F,{name:"prompt",role:"accent"}),ht(Xi,{children:" "}),a?pr(Yd,{children:[l&&c,ht(f,{name:"fgDim",children:n})]}):ht(zN,{text:b.text,pos:b.cursor,showCursor:l,active:t.active,cursorGlyph:r}),!t.active&&t.hint&&pr(Yd,{children:[ht(Xi,{children:" "}),ht(f,{name:"fgDim",children:t.hint})]})]}),h&&pr(f,{name:"fgDim",children:[b.hiddenAbove>0?`\u2191${b.hiddenAbove}`:"",b.hiddenAbove>0&&b.hiddenBelow>0?" \xB7 ":"",b.hiddenBelow>0?`\u2193${b.hiddenBelow}`:"",` ${o("composer.moreLines")}`]})]})}var YN=p(()=>{"use strict";te();pt();eg();Dt()});function Ji(t,e){if(e<=0)return"";if(ve(t)<=e)return t;let o=e-1,n="",r=0;for(let s of t){let i=ve(s);if(r+i>o)break;n+=s,r+=i}return n+"\u2026"}function Xw(t,e,o){let n=Math.max(0,e-ve(t));if(n===0)return t;if(o==="right")return" ".repeat(n)+t;if(o==="center"){let r=Math.floor(n/2);return" ".repeat(r)+t+" ".repeat(n-r)}return t+" ".repeat(n)}function VN(t,e,o,n){let r=[];for(let u=0;u<o;u++){let m=ve(t[u]??"");for(let d of e)m=Math.max(m,ve(d[u]??""));r.push(Math.max(Yw,m))}if(!n||n<=0)return r;let s=o>0?(o-1)*Vw:0,i=Math.max(o*Yw,n-s),a=r.reduce((u,m)=>u+m,0);if(a<=i)return r;let l=[...r],c=a*2+10;for(;a>i&&c-- >0;){let u=-1,m=Yw;for(let d=0;d<o;d++)l[d]>m&&(m=l[d],u=d);if(u<0)break;l[u]-=1,a-=1}return l}var Vw,Yw,tg=p(()=>{"use strict";Dt();Vw=3,Yw=1});import"react";import{Box as ss}from"ink";import{jsx as Eo,jsxs as tE}from"react/jsx-runtime";function Jw(t){let e=t.replace(/\s+/g," ").trim();return Ji(e,KJ)}function Xd(t){if(t<=0)return 0;let e=Math.min(t,Sl),o=t>Sl?1:0;return 1+e+o}function Qw(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u229F ${e.length} na fila \xB7 enviada(s) ao terminar o turno`}),o.map((r,s)=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u203A ${Jw(r)}`})},s)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} na fila`})})]})}function Zw(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u21B3 ${e.length} encaixando\u2026 \xB7 incorporada(s) na pr\xF3xima itera\xE7\xE3o`}),o.map((r,s)=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u203A ${Jw(r)}`})},s)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} encaixando`})})]})}function eE(t){let{items:e}=t;if(e.length===0)return null;let o=e.slice(0,Sl),n=e.length-o.length;return tE(ss,{flexDirection:"column",children:[Eo(f,{name:"depth",children:`\u2197 ${e.length} /ask em paralelo \xB7 respondendo (canal lateral, sem parar o trabalho)`}),o.map(r=>Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2197 ${Jw(r.question)}`})},r.id)),n>0&&Eo(ss,{children:Eo(f,{name:"fgDim",children:` \u2026+${n} /ask`})})]})}var Sl,KJ,XN=p(()=>{"use strict";te();tg();Sl=3,KJ=48});function JN(t){let e=t.regex,o={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[o]}]};Object.assign(o,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});let r={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},s=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,o,r]};r.contains.push(a);let l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},u={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,o]},d=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=t.SHEBANG({binary:`(${d.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],y=["true","false"],w={match:/(\/[a-z._-]+)+/},A=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],T=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],O=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],N=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:y,built_in:[...A,...T,"set","shopt",...O,...N]},contains:[h,t.SHEBANG(),g,m,s,i,w,a,l,c,u,o]}}var QN=p(()=>{});function ZN(t){let e=t.regex,o=YJ(t),n={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",s=/@-?\w[\w]*(-\w+)*/,i="[a-zA-Z-][a-zA-Z0-9_-]*",a=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[o.BLOCK_COMMENT,n,o.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+i,relevance:0},o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ZJ.join("|")+")"},{begin:":(:)?("+eQ.join("|")+")"}]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+tQ.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[o.BLOCK_COMMENT,o.HEXCOLOR,o.IMPORTANT,o.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},o.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:QJ.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,o.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+JJ.join("|")+")\\b"}]}}var YJ,VJ,XJ,JJ,QJ,ZJ,eQ,tQ,e$=p(()=>{YJ=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),VJ=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],XJ=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JJ=[...VJ,...XJ],QJ=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ZJ=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),eQ=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),tQ=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse()});function t$(t){let e=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:e.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:e.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}var o$=p(()=>{});function n$(t){let s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",variants:[t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:s,illegal:/["']/}]}]}}var r$=p(()=>{});function c$(t){let e=t.regex,o=(ie,{after:fe})=>{let R="</"+ie[0].slice(1);return ie.input.indexOf(R,fe)!==-1},n=s$,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ie,fe)=>{let R=ie[0].length+ie.index,de=ie.input[R];if(de==="<"||de===","){fe.ignoreMatch();return}de===">"&&(o(ie,{after:R})||fe.ignoreMatch());let ae,Y=ie.input.substring(R);if(ae=Y.match(/^\s*=/)){fe.ignoreMatch();return}if((ae=Y.match(/^\s+extends\s+/))&&ae.index===0){fe.ignoreMatch();return}}},a={$pattern:s$,keyword:oQ,literal:nQ,built_in:sQ,"variable.language":rQ},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"graphql"}},y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,d]},A={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},T=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,{match:/\$\d+/},m];d.contains=T.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(T)});let O=[].concat(A,d.contains),N=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(O)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N},V={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},z={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i$,...a$]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},X={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},oe={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(ie){return e.concat("(?!",ie.join("|"),")")}let M={match:e.concat(/\b/,ne([...l$,"super","import"].map(ie=>`${ie}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},j={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ae={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",he={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:z},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,A,{match:/\$\d+/},m,z,{scope:"attr",match:n+e.lookahead(":"),relevance:0},he,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,t.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},X,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},j,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},M,oe,V,Ae,{match:/\$[(.]/}]}}var s$,oQ,nQ,i$,a$,l$,rQ,sQ,u$=p(()=>{s$="[A-Za-z$_][0-9A-Za-z$_]*",oQ=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],nQ=["true","false","null","undefined","NaN","Infinity"],i$=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a$=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],l$=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],rQ=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],sQ=[].concat(l$,i$,a$)});function d$(t){let e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},o={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],r={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[e,o,t.QUOTE_STRING_MODE,r,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var m$=p(()=>{});function f$(t){let e=t.regex,o={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=t.inherit(c,{contains:[]}),d=t.inherit(u,{contains:[]});c.contains.push(d),u.contains.push(m);let h=[o,l];return[c,u,m,d].forEach(w=>{w.contains=w.contains.concat(h)}),h=h.concat(c,u),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},o,s,c,u,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},r,n,l,i,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}var p$=p(()=>{});function h$(t){let e=t.regex,o=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},u={begin:/\{\{/,relevance:0},m={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,u,c]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},d="[0-9](_?[0-9])*",h=`(\\b(${d}))?\\.(${d})|\\b(${d})\\.`,g=`\\b|${n.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${d})|(${h}))[eE][+-]?(${d})[jJ]?(?=${g})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${d})[jJ](?=${g})`}]},y={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},w={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,m,t.HASH_COMMENT_MODE]}]};return c.contains=[m,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,y,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,o],scope:{1:"keyword",3:"title.function"},contains:[w]},{variants:[{match:[/\bclass/,/\s+/,o,/\s*/,/\(\s*/,o,/\s*\)/]},{match:[/\bclass/,/\s+/,o]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,w,m]}]}}var g$=p(()=>{});function y$(t){let e=t.regex,o=/(r#)?/,n=e.concat(o,t.UNDERSCORE_IDENT_RE),r=e.concat(o,t.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!let|for|while|if|else|match\b)/,r,e.lookahead(/\s*\(/))},i="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],u=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:u,keyword:a,literal:l,built_in:c},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+i},{begin:"\\b0o([0-7_]+)"+i},{begin:"\\b0x([A-Fa-f0-9_]+)"+i},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+i}],relevance:0},{begin:[/fn/,/\s+/,n],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,n],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,n,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:c,type:u}},{className:"punctuation",begin:"->"},s]}}var b$=p(()=>{});function v$(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}var k$=p(()=>{});function x$(t){let e=t.regex,o=t.COMMENT("--","$"),n={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],i=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],u=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],m=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],d=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=u,g=[...c,...l].filter(N=>!u.includes(N)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},y={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},w={match:e.concat(/\b/,e.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function A(N){return e.concat(/\b/,e.either(...N.map(G=>G.replace(/\s+/,"\\s+"))),/\b/)}let T={scope:"keyword",match:A(d),relevance:0};function O(N,{exceptions:G,when:V}={}){let z=V;return G=G||[],N.map(B=>B.match(/\|\d+$/)||G.includes(B)?B:z(B)?`${B}|0`:B)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:O(g,{when:N=>N.length<3}),literal:s,type:a,built_in:m},contains:[{scope:"type",match:A(i)},T,w,b,n,r,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,o,y]}}var S$=p(()=>{});function iQ(t){let e=t.regex,o=(ie,{after:fe})=>{let R="</"+ie[0].slice(1);return ie.input.indexOf(R,fe)!==-1},n=og,r={begin:"<>",end:"</>"},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ie,fe)=>{let R=ie[0].length+ie.index,de=ie.input[R];if(de==="<"||de===","){fe.ignoreMatch();return}de===">"&&(o(ie,{after:R})||fe.ignoreMatch());let ae,Y=ie.input.substring(R);if(ae=Y.match(/^\s*=/)){fe.ignoreMatch();return}if((ae=Y.match(/^\s+extends\s+/))&&ae.index===0){fe.ignoreMatch();return}}},a={$pattern:og,keyword:w$,literal:E$,built_in:_$,"variable.language":D$},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},d={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,d],subLanguage:"graphql"}},y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,d]},A={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},T=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,{match:/\$\d+/},m];d.contains=T.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(T)});let O=[].concat(A,d.contains),N=O.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(O)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N},V={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},z={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...A$,...C$]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},X={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},oe={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ne(ie){return e.concat("(?!",ie.join("|"),")")}let M={match:e.concat(/\b/,ne([...T$,"super","import"].map(ie=>`${ie}\\s*\\(`)),n,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},j={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ae={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",he={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:z},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,g,b,y,A,{match:/\$\d+/},m,z,{scope:"attr",match:n+e.lookahead(":"),relevance:0},he,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[A,t.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:s},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},X,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},j,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},M,oe,V,Ae,{match:/\$[(.]/}]}}function R$(t){let e=t.regex,o=iQ(t),n=og,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},i={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[o.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:og,keyword:w$.concat(l),literal:E$,built_in:_$.concat(r),"variable.language":D$},u={className:"meta",begin:"@"+n},m=(b,y,w)=>{let A=b.contains.findIndex(T=>T.label===y);if(A===-1)throw new Error("can not find mode to replace");b.contains.splice(A,1,w)};Object.assign(o.keywords,c),o.exports.PARAMS_CONTAINS.push(u);let d=o.contains.find(b=>b.scope==="attr"),h=Object.assign({},d,{match:e.concat(n,e.lookahead(/\s*\?:/))});o.exports.PARAMS_CONTAINS.push([o.exports.CLASS_REFERENCE,d,h]),o.contains=o.contains.concat([u,s,i,h]),m(o,"shebang",t.SHEBANG()),m(o,"use_strict",a);let g=o.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(o,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),o}var og,w$,E$,A$,C$,T$,D$,_$,O$=p(()=>{og="[A-Za-z$_][0-9A-Za-z$_]*",w$=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],E$=["true","false","null","undefined","NaN","Infinity"],A$=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],C$=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],T$=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],D$=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],_$=[].concat(T$,A$,C$)});function M$(t){let e=t.regex,o=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=t.inherit(s,{begin:/\(/,end:/\)/}),a=t.inherit(t.APOS_STRING_MODE,{className:"string"}),l=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[s,l,a,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[s,i,l,a]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(o,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:o,relevance:0,starts:c}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(o,/>/))),contains:[{className:"name",begin:o,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}var L$=p(()=>{});function P$(t){let e="true false yes no null",o="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},i={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,r]},a=t.inherit(i,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),d={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},g={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},y=[n,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+o},{className:"type",begin:"!<"+o+">"},{className:"type",begin:"!"+o},{className:"type",begin:"!!"+o},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},d,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},g,b,s,i],w=[...y];return w.pop(),w.push(a),h.contains=w,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:y}}var F$=p(()=>{});import{createLowlight as aQ}from"lowlight";function wl(t){if(!t)return null;let e=t.trim().toLowerCase();if(e==="")return null;let o=lQ[e]??e;return I$.registered(o)?o:null}function cQ(t){if(!t)return"fg";let e=t.replace(/^hljs-/,"");switch(e.split(/[.\s]/)[0]??e){case"keyword":case"built_in":case"literal":case"operator":return"accent";case"string":case"regexp":case"char":case"subst":case"addition":return"success";case"comment":case"quote":case"meta":return"fgDim";case"number":case"symbol":case"bullet":case"link":return"accentDim";case"title":case"function":case"class":case"name":case"tag":case"attr":case"attribute":case"type":case"params":case"property":case"selector":case"section":case"variable":return"depth";case"deletion":return"danger";default:return"fg"}}function uQ(t){let e=t.properties?.className;if(Array.isArray(e))return e[e.length-1];if(typeof e=="string")return e}function N$(t,e,o){if(t.type==="text"){let i=t.value;i!==""&&o.push({text:i,role:e});return}let n=t,r=n.type==="element"?cQ(uQ(n)):e,s=n.type==="element"&&r!=="fg"?r:e;for(let i of n.children??[])N$(i,s,o)}function dQ(t){let e=[];for(let o of t){let n=e[e.length-1];n&&n.role===o.role?e[e.length-1]={text:n.text+o.text,role:o.role}:e.push(o)}return e}function Jd(t,e){if(t==="")return[];let o=wl(e);if(!o)return[{text:t,role:"fg"}];try{let n=I$.highlight(o,t),r=[];N$(n,"fg",r);let s=dQ(r);return s.length>0?s:[{text:t,role:"fg"}]}catch{return[{text:t,role:"fg"}]}}var I$,lQ,oE=p(()=>{"use strict";QN();e$();o$();r$();u$();m$();p$();g$();b$();k$();S$();O$();L$();F$();I$=aQ({bash:JN,css:ZN,diff:t$,go:n$,javascript:c$,json:d$,markdown:f$,python:h$,rust:y$,shell:v$,sql:x$,typescript:R$,xml:M$,yaml:P$}),lQ={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",sh:"bash",zsh:"bash",shell:"shell",console:"shell",py:"python",rs:"rust",golang:"go",yml:"yaml",html:"xml",htm:"xml",svg:"xml",md:"markdown",markdown:"markdown",patch:"diff"}});import"react";import{Box as ng,Text as $$}from"ink";import{jsx as El,jsxs as Qi}from"react/jsx-runtime";function nE(t){let o=Q().box,n=wl(t.lang),r=(n??t.lang??"code")+(t.open?" \u2026":""),s=t.code.split(`
|
|
616
616
|
`);return Qi(ng,{flexDirection:"column",paddingY:0,children:[Qi(ng,{children:[Qi(f,{name:"fgDim",children:[o.topLeft,o.horizontal," "]}),El(f,{name:"depth",children:r}),Qi(f,{name:"fgDim",children:[" ",o.horizontal.repeat(2)]})]}),s.map((i,a)=>Qi(ng,{children:[Qi(f,{name:"fgDim",children:[o.vertical," "]}),El(mQ,{line:i,lang:n??t.lang})]},a)),El(ng,{children:Qi(f,{name:"fgDim",children:[o.bottomLeft,o.horizontal.repeat(3)]})})]})}function mQ(t){if(t.line==="")return El($$,{children:" "});let e=Jd(t.line,t.lang);return El($$,{children:e.map((o,n)=>El(f,{name:o.role,children:o.text},n))})}var rE=p(()=>{"use strict";te();oE()});function is(t){let e=[],o=t;for(;o.length>0;){let n=fQ.exec(o);if(!n||n.index===void 0){e.push({kind:"plain",text:o});break}n.index>0&&e.push({kind:"plain",text:o.slice(0,n.index)});let r=n[0];n[1]?e.push({kind:"code",text:r.slice(1,-1)}):n[2]?e.push({kind:"link",text:n[3]??"",url:n[4]??""}):n[5]?e.push({kind:"bold",text:r.slice(3,-3)}):n[6]?e.push({kind:"bold",text:r.slice(2,-2)}):n[7]&&e.push({kind:"italic",text:r.slice(1,-1)}),o=o.slice(n.index+r.length)}return e.reduce((n,r)=>{let s=n[n.length-1];return r.kind==="plain"&&s&&s.kind==="plain"?n[n.length-1]={kind:"plain",text:s.text+r.text}:n.push(r),n},[])}function sE(t){let e=t.trim();return e.startsWith("|")&&(e=e.slice(1)),e.endsWith("|")&&!e.endsWith("\\|")&&(e=e.slice(0,-1)),e.split(/(?<!\\)\|/).map(n=>n.replace(/\\\|/g,"|").trim())}function B$(t){return/(?<!\\)\|/.test(t)}function kQ(t){let e=sE(t);if(e.length===0)return null;let o=[];for(let n of e){if(!vQ.test(n))return null;let r=n.startsWith(":"),s=n.endsWith(":");o.push(r&&s?"center":s?"right":"left")}return o}function Qd(t){let e=t.split(`
|
|
617
617
|
`),o=[],n=null,r=()=>{n&&n.length>0&&o.push({kind:"paragraph",spans:n}),n=null};for(let s=0;s<e.length;s++){let i=e[s]??"",a=pQ.exec(i);if(a){r();let h=(a[2]??"").trim()||void 0,g=[],b=!1,y=s+1;for(;y<e.length;y++){let w=e[y]??"";if(/^\s*```\s*$/.test(w)){b=!0;break}g.push(w)}o.push({kind:"code",lang:h,code:g.join(`
|
|
618
|
-
`),closed:b}),s=b?y:e.length;continue}if(i.trim()===""){r();continue}if(B$(i)){let h=s+1<e.length?kQ(e[s+1]??""):null;if(h){r();let g=sE(i),b=g.length,y=[];for(let T=0;T<b;T++)y.push(h[T]??"left");let w=[],A=s+2;for(;A<e.length;A++){let T=e[A]??"";if(T.trim()===""||!B$(T))break;let O=sE(T),N=[];for(let G=0;G<b;G++)N.push(O[G]??"");w.push(N)}o.push({kind:"table",header:g,align:y,rows:w}),s=A-1;continue}}let l=hQ.exec(i);if(l){r(),o.push({kind:"heading",level:l[1].length,spans:is(l[2]??"")});continue}let c=yQ.exec(i);if(c){r(),o.push({kind:"list-item",ordered:!1,marker:"-",indent:Math.floor((c[1]??"").length/2),spans:is(c[3]??"")});continue}let u=bQ.exec(i);if(u){r(),o.push({kind:"list-item",ordered:!0,marker:`${u[2]}.`,indent:Math.floor((u[1]??"").length/2),spans:is(u[3]??"")});continue}let m=gQ.exec(i);if(m){r(),o.push({kind:"quote",spans:is(m[1]??"")});continue}let d=is(i);n=n?[...n,{kind:"plain",text:" "},...d]:d}return r(),o}var fQ,pQ,hQ,gQ,yQ,bQ,vQ,Zd=p(()=>{"use strict";fQ=/(`[^`]+`)|(\[([^\]]+)\]\(([^)\s]+)\))|(\*\*\*[^*]+\*\*\*|(?<![\p{L}\p{N}_])___[^_]+___(?![\p{L}\p{N}_]))|(\*\*[^*]+\*\*|(?<![\p{L}\p{N}_])__[^_]+__(?![\p{L}\p{N}_]))|(\*[^*\n]+\*|(?<![\p{L}\p{N}_])_[^_\n]+_(?![\p{L}\p{N}_]))/u;pQ=/^(\s*)```(.*)$/,hQ=/^(#{1,6})\s+(.*)$/,gQ=/^\s*>\s?(.*)$/,yQ=/^(\s*)([-*+])\s+(.*)$/,bQ=/^(\s*)(\d+)[.)]\s+(.*)$/,vQ=/^:?-+:?$/});import U$ from"react";import{Box as rg,Text as iE}from"ink";import{jsx as as,jsxs as aE}from"react/jsx-runtime";function sg(t){return is(t).map(e=>e.text).join("")}function lE(t){let e=
|
|
618
|
+
`),closed:b}),s=b?y:e.length;continue}if(i.trim()===""){r();continue}if(B$(i)){let h=s+1<e.length?kQ(e[s+1]??""):null;if(h){r();let g=sE(i),b=g.length,y=[];for(let T=0;T<b;T++)y.push(h[T]??"left");let w=[],A=s+2;for(;A<e.length;A++){let T=e[A]??"";if(T.trim()===""||!B$(T))break;let O=sE(T),N=[];for(let G=0;G<b;G++)N.push(O[G]??"");w.push(N)}o.push({kind:"table",header:g,align:y,rows:w}),s=A-1;continue}}let l=hQ.exec(i);if(l){r(),o.push({kind:"heading",level:l[1].length,spans:is(l[2]??"")});continue}let c=yQ.exec(i);if(c){r(),o.push({kind:"list-item",ordered:!1,marker:"-",indent:Math.floor((c[1]??"").length/2),spans:is(c[3]??"")});continue}let u=bQ.exec(i);if(u){r(),o.push({kind:"list-item",ordered:!0,marker:`${u[2]}.`,indent:Math.floor((u[1]??"").length/2),spans:is(u[3]??"")});continue}let m=gQ.exec(i);if(m){r(),o.push({kind:"quote",spans:is(m[1]??"")});continue}let d=is(i);n=n?[...n,{kind:"plain",text:" "},...d]:d}return r(),o}var fQ,pQ,hQ,gQ,yQ,bQ,vQ,Zd=p(()=>{"use strict";fQ=/(`[^`]+`)|(\[([^\]]+)\]\(([^)\s]+)\))|(\*\*\*[^*]+\*\*\*|(?<![\p{L}\p{N}_])___[^_]+___(?![\p{L}\p{N}_]))|(\*\*[^*]+\*\*|(?<![\p{L}\p{N}_])__[^_]+__(?![\p{L}\p{N}_]))|(\*[^*\n]+\*|(?<![\p{L}\p{N}_])_[^_\n]+_(?![\p{L}\p{N}_]))/u;pQ=/^(\s*)```(.*)$/,hQ=/^(#{1,6})\s+(.*)$/,gQ=/^\s*>\s?(.*)$/,yQ=/^(\s*)([-*+])\s+(.*)$/,bQ=/^(\s*)(\d+)[.)]\s+(.*)$/,vQ=/^:?-+:?$/});import U$ from"react";import{Box as rg,Text as iE}from"ink";import{jsx as as,jsxs as aE}from"react/jsx-runtime";function sg(t){return is(t).map(e=>e.text).join("")}function lE(t){let e=Q(),o=e.box,n=t.base??"fg",r=e.colorMode==="mono",s=t.header.length,i=t.header.map(sg),a=t.rows.map(h=>{let g=[];for(let b=0;b<s;b++)g.push(sg(h[b]??""));return g}),l=VN(i,a,s,t.columns??0),c=e.unicode?`${o.horizontal}\u253C${o.horizontal}`:"-+-",u=l.map(h=>o.horizontal.repeat(h)).join(c),m=(h,g,b)=>{let y=sg(h),w=Ji(y,g),A=Xw(w,g,b),T=is(A);return as(Al,{spans:T,base:n,mono:r})},d=" ".repeat(Vw);return aE(rg,{flexDirection:"column",paddingY:0,children:[as(rg,{children:t.header.map((h,g)=>aE(U$.Fragment,{children:[g>0&&as(iE,{children:d}),as(f,{name:"accent",children:as(iE,{bold:!0,children:Xw(Ji(sg(h),l[g]??0),l[g]??0,t.align[g]??"left")})})]},g))}),as(rg,{children:as(f,{name:"fgDim",children:u})}),t.rows.map((h,g)=>as(rg,{children:h.map((b,y)=>aE(U$.Fragment,{children:[y>0&&as(iE,{children:d}),m(b,l[y]??0,t.align[y]??"left")]},y))},g))]})}var cE=p(()=>{"use strict";te();uE();Zd();tg()});import"react";import{Box as Cl,Text as Ks}from"ink";import{jsx as nt,jsxs as In}from"react/jsx-runtime";function dE(t){let e=t.baseRole??"fg",o=Qd(t.text);return nt(Cl,{flexDirection:"column",children:o.map((n,r)=>nt(xQ,{block:n,base:e,...t.columns!==void 0?{columns:t.columns}:{}},r))})}function xQ(t){let e=Q(),o=t.block,n=e.colorMode==="mono";switch(o.kind){case"code":return nt(Cl,{paddingY:0,children:nt(nE,{code:o.code,lang:o.lang,open:!o.closed})});case"table":return nt(lE,{header:o.header,align:o.align,rows:o.rows,base:t.base,...t.columns!==void 0?{columns:t.columns}:{}});case"heading":return In(Cl,{children:[n&&In(f,{name:"accent",children:["#".repeat(o.level)," "]}),nt(f,{name:"accent",children:nt(Al,{spans:o.spans,base:"accent",mono:n})})]});case"quote":return In(Cl,{children:[In(f,{name:"depth",children:[e.glyph("you")," "]}),nt(f,{name:"fgDim",children:nt(Al,{spans:o.spans,base:"fgDim",mono:n})})]});case"list-item":return In(Cl,{paddingLeft:o.indent*2,children:[In(f,{name:"accent",children:[o.ordered?o.marker:e.unicode?"\u2022":"-"," "]}),nt(Ks,{children:nt(Al,{spans:o.spans,base:t.base,mono:n})})]});case"paragraph":return nt(Cl,{children:nt(Ks,{children:nt(Al,{spans:o.spans,base:t.base,mono:n})})})}}function Al(t){return nt(Ks,{children:t.spans.map((e,o)=>nt(SQ,{span:e,base:t.base,mono:t.mono},o))})}function SQ(t){let{span:e,base:o,mono:n}=t;switch(e.kind){case"plain":return nt(f,{name:o,children:e.text});case"bold":return n?nt(f,{name:o,children:In(Ks,{bold:!0,children:["*",e.text,"*"]})}):nt(f,{name:o,children:nt(Ks,{bold:!0,children:e.text})});case"italic":return n?nt(f,{name:o,children:In(Ks,{italic:!0,children:["_",e.text,"_"]})}):nt(f,{name:o,children:nt(Ks,{italic:!0,children:e.text})});case"code":return n?In(f,{name:"depth",children:["`",e.text,"`"]}):nt(f,{name:"depth",children:e.text});case"link":return In(Ks,{children:[nt(f,{name:"accent",children:e.text}),In(f,{name:"fgDim",children:[" (",e.url,")"]})]})}}var uE=p(()=>{"use strict";te();rE();cE();Zd()});var mE=p(()=>{"use strict";uE();rE();cE();Zd();oE()});import"react";import{Box as wQ,Text as aCe}from"ink";import{jsx as ag,jsxs as AQ}from"react/jsx-runtime";function lg(t,e){return((t-e)%ig+ig)%ig<ig/2?"accent":"accentDim"}function Zi(t){let e=Q(),o=t.frame??0;if(!e.animate)return ag(f,{name:"accent",children:e.aluyMark});if(!e.unicode){let s=lg(o,0),i=lg(o,EQ);return AQ(wQ,{children:[ag(f,{name:s,children:"/"}),ag(f,{name:i,children:"\\"})]})}let r=lg(o,0);return ag(f,{name:r,children:e.aluyMark})}var ig,EQ,em=p(()=>{"use strict";te();ig=8,EQ=2});function tm(t){return t>=fE?TQ:0}function om(t){return t==="unsafe"?_Q-DQ:0}function Tl(t){return t===void 0||t<=0?0:t<RQ?2:0}function Dl(t,e){if(!(t>0))return Ys;let o=t-ea-Tl(e)-nm-OQ;return Math.max(1,Math.min(Ys,o))}function hr(t,e){if(e<=0||t.length<=e)return t;let o=Array.from(t);return o.length<=e?t:o.slice(o.length-e).join("").replace(/^\n+/,"")}function LQ(t,e,o=Ys){if(t.kind==="tool")return t.status==="running"?j$(`${t.verbGerund??"rodando"} ${t.target}`,e)+H$(t.liveOutput,e,o):0;if(t.kind==="bang")return t.status==="running"?j$(t.command,e)+H$(t.liveOutput,e,o):0;if(t.kind==="subagents"){let n=0;for(let r of t.children)n+=FQ(r,e);return 2+n}return t.kind==="broker-error"?t.retrying===!0?5:0:t.kind==="aluy"?0:1}function j$(t,e){return e>0?Math.max(1,Math.ceil((ve(t)+PQ)/e)):1}function H$(t,e,o=Ys){let n=(t??"").replace(/\n+$/,"");if(n.length===0)return 0;let r=e>0?e-MQ:0,s=Vo(n,r);return s<=o?s:o+1}function FQ(t,e){if(!(e>0))return 1;let o=t.status==="running"?"rodando":t.status==="done"?"pronto":t.status==="cancelled"?"parado":"timeout",n=t.summary!==void 0&&t.status!=="running"?` \xB7 ${t.summary}`:"",r=` [${t.label}] x ${o}${n}`;return Math.max(1,Vo(r,e))}function sm(t){let{live:e,phase:o,hasBlocks:n}=t,r=t.columns??0,s=t.rows!==void 0?Dl(t.rows,t.columns):Ys,i=0,a=e.find(l=>l.kind==="aluy"&&l.streaming);for(let l of e){if(l===a){i+=3;continue}i+=LQ(l,r,s)}return(o==="thinking"||o==="compacting")&&(i+=1+(n?1:0)),i}function q$(t){let e=ea+tm(t.rows)+om(t.mode)+Tl(t.columns)+sm({live:t.live,phase:t.phase,hasBlocks:t.hasBlocks,rows:t.rows,...t.columns!==void 0?{columns:t.columns}:{}})+cg+(t.stagedLines??0);return Math.max(4,t.rows-e-1-nm)}function W$(t){let e=sm({live:t.live,phase:t.phase,hasBlocks:t.hasBlocks,rows:t.rows,...t.columns!==void 0?{columns:t.columns}:{}}),o=t.rows-ea-tm(t.rows)-nm-e-om(t.mode)-Tl(t.columns)-(t.queuedLines??0)-(t.overlayLines??0)-(t.composerOverflow??0)-1;return Math.max(cg,o)}function G$(t){let e=sm({live:t.live,phase:t.phase,hasBlocks:t.hasBlocks,rows:t.rows,...t.columns!==void 0?{columns:t.columns}:{}});return ea+tm(t.rows)+om(t.mode)+Tl(t.columns)+e+(t.stagedLines??0)+(t.overlayLines??0)+(t.composerOverflow??0)}var CQ,ea,TQ,fE,DQ,_Q,nm,RQ,cg,Ys,OQ,_l,rm,MQ,PQ,ta=p(()=>{"use strict";Dt();CQ=9,ea=8,TQ=CQ-ea,fE=25;DQ=1,_Q=2;nm=2,RQ=80;cg=4,Ys=6,OQ=6;_l=8192,rm=65536;MQ=4;PQ=14});import"react";import{Box as Ol,Text as IQ}from"ink";import{jsx as gr,jsxs as Rl}from"react/jsx-runtime";function pE(t){let e=t.isCurrent===!1?"fgDim":"fg";return Rl(Ol,{flexDirection:"column",children:[Rl(Ol,{children:[gr(F,{name:"you",role:"fg"}),gr(f,{name:"fg",children:" voc\xEA"})]}),gr(Ol,{paddingLeft:2,children:gr(f,{name:e,children:t.text})})]})}function hE(t){let e=Q(),o=t.streaming?hr(t.text,rm):t.text,n=an(o),r=t.isCurrent===!1?"fgDim":"fg",s=t.columns&&t.columns>0?t.columns-NQ:0,{text:i,hidden:a}=ns(n,t.streaming?t.maxLines:void 0,s),l=(t.frame??0)%$Q,c=!e.animate||l<BQ;return Rl(Ol,{flexDirection:"column",children:[Rl(Ol,{children:[t.streaming?gr(Zi,{frame:t.frame??0}):gr(F,{name:"aluy",role:"accent"}),gr(f,{name:"accent",children:" aluy"})]}),Rl(Ol,{paddingLeft:2,flexDirection:"column",children:[a>0&&Rl(f,{name:"fgDim",children:["\u2026 (",a," linhas acima)"]}),gr(dE,{text:i,baseRole:r,...s>0?{columns:s}:{}}),t.streaming&&(c?gr(f,{name:"accent",children:e.glyph("thinkingCursor")}):gr(IQ,{children:" "}))]})]})}var NQ,$Q,BQ,z$=p(()=>{"use strict";P();te();mE();em();Dt();ta();NQ=2,$Q=10,BQ=6});import"react";import{Box as UQ,Text as K$}from"ink";import{jsx as Ml,jsxs as Y$}from"react/jsx-runtime";function oa(t){let e=Q(),o=t.width??jQ,n=t.frame??0,r=t.glyph??"aluy",s=t.glyphRole??"accent",i=e.animate,a=e.glyph("wave"),l=e.glyph("waveHead"),c=i?n%o:-1;return Y$(UQ,{children:[r==="aluy"?Ml(Zi,{frame:n}):Ml(F,{name:r,role:s}),Ml(K$,{children:" "}),Array.from({length:o},(u,m)=>m===c?Ml(f,{name:"accent",children:l},m):Ml(f,{name:"accentDim",children:a},m)),Ml(K$,{children:" "}),Y$(f,{name:"fgDim",children:[t.label,"\u2026"]})]})}var jQ,ug=p(()=>{"use strict";te();em();jQ=3});import"react";import{Box as na,Text as gE}from"ink";import{jsx as yn,jsxs as Nn}from"react/jsx-runtime";function qQ(t){return t.length>=V$?t:t+" ".repeat(V$-t.length)}function yE(t){let e=Q();if(t.status==="running"){let n=`${t.verbGerund??"rodando"}${t.target?` ${t.target}`:""}`,s=hr(t.liveOutput??"",_l).replace(/\n+$/,""),i=t.columns&&t.columns>0?t.columns-HQ:0,{text:a,hidden:l}=ns(s,t.maxLines,i);return Nn(na,{flexDirection:"column",paddingLeft:2,children:[yn(oa,{glyph:"toolInflight",glyphRole:"depth",label:n,...t.frame!==void 0?{frame:t.frame}:{}}),a.length>0&&Nn(na,{flexDirection:"column",paddingLeft:2,children:[l>0&&Nn(f,{name:"fgDim",children:["\u2026 (",l," linhas acima)"]}),a.split(`
|
|
619
619
|
`).map((c,u)=>yn(na,{children:yn(f,{name:"fgDim",children:c})},u))]})]})}let o=t.status==="err";return Nn(na,{flexDirection:"column",paddingLeft:2,children:[Nn(na,{children:[yn(F,{name:"tool",role:"depth"}),Nn(f,{name:"fg",children:[" ",qQ(t.verb)]}),yn(gE,{children:" "}),yn(f,{name:"fg",children:t.target}),yn(gE,{children:" "}),yn(f,{name:"fgDim",children:t.result}),yn(gE,{children:" "}),o?yn(F,{name:"err",role:"danger"}):yn(F,{name:"ok",role:"success"})]}),o&&t.output&&Nn(na,{flexDirection:"column",paddingLeft:2,children:[Nn(f,{name:"fgDim",children:[e.box.topLeft," sa\xEDda ",e.box.horizontal.repeat(8)]}),t.output.split(`
|
|
620
|
-
`).map((n,r)=>Nn(na,{children:[Nn(f,{name:"fgDim",children:[e.box.vertical," "]}),yn(f,{name:"danger",children:n})]},r)),Nn(f,{name:"fgDim",children:[e.box.bottomLeft," ",t.result," ",e.box.horizontal.repeat(4)]})]})]})}var V$,HQ,X$=p(()=>{"use strict";te();ug();Dt();ta();V$=7,HQ=4});import"react";import{Box as It,Text as Ll}from"ink";import{jsx as Ie,jsxs as we}from"react/jsx-runtime";function WQ(t){if(!t)return;let e=t.split(".").pop();return e&&e!==t?e:void 0}function zQ(t){return t.length<=GQ?{head:t,hidden:0,tail:[]}:{head:t.slice(0,J$),hidden:t.length-J$-Q$,tail:t.slice(t.length-Q$)}}function e1(t){return t.category==="always-ask:destructive"}function KQ(t){let e=/^\[sub-agente:\s*([^\]]+)\]/.exec(t.reason??"");return e?e[1].trim():null}function YQ(t){let e=t.effect.kind;return e==="diff"||e==="path"?`edit \u2500 ${t.effect.path??t.effect.exact}`:"bash"}function bE(t){let e=
|
|
621
|
-
`)),r=e1(t.request)?"":" \u2014 [e] editar mostra tudo",s=a=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),we(f,{name:"fgDim",children:["\u2026 (+",n.hidden," linhas ocultas",r,")"]})]},a);if(o.kind==="diff"){let a=wl(WQ(o.path??o.exact)),l=(c,u)=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(QQ,{line:c,lang:a??void 0})]},u);return we(It,{flexDirection:"column",children:[n.head.map((c,u)=>l(c,`h${u}`)),n.hidden>0&&s("m"),n.tail.map((c,u)=>l(c,`t${u}`))]})}let i=(a,l)=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"fg",children:a})]},l);return we(It,{flexDirection:"column",children:[n.head.map((a,l)=>i(a,`h${l}`)),n.hidden>0&&s("m"),n.tail.map((a,l)=>i(a,`t${l}`))]})}function QQ(t){let e=
|
|
622
|
-
`).map((n,r)=>Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fg",children:n})]},`q-${r}`)),Ao(f,{name:"accent",children:e.box.vertical}),o.kind==="text"?Ao(nZ,{theme:e,draft:t.draft??""}):Ao(tZ,{...t}),Ve(f,{name:"accent",children:[e.box.teeLeft,e.box.horizontal.repeat(vE),e.box.teeRight]}),Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fgDim",children:rZ(o,t.editing===!0)})]}),Ve(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(vE),e.box.bottomRight]})]})}function tZ(t){let e=Z(),{spec:o}=t,n=o.options??[],r=o.kind==="multi",s=t.selected??new Set;return Ve($n,{flexDirection:"column",children:[n.map((i,a)=>{let l=t.cursor===a,c=r?s.has(a)?"[x]":"[ ]":l?"(\u2022)":"( )";return Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:l?"accent":"fgDim",children:[l?"\u203A":" "," "]}),Ve(f,{name:l?"accent":"fgDim",children:[c," "]}),Ao(f,{name:l?"accent":"fg",children:i.label}),i.description!==void 0&&Ve(f,{name:"fgDim",children:[" \u2014 ",i.description]})]},`opt-${a}`)}),eZ(o)&&Ao(oZ,{theme:e,onCursor:t.cursor===yr,editing:t.editing===!0&&t.cursor===yr,draft:t.draft??""})]})}function oZ(t){let{theme:e,onCursor:o,editing:n,draft:r}=t;return Ve($n,{flexDirection:"column",children:[Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:o?"accent":"fgDim",children:[o?"\u203A":" "," "]}),Ao(f,{name:o?"accent":"fg",children:"Outro (resposta livre)"})]}),n&&Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fg",children:r}),Ao(f,{name:"accent",children:e.glyph("cursor")})]})]})}function nZ(t){let{theme:e,draft:o}=t;return Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:"depth",children:[e.glyph("prompt")," "]}),Ao(f,{name:"fg",children:o}),Ao(f,{name:"accent",children:e.glyph("cursor")})]})}function rZ(t,e){return e?"enter confirma \xB7 esc cancela a digita\xE7\xE3o":t.kind==="text"?"digite a resposta \xB7 enter confirma \xB7 esc cancela":t.kind==="multi"?"\u2191\u2193 navega \xB7 espa\xE7o marca \xB7 enter confirma \xB7 esc cancela":"\u2191\u2193 navega \xB7 enter escolhe \xB7 esc cancela"}var yr,vE,ZQ,o1=p(()=>{"use strict";te();yr=-1,vE=42,ZQ=13});import"react";import{Box as im}from"ink";import{jsx as dg,jsxs as bn}from"react/jsx-runtime";function xE(t){let e=Z(),o=t.backend==="local"?"provider local indispon\xEDvel":"broker indispon\xEDvel",n=t.retrying?"tentando de novo":t.headline??o,r=t.retrying?"esc cancelar":"r tentar agora \xB7 esc cancelar";return bn(im,{flexDirection:"column",paddingLeft:4,children:[bn(im,{children:[bn(f,{name:"danger",children:[e.box.topLeft," "]}),dg(F,{name:"broker",role:"depth"}),bn(f,{name:"danger",children:[" ",n," ",e.box.horizontal.repeat(4)," "]}),dg(F,{name:"err",role:"danger"})]}),bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),dg(f,{name:"fg",children:t.message})]}),(t.status!==void 0||t.attempt!==void 0||t.retryInSeconds!==void 0)&&bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),bn(f,{name:"fgDim",children:[t.status!==void 0?`${t.status} \xB7 `:"",t.retryInSeconds!==void 0?`tentando de novo em ${t.retryInSeconds}s `:"",t.attempt!==void 0&&t.maxAttempts!==void 0?`(${t.attempt}/${t.maxAttempts})`:""]})]}),bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),dg(f,{name:"fgDim",children:r})]}),bn(f,{name:"danger",children:[e.box.bottomLeft,e.box.horizontal.repeat(40)]})]})}var n1=p(()=>{"use strict";te()});import"react";import{Box as Vs,Text as sZ}from"ink";import{jsx as br,jsxs as xt}from"react/jsx-runtime";function iZ(t){return t>=1e6?`${(t/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e3?`${Math.round(t/1e3)}k`:String(t)}function SE(t){let e=Z();return xt(Vs,{flexDirection:"column",paddingLeft:2,children:[xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.topLeft," "]}),br(F,{name:"clock",role:"accent"}),xt(f,{name:"accent",children:[" teto da sess\xE3o ",e.box.horizontal.repeat(6)," pausado"]})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"fg",children:t.reason})]}),t.budgetPct!==void 0&&xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(F,{name:"clock",role:"accent"}),xt(f,{name:"accent",children:[" ",t.budgetPct,"% do teto da sess\xE3o"]}),t.maxTokens!==void 0&&xt(f,{name:"fgDim",children:[" (teto: ",iZ(t.maxTokens)," tokens)"]})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"fgDim",children:"o agente pausou para voc\xEA decidir."})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(F,{name:"window",role:"fgDim"}),xt(f,{name:"fgDim",children:[" janela: ",t.windowPct,"% usada"]})]}),t.canCompact&&xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"accent",children:"[k] compactar"}),br(f,{name:"fgDim",children:" resume a conversa e continua (libera a janela)"})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"accent",children:"[c] continuar (+50 itera\xE7\xF5es)"}),br(sZ,{children:" "}),br(f,{name:"fgDim",children:"[n] encerrar"})]}),xt(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var r1=p(()=>{"use strict";te()});import"react";import{Box as ra,Text as aZ}from"ink";import{Fragment as cZ,jsx as vr,jsxs as co}from"react/jsx-runtime";function lZ(t,e,o){switch(t){case"same-tool-call":return`o agente repetiu a tool "${o}" ${e}\xD7 sem avan\xE7ar.`;case"same-tool-error":return`a mesma falha se repetiu ${e}\xD7 seguidas (${o}).`;case"empty-turns":return`o agente respondeu vazio ${e}\xD7 seguidas (sem texto nem a\xE7\xE3o).`;case"no-progress":return`${e} itera\xE7\xF5es sem avan\xE7o real (nenhum arquivo/edi\xE7\xE3o/comando novo).`}}function wE(t){let e=Z(),o=lZ(t.kind,t.count,t.sample);return co(ra,{flexDirection:"column",paddingLeft:2,children:[co(ra,{children:[co(f,{name:"accent",children:[e.box.topLeft," "]}),vr(F,{name:"clock",role:"accent"}),co(f,{name:"accent",children:[" parece travado ",e.box.horizontal.repeat(6)," pausado"]})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"fg",children:o})]}),t.redirecting?co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[r] "}),vr(f,{name:"fgDim",children:"digite a nova instru\xE7\xE3o e tecle Enter (esc cancela)."})]}):co(cZ,{children:[co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"fgDim",children:"o agente pausou para voc\xEA decidir o rumo."})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[r] redirecionar"}),vr(f,{name:"fgDim",children:" (dar uma nova instru\xE7\xE3o)"})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[c] continuar mesmo assim"}),vr(aZ,{children:" "}),vr(f,{name:"fgDim",children:"[n] encerrar"})]})]}),co(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var s1=p(()=>{"use strict";te()});import"react";import{Box as sa,Text as i1}from"ink";import{jsx as ls,jsxs as uo}from"react/jsx-runtime";function uZ(t){let e=t.replace(/\s+/g," ").trim();return e.length<=a1?e:e.slice(0,a1-1)+"\u2026"}function EE(t){let e=Z(),o=uZ(t.reason),n=Math.round(Math.max(0,Math.min(1,t.confidence))*100);return uo(sa,{flexDirection:"column",paddingLeft:2,children:[uo(sa,{children:[uo(f,{name:"accent",children:[e.box.topLeft," "]}),ls(F,{name:"clock",role:"accent"}),uo(f,{name:"accent",children:[" ",t.ceilingLabel," atingido ",e.box.horizontal.repeat(4)," pausado"]})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"fgDim",children:"o teto do ciclo bateu, mas o juiz local sugere continuar."})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"fgDim",children:"motivo do juiz (local \xB7 n\xE3o verificado):"})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(i1,{wrap:"truncate-end",children:ls(f,{name:"fg",children:o})})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),uo(f,{name:"fgDim",children:["confian\xE7a do juiz: ",n,"% (dado \u2014 pondere, n\xE3o obede\xE7a)"]})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"accent",children:"[c] continua"}),ls(f,{name:"fgDim",children:" (estende um teto-worth)"}),ls(i1,{children:" "}),ls(f,{name:"fgDim",children:"[n] encerra"})]}),uo(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var a1,l1=p(()=>{"use strict";te();a1=96});import"react";import{Box as kTe}from"ink";import{jsx as wTe,jsxs as ETe}from"react/jsx-runtime";var c1=p(()=>{"use strict";te()});function AE(t,e=""){return t.parallelWhileBusy===!0||t.id==="ask"?!0:t.parallelWhileBusyWith?t.parallelWhileBusyWith(e):!1}function dZ(t){return t.trim()===""}function mZ(t){let e=t.trim().split(/\s+/)[0]?.toLowerCase()??"";return e===""?!0:e==="list"||e==="search"}function fg(t){return t.kind==="command"?t.command.name:`${t.parent.name} ${t.sub.name}`}function CE(t){let e=t.kind==="command"?t.command:t.parent;return e.source==="user"?"usu\xE1rio":e.section??"sess\xE3o"}function TE(t){return t.kind==="command"?t.command.summary:t.sub.summary}function pZ(t,e){let o=fg(t),r=(t.kind==="subcommand"?4:2)+ve(`/${o}`)+Math.max(1,18-o.length)+ve(TE(t));return Math.max(1,Math.ceil(r/e))}function mg(t,e){let o=e!==void 0&&e>0?Math.max(1,Math.ceil(fZ/e)):1,n=null;for(let r of t){let s=CE(r);s!==n&&(o+=1),n=s,o+=e!==void 0&&e>0?pZ(r,e):1}return o}function u1(t,e,o,n){if(mg(t,n)<=o)return{slice:t,hiddenAbove:0,hiddenBelow:0};let r=Number.isFinite(e)?Math.max(0,Math.min(e,t.length-1)):0,s=(u,m)=>mg(t.slice(u,m),n)+(u>0?1:0)+(m<t.length?1:0),i=r,a=r+1,l=!0,c=!0;for(;c;)c=!1,l?i>0&&s(i-1,a)<=o?(i--,c=!0):a<t.length&&s(i,a+1)<=o&&(a++,c=!0):a<t.length&&s(i,a+1)<=o?(a++,c=!0):i>0&&s(i-1,a)<=o&&(i--,c=!0),l=!l;for(;i>0&&s(i-1,a)<=o;)i--;for(;a<t.length&&s(i,a+1)<=o;)a++;return{slice:t.slice(i,a),hiddenAbove:i,hiddenBelow:t.length-a}}function pg(t){return t.kind==="subcommand"?`/${t.parent.name} ${t.sub.name} `:t.command.subcommands&&t.command.subcommands.length>0?`/${t.command.name} `:`/${t.command.name}`}function DE(t){return t.kind==="subcommand"&&t.sub.terminal===!0}function d1(t){return`/${t.parent.name} ${t.sub.name}`}function m1(t,e){let o=!1,n=t.map(r=>{if(r.summaryKey===void 0)return r;let s=e(r.summaryKey);return s===r.summary?r:(o=!0,{...r,summary:s})});return o?n:t}function gZ(t=[],e=Xo){return[...[...e,...t].map(n=>({id:`cmd:${n.source}:${n.name}`,label:`/${n.name}`,description:n.summary,action:{kind:"command",command:n}})),...hZ]}function f1(t,e=[],o=Xo){let n=gZ(e,o),r=t.trim();if(r==="")return n.map(i=>({...i,score:0,matched:[]}));let s=[];for(let i of n){let a=Dd(r,i.label),l=Dd(r,i.description);if(!a&&!l)continue;let c=a?a.score:-1/0,u=l?l.score-5:-1/0,m=Math.max(c,u);s.push({...i,score:m,matched:a?a.matched:[]})}return s.sort((i,a)=>a.score-i.score||i.label.length-a.label.length||i.label.localeCompare(a.label)),s}function Pl(t,e=[]){let o=t.trim();if(o.startsWith("!")){let u=o.slice(1).trim();return u===""?{kind:"goal",text:""}:{kind:"bang",command:u}}if(!o.startsWith("/"))return{kind:"goal",text:o};let n=o.slice(1),r=n.search(/\s/),s=(r===-1?n:n.slice(0,r)).toLowerCase(),i=s==="view"?"split":s==="cockpit"?"fullscreen":s,a=r===-1?"":n.slice(r+1).trim(),c=[...Xo,...e].find(u=>u.name===i);return c?{kind:"command",command:c,args:a}:{kind:"unknown-command",name:i}}function _E(t,e=[]){if(!t.startsWith("/"))return!1;let o=t.slice(1);if(!/\s/.test(o))return!0;let n=o.search(/\s/),r=o.slice(0,n).toLowerCase(),s=o.slice(n).replace(/^\s+/,""),a=[...Xo,...e].find(l=>l.name===r);return!a?.subcommands||a.subcommands.length===0?!1:!/\s/.test(s)}function yZ(t=[],e=Xo){let o=[];for(let n of[...e,...t]){o.push({kind:"command",command:n});for(let r of n.subcommands??[])o.push({kind:"subcommand",parent:n,sub:r})}return o}function p1(t,e=[],o=Xo){let n=t.trim().replace(/\s+/g," ").toLowerCase(),r=yZ(e,o);if(n==="")return r;let s=l=>fg(l).toLowerCase(),i=r.filter(l=>s(l).startsWith(n)),a=r.filter(l=>!s(l).startsWith(n)&&s(l).includes(n));return[...i,...a]}function h1(t=Xo){let e=t.filter(o=>o.summary.trim()!=="").map(o=>{let n=` /${o.name} \u2014 ${o.summary}`;return o.usage?`${n}
|
|
620
|
+
`).map((n,r)=>Nn(na,{children:[Nn(f,{name:"fgDim",children:[e.box.vertical," "]}),yn(f,{name:"danger",children:n})]},r)),Nn(f,{name:"fgDim",children:[e.box.bottomLeft," ",t.result," ",e.box.horizontal.repeat(4)]})]})]})}var V$,HQ,X$=p(()=>{"use strict";te();ug();Dt();ta();V$=7,HQ=4});import"react";import{Box as It,Text as Ll}from"ink";import{jsx as Ie,jsxs as we}from"react/jsx-runtime";function WQ(t){if(!t)return;let e=t.split(".").pop();return e&&e!==t?e:void 0}function zQ(t){return t.length<=GQ?{head:t,hidden:0,tail:[]}:{head:t.slice(0,J$),hidden:t.length-J$-Q$,tail:t.slice(t.length-Q$)}}function e1(t){return t.category==="always-ask:destructive"}function KQ(t){let e=/^\[sub-agente:\s*([^\]]+)\]/.exec(t.reason??"");return e?e[1].trim():null}function YQ(t){let e=t.effect.kind;return e==="diff"||e==="path"?`edit \u2500 ${t.effect.path??t.effect.exact}`:"bash"}function bE(t){let e=Q(),o=t.request,n=e1(o),r=o.category==="always-ask:network"||t.egressOutsideAllowlist===!0,s=KQ(o),i=n?"destrutivo \xB7 ask":"ask";return we(It,{flexDirection:"column",paddingLeft:2,children:[we(It,{children:[we(f,{name:"accent",children:[e.box.topLeft," "]}),Ie(F,{name:"ask",role:"accent"}),we(f,{name:"accent",children:[" ",i," \u2500 ",YQ(o)," ",e.box.horizontal.repeat(2),e.box.topRight]})]}),Ie(f,{name:"accent",children:e.box.vertical}),s!==null&&we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(F,{name:"subagents",role:"accent"}),Ie(f,{name:"accent",children:" sub-agente: "}),Ie(f,{name:"fg",children:s})]}),Ie(JQ,{request:o}),r&&we(It,{flexDirection:"column",children:[we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(F,{name:"ask",role:"accent"}),Ie(f,{name:"accent",children:" rede \xB7 ask \xB7 destino fora da allowlist"})]}),t.egressTarget&&we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"depth",children:t.egressTarget})]})]}),we(f,{name:"accent",children:[e.box.teeLeft,e.box.horizontal.repeat(40),e.box.teeRight]}),n?we(It,{flexDirection:"column",children:[we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(F,{name:"ask",role:"accent"}),Ie(f,{name:"accent",children:" esta a\xE7\xE3o n\xE3o pode ser desfeita"})]}),we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"danger",children:"[n] negar"}),Ie(Ll,{children:" "}),Ie(f,{name:"accent",children:"[a] aprovar mesmo assim"})]})]}):we(It,{flexDirection:"column",children:[we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(F,{name:"ask",role:"accent"}),we(f,{name:"accent",children:[" ",XQ(o)]})]}),we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"accent",children:"[a] aprovar"}),Ie(Ll,{children:" "}),o.alwaysAsk===!1&&Ie(f,{name:"accent",children:"[s] sempre nesta sess\xE3o"})]}),we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"danger",children:"[n] negar"}),Ie(Ll,{children:" "}),Ie(f,{name:"fgDim",children:"[e] editar"})]})]}),we(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42),e.box.bottomRight]}),Ie(f,{name:"fgDim",children:VQ(o,n)})]})}function VQ(t,e){return e?"n nega (recomendado) \xB7 a aprova mesmo assim \xB7 esc cancela":t.alwaysAsk===!1?"a aprova \xB7 s sempre \xB7 n nega \xB7 e edita \xB7 esc cancela":"a aprova \xB7 n nega \xB7 e edita \xB7 esc cancela"}function XQ(t){return t.effect.kind==="diff"||t.effect.kind==="path"?"aplicar esta altera\xE7\xE3o?":"executar este comando?"}function JQ(t){let e=Q(),o=t.request.effect,n=zQ(o.exact.split(`
|
|
621
|
+
`)),r=e1(t.request)?"":" \u2014 [e] editar mostra tudo",s=a=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),we(f,{name:"fgDim",children:["\u2026 (+",n.hidden," linhas ocultas",r,")"]})]},a);if(o.kind==="diff"){let a=wl(WQ(o.path??o.exact)),l=(c,u)=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(QQ,{line:c,lang:a??void 0})]},u);return we(It,{flexDirection:"column",children:[n.head.map((c,u)=>l(c,`h${u}`)),n.hidden>0&&s("m"),n.tail.map((c,u)=>l(c,`t${u}`))]})}let i=(a,l)=>we(It,{children:[we(f,{name:"accent",children:[e.box.vertical," "]}),Ie(f,{name:"fg",children:a})]},l);return we(It,{flexDirection:"column",children:[n.head.map((a,l)=>i(a,`h${l}`)),n.hidden>0&&s("m"),n.tail.map((a,l)=>i(a,`t${l}`))]})}function QQ(t){let e=Q(),o=t.line;return o.startsWith("---")||o.startsWith("+++")||o.startsWith("@@")?Ie(f,{name:"fgDim",children:o}):o.startsWith("-")?we(Ll,{children:[we(f,{name:"danger",children:[e.glyph("diffDel")," "]}),Ie(Z$,{code:o.slice(1),lang:t.lang,fallback:"danger"})]}):o.startsWith("+")?we(Ll,{children:[we(f,{name:"success",children:[e.glyph("diffAdd")," "]}),Ie(Z$,{code:o.slice(1),lang:t.lang,fallback:"success"})]}):Ie(f,{name:"fgDim",children:o})}function Z$(t){if(t.lang===void 0||t.code==="")return Ie(f,{name:t.fallback,children:t.code});let e=Jd(t.code,t.lang);return Ie(Ll,{children:e.map((o,n)=>Ie(f,{name:o.role,children:o.text},n))})}var GQ,J$,Q$,t1=p(()=>{"use strict";te();mE();GQ=14,J$=9,Q$=4});import"react";import{Box as $n}from"ink";import{jsx as Ao,jsxs as Ve}from"react/jsx-runtime";function eZ(t){return t.kind!=="text"&&t.allowOther!==!1}function kE(t){let e=Q(),{spec:o}=t;return Ve($n,{flexDirection:"column",paddingLeft:2,children:[Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.topLeft," "]}),Ao(F,{name:"ask",role:"accent"}),Ve(f,{name:"accent",children:[" ","Pergunta ",e.box.horizontal.repeat(vE-ZQ),e.box.topRight]})]}),Ao(f,{name:"accent",children:e.box.vertical}),o.header!==void 0&&Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"depth",children:o.header})]}),o.question.split(`
|
|
622
|
+
`).map((n,r)=>Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fg",children:n})]},`q-${r}`)),Ao(f,{name:"accent",children:e.box.vertical}),o.kind==="text"?Ao(nZ,{theme:e,draft:t.draft??""}):Ao(tZ,{...t}),Ve(f,{name:"accent",children:[e.box.teeLeft,e.box.horizontal.repeat(vE),e.box.teeRight]}),Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fgDim",children:rZ(o,t.editing===!0)})]}),Ve(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(vE),e.box.bottomRight]})]})}function tZ(t){let e=Q(),{spec:o}=t,n=o.options??[],r=o.kind==="multi",s=t.selected??new Set;return Ve($n,{flexDirection:"column",children:[n.map((i,a)=>{let l=t.cursor===a,c=r?s.has(a)?"[x]":"[ ]":l?"(\u2022)":"( )";return Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:l?"accent":"fgDim",children:[l?"\u203A":" "," "]}),Ve(f,{name:l?"accent":"fgDim",children:[c," "]}),Ao(f,{name:l?"accent":"fg",children:i.label}),i.description!==void 0&&Ve(f,{name:"fgDim",children:[" \u2014 ",i.description]})]},`opt-${a}`)}),eZ(o)&&Ao(oZ,{theme:e,onCursor:t.cursor===yr,editing:t.editing===!0&&t.cursor===yr,draft:t.draft??""})]})}function oZ(t){let{theme:e,onCursor:o,editing:n,draft:r}=t;return Ve($n,{flexDirection:"column",children:[Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:o?"accent":"fgDim",children:[o?"\u203A":" "," "]}),Ao(f,{name:o?"accent":"fg",children:"Outro (resposta livre)"})]}),n&&Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ao(f,{name:"fg",children:r}),Ao(f,{name:"accent",children:e.glyph("cursor")})]})]})}function nZ(t){let{theme:e,draft:o}=t;return Ve($n,{children:[Ve(f,{name:"accent",children:[e.box.vertical," "]}),Ve(f,{name:"depth",children:[e.glyph("prompt")," "]}),Ao(f,{name:"fg",children:o}),Ao(f,{name:"accent",children:e.glyph("cursor")})]})}function rZ(t,e){return e?"enter confirma \xB7 esc cancela a digita\xE7\xE3o":t.kind==="text"?"digite a resposta \xB7 enter confirma \xB7 esc cancela":t.kind==="multi"?"\u2191\u2193 navega \xB7 espa\xE7o marca \xB7 enter confirma \xB7 esc cancela":"\u2191\u2193 navega \xB7 enter escolhe \xB7 esc cancela"}var yr,vE,ZQ,o1=p(()=>{"use strict";te();yr=-1,vE=42,ZQ=13});import"react";import{Box as im}from"ink";import{jsx as dg,jsxs as bn}from"react/jsx-runtime";function xE(t){let e=Q(),o=t.backend==="local"?"provider local indispon\xEDvel":"broker indispon\xEDvel",n=t.retrying?"tentando de novo":t.headline??o,r=t.retrying?"esc cancelar":"r tentar agora \xB7 esc cancelar";return bn(im,{flexDirection:"column",paddingLeft:4,children:[bn(im,{children:[bn(f,{name:"danger",children:[e.box.topLeft," "]}),dg(F,{name:"broker",role:"depth"}),bn(f,{name:"danger",children:[" ",n," ",e.box.horizontal.repeat(4)," "]}),dg(F,{name:"err",role:"danger"})]}),bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),dg(f,{name:"fg",children:t.message})]}),(t.status!==void 0||t.attempt!==void 0||t.retryInSeconds!==void 0)&&bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),bn(f,{name:"fgDim",children:[t.status!==void 0?`${t.status} \xB7 `:"",t.retryInSeconds!==void 0?`tentando de novo em ${t.retryInSeconds}s `:"",t.attempt!==void 0&&t.maxAttempts!==void 0?`(${t.attempt}/${t.maxAttempts})`:""]})]}),bn(im,{children:[bn(f,{name:"danger",children:[e.box.vertical," "]}),dg(f,{name:"fgDim",children:r})]}),bn(f,{name:"danger",children:[e.box.bottomLeft,e.box.horizontal.repeat(40)]})]})}var n1=p(()=>{"use strict";te()});import"react";import{Box as Vs,Text as sZ}from"ink";import{jsx as br,jsxs as xt}from"react/jsx-runtime";function iZ(t){return t>=1e6?`${(t/1e6).toFixed(1).replace(/\.0$/,"")}M`:t>=1e3?`${Math.round(t/1e3)}k`:String(t)}function SE(t){let e=Q();return xt(Vs,{flexDirection:"column",paddingLeft:2,children:[xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.topLeft," "]}),br(F,{name:"clock",role:"accent"}),xt(f,{name:"accent",children:[" teto da sess\xE3o ",e.box.horizontal.repeat(6)," pausado"]})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"fg",children:t.reason})]}),t.budgetPct!==void 0&&xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(F,{name:"clock",role:"accent"}),xt(f,{name:"accent",children:[" ",t.budgetPct,"% do teto da sess\xE3o"]}),t.maxTokens!==void 0&&xt(f,{name:"fgDim",children:[" (teto: ",iZ(t.maxTokens)," tokens)"]})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"fgDim",children:"o agente pausou para voc\xEA decidir."})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(F,{name:"window",role:"fgDim"}),xt(f,{name:"fgDim",children:[" janela: ",t.windowPct,"% usada"]})]}),t.canCompact&&xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"accent",children:"[k] compactar"}),br(f,{name:"fgDim",children:" resume a conversa e continua (libera a janela)"})]}),xt(Vs,{children:[xt(f,{name:"accent",children:[e.box.vertical," "]}),br(f,{name:"accent",children:"[c] continuar (+50 itera\xE7\xF5es)"}),br(sZ,{children:" "}),br(f,{name:"fgDim",children:"[n] encerrar"})]}),xt(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var r1=p(()=>{"use strict";te()});import"react";import{Box as ra,Text as aZ}from"ink";import{Fragment as cZ,jsx as vr,jsxs as co}from"react/jsx-runtime";function lZ(t,e,o){switch(t){case"same-tool-call":return`o agente repetiu a tool "${o}" ${e}\xD7 sem avan\xE7ar.`;case"same-tool-error":return`a mesma falha se repetiu ${e}\xD7 seguidas (${o}).`;case"empty-turns":return`o agente respondeu vazio ${e}\xD7 seguidas (sem texto nem a\xE7\xE3o).`;case"no-progress":return`${e} itera\xE7\xF5es sem avan\xE7o real (nenhum arquivo/edi\xE7\xE3o/comando novo).`}}function wE(t){let e=Q(),o=lZ(t.kind,t.count,t.sample);return co(ra,{flexDirection:"column",paddingLeft:2,children:[co(ra,{children:[co(f,{name:"accent",children:[e.box.topLeft," "]}),vr(F,{name:"clock",role:"accent"}),co(f,{name:"accent",children:[" parece travado ",e.box.horizontal.repeat(6)," pausado"]})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"fg",children:o})]}),t.redirecting?co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[r] "}),vr(f,{name:"fgDim",children:"digite a nova instru\xE7\xE3o e tecle Enter (esc cancela)."})]}):co(cZ,{children:[co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"fgDim",children:"o agente pausou para voc\xEA decidir o rumo."})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[r] redirecionar"}),vr(f,{name:"fgDim",children:" (dar uma nova instru\xE7\xE3o)"})]}),co(ra,{children:[co(f,{name:"accent",children:[e.box.vertical," "]}),vr(f,{name:"accent",children:"[c] continuar mesmo assim"}),vr(aZ,{children:" "}),vr(f,{name:"fgDim",children:"[n] encerrar"})]})]}),co(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var s1=p(()=>{"use strict";te()});import"react";import{Box as sa,Text as i1}from"ink";import{jsx as ls,jsxs as uo}from"react/jsx-runtime";function uZ(t){let e=t.replace(/\s+/g," ").trim();return e.length<=a1?e:e.slice(0,a1-1)+"\u2026"}function EE(t){let e=Q(),o=uZ(t.reason),n=Math.round(Math.max(0,Math.min(1,t.confidence))*100);return uo(sa,{flexDirection:"column",paddingLeft:2,children:[uo(sa,{children:[uo(f,{name:"accent",children:[e.box.topLeft," "]}),ls(F,{name:"clock",role:"accent"}),uo(f,{name:"accent",children:[" ",t.ceilingLabel," atingido ",e.box.horizontal.repeat(4)," pausado"]})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"fgDim",children:"o teto do ciclo bateu, mas o juiz local sugere continuar."})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"fgDim",children:"motivo do juiz (local \xB7 n\xE3o verificado):"})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(i1,{wrap:"truncate-end",children:ls(f,{name:"fg",children:o})})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),uo(f,{name:"fgDim",children:["confian\xE7a do juiz: ",n,"% (dado \u2014 pondere, n\xE3o obede\xE7a)"]})]}),uo(sa,{children:[uo(f,{name:"accent",children:[e.box.vertical," "]}),ls(f,{name:"accent",children:"[c] continua"}),ls(f,{name:"fgDim",children:" (estende um teto-worth)"}),ls(i1,{children:" "}),ls(f,{name:"fgDim",children:"[n] encerra"})]}),uo(f,{name:"accent",children:[e.box.bottomLeft,e.box.horizontal.repeat(42)]})]})}var a1,l1=p(()=>{"use strict";te();a1=96});import"react";import{Box as CTe}from"ink";import{jsx as _Te,jsxs as RTe}from"react/jsx-runtime";var c1=p(()=>{"use strict";te()});function AE(t,e=""){return t.parallelWhileBusy===!0||t.id==="ask"?!0:t.parallelWhileBusyWith?t.parallelWhileBusyWith(e):!1}function dZ(t){return t.trim()===""}function mZ(t){let e=t.trim().split(/\s+/)[0]?.toLowerCase()??"";return e===""?!0:e==="list"||e==="search"}function fg(t){return t.kind==="command"?t.command.name:`${t.parent.name} ${t.sub.name}`}function CE(t){let e=t.kind==="command"?t.command:t.parent;return e.source==="user"?"usu\xE1rio":e.section??"sess\xE3o"}function TE(t){return t.kind==="command"?t.command.summary:t.sub.summary}function pZ(t,e){let o=fg(t),r=(t.kind==="subcommand"?4:2)+ve(`/${o}`)+Math.max(1,18-o.length)+ve(TE(t));return Math.max(1,Math.ceil(r/e))}function mg(t,e){let o=e!==void 0&&e>0?Math.max(1,Math.ceil(fZ/e)):1,n=null;for(let r of t){let s=CE(r);s!==n&&(o+=1),n=s,o+=e!==void 0&&e>0?pZ(r,e):1}return o}function u1(t,e,o,n){if(mg(t,n)<=o)return{slice:t,hiddenAbove:0,hiddenBelow:0};let r=Number.isFinite(e)?Math.max(0,Math.min(e,t.length-1)):0,s=(u,m)=>mg(t.slice(u,m),n)+(u>0?1:0)+(m<t.length?1:0),i=r,a=r+1,l=!0,c=!0;for(;c;)c=!1,l?i>0&&s(i-1,a)<=o?(i--,c=!0):a<t.length&&s(i,a+1)<=o&&(a++,c=!0):a<t.length&&s(i,a+1)<=o?(a++,c=!0):i>0&&s(i-1,a)<=o&&(i--,c=!0),l=!l;for(;i>0&&s(i-1,a)<=o;)i--;for(;a<t.length&&s(i,a+1)<=o;)a++;return{slice:t.slice(i,a),hiddenAbove:i,hiddenBelow:t.length-a}}function pg(t){return t.kind==="subcommand"?`/${t.parent.name} ${t.sub.name} `:t.command.subcommands&&t.command.subcommands.length>0?`/${t.command.name} `:`/${t.command.name}`}function DE(t){return t.kind==="subcommand"&&t.sub.terminal===!0}function d1(t){return`/${t.parent.name} ${t.sub.name}`}function m1(t,e){let o=!1,n=t.map(r=>{if(r.summaryKey===void 0)return r;let s=e(r.summaryKey);return s===r.summary?r:(o=!0,{...r,summary:s})});return o?n:t}function gZ(t=[],e=Xo){return[...[...e,...t].map(n=>({id:`cmd:${n.source}:${n.name}`,label:`/${n.name}`,description:n.summary,action:{kind:"command",command:n}})),...hZ]}function f1(t,e=[],o=Xo){let n=gZ(e,o),r=t.trim();if(r==="")return n.map(i=>({...i,score:0,matched:[]}));let s=[];for(let i of n){let a=Dd(r,i.label),l=Dd(r,i.description);if(!a&&!l)continue;let c=a?a.score:-1/0,u=l?l.score-5:-1/0,m=Math.max(c,u);s.push({...i,score:m,matched:a?a.matched:[]})}return s.sort((i,a)=>a.score-i.score||i.label.length-a.label.length||i.label.localeCompare(a.label)),s}function Pl(t,e=[]){let o=t.trim();if(o.startsWith("!")){let u=o.slice(1).trim();return u===""?{kind:"goal",text:""}:{kind:"bang",command:u}}if(!o.startsWith("/"))return{kind:"goal",text:o};let n=o.slice(1),r=n.search(/\s/),s=(r===-1?n:n.slice(0,r)).toLowerCase(),i=s==="view"?"split":s==="cockpit"?"fullscreen":s,a=r===-1?"":n.slice(r+1).trim(),c=[...Xo,...e].find(u=>u.name===i);return c?{kind:"command",command:c,args:a}:{kind:"unknown-command",name:i}}function _E(t,e=[]){if(!t.startsWith("/"))return!1;let o=t.slice(1);if(!/\s/.test(o))return!0;let n=o.search(/\s/),r=o.slice(0,n).toLowerCase(),s=o.slice(n).replace(/^\s+/,""),a=[...Xo,...e].find(l=>l.name===r);return!a?.subcommands||a.subcommands.length===0?!1:!/\s/.test(s)}function yZ(t=[],e=Xo){let o=[];for(let n of[...e,...t]){o.push({kind:"command",command:n});for(let r of n.subcommands??[])o.push({kind:"subcommand",parent:n,sub:r})}return o}function p1(t,e=[],o=Xo){let n=t.trim().replace(/\s+/g," ").toLowerCase(),r=yZ(e,o);if(n==="")return r;let s=l=>fg(l).toLowerCase(),i=r.filter(l=>s(l).startsWith(n)),a=r.filter(l=>!s(l).startsWith(n)&&s(l).includes(n));return[...i,...a]}function h1(t=Xo){let e=t.filter(o=>o.summary.trim()!=="").map(o=>{let n=` /${o.name} \u2014 ${o.summary}`;return o.usage?`${n}
|
|
623
623
|
uso: /${o.name} ${o.usage}`:n});if(e.length!==0)return[bZ,"Quando o usu\xE1rio pede algo que um destes comandos resolve \u2014 ex.: AGENDAR/REPETIR uma","tarefa em loop recorrente \u21D2 `/cycle`; checar a sa\xFAde da sess\xE3o \u21D2 `/doctor`; liberar",'contexto \u21D2 `/compact` \u2014 RECOMENDE o comando ao usu\xE1rio. N\xC3O diga "n\xE3o tenho como" nem',"sugira ferramentas externas (cron do SO, Windows Task Scheduler) quando existe um","comando nativo que resolve. Voc\xEA N\xC3O digita estes comandos (n\xE3o s\xE3o suas ferramentas);","quem os digita \xE9 o usu\xE1rio.",...e].join(`
|
|
624
624
|
`)}var fZ,Xo,hZ,bZ,Fl=p(()=>{"use strict";ZS();Dt();fZ=56;Xo=[{name:"help",summary:"mostra esta lista",summaryKey:"cmd.help",source:"native",id:"help",section:"sess\xE3o",parallelWhileBusy:!0},{name:"login",summary:"entrar na conta",summaryKey:"cmd.login",source:"native",id:"login",section:"conta"},{name:"logout",summary:"sair da conta",summaryKey:"cmd.logout",source:"native",id:"logout",section:"conta"},{name:"whoami",summary:"conta, org e escopos atuais",summaryKey:"cmd.whoami",source:"native",id:"whoami",section:"conta",parallelWhileBusy:!0},{name:"telegram",summary:"conector Telegram \xB7 status/allow/deny/logout (setup na sess\xE3o)",summaryKey:"cmd.telegram",source:"native",id:"telegram",section:"conta",parallelWhileBusy:!0},{name:"doctor",summary:"diagn\xF3stico da instala\xE7\xE3o \xB7 credencial, broker, MCP, config (read-only)",summaryKey:"cmd.doctor",source:"native",id:"doctor",section:"conta",parallelWhileBusy:!0},{name:"model",summary:"trocar o tier",summaryKey:"cmd.model",source:"native",id:"model",section:"sess\xE3o"},{name:"provider",summary:"seta o provider do modelo Custom",summaryKey:"cmd.provider",source:"native",id:"provider",section:"sess\xE3o"},{name:"effort",summary:"seta o reasoning_effort (low/medium/high/custom) \xB7 passthrough \u226432 chars",summaryKey:"cmd.effort",source:"native",id:"effort",section:"sess\xE3o",parallelWhileBusyWith:dZ},{name:"theme",summary:"trocar o tema (dark/light) \xB7 auto-detecta no boot",summaryKey:"cmd.theme",source:"native",id:"theme",section:"sess\xE3o"},{name:"lang",summary:"trocar o idioma (pt-BR/en) \xB7 auto-detecta no boot",summaryKey:"cmd.lang",source:"native",id:"lang",section:"sess\xE3o"},{name:"usage",summary:"tokens e janela desta sess\xE3o",summaryKey:"cmd.usage",source:"native",id:"usage",section:"sess\xE3o",parallelWhileBusy:!0},{name:"rename",summary:"d\xE1 um nome + cor de identifica\xE7\xE3o \xE0 sess\xE3o \xB7 \u25CFnome no composer",summaryKey:"cmd.rename",source:"native",id:"rename",section:"sess\xE3o"},{name:"history",summary:"navega e RETOMA uma sess\xE3o anterior \xB7 sem sair do aluy",summaryKey:"cmd.history",source:"native",id:"history",section:"sess\xE3o"},{name:"ask",summary:"pergunta PARALELA (read-only) sem parar o trabalho em curso",source:"native",id:"ask",section:"sess\xE3o",parallelWhileBusy:!0},{name:"notify",summary:"liga/desliga o sino de aten\xE7\xE3o (on/off)",summaryKey:"cmd.notify",source:"native",id:"notify",section:"sess\xE3o"},{name:"split",summary:"liga/desliga o painel de LOG ao lado do chat (Ctrl+L \xB7 /view)",source:"native",id:"split",section:"sess\xE3o"},{name:"fullscreen",summary:"modo cockpit (tela cheia, alt-screen)",summaryKey:"cmd.fullscreen",source:"native",id:"fullscreen",section:"sess\xE3o"},{name:"suggest",summary:"liga/desliga a sugest\xE3o de pr\xF3ximo prompt (ghost \xB7 Tab aceita)",usage:"[on|off]",source:"native",id:"suggest",section:"sess\xE3o"},{name:"export",summary:"exporta o transcript REDIGIDO desta sess\xE3o p/ ~/.aluy/exports/ (0600)",summaryKey:"cmd.export",source:"native",id:"export",section:"sess\xE3o"},{name:"undo",summary:"desfaz a \xFAltima edi\xE7\xE3o de arquivo do agente",summaryKey:"cmd.undo",source:"native",id:"undo",section:"workspace"},{name:"redo",summary:"refaz a \xFAltima edi\xE7\xE3o desfeita",summaryKey:"cmd.redo",source:"native",id:"redo",section:"workspace"},{name:"rewind",summary:"volta a um ponto da sess\xE3o (c\xF3digo e/ou conversa) \xB7 Esc Esc",summaryKey:"cmd.rewind",source:"native",id:"rewind",section:"workspace"},{name:"clear",summary:"limpa a sess\xE3o (contexto) \xB7 full tamb\xE9m APAGA a mem\xF3ria do agente",summaryKey:"cmd.clear",source:"native",id:"clear",section:"sess\xE3o",subcommands:[{name:"full",summary:"limpa a sess\xE3o E APAGA a mem\xF3ria (global+projeto) \xB7 confirma",usage:"full",terminal:!0},{name:"memory",summary:"APAGA s\xF3 a mem\xF3ria do agente (global+projeto) \xB7 confirma",usage:"memory",terminal:!0}]},{name:"compact",summary:"compacta o contexto (resume a conversa e continua)",summaryKey:"cmd.compact",source:"native",id:"compact",section:"sess\xE3o"},{name:"cycle",summary:"roda uma tarefa em ciclos \xB7 com tetos duros e parada (anti-runaway)",summaryKey:"cmd.cycle",source:"native",id:"cycle",section:"sess\xE3o",usage:'<intervalo> "<tarefa>"',subcommands:[{name:"pause",summary:"pausa o /cycle em execu\xE7\xE3o (sem matar; Esc ainda para)",usage:"pause",terminal:!0},{name:"resume",summary:"retoma um /cycle pausado",usage:"resume",terminal:!0},{name:"edit",summary:"reconfigura o /cycle ativo \xB7 vale na pr\xF3xima itera\xE7\xE3o",usage:'edit ["<tarefa>"] [<intervalo>] [--max-iter N]'},{name:"status",summary:"mostra o /cycle ativo (config corrente \xB7 pausado?)",usage:"status",terminal:!0},{name:"stop",summary:"para/encerra o /cycle em execu\xE7\xE3o (= Esc)",usage:"stop",terminal:!0}]},{name:"cron",summary:"agendamento PERSISTENTE \xB7 lista/gerencia os jobs (mesmo motor do aluy cron)",source:"native",id:"cron",section:"sess\xE3o",usage:'list \xB7 add <quando> "<tarefa>" \xB7 edit/enable/disable/rm <id>',subcommands:[{name:"list",summary:"lista os jobs (id \xB7 on/off \xB7 schedule \xB7 tarefa)",usage:"list",terminal:!0},{name:"add",summary:"agenda um job novo (cron de 5 campos)",usage:'add <quando> "<tarefa>" [--yolo]'},{name:"edit",summary:"reconfigura um job (preserva id)",usage:'edit <id> [--quando "<cron>"] [--tarefa "<txt>"] [--yolo|--no-yolo]'},{name:"enable",summary:"reativa um job desabilitado",usage:"enable <id>"},{name:"disable",summary:"desabilita SEM excluir (sai do agendador)",usage:"disable <id>"},{name:"rm",summary:"remove um job de vez",usage:"rm <id>"}]},{name:"permissions",summary:"painel \xB7 modo, grants e tools seguras (sempre-ask travado)",summaryKey:"cmd.permissions",source:"native",id:"permissions",section:"workspace"},{name:"tools",summary:"invent\xE1rio unificado das ferramentas \xB7 nativas, MCP, permiss\xE3o (read-only)",summaryKey:"cmd.tools",source:"native",id:"tools",section:"workspace",parallelWhileBusy:!0},{name:"add-dir",summary:"autoriza um diret\xF3rio EXTRA p/ o agente (sess\xE3o) \xB7 sem args lista",summaryKey:"cmd.addDir",source:"native",id:"add-dir",section:"workspace"},{name:"init",summary:"cria um ALUY.md neste projeto",summaryKey:"cmd.init",source:"native",id:"init",section:"workspace"},{name:"memory",summary:"v\xEA/edita/esquece/fixa a mem\xF3ria do agente (global + projeto)",summaryKey:"cmd.memory",source:"native",id:"memory",section:"workspace",subcommands:[{name:"list",summary:"lista a mem\xF3ria (global + projeto)",usage:"list"},{name:"forget",summary:"remove um fato pelo id",usage:"forget <id>"},{name:"edit",summary:"corrige o texto de um fato",usage:"edit <id> <texto>"},{name:"pin",summary:"fixa um fato (reten\xE7\xE3o)",usage:"pin <id>"},{name:"unpin",summary:"desfixa um fato",usage:"unpin <id>"}]},{name:"todo",summary:"v\xEA/gerencia o backlog de tarefas anotadas (done/clear)",summaryKey:"cmd.todo",source:"native",id:"todo",section:"workspace",subcommands:[{name:"list",summary:"lista o backlog (pendentes + feitos)",usage:"list"},{name:"done",summary:"marca um item como conclu\xEDdo",usage:"done <id>"},{name:"clear",summary:"remove os itens j\xE1 feitos",usage:"clear",terminal:!0}]},{name:"mcp",summary:"lista/gerencia servers MCP (add/remove/disable/enable \xB7 search <termo>)",summaryKey:"cmd.mcp",source:"native",id:"mcp",section:"workspace",parallelWhileBusyWith:mZ,subcommands:[{name:"search",summary:"busca no registro oficial aberto",usage:"search <termo>"},{name:"add",summary:"adiciona um server local (stdio)",usage:"add <nome> -- <cmd> [args...]"},{name:"list",summary:"lista os servers de todas as fontes",usage:"list"},{name:"remove",summary:"remove um server gerenciado pelo aluy",usage:"remove <nome>"},{name:"disable",summary:"desativa um server sem desinstalar",usage:"disable <nome>"},{name:"enable",summary:"reativa um server desativado",usage:"enable <nome>"},{name:"reconnect",summary:'re-sobe + re-handshake os servers (recupera "Not connected")',usage:"reconnect [all|<nome>]"},{name:"reload",summary:"re-l\xEA o ~/.aluy/mcp.json + reconecta (aplica edi\xE7\xF5es da config)",usage:"reload [all|<nome>]"}]},{name:"agents",summary:"lista os agentes .md mapeados (global + projeto \xB7 v\xE1lidos + rejeitados)",source:"native",id:"agents",section:"workspace",parallelWhileBusy:!0},{name:"skills",summary:"lista as skills SKILL.md mapeadas (global + projeto \xB7 v\xE1lidas + rejeitadas)",source:"native",id:"skills",section:"workspace",parallelWhileBusy:!0},{name:"inventory",summary:"invent\xE1rio do que foi carregado da .aluy/ (agentes\xB7comandos\xB7skills\xB7workflows\xB7mem\xF3ria + ALUY.md)",source:"native",id:"inventory",section:"workspace",parallelWhileBusy:!0},{name:"workflows",summary:"fluxos de atividades que coordenam o agente \u2014 lista, executa e ativa",summaryKey:"cmd.workflows",source:"native",id:"workflows",section:"workspace",subcommands:[{name:"run",summary:"executa as atividades do workflow em sequ\xEAncia",usage:"run <nome>"},{name:"use",summary:"ativa o modo de workflow \u2014 submiss\xF5es seguem o fluxo",usage:"use <nome>"}],parallelWhileBusy:!0},{name:"rooms",summary:"salas entre agentes \u2014 lista, cria, l\xEA e OBSERVA AO VIVO a conversa da frota",source:"native",id:"rooms",section:"workspace",subcommands:[{name:"list",summary:"lista as salas (c\xF3digo \xB7 msgs \xB7 atividade \xB7 quem)",usage:"list"},{name:"new",summary:"cria uma sala e mostra o c\xF3digo",usage:"new"},{name:"read",summary:"snapshot da conversa de uma sala",usage:"read <c\xF3digo>"},{name:"watch",summary:"observa a conversa AO VIVO (poll at\xE9 2min)",usage:"watch <c\xF3digo>"}]},{name:"subagent",summary:"fala 1:1 com um sub-agente (perfil .md) numa sub-sess\xE3o focada e cont\xEDnua",source:"native",id:"subagent",section:"workspace"},{name:"back",summary:"volta ao agente principal (sai do foco de /subagent)",source:"native",id:"back",section:"workspace"},{name:"quit",summary:"sair do aluy",summaryKey:"cmd.quit",source:"native",id:"quit",section:"sess\xE3o"}];hZ=[{id:"action:cycle-mode",label:"trocar modo",description:"cicla o modo da sess\xE3o (plan \u2192 normal \u2192 yolo) \xB7 tamb\xE9m no Tab",action:{kind:"action",actionId:"cycle-mode"}}];bZ="COMANDOS DA SESS\xC3O (o HUMANO os digita; voc\xEA os RECOMENDA, n\xE3o os invoca como ferramenta):"});import vZ from"react";import{Box as Il,Text as kZ}from"ink";import{Fragment as SZ,jsx as vn,jsxs as Xs}from"react/jsx-runtime";function xZ(t){let e=t.sel?"accent":t.sub?"fgDim":"fg",o=t.query.trim().replace(/\s+/g," ").toLowerCase(),n=o?t.path.toLowerCase().indexOf(o):-1;if(n<0||o==="")return Xs(f,{name:e,children:["/",t.path]});let r=t.path.slice(0,n),s=t.path.slice(n,n+o.length),i=t.path.slice(n+o.length);return Xs(SZ,{children:[Xs(f,{name:e,children:["/",r]}),vn(f,{name:"accent",children:s}),vn(f,{name:e,children:i})]})}function hg(t){let e=t.query??"",o=t.maxRows!==void 0?u1(t.commands,t.selected,t.maxRows,t.columns):{slice:t.commands,hiddenAbove:0,hiddenBelow:0},n=t.selected-o.hiddenAbove,r=null;return Xs(Il,{flexDirection:"column",children:[vn(Il,{children:vn(f,{name:"fgDim",children:"/ para comandos \xB7 \u2191\u2193 navega \xB7 enter executa \xB7 esc fecha"})}),o.hiddenAbove>0&&vn(Il,{children:Xs(f,{name:"fgDim",children:[" \u2191 ",o.hiddenAbove," acima"]})}),o.slice.map((s,i)=>{let a=i===n,l=CE(s),c=l!==r?l:null;r=l;let u=fg(s),m=s.kind==="subcommand",d=a?"\u203A ":m?" ":" ";return Xs(vZ.Fragment,{children:[c&&vn(Il,{children:vn(f,{name:"fgDim",children:c==="usu\xE1rio"?"\u2500\u2500\u2500 seus comandos":c})}),Xs(Il,{children:[vn(f,{name:a?"accent":"fgDim",children:d}),vn(xZ,{path:u,query:e,sel:a,sub:m}),vn(kZ,{children:" ".repeat(Math.max(1,18-u.length))}),vn(f,{name:"fgDim",children:TE(s)})]})]},`${l}:${u}`)}),o.hiddenBelow>0&&vn(Il,{children:Xs(f,{name:"fgDim",children:[" \u2193 ",o.hiddenBelow," mais (refine a busca)"]})})]})}var g1=p(()=>{"use strict";te();Fl()});import"react";import{Box as Nl,Text as wZ}from"ink";import{Fragment as CZ,jsx as Io,jsxs as am}from"react/jsx-runtime";function EZ(t){let e=t.sel?"accent":"fg",o=new Set(t.matched);if(o.size===0)return Io(f,{name:e,children:t.label});let n=[],r=0;for(;r<t.label.length;){let s=o.has(r),i=r;for(;i<t.label.length&&o.has(i)===s;)i++;n.push(Io(f,{name:s?"accent":e,children:t.label.slice(r,i)},r)),r=i}return Io(CZ,{children:n})}function AZ(t,e,o){if(t.length<=o)return{start:0,slice:t};let n=e-Math.floor(o/2);return n<0&&(n=0),n+o>t.length&&(n=t.length-o),{start:n,slice:t.slice(n,n+o)}}function gg(t){let{t:e}=Se(),o=t.maxRows??8,n=t.query??"",{start:r,slice:s}=AZ(t.hits,t.selected,o),i=s.reduce((a,l)=>Math.max(a,l.label.length),0);return am(Nl,{flexDirection:"column",children:[Io(Nl,{children:Io(f,{name:"fgDim",children:e("picker.palette.help")})}),am(Nl,{children:[Io(f,{name:"accent",children:"> "}),n===""?Io(f,{name:"fgDim",children:e("picker.palette.search")}):Io(f,{name:"fg",children:n})]}),t.hits.length===0?Io(Nl,{children:am(f,{name:"fgDim",children:[" ",e("picker.palette.empty",{query:n})]})}):s.map((a,l)=>{let u=r+l===t.selected;return am(Nl,{children:[Io(f,{name:u?"accent":"fgDim",children:u?"\u203A ":" "}),Io(EZ,{label:a.label,matched:a.matched,sel:u}),Io(wZ,{children:" ".repeat(Math.max(1,i-a.label.length+2))}),Io(f,{name:"fgDim",children:a.description})]},a.id)}),t.hits.length>s.length&&Io(Nl,{children:am(f,{name:"fgDim",children:[" ",e("picker.palette.more",{count:t.hits.length-s.length})]})})]})}var y1=p(()=>{"use strict";te();pt()});import"react";import{Box as lm}from"ink";import{Fragment as _Z,jsx as kr,jsxs as yg}from"react/jsx-runtime";function b1(t,e){if(e<=0||t.length<=e)return t;if(e<=1)return t.slice(0,e);let o="\u2026",n=e-o.length,r=Math.ceil(n/2),s=Math.floor(n/2);return t.slice(0,r)+o+t.slice(t.length-s)}function TZ(t){let e=t.sel?"accent":"fg",o=new Set(t.matched);if(o.size===0)return kr(f,{name:e,children:t.path});let n=[],r=0;for(;r<t.path.length;){let s=o.has(r),i=r;for(;i<t.path.length&&o.has(i)===s;)i++;let a=t.path.slice(r,i);n.push(kr(f,{name:s?"accent":e,children:a},r)),r=i}return kr(_Z,{children:n})}function DZ(t,e,o){if(t.length<=o)return{start:0,slice:t};let n=e-Math.floor(o/2);return n<0&&(n=0),n+o>t.length&&(n=t.length-o),{start:n,slice:t.slice(n,n+o)}}function RE(t){let{t:e}=Se(),o=t.columns??80,n=t.maxRows??8,r=Math.max(8,o-4),{start:s,slice:i}=DZ(t.hits,t.selected,n);return yg(lm,{flexDirection:"column",children:[kr(lm,{children:kr(f,{name:"fgDim",children:e("picker.file.help")})}),t.hits.length===0?kr(lm,{children:yg(f,{name:"fgDim",children:[" ",e("picker.file.empty",{query:t.query??""})]})}):i.map((a,l)=>{let u=s+l===t.selected,m=b1(a.path,r),d=m===a.path;return yg(lm,{children:[kr(f,{name:u?"accent":"fgDim",children:u?"\u203A ":" "}),d?kr(TZ,{path:a.path,matched:a.matched,sel:u}):kr(f,{name:u?"accent":"fg",children:m})]},a.path)}),t.hits.length>i.length&&kr(lm,{children:yg(f,{name:"fgDim",children:[" ",e("picker.file.more",{count:t.hits.length-i.length})]})})]})}var v1=p(()=>{"use strict";te();pt()});import"react";import{Box as We,Text as RZ}from"ink";import{Fragment as OE,jsx as re,jsxs as Xe}from"react/jsx-runtime";function bg(t){let{t:e}=Se();if(t.effortStepOpen)return re(IZ,{...t});if(t.customInputOpen)return re(MZ,{...t});let o=t.tiers.length;return Xe(We,{flexDirection:"column",children:[re(We,{children:re(f,{name:"fgDim",children:e("picker.model.help")})}),t.loading?re(We,{children:Xe(f,{name:"fgDim",children:[" ",e("picker.model.loading")]})}):Xe(OE,{children:[t.tiers.map((n,r)=>{let s=r===t.selected,i=n.key===t.currentTier,a=nS(n),l=oS(n.costSignal);return Xe(We,{children:[re(f,{name:s?"accent":"fgDim",children:s?"\u203A ":" "}),re(f,{name:i?"accent":"fgDim",children:i?"\u25CF ":" "}),re(f,{name:s?"accent":"fg",children:n.displayName}),a!==""&&Xe(OE,{children:[re(f,{name:"fgDim",children:" \xB7 "}),re(f,{name:"depth",children:a})]}),Xe(f,{name:"fgDim",children:[" \xB7 ",l]})]},n.key)}),Xe(We,{children:[re(f,{name:t.selected===o?"accent":"fgDim",children:t.selected===o?"\u203A ":" "}),re(f,{name:t.currentTier==="custom"?"accent":"fgDim",children:t.currentTier==="custom"?"\u25CF ":" "}),re(f,{name:t.selected===o?"accent":"fg",children:"Custom"}),Xe(f,{name:"fgDim",children:[" \xB7 ",e("picker.model.customLine")]})]},"__custom__")]}),t.usingFallback===!0&&!t.loading&&re(We,{children:Xe(f,{name:"fgDim",children:[" ","\u25CD ",e("picker.model.fallback")]})})]})}function MZ(t){return t.customBrowserAvailable===!0?re(FZ,{...t}):re($Z,{...t})}function LZ(t){return t.supportsTools===!0?re(f,{name:"accent",children:"\u2713 tools"}):t.supportsTools===!1?re(f,{name:"fgDim",children:"\u2014 tools"}):re(f,{name:"fgDim",children:"\xB7 tools?"})}function PZ(t){let{model:e,highlighted:o}=t.row,n=[e.family,e.context].map(r=>r.trim()).filter(r=>r!=="");return Xe(We,{children:[re(f,{name:o?"accent":"fgDim",children:o?"\u203A ":" "}),re(f,{name:o?"accent":"fg",children:e.id}),n.length>0&&Xe(OE,{children:[re(f,{name:"fgDim",children:" "}),re(f,{name:"depth",children:n.join(" \xB7 ")})]}),re(RZ,{children:" "}),re(LZ,{supportsTools:e.supportsTools})]})}function FZ(t){let{t:e}=Se(),o=t.customInput??"",n=t.customRows??[],r=t.customFilteredCount??0,s=t.customTotalCount??0,i=t.customToolsOnly===!0,a=t.customNoToolsWarning??null;return Xe(We,{flexDirection:"column",children:[re(We,{children:re(f,{name:"fgDim",children:e("picker.model.browseHelp")})}),Xe(We,{children:[re(f,{name:"accent",children:"filtro \u203A "}),re(f,{name:"fg",children:o}),re(f,{name:"accent",children:"\u258F"}),Xe(f,{name:"fgDim",children:[" ",e("picker.model.browseCount",{filtered:r,total:s}),i?e("picker.model.toolsOnlySuffix"):""]})]}),t.customHasMoreAbove===!0&&re(We,{children:Xe(f,{name:"fgDim",children:[" ",e("picker.model.moreAbove")]})}),n.length===0?re(We,{children:Xe(f,{name:"fgDim",children:[" ",e("picker.model.noFilterMatch")]})}):re(We,{flexDirection:"column",children:n.map(l=>re(PZ,{row:l},l.model.id))}),t.customHasMoreBelow===!0&&re(We,{children:Xe(f,{name:"fgDim",children:[" ",e("picker.model.moreBelow")]})}),a!==null&&re(We,{children:Xe(f,{name:"accent",children:[" ",e("picker.model.noTools")]})})]})}function IZ(t){let{t:e}=Se();if(t.effortCustomOpen===!0)return re(NZ,{...t});let o=t.effortOptions??[],n=t.effortSelected??0,r=t.currentEffort;return Xe(We,{flexDirection:"column",children:[re(We,{children:re(f,{name:"fgDim",children:e("picker.effort.help")})}),o.map((s,i)=>{let a=i===n,l=s.kind==="level"&&s.value===r||s.kind==="keep"&&(r===void 0||r==="");return Xe(We,{children:[re(f,{name:a?"accent":"fgDim",children:a?"\u203A ":" "}),re(f,{name:l?"accent":"fgDim",children:l?"\u25CF ":" "}),re(f,{name:a?"accent":"fg",children:e(OZ[s.id]??"picker.effort.keep")})]},s.id)})]})}function NZ(t){let{t:e}=Se(),o=t.effortCustomInput??"",n=t.effortCustomWarn??null;return Xe(We,{flexDirection:"column",children:[re(We,{children:re(f,{name:"fgDim",children:e("picker.effort.customHelp")})}),Xe(We,{children:[re(f,{name:"accent",children:"\u203A "}),re(f,{name:"fg",children:o}),re(f,{name:"accent",children:"\u258F"})]}),n!==null&&re(We,{children:Xe(f,{name:"accent",children:[" ",e(n==="empty"?"picker.effort.warnEmpty":"picker.effort.warnTooLong")]})})]})}function $Z(t){let{t:e}=Se(),o=t.customInput??"",n=t.customSuggestions??[],r=t.customWarnOutOfCatalog===!0;return Xe(We,{flexDirection:"column",children:[re(We,{children:re(f,{name:"fgDim",children:e("picker.model.freeHelp")})}),Xe(We,{children:[re(f,{name:"accent",children:"\u203A "}),re(f,{name:"fg",children:o}),re(f,{name:"accent",children:"\u258F"})]}),n.length>0&&re(We,{flexDirection:"column",children:n.map(s=>Xe(We,{children:[re(f,{name:"fgDim",children:" \u25CD "}),re(f,{name:"depth",children:s})]},s))}),r&&re(We,{children:Xe(f,{name:"accent",children:[" ",e("picker.model.outOfCatalog")]})})]})}var OZ,k1=p(()=>{"use strict";te();pt();Vr();OZ={keep:"picker.effort.keep",low:"picker.effort.low",medium:"picker.effort.medium",high:"picker.effort.high",custom:"picker.effort.custom"}});function LE(t,e=ME){let o;try{o=t.list()}catch{return[]}return o.slice(0,Math.max(0,e))}function x1(t){let e=new Date(t),o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${o(e.getMonth()+1)}-${o(e.getDate())} ${o(e.getHours())}:${o(e.getMinutes())}`}function BZ(t){for(let e of t)if(e.kind==="you"){let o=e.text.replace(/\s+/g," ").trim();return o===""?void 0:o.length>60?o.slice(0,57)+"\u2026":o}}function cm(t,e){let o=Od(t.cwd,e??process.env.HOME??""),n=t.label?.trim();if(n)return`${n} \xB7 ${x1(t.updatedAt)} \xB7 ${o}`;let r=t.title??(t.blocks?BZ(t.blocks):void 0)??"(sem objetivo)";return`${x1(t.updatedAt)} \xB7 ${o} \xB7 ${r}`}function UZ(t,e){if(t.length===0)return["nenhuma sess\xE3o anterior."];let o=["sess\xF5es anteriores (retome com: /history <id>):",""];for(let n of t){o.push(` ${n.id}`);let r=n.label?.trim()?"\u25CF ":"";o.push(` ${r}${cm(n,e)}`)}return o}function S1(t,e){e.switchSession({id:t.id,cwd:t.cwd,tier:t.tier}),e.resetContinuation?.(),e.clearScreen(),e.restoreBlocks(t.blocks);let o=ji(t.blocks);o.length>0&&e.seedHistory(o),t.cwd.trim()!==""&&e.setSessionCwd?.(t.cwd)}function w1(t,e,o){let n=(t??"").trim();if(n!=="/history"&&!n.startsWith("/history "))return!1;let r=n==="/history"?"":n.slice(9).trim();if(r===""){let i=LE(o.store,o.limit);for(let a of UZ(i,o.home))e.write(`[history] ${a}
|
|
625
625
|
`);return!0}let s=o.store.load(r);return s?(o.resume(s),e.write(`[history] sess\xE3o retomada: ${r} (${cm(s,o.home)})
|
|
626
626
|
`),!0):(e.write(`[history] sess\xE3o n\xE3o encontrada: ${r}
|
|
627
|
-
`),!0)}var ME,vg=p(()=>{"use strict";Td();hn();ME=15});function xr(t,e,o,n){if(n===void 0){if(t.length<=o)return{start:0,slice:t};let h=e-Math.floor(o/2);return h<0&&(h=0),h+o>t.length&&(h=t.length-o),{start:h,slice:t.slice(h,h+o)}}let r=t.length;if(r===0)return{start:0,slice:t};let s=h=>Math.max(1,Math.floor(n(t[h]))),i=0;for(let h=0;h<r;h+=1)i+=s(h);if(i<=o)return{start:0,slice:t};let a=Math.max(0,Math.min(e,r-1)),l=a,c=a+1,u=s(a),m=!0,d=!0;for(;d;){d=!1;let h=()=>l>0&&u+s(l-1)<=o?(l-=1,u+=s(l),!0):!1,g=()=>c<r&&u+s(c)<=o?(u+=s(c),c+=1,!0):!1;d=m?h()||g():g()||h(),m=!m}return{start:l,slice:t.slice(l,c)}}var $l=p(()=>{"use strict"});import"react";import{Box as um,Text as E1}from"ink";import{Fragment as jZ,jsx as Js,jsxs as dm}from"react/jsx-runtime";function kg(t){let e=Z(),{t:o}=Se(),n=e.glyph("sessionDot"),r=Math.max(1,t.maxRows??10),s=t.columns,i=s!==void 0&&s>0?c=>{let u=2+(c.label?.trim()?2:0)+ve(cm(c,t.home));return Math.max(1,Math.ceil(u/s))}:void 0,{start:a,slice:l}=xr(t.sessions,t.selected,r,i);return dm(um,{flexDirection:"column",children:[Js(um,{children:Js(f,{name:"fgDim",children:o("picker.history.help")})}),t.sessions.length===0?Js(um,{children:dm(f,{name:"fgDim",children:[" ",o("picker.history.empty")]})}):l.map((c,u)=>{let d=a+u===t.selected,h=c.label?.trim(),g=h?e.sessionColor(c.labelColor??h):void 0,b={};return g?.color!==void 0&&(b.color=g.color),g?.bold!==void 0&&(b.bold=g.bold),dm(um,{children:[Js(f,{name:d?"accent":"fgDim",children:d?"\u203A ":" "}),h&&dm(jZ,{children:[Js(E1,{...b,children:n}),Js(E1,{children:" "})]}),Js(f,{name:d?"accent":"fg",children:cm(c,t.home)})]},c.id)}),t.sessions.length>l.length&&Js(um,{children:dm(f,{name:"fgDim",children:[" ",o("picker.history.more",{count:t.sessions.length-l.length})]})})]})}var A1=p(()=>{"use strict";te();pt();vg();Dt();$l()});function C1(t,e=30){return[...t].reverse().slice(0,e)}function PE(t){let e=HZ(t.ts);return`#${t.ordinal} \xB7 ${e} \xB7 ${t.label}`}function HZ(t){let e=new Date(t),o=String(e.getHours()).padStart(2,"0"),n=String(e.getMinutes()).padStart(2,"0");return`${o}:${n}`}var xg,FE=p(()=>{"use strict";xg=["both","conversation","code"]});import"react";import{Box as kn}from"ink";import{jsx as mo,jsxs as ia}from"react/jsx-runtime";function qZ(t){switch(t){case"both":return"picker.rewind.action.both";case"conversation":return"picker.rewind.action.conversation";case"code":return"picker.rewind.action.code"}}function Sg(t){let{t:e}=Se();if(t.phase==="list"){let o=Math.max(1,t.maxRows??10),n=t.columns,r=n!==void 0&&n>0?a=>Math.max(1,Math.ceil((2+ve(PE(a)))/n)):void 0,{start:s,slice:i}=xr(t.checkpoints,t.selected,o,r);return ia(kn,{flexDirection:"column",children:[mo(kn,{children:mo(f,{name:"fgDim",children:e("picker.rewind.help")})}),t.checkpoints.length===0?mo(kn,{children:ia(f,{name:"fgDim",children:[" ",e("picker.rewind.empty")]})}):i.map((a,l)=>{let c=s+l===t.selected;return ia(kn,{children:[mo(f,{name:c?"accent":"fgDim",children:c?"\u203A ":" "}),mo(f,{name:c?"accent":"fg",children:PE(a)})]},a.id)}),t.checkpoints.length>i.length&&mo(kn,{children:ia(f,{name:"fgDim",children:[" ",e("picker.rewind.more",{count:t.checkpoints.length-i.length})]})})]})}return ia(kn,{flexDirection:"column",children:[mo(kn,{children:mo(f,{name:"fgDim",children:e("picker.rewind.action.help")})}),t.target&&mo(kn,{children:mo(f,{name:"fgDim",children:` \u2192 #${t.target.ordinal} \xB7 ${t.target.label}`})}),t.actions.map((o,n)=>{let r=n===t.selected;return ia(kn,{children:[mo(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),mo(f,{name:r?"accent":"fg",children:e(qZ(o))})]},o)}),t.barrierWarnings&&t.barrierWarnings.length>0&&ia(kn,{flexDirection:"column",marginTop:1,children:[mo(kn,{children:mo(f,{name:"accent",children:`\u26A0 ${e("picker.rewind.barrier.warn")}:`})}),t.barrierWarnings.map((o,n)=>mo(kn,{children:mo(f,{name:"fgDim",children:` \xB7 ${o}`})},n))]})]})}var T1=p(()=>{"use strict";te();pt();FE();Dt();$l()});import WZ from"react";import{Box as Co,Text as GZ}from"ink";import{Fragment as VZ,jsx as Ge,jsxs as Jo}from"react/jsx-runtime";function zZ(t){switch(t){case"mode":return"modo de sess\xE3o \xB7 enter cicla plan \u2192 normal \u2192 yolo";case"safe-tool":return"tools seguras (leitura) \xB7 enter alterna allow \u21C4 ask";case"grant":return"liberados nesta sess\xE3o \xB7 enter REVOGA";case"locked":return"TRAVADO por seguran\xE7a \xB7 s\xF3 via --yolo"}}function KZ(t){let{row:e,sel:o}=t,n=Ge(f,{name:o?"accent":"fgDim",children:o?"\u203A ":" "});switch(e.kind){case"mode":return Jo(Co,{children:[n,Ge(f,{name:o?"accent":"fg",children:"modo: "}),Ge(f,{name:e.mode==="unsafe"?"danger":o?"accent":"fg",children:IE[e.mode]})]});case"safe-tool":return Jo(Co,{children:[n,Ge(f,{name:o?"accent":"fg",children:e.tool}),Ge(f,{name:"fgDim",children:" = "}),Ge(f,{name:e.decision==="allow"?"success":"fgDim",children:e.decision})]});case"grant":return Jo(Co,{children:[n,Ge(f,{name:"success",children:"\u25CF "}),Ge(f,{name:o?"accent":"fg",children:e.grantKey}),Ge(f,{name:"fgDim",children:" (enter revoga)"})]});case"locked":{let r=e.category.lock==="deny";return Jo(Co,{flexDirection:"column",children:[Jo(Co,{children:[n,Ge(F,{name:"ask",role:"danger"}),Ge(f,{name:"danger",children:" [travado] "}),Ge(f,{name:o?"accent":"fg",children:e.category.label}),Jo(f,{name:"danger",children:[" \xB7 ",r?"deny (nem --yolo)":"sempre pergunta"]})]}),o&&Ge(Co,{paddingLeft:4,children:Ge(f,{name:"fgDim",children:e.category.why})})]})}}}function NE(t){let e=Math.max(1,t.maxRows??14),o=t.columns,n=l=>{switch(l.kind){case"mode":return 8+ve(IE[l.mode]);case"safe-tool":return 5+ve(l.tool)+ve(l.decision);case"grant":return 19+ve(l.grantKey);case"locked":return 28+ve(l.category.label)}},r=o!==void 0&&o>0?l=>Math.max(1,Math.ceil(n(l)/o)):void 0,{start:s,slice:i}=xr(t.rows,t.selected,e,r),a=null;return Jo(Co,{flexDirection:"column",children:[Ge(Co,{children:Ge(f,{name:"fgDim",children:"permissoes \xB7 \u2191\u2193 navega \xB7 enter muda \xB7 esc fecha"})}),Jo(Co,{children:[Ge(f,{name:"fgDim",children:"modo atual: "}),Ge(f,{name:t.mode==="unsafe"?"danger":"fg",children:IE[t.mode]})]}),t.rows.length===0?Ge(Co,{children:Ge(f,{name:"fgDim",children:" nada a mostrar"})}):Jo(VZ,{children:[s>0&&Ge(Co,{children:Jo(f,{name:"fgDim",children:[" \u2191 ",s," acima"]})}),i.map((l,c)=>{let u=s+c,m=l.kind!==a?zZ(l.kind):null;return a=l.kind,Jo(WZ.Fragment,{children:[m&&Ge(Co,{paddingTop:1,children:Jo(f,{name:"fgDim",children:["\u2500\u2500\u2500 ",m]})}),Ge(KZ,{row:l,sel:u===t.selected})]},YZ(l,u))}),s+i.length<t.rows.length&&Ge(Co,{children:Jo(f,{name:"fgDim",children:[" \u2193 ",t.rows.length-(s+i.length)," abaixo"]})})]}),Ge(Co,{paddingTop:1,children:Ge(GZ,{children:" "})}),Ge(Co,{children:Ge(f,{name:"fgDim",children:"o painel n\xE3o relaxa as categorias travadas \u2014 o \xFAnico bypass total \xE9 --yolo"})})]})}function YZ(t,e){switch(t.kind){case"mode":return"mode";case"safe-tool":return`safe:${t.tool}`;case"grant":return`grant:${t.grantKey}`;case"locked":return`locked:${t.category.category}`;default:return`row:${e}`}}var IE,D1=p(()=>{"use strict";te();$l();Dt();IE={plan:"PLAN (read-only)",normal:"NORMAL (catraca padr\xE3o)",unsafe:"YOLO (aprova\xE7\xE3o DESLIGADA)"}});import"react";import{Box as $E}from"ink";import{jsx as mm,jsxs as BE}from"react/jsx-runtime";function wg(t){let{t:e}=Se();return BE($E,{flexDirection:"column",children:[mm($E,{children:mm(f,{name:"fgDim",children:e("picker.theme.help")})}),t.themes.map((o,n)=>{let r=n===t.selected,s=o.name===t.currentTheme;return BE($E,{children:[mm(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),mm(f,{name:s?"accent":"fgDim",children:s?"\u25CF ":" "}),mm(f,{name:r?"accent":"fg",children:o.label}),BE(f,{name:"fgDim",children:[" \xB7 ",o.summary]})]},o.name)})]})}var _1=p(()=>{"use strict";te();pt()});import"react";import{Box as UE}from"ink";import{jsx as fm,jsxs as jE}from"react/jsx-runtime";function Eg(t){let{t:e}=Se();return jE(UE,{flexDirection:"column",children:[fm(UE,{children:fm(f,{name:"fgDim",children:e("picker.lang.help")})}),t.langs.map((o,n)=>{let r=n===t.selected,s=o.code===t.currentLang;return jE(UE,{children:[fm(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),fm(f,{name:s?"accent":"fgDim",children:s?"\u25CF ":" "}),fm(f,{name:r?"accent":"fg",children:o.label}),jE(f,{name:"fgDim",children:[" \xB7 ",o.summary]})]},o.code)})]})}var R1=p(()=>{"use strict";te();pt()});import"react";import{Box as pm}from"ink";import{jsx as Qs,jsxs as hm}from"react/jsx-runtime";function HE(t){let{t:e}=Se(),o=Math.max(1,t.maxRows??10),n=t.columns,r=n!==void 0&&n>0?a=>{let l=4+ve(`${a.label} \xB7 ${a.summary}`)+(a.isDefault?2+ve(e("picker.provider.default")):0);return Math.max(1,Math.ceil(l/n))}:void 0,{start:s,slice:i}=xr(t.providers,t.selected,o,r);return hm(pm,{flexDirection:"column",children:[Qs(pm,{children:Qs(f,{name:"fgDim",children:e("picker.provider.help")})}),t.usingFallback===!0?Qs(pm,{children:Qs(f,{name:"fgDim",children:e("picker.provider.fallback")})}):null,i.map((a,l)=>{let c=s+l===t.selected,u=a.name===t.currentProvider;return hm(pm,{children:[Qs(f,{name:c?"accent":"fgDim",children:c?"\u203A ":" "}),Qs(f,{name:u?"accent":"fgDim",children:u?"\u25CF ":" "}),Qs(f,{name:c?"accent":"fg",children:a.label}),hm(f,{name:"fgDim",children:[" \xB7 ",a.summary]}),a.isDefault?hm(f,{name:"fgDim",children:[" \xB7 ",e("picker.provider.default")]}):null]},a.name)}),t.providers.length>i.length&&Qs(pm,{children:hm(f,{name:"fgDim",children:[" ",e("picker.provider.more",{count:t.providers.length-i.length})]})})]})}var O1=p(()=>{"use strict";te();pt();Dt();$l()});import"react";import{Box as M1,Text as XZ}from"ink";import{jsx as qE,jsxs as L1}from"react/jsx-runtime";function WE(t){if(t.chips.length===0)return null;let e=t.active??-1;return qE(M1,{flexWrap:"wrap",children:t.chips.map((o,n)=>{let r=n===e;return L1(M1,{marginRight:1,children:[L1(f,{name:r?"accent":"depth",children:[r?"\u203A ":"","@",o.path,o.truncated?"~":""]}),qE(XZ,{children:" "}),qE(f,{name:"fgDim",children:"[\u232B]"})]},o.path)})})}var P1=p(()=>{"use strict";te()});import"react";import{Box as gm,Text as F1}from"ink";import{jsx as Bn,jsxs as Zs}from"react/jsx-runtime";function GE(t){let e=Z(),{t:o}=Se(),n=t.columns??80,r=t.plan??"assinatura",s=e.glyph("wave").repeat(17);return Zs(gm,{flexDirection:"column",paddingY:1,children:[Bn(os,{columns:n}),Bn(gm,{paddingTop:1,paddingLeft:2,children:Bn(f,{name:"fgDim",children:o("boot.tagline")})}),Zs(gm,{paddingLeft:2,children:[Bn(f,{name:"accent",children:s}),t.version!==void 0&&Zs(f,{name:"fgDim",children:[" v",t.version]})]}),Zs(gm,{paddingLeft:2,children:[Bn(F,{name:"window",role:"fgDim"}),Zs(f,{name:"fgDim",children:[" ",r," \xB7 "]}),Bn(f,{name:"fgDim",children:t.tier}),Bn(F1,{children:" "}),Bn(f,{name:"fgDim",children:"\xB7 "}),Bn(F,{name:"broker",role:"depth"}),Zs(f,{name:"depth",children:[" ",o("boot.broker")]})]}),t.status!==void 0&&Zs(gm,{paddingTop:1,paddingLeft:2,children:[Bn(Zi,{frame:t.frame??0}),Bn(F1,{children:" "}),Zs(f,{name:"fgDim",children:[t.status,"\u2026"]})]})]})}var I1=p(()=>{"use strict";te();pt();em();Gi()});import"react";import{Box as N1}from"ink";import{jsx as zE,jsxs as KE}from"react/jsx-runtime";function YE(t){let e=t.suggestions??JZ;return KE(N1,{flexDirection:"column",children:[zE(f,{name:"fg",children:t.name?`bom te ver de novo, ${t.name}.`:"bom te ver por aqui."}),zE(f,{name:"fgDim",children:"eu leio e edito arquivos e rodo comandos aqui \u2014 sempre te mostrando o efeito exato antes."}),KE(N1,{paddingTop:1,flexDirection:"column",children:[zE(f,{name:"fgDim",children:"experimente:"}),e.map((o,n)=>KE(f,{name:"fgDim",children:[" \xB7 ",o]},n))]})]})}var JZ,$1=p(()=>{"use strict";te();JZ=['"explique a estrutura deste repo"','"rode os testes e resuma as falhas"',"/help para comandos \xB7 /login conta \xB7 /quit"]});import"react";import{jsx as _0e}from"react/jsx-runtime";var B1=p(()=>{"use strict";te()});import"react";import{Box as U1,Text as VE}from"ink";import{jsx as aa,jsxs as Ag}from"react/jsx-runtime";function H1(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||e<=0?0:Math.max(0,Math.min(1,t/e))}function q1(t,e,o,n,r){let s=Math.max(1,Math.trunc(n)),i=Math.max(0,Math.min(1,t)),a=Math.round(i*s);i>0&&a===0&&(a=1),i<1&&a===s&&(a=s-1);let l=e.repeat(a),c=o.repeat(s-a);return r?{filled:l,rest:c}:{filled:`[${l}`,rest:`${c}]`}}function Bl(t){let e=Z(),o=t.role??"accent";if(t.value!==void 0&&t.max!==void 0){let a=H1(t.value,t.max),l=Math.round(a*100),c=e.glyph("barFull"),u=e.glyph("barEmpty"),m=t.width??j1,{filled:d,rest:h}=q1(a,c,u,m,e.unicode);return Ag(U1,{children:[aa(f,{name:o,children:d}),aa(f,{name:"fgDim",children:h}),aa(VE,{children:" "}),Ag(f,{name:o,children:[l,"%"]}),aa(VE,{children:" "}),aa(f,{name:"fgDim",children:t.label})]})}let r=e.spinnerFrames,s=e.animate?r[(t.frame??0)%r.length]:e.glyph("clock"),i=t.elapsedMs!==void 0?hl(t.elapsedMs):void 0;return Ag(U1,{children:[aa(f,{name:o,children:s}),aa(VE,{children:" "}),Ag(f,{name:"fgDim",children:[t.label,"\u2026",i!==void 0?` ${i}`:""]})]})}var j1,XE=p(()=>{"use strict";te();hn();j1=12});import"react";import{Box as QZ}from"ink";import{jsx as ZZ,jsxs as W1}from"react/jsx-runtime";function JE(t){let{t:e}=Se(),o=(t.columns??80)<60,n=e(o?"banner.yolo.narrow":"banner.yolo");return W1(QZ,{children:[ZZ(F,{name:"ask",role:"danger"}),W1(f,{name:"danger",children:[" ",n]})]})}var QE=p(()=>{"use strict";te();pt()});import"react";import{Box as eee}from"ink";import{jsx as G1,jsxs as ZE}from"react/jsx-runtime";function Cg(t){let{t:e}=Se();if(t.mode==="unsafe")return G1(JE,{...t.columns!==void 0?{columns:t.columns}:{}});let o=tee[t.mode],n=(t.columns??80)<60;return ZE(eee,{children:[G1(F,{name:o.glyph,role:o.role}),ZE(f,{name:o.role,children:[" ",e("mode.label")," ",o.word]}),!n&&ZE(f,{name:"fgDim",children:[" \xB7 ",e(o.caption)]})]})}var tee,z1=p(()=>{"use strict";te();QE();pt();tee={plan:{glyph:"planMode",role:"depth",word:"PLAN",caption:"mode.plan.caption"},normal:{glyph:"normalMode",role:"fgDim",word:"NORMAL",caption:"mode.normal.caption"},unsafe:{glyph:"ask",role:"danger",word:"YOLO",caption:"mode.unsafe.caption"}}});import"react";import{jsx as eA}from"react/jsx-runtime";function ym(t){let{t:e}=Se();if(t.armedExit===!0)return eA(f,{name:"accent",children:e("hints.ctrlcAgain")});let o=e(oee[t.state]),n=t.elapsed!==void 0&&t.elapsed!==""&&nee.has(t.state);return t.suggesting===!0&&t.state==="idle"?eA(f,{name:"fgDim",children:`${o} \xB7 ${e("hints.suggest")}`}):eA(f,{name:"fgDim",children:n?`${o} \xB7 ${t.elapsed}`:o})}var oee,nee,K1=p(()=>{"use strict";te();pt();oee={idle:"hints.idle",thinking:"hints.thinking",streaming:"hints.streaming",ask:"hints.ask","ask-destructive":"hints.askDestructive",slash:"hints.slash",palette:"hints.palette",budget:"hints.budget",error:"hints.error","work-subagents":"hints.workSubagents","idle-subagents":"hints.idleSubagents"},nee=new Set(["thinking","streaming","work-subagents"])});import"react";import{Box as tA}from"ink";import{jsx as oA,jsxs as nA}from"react/jsx-runtime";function Tg(t){return nA(tA,{flexDirection:"column",children:[nA(tA,{children:[oA(F,{name:"clock",role:"depth"}),nA(f,{name:"depth",children:[" ",t.title]})]}),oA(tA,{flexDirection:"column",paddingLeft:2,children:t.lines.map((e,o)=>oA(f,{name:"fgDim",children:e},o))})]})}var Y1=p(()=>{"use strict";te()});import"react";import{Box as la,Text as ree}from"ink";import{jsx as Un,jsxs as xn}from"react/jsx-runtime";function rA(t){let e=Z();if(t.status==="running"){let a=hr(t.liveOutput??"",_l).replace(/\n+$/,""),l=t.columns&&t.columns>0?t.columns-see:0,{text:c,hidden:u}=ns(a,t.maxLines,l);return xn(la,{flexDirection:"column",paddingLeft:2,children:[Un(oa,{glyph:"toolInflight",glyphRole:"depth",label:`rodando $ ${t.command}`,...t.frame!==void 0?{frame:t.frame}:{}}),c.length>0&&xn(la,{flexDirection:"column",paddingLeft:2,children:[u>0&&xn(f,{name:"fgDim",children:["\u2026 (",u," linhas acima)"]}),c.split(`
|
|
627
|
+
`),!0)}var ME,vg=p(()=>{"use strict";Td();hn();ME=15});function xr(t,e,o,n){if(n===void 0){if(t.length<=o)return{start:0,slice:t};let h=e-Math.floor(o/2);return h<0&&(h=0),h+o>t.length&&(h=t.length-o),{start:h,slice:t.slice(h,h+o)}}let r=t.length;if(r===0)return{start:0,slice:t};let s=h=>Math.max(1,Math.floor(n(t[h]))),i=0;for(let h=0;h<r;h+=1)i+=s(h);if(i<=o)return{start:0,slice:t};let a=Math.max(0,Math.min(e,r-1)),l=a,c=a+1,u=s(a),m=!0,d=!0;for(;d;){d=!1;let h=()=>l>0&&u+s(l-1)<=o?(l-=1,u+=s(l),!0):!1,g=()=>c<r&&u+s(c)<=o?(u+=s(c),c+=1,!0):!1;d=m?h()||g():g()||h(),m=!m}return{start:l,slice:t.slice(l,c)}}var $l=p(()=>{"use strict"});import"react";import{Box as um,Text as E1}from"ink";import{Fragment as jZ,jsx as Js,jsxs as dm}from"react/jsx-runtime";function kg(t){let e=Q(),{t:o}=Se(),n=e.glyph("sessionDot"),r=Math.max(1,t.maxRows??10),s=t.columns,i=s!==void 0&&s>0?c=>{let u=2+(c.label?.trim()?2:0)+ve(cm(c,t.home));return Math.max(1,Math.ceil(u/s))}:void 0,{start:a,slice:l}=xr(t.sessions,t.selected,r,i);return dm(um,{flexDirection:"column",children:[Js(um,{children:Js(f,{name:"fgDim",children:o("picker.history.help")})}),t.sessions.length===0?Js(um,{children:dm(f,{name:"fgDim",children:[" ",o("picker.history.empty")]})}):l.map((c,u)=>{let d=a+u===t.selected,h=c.label?.trim(),g=h?e.sessionColor(c.labelColor??h):void 0,b={};return g?.color!==void 0&&(b.color=g.color),g?.bold!==void 0&&(b.bold=g.bold),dm(um,{children:[Js(f,{name:d?"accent":"fgDim",children:d?"\u203A ":" "}),h&&dm(jZ,{children:[Js(E1,{...b,children:n}),Js(E1,{children:" "})]}),Js(f,{name:d?"accent":"fg",children:cm(c,t.home)})]},c.id)}),t.sessions.length>l.length&&Js(um,{children:dm(f,{name:"fgDim",children:[" ",o("picker.history.more",{count:t.sessions.length-l.length})]})})]})}var A1=p(()=>{"use strict";te();pt();vg();Dt();$l()});function C1(t,e=30){return[...t].reverse().slice(0,e)}function PE(t){let e=HZ(t.ts);return`#${t.ordinal} \xB7 ${e} \xB7 ${t.label}`}function HZ(t){let e=new Date(t),o=String(e.getHours()).padStart(2,"0"),n=String(e.getMinutes()).padStart(2,"0");return`${o}:${n}`}var xg,FE=p(()=>{"use strict";xg=["both","conversation","code"]});import"react";import{Box as kn}from"ink";import{jsx as mo,jsxs as ia}from"react/jsx-runtime";function qZ(t){switch(t){case"both":return"picker.rewind.action.both";case"conversation":return"picker.rewind.action.conversation";case"code":return"picker.rewind.action.code"}}function Sg(t){let{t:e}=Se();if(t.phase==="list"){let o=Math.max(1,t.maxRows??10),n=t.columns,r=n!==void 0&&n>0?a=>Math.max(1,Math.ceil((2+ve(PE(a)))/n)):void 0,{start:s,slice:i}=xr(t.checkpoints,t.selected,o,r);return ia(kn,{flexDirection:"column",children:[mo(kn,{children:mo(f,{name:"fgDim",children:e("picker.rewind.help")})}),t.checkpoints.length===0?mo(kn,{children:ia(f,{name:"fgDim",children:[" ",e("picker.rewind.empty")]})}):i.map((a,l)=>{let c=s+l===t.selected;return ia(kn,{children:[mo(f,{name:c?"accent":"fgDim",children:c?"\u203A ":" "}),mo(f,{name:c?"accent":"fg",children:PE(a)})]},a.id)}),t.checkpoints.length>i.length&&mo(kn,{children:ia(f,{name:"fgDim",children:[" ",e("picker.rewind.more",{count:t.checkpoints.length-i.length})]})})]})}return ia(kn,{flexDirection:"column",children:[mo(kn,{children:mo(f,{name:"fgDim",children:e("picker.rewind.action.help")})}),t.target&&mo(kn,{children:mo(f,{name:"fgDim",children:` \u2192 #${t.target.ordinal} \xB7 ${t.target.label}`})}),t.actions.map((o,n)=>{let r=n===t.selected;return ia(kn,{children:[mo(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),mo(f,{name:r?"accent":"fg",children:e(qZ(o))})]},o)}),t.barrierWarnings&&t.barrierWarnings.length>0&&ia(kn,{flexDirection:"column",marginTop:1,children:[mo(kn,{children:mo(f,{name:"accent",children:`\u26A0 ${e("picker.rewind.barrier.warn")}:`})}),t.barrierWarnings.map((o,n)=>mo(kn,{children:mo(f,{name:"fgDim",children:` \xB7 ${o}`})},n))]})]})}var T1=p(()=>{"use strict";te();pt();FE();Dt();$l()});import WZ from"react";import{Box as Co,Text as GZ}from"ink";import{Fragment as VZ,jsx as Ge,jsxs as Jo}from"react/jsx-runtime";function zZ(t){switch(t){case"mode":return"modo de sess\xE3o \xB7 enter cicla plan \u2192 normal \u2192 yolo";case"safe-tool":return"tools seguras (leitura) \xB7 enter alterna allow \u21C4 ask";case"grant":return"liberados nesta sess\xE3o \xB7 enter REVOGA";case"locked":return"TRAVADO por seguran\xE7a \xB7 s\xF3 via --yolo"}}function KZ(t){let{row:e,sel:o}=t,n=Ge(f,{name:o?"accent":"fgDim",children:o?"\u203A ":" "});switch(e.kind){case"mode":return Jo(Co,{children:[n,Ge(f,{name:o?"accent":"fg",children:"modo: "}),Ge(f,{name:e.mode==="unsafe"?"danger":o?"accent":"fg",children:IE[e.mode]})]});case"safe-tool":return Jo(Co,{children:[n,Ge(f,{name:o?"accent":"fg",children:e.tool}),Ge(f,{name:"fgDim",children:" = "}),Ge(f,{name:e.decision==="allow"?"success":"fgDim",children:e.decision})]});case"grant":return Jo(Co,{children:[n,Ge(f,{name:"success",children:"\u25CF "}),Ge(f,{name:o?"accent":"fg",children:e.grantKey}),Ge(f,{name:"fgDim",children:" (enter revoga)"})]});case"locked":{let r=e.category.lock==="deny";return Jo(Co,{flexDirection:"column",children:[Jo(Co,{children:[n,Ge(F,{name:"ask",role:"danger"}),Ge(f,{name:"danger",children:" [travado] "}),Ge(f,{name:o?"accent":"fg",children:e.category.label}),Jo(f,{name:"danger",children:[" \xB7 ",r?"deny (nem --yolo)":"sempre pergunta"]})]}),o&&Ge(Co,{paddingLeft:4,children:Ge(f,{name:"fgDim",children:e.category.why})})]})}}}function NE(t){let e=Math.max(1,t.maxRows??14),o=t.columns,n=l=>{switch(l.kind){case"mode":return 8+ve(IE[l.mode]);case"safe-tool":return 5+ve(l.tool)+ve(l.decision);case"grant":return 19+ve(l.grantKey);case"locked":return 28+ve(l.category.label)}},r=o!==void 0&&o>0?l=>Math.max(1,Math.ceil(n(l)/o)):void 0,{start:s,slice:i}=xr(t.rows,t.selected,e,r),a=null;return Jo(Co,{flexDirection:"column",children:[Ge(Co,{children:Ge(f,{name:"fgDim",children:"permissoes \xB7 \u2191\u2193 navega \xB7 enter muda \xB7 esc fecha"})}),Jo(Co,{children:[Ge(f,{name:"fgDim",children:"modo atual: "}),Ge(f,{name:t.mode==="unsafe"?"danger":"fg",children:IE[t.mode]})]}),t.rows.length===0?Ge(Co,{children:Ge(f,{name:"fgDim",children:" nada a mostrar"})}):Jo(VZ,{children:[s>0&&Ge(Co,{children:Jo(f,{name:"fgDim",children:[" \u2191 ",s," acima"]})}),i.map((l,c)=>{let u=s+c,m=l.kind!==a?zZ(l.kind):null;return a=l.kind,Jo(WZ.Fragment,{children:[m&&Ge(Co,{paddingTop:1,children:Jo(f,{name:"fgDim",children:["\u2500\u2500\u2500 ",m]})}),Ge(KZ,{row:l,sel:u===t.selected})]},YZ(l,u))}),s+i.length<t.rows.length&&Ge(Co,{children:Jo(f,{name:"fgDim",children:[" \u2193 ",t.rows.length-(s+i.length)," abaixo"]})})]}),Ge(Co,{paddingTop:1,children:Ge(GZ,{children:" "})}),Ge(Co,{children:Ge(f,{name:"fgDim",children:"o painel n\xE3o relaxa as categorias travadas \u2014 o \xFAnico bypass total \xE9 --yolo"})})]})}function YZ(t,e){switch(t.kind){case"mode":return"mode";case"safe-tool":return`safe:${t.tool}`;case"grant":return`grant:${t.grantKey}`;case"locked":return`locked:${t.category.category}`;default:return`row:${e}`}}var IE,D1=p(()=>{"use strict";te();$l();Dt();IE={plan:"PLAN (read-only)",normal:"NORMAL (catraca padr\xE3o)",unsafe:"YOLO (aprova\xE7\xE3o DESLIGADA)"}});import"react";import{Box as $E}from"ink";import{jsx as mm,jsxs as BE}from"react/jsx-runtime";function wg(t){let{t:e}=Se();return BE($E,{flexDirection:"column",children:[mm($E,{children:mm(f,{name:"fgDim",children:e("picker.theme.help")})}),t.themes.map((o,n)=>{let r=n===t.selected,s=o.name===t.currentTheme;return BE($E,{children:[mm(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),mm(f,{name:s?"accent":"fgDim",children:s?"\u25CF ":" "}),mm(f,{name:r?"accent":"fg",children:o.label}),BE(f,{name:"fgDim",children:[" \xB7 ",o.summary]})]},o.name)})]})}var _1=p(()=>{"use strict";te();pt()});import"react";import{Box as UE}from"ink";import{jsx as fm,jsxs as jE}from"react/jsx-runtime";function Eg(t){let{t:e}=Se();return jE(UE,{flexDirection:"column",children:[fm(UE,{children:fm(f,{name:"fgDim",children:e("picker.lang.help")})}),t.langs.map((o,n)=>{let r=n===t.selected,s=o.code===t.currentLang;return jE(UE,{children:[fm(f,{name:r?"accent":"fgDim",children:r?"\u203A ":" "}),fm(f,{name:s?"accent":"fgDim",children:s?"\u25CF ":" "}),fm(f,{name:r?"accent":"fg",children:o.label}),jE(f,{name:"fgDim",children:[" \xB7 ",o.summary]})]},o.code)})]})}var R1=p(()=>{"use strict";te();pt()});import"react";import{Box as pm}from"ink";import{jsx as Qs,jsxs as hm}from"react/jsx-runtime";function HE(t){let{t:e}=Se(),o=Math.max(1,t.maxRows??10),n=t.columns,r=n!==void 0&&n>0?a=>{let l=4+ve(`${a.label} \xB7 ${a.summary}`)+(a.isDefault?2+ve(e("picker.provider.default")):0);return Math.max(1,Math.ceil(l/n))}:void 0,{start:s,slice:i}=xr(t.providers,t.selected,o,r);return hm(pm,{flexDirection:"column",children:[Qs(pm,{children:Qs(f,{name:"fgDim",children:e("picker.provider.help")})}),t.usingFallback===!0?Qs(pm,{children:Qs(f,{name:"fgDim",children:e("picker.provider.fallback")})}):null,i.map((a,l)=>{let c=s+l===t.selected,u=a.name===t.currentProvider;return hm(pm,{children:[Qs(f,{name:c?"accent":"fgDim",children:c?"\u203A ":" "}),Qs(f,{name:u?"accent":"fgDim",children:u?"\u25CF ":" "}),Qs(f,{name:c?"accent":"fg",children:a.label}),hm(f,{name:"fgDim",children:[" \xB7 ",a.summary]}),a.isDefault?hm(f,{name:"fgDim",children:[" \xB7 ",e("picker.provider.default")]}):null]},a.name)}),t.providers.length>i.length&&Qs(pm,{children:hm(f,{name:"fgDim",children:[" ",e("picker.provider.more",{count:t.providers.length-i.length})]})})]})}var O1=p(()=>{"use strict";te();pt();Dt();$l()});import"react";import{Box as M1,Text as XZ}from"ink";import{jsx as qE,jsxs as L1}from"react/jsx-runtime";function WE(t){if(t.chips.length===0)return null;let e=t.active??-1;return qE(M1,{flexWrap:"wrap",children:t.chips.map((o,n)=>{let r=n===e;return L1(M1,{marginRight:1,children:[L1(f,{name:r?"accent":"depth",children:[r?"\u203A ":"","@",o.path,o.truncated?"~":""]}),qE(XZ,{children:" "}),qE(f,{name:"fgDim",children:"[\u232B]"})]},o.path)})})}var P1=p(()=>{"use strict";te()});import"react";import{Box as gm,Text as F1}from"ink";import{jsx as Bn,jsxs as Zs}from"react/jsx-runtime";function GE(t){let e=Q(),{t:o}=Se(),n=t.columns??80,r=t.plan??"assinatura",s=e.glyph("wave").repeat(17);return Zs(gm,{flexDirection:"column",paddingY:1,children:[Bn(os,{columns:n}),Bn(gm,{paddingTop:1,paddingLeft:2,children:Bn(f,{name:"fgDim",children:o("boot.tagline")})}),Zs(gm,{paddingLeft:2,children:[Bn(f,{name:"accent",children:s}),t.version!==void 0&&Zs(f,{name:"fgDim",children:[" v",t.version]})]}),Zs(gm,{paddingLeft:2,children:[Bn(F,{name:"window",role:"fgDim"}),Zs(f,{name:"fgDim",children:[" ",r," \xB7 "]}),Bn(f,{name:"fgDim",children:t.tier}),Bn(F1,{children:" "}),Bn(f,{name:"fgDim",children:"\xB7 "}),Bn(F,{name:"broker",role:"depth"}),Zs(f,{name:"depth",children:[" ",o("boot.broker")]})]}),t.status!==void 0&&Zs(gm,{paddingTop:1,paddingLeft:2,children:[Bn(Zi,{frame:t.frame??0}),Bn(F1,{children:" "}),Zs(f,{name:"fgDim",children:[t.status,"\u2026"]})]})]})}var I1=p(()=>{"use strict";te();pt();em();Gi()});import"react";import{Box as N1}from"ink";import{jsx as zE,jsxs as KE}from"react/jsx-runtime";function YE(t){let e=t.suggestions??JZ;return KE(N1,{flexDirection:"column",children:[zE(f,{name:"fg",children:t.name?`bom te ver de novo, ${t.name}.`:"bom te ver por aqui."}),zE(f,{name:"fgDim",children:"eu leio e edito arquivos e rodo comandos aqui \u2014 sempre te mostrando o efeito exato antes."}),KE(N1,{paddingTop:1,flexDirection:"column",children:[zE(f,{name:"fgDim",children:"experimente:"}),e.map((o,n)=>KE(f,{name:"fgDim",children:[" \xB7 ",o]},n))]})]})}var JZ,$1=p(()=>{"use strict";te();JZ=['"explique a estrutura deste repo"','"rode os testes e resuma as falhas"',"/help para comandos \xB7 /login conta \xB7 /quit"]});import"react";import{jsx as F0e}from"react/jsx-runtime";var B1=p(()=>{"use strict";te()});import"react";import{Box as U1,Text as VE}from"ink";import{jsx as aa,jsxs as Ag}from"react/jsx-runtime";function H1(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||e<=0?0:Math.max(0,Math.min(1,t/e))}function q1(t,e,o,n,r){let s=Math.max(1,Math.trunc(n)),i=Math.max(0,Math.min(1,t)),a=Math.round(i*s);i>0&&a===0&&(a=1),i<1&&a===s&&(a=s-1);let l=e.repeat(a),c=o.repeat(s-a);return r?{filled:l,rest:c}:{filled:`[${l}`,rest:`${c}]`}}function Bl(t){let e=Q(),o=t.role??"accent";if(t.value!==void 0&&t.max!==void 0){let a=H1(t.value,t.max),l=Math.round(a*100),c=e.glyph("barFull"),u=e.glyph("barEmpty"),m=t.width??j1,{filled:d,rest:h}=q1(a,c,u,m,e.unicode);return Ag(U1,{children:[aa(f,{name:o,children:d}),aa(f,{name:"fgDim",children:h}),aa(VE,{children:" "}),Ag(f,{name:o,children:[l,"%"]}),aa(VE,{children:" "}),aa(f,{name:"fgDim",children:t.label})]})}let r=e.spinnerFrames,s=e.animate?r[(t.frame??0)%r.length]:e.glyph("clock"),i=t.elapsedMs!==void 0?hl(t.elapsedMs):void 0;return Ag(U1,{children:[aa(f,{name:o,children:s}),aa(VE,{children:" "}),Ag(f,{name:"fgDim",children:[t.label,"\u2026",i!==void 0?` ${i}`:""]})]})}var j1,XE=p(()=>{"use strict";te();hn();j1=12});import"react";import{Box as QZ}from"ink";import{jsx as ZZ,jsxs as W1}from"react/jsx-runtime";function JE(t){let{t:e}=Se(),o=(t.columns??80)<60,n=e(o?"banner.yolo.narrow":"banner.yolo");return W1(QZ,{children:[ZZ(F,{name:"ask",role:"danger"}),W1(f,{name:"danger",children:[" ",n]})]})}var QE=p(()=>{"use strict";te();pt()});import"react";import{Box as eee}from"ink";import{jsx as G1,jsxs as ZE}from"react/jsx-runtime";function Cg(t){let{t:e}=Se();if(t.mode==="unsafe")return G1(JE,{...t.columns!==void 0?{columns:t.columns}:{}});let o=tee[t.mode],n=(t.columns??80)<60;return ZE(eee,{children:[G1(F,{name:o.glyph,role:o.role}),ZE(f,{name:o.role,children:[" ",e("mode.label")," ",o.word]}),!n&&ZE(f,{name:"fgDim",children:[" \xB7 ",e(o.caption)]})]})}var tee,z1=p(()=>{"use strict";te();QE();pt();tee={plan:{glyph:"planMode",role:"depth",word:"PLAN",caption:"mode.plan.caption"},normal:{glyph:"normalMode",role:"fgDim",word:"NORMAL",caption:"mode.normal.caption"},unsafe:{glyph:"ask",role:"danger",word:"YOLO",caption:"mode.unsafe.caption"}}});import"react";import{jsx as eA}from"react/jsx-runtime";function ym(t){let{t:e}=Se();if(t.armedExit===!0)return eA(f,{name:"accent",children:e("hints.ctrlcAgain")});let o=e(oee[t.state]),n=t.elapsed!==void 0&&t.elapsed!==""&&nee.has(t.state);return t.suggesting===!0&&t.state==="idle"?eA(f,{name:"fgDim",children:`${o} \xB7 ${e("hints.suggest")}`}):eA(f,{name:"fgDim",children:n?`${o} \xB7 ${t.elapsed}`:o})}var oee,nee,K1=p(()=>{"use strict";te();pt();oee={idle:"hints.idle",thinking:"hints.thinking",streaming:"hints.streaming",ask:"hints.ask","ask-destructive":"hints.askDestructive",slash:"hints.slash",palette:"hints.palette",budget:"hints.budget",error:"hints.error","work-subagents":"hints.workSubagents","idle-subagents":"hints.idleSubagents"},nee=new Set(["thinking","streaming","work-subagents"])});import"react";import{Box as tA}from"ink";import{jsx as oA,jsxs as nA}from"react/jsx-runtime";function Tg(t){return nA(tA,{flexDirection:"column",children:[nA(tA,{children:[oA(F,{name:"clock",role:"depth"}),nA(f,{name:"depth",children:[" ",t.title]})]}),oA(tA,{flexDirection:"column",paddingLeft:2,children:t.lines.map((e,o)=>oA(f,{name:"fgDim",children:e},o))})]})}var Y1=p(()=>{"use strict";te()});import"react";import{Box as la,Text as ree}from"ink";import{jsx as Un,jsxs as xn}from"react/jsx-runtime";function rA(t){let e=Q();if(t.status==="running"){let a=hr(t.liveOutput??"",_l).replace(/\n+$/,""),l=t.columns&&t.columns>0?t.columns-see:0,{text:c,hidden:u}=ns(a,t.maxLines,l);return xn(la,{flexDirection:"column",paddingLeft:2,children:[Un(oa,{glyph:"toolInflight",glyphRole:"depth",label:`rodando $ ${t.command}`,...t.frame!==void 0?{frame:t.frame}:{}}),c.length>0&&xn(la,{flexDirection:"column",paddingLeft:2,children:[u>0&&xn(f,{name:"fgDim",children:["\u2026 (",u," linhas acima)"]}),c.split(`
|
|
628
628
|
`).map((m,d)=>Un(la,{children:Un(f,{name:"fgDim",children:m})},d))]})]})}let o=t.status==="err",n=t.status==="blocked",r=n?"bloqueado":o?"erro":"ok",s=t.output??"";return xn(la,{flexDirection:"column",paddingLeft:2,children:[xn(la,{children:[n?Un(F,{name:"err",role:"danger"}):Un(F,{name:"tool",role:"depth"}),xn(f,{name:"fg",children:[" ",iee," "]}),Un(f,{name:"accent",children:"$ "}),Un(f,{name:"fg",children:t.command}),Un(ree,{children:" "}),n||o?Un(F,{name:"err",role:"danger"}):Un(F,{name:"ok",role:"success"}),xn(f,{name:n||o?"danger":"fgDim",children:[" ",r]})]}),s.trim()!==""&&xn(la,{flexDirection:"column",paddingLeft:2,children:[xn(f,{name:"fgDim",children:[e.box.topLeft," sa\xEDda ",e.box.horizontal.repeat(8)]}),s.split(`
|
|
629
|
-
`).map((i,a)=>xn(la,{children:[xn(f,{name:"fgDim",children:[e.box.vertical," "]}),Un(f,{name:n||o?"danger":"fg",children:i})]},a)),xn(f,{name:"fgDim",children:[e.box.bottomLeft," ",r," ",e.box.horizontal.repeat(4)]})]})]})}var see,iee,V1=p(()=>{"use strict";te();ug();Dt();ta();see=4,iee="shell"});import"react";import{Box as sA,Text as X1}from"ink";import{jsx as Sr,jsxs as Ul}from"react/jsx-runtime";function aee(t){if(t.status==="running")return"rodando";if(t.status==="done")return"pronto";if(t.status==="cancelled")return"parado";switch(t.stop){case"timeout":return"timeout";case"limit":return"teto";default:return"falhou"}}function lee(t){let e=t.child,o=aee(e),n=e.status==="running"?Sr(F,{name:"clock",role:"depth"}):e.status==="done"?Sr(F,{name:"ok",role:"success"}):e.status==="cancelled"?Sr(F,{name:"err",role:"fgDim"}):Sr(F,{name:"err",role:"danger"}),r=e.status==="done"?"success":e.status==="fail"?"danger":"fgDim";return Ul(sA,{paddingLeft:2,children:[Ul(f,{name:"accent",children:["[",e.label,"]"]}),Sr(X1,{children:" "}),n,Sr(X1,{children:" "}),Sr(f,{name:r,children:o}),e.summary!==void 0&&e.status!=="running"&&Ul(f,{name:"fgDim",children:[" \xB7 ",e.summary]})]})}function iA(t){let e=t.childrenStatus,o=e.length,n=e.filter(s=>s.status==="running").length,r=n>0?` (${n} rodando)`:"";return Ul(sA,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[Ul(sA,{children:[Sr(F,{name:"subagents",role:"accent"}),Ul(f,{name:"fg",children:[" ",o," sub-agente",o===1?"":"s",":"]}),r!==""&&Sr(f,{name:"fgDim",children:r})]}),e.map((s,i)=>Sr(lee,{child:s},`${s.label}:${i}`))]})}var J1=p(()=>{"use strict";te()});import"react";import{Box as jl,Text as aA}from"ink";import{jsx as No,jsxs as ei}from"react/jsx-runtime";function cee(t){switch(t){case"pending":return"testando";case"ok":return"ok";case"warn":return"aviso";default:return"falha"}}function uee(t){let e=Z(),o=t.check,n=cee(o.status),r,s;if(o.status==="pending"){let i=e.spinnerFrames,a=e.animate?i[(t.frame??0)%i.length]:e.glyph("clock");r=No(f,{name:"accent",children:a}),s="fgDim"}else o.status==="ok"?(r=No(F,{name:"ok",role:"success"}),s="success"):o.status==="warn"?(r=No(F,{name:"ask",role:"accent"}),s="accent"):(r=No(F,{name:"err",role:"danger"}),s="danger");return ei(jl,{flexDirection:"column",children:[ei(jl,{children:[No(aA,{children:" "}),r,No(aA,{children:" "}),ei(f,{name:"fg",children:[o.label,":"]}),No(aA,{children:" "}),o.detail!==void 0&&o.detail!==""?No(f,{name:s,children:o.detail}):ei(f,{name:s,children:[n,"\u2026"]})]}),o.status!=="pending"&&o.status!=="ok"&&o.fix!==void 0&&No(jl,{paddingLeft:4,children:ei(f,{name:"fgDim",children:["\u2192 ",o.fix]})})]})}function lA(t){let e=t.checks,o=e.filter(s=>s.status==="pending").length,n=o>0?` (${o} testando)`:"",r=t.frame??0;return ei(jl,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[ei(jl,{children:[No(F,{name:"clock",role:"accent"}),No(f,{name:"fg",children:" doctor \u2014 diagn\xF3stico"}),n!==""&&No(f,{name:"fgDim",children:n})]}),e.map(s=>No(uee,{check:s,frame:r},s.id)),t.summary!==void 0&&No(jl,{paddingTop:1,children:ei(f,{name:"fgDim",children:["resumo: ",t.summary]})})]})}var Q1=p(()=>{"use strict";te()});import"react";import{Box as fo,Text as Dg}from"ink";import{jsx as Ne,jsxs as mt}from"react/jsx-runtime";function Z1(t){switch(t){case"done":return"success";case"cancelled":return"fgDim";case"failed":return"danger";default:return"accent"}}function uA(t){let e=[`${Xt(t.tokens)} tokens`];return t.toolCalls>0&&e.push(`${t.toolCalls} tools`),e.push(pn(t.durationMs)),e.join(" \xB7 ")}function dee(t){let e=t.node,o=e.kind==="root"?0:2,n=t.focused?"\u25B8":" ";return mt(fo,{paddingLeft:o,children:[mt(f,{name:t.focused?"accent":"fgDim",children:[n," "]}),mt(f,{name:"accent",children:["[",e.label,"]"]}),Ne(Dg,{children:" "}),Ne(f,{name:Z1(e.phase),children:cA[e.phase]}),mt(f,{name:"fgDim",children:[" \xB7 ",uA(e.accounting)]})]})}function mee(t){let{t:e}=Se(),o=t.progress,n=o.max>1,r=o.subcyclesTotal>0,s=`${e("flowtree.subcycles")} ${o.subcyclesDone}/${o.subcyclesTotal}`;return n?mt(fo,{flexDirection:"column",children:[Ne(fo,{children:mt(f,{name:"accent",children:["\u21BB ",e("flowtree.cycle")," ",o.iteration,"/",o.max]})}),mt(fo,{paddingLeft:2,children:[Ne(f,{name:"fgDim",children:"\u2514 "}),r&&mt(f,{name:"fgDim",children:[s," \xB7 "]}),mt(f,{name:"accent",children:[e("flowtree.turn")," ",o.iteration]})]})]}):mt(fo,{children:[mt(f,{name:"accent",children:["\u21BB ",e("flowtree.cycle")]}),r&&mt(f,{name:"fgDim",children:[" \xB7 ",s]})]})}function fee(t){let e=Math.max(1,t.maxRows??10),o=t.columns,n=o!==void 0&&o>0?i=>{let l=(i.kind==="root"?0:2)+ve(` [${i.label}] ${cA[i.phase]} \xB7 ${uA(i.accounting)}`);return Math.max(1,Math.ceil(l/o))}:void 0,{start:r,slice:s}=xr(t.overview,t.selected,e,n);return mt(fo,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[t.cycleProgress!==void 0&&Ne(mee,{progress:t.cycleProgress}),mt(fo,{children:[Ne(F,{name:"subagents",role:"accent"}),Ne(f,{name:"fg",children:" \xE1rvore de fluxos \u2014 ver \xB7 parar \xB7 interagir"})]}),s.map((i,a)=>Ne(dee,{node:i,focused:r+a===t.selected},i.id)),t.overview.length>s.length&&Ne(fo,{children:mt(f,{name:"fgDim",children:[" \u2026 ",t.overview.length-s.length," n\xF3s a mais (\u2191\u2193 rola)"]})}),Ne(fo,{paddingTop:1,children:Ne(f,{name:"fgDim",children:"\u2191\u2193 navega \xB7 enter: ver \xB7 p: parar este \xB7 P: parar todos \xB7 i: interagir \xB7 esc: fecha"})})]})}function pee(t){let e=t.activity,o=[];return e.durationMs!==void 0&&o.push(pn(e.durationMs)),(e.added!==void 0||e.removed!==void 0)&&o.push(`+${e.added??0}/\u2212${e.removed??0}`),e.tokens!==void 0&&o.push(`${Xt(e.tokens)} tok`),mt(fo,{flexDirection:"column",paddingLeft:2,children:[mt(fo,{children:[e.running?Ne(F,{name:"clock",role:"depth"}):e.ok?Ne(F,{name:"ok",role:"success"}):Ne(F,{name:"err",role:"danger"}),Ne(Dg,{children:" "}),Ne(f,{name:"fg",children:e.tool}),e.target!==""&&mt(f,{name:"fgDim",children:[" ",e.target]}),Ne(Dg,{children:" "}),Ne(f,{name:e.running?"fgDim":e.ok?"success":"danger",children:e.summary&&e.summary!==""?e.summary:e.running?"rodando":e.ok?"ok":"erro"}),o.length>0&&mt(f,{name:"fgDim",children:[" \xB7 ",o.join(" \xB7 ")]})]}),e.running&&e.tail!==void 0&&e.tail!==""&&Ne(fo,{paddingLeft:4,children:Ne(f,{name:"fgDim",children:e.tail})})]})}function hee(t){let e=t.node;return mt(fo,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[mt(fo,{children:[Ne(F,{name:"subagents",role:"accent"}),Ne(f,{name:"fg",children:" "}),mt(f,{name:"accent",children:["[",e.label,"]"]}),Ne(Dg,{children:" "}),Ne(f,{name:Z1(e.phase),children:cA[e.phase]}),mt(f,{name:"fgDim",children:[" \xB7 ",uA(e.accounting)]})]}),e.recent.length===0?Ne(fo,{paddingLeft:2,children:Ne(f,{name:"fgDim",children:"sem atividade recente."})}):e.recent.map((o,n)=>Ne(pee,{activity:o},`${o.tool}:${n}`)),Ne(fo,{paddingTop:1,children:Ne(f,{name:"fgDim",children:"p: parar este \xB7 i: interagir \xB7 esc/enter: volta \xE0 \xE1rvore"})})]})}function dA(t){return t.drillIn?Ne(hee,{node:t.drillIn}):Ne(fee,{...t})}var cA,eB=p(()=>{"use strict";te();hn();Dt();pt();$l();cA={thinking:"pensando",tool:"rodando tool",asking:"aguardando confirma\xE7\xE3o",done:"conclu\xEDdo",cancelled:"parado",failed:"falhou"}});function mA({onlyFirst:t=!1}={}){let r="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(r,t?void 0:"g")}var tB=p(()=>{});function bm(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return!t.includes("\x1B")&&!t.includes("\x9B")?t:t.replace(gee,"")}var gee,fA=p(()=>{tB();gee=mA()});var oB,nB,rB,sB,iB,aB,pA,lB=p(()=>{oB=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],nB=12288,rB=65510,sB=[12288,12288,65281,65376,65504,65510],iB=4352,aB=262141,pA=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141]});var _g,cB=p(()=>{_g=(t,e)=>{let o=0,n=Math.floor(t.length/2)-1;for(;o<=n;){let r=Math.floor((o+n)/2),s=r*2;if(e<t[s])n=r-1;else if(e>t[s+1])o=r+1;else return!0}return!1}});function xee(t){let e=t[0],o=t[1];for(let n=0;n<t.length;n+=2){let r=t[n],s=t[n+1];if(uB>=r&&uB<=s)return[r,s];s-r>o-e&&(e=r,o=s)}return[e,o]}var uB,vee,kee,dB,mB,fB,pB=p(()=>{lB();cB();uB=19968,[vee,kee]=xee(pA);dB=t=>t<161||t>1114109?!1:_g(oB,t),mB=t=>t<nB||t>rB?!1:_g(sB,t),fB=t=>t>=vee&&t<=kee?!0:t<iB||t>aB?!1:_g(pA,t)});function See(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function hB(t,{ambiguousAsWide:e=!1}={}){return See(t),mB(t)||fB(t)||e&&dB(t)?2:1}var gB=p(()=>{pB()});var bB=N8((sRe,yB)=>{yB.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});function ca(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:o=!0,countAnsiEscapeCodes:n=!1}=e;if(n||(t=bm(t)),t.length===0)return 0;let r=0,s={ambiguousAsWide:!o};for(let{segment:i}of wee.segment(t)){let a=i.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!Eee.test(i)){if((0,vB.default)().test(i)){r+=2;continue}r+=hB(a,s)}}return r}var vB,wee,Eee,kB=p(()=>{fA();gB();vB=B8(bB(),1),wee=new Intl.Segmenter,Eee=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u")});function Tee(){let t=new Map;for(let[e,o]of Object.entries(it)){for(let[n,r]of Object.entries(o))it[n]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},o[n]=it[n],t.set(r[0],r[1]);Object.defineProperty(it,e,{value:o,enumerable:!1})}return Object.defineProperty(it,"codes",{value:t,enumerable:!1}),it.color.close="\x1B[39m",it.bgColor.close="\x1B[49m",it.color.ansi=xB(),it.color.ansi256=SB(),it.color.ansi16m=wB(),it.bgColor.ansi=xB(10),it.bgColor.ansi256=SB(10),it.bgColor.ansi16m=wB(10),Object.defineProperties(it,{rgbToAnsi256:{value(e,o,n){return e===o&&o===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(o/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let o=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!o)return[0,0,0];let[n]=o;n.length===3&&(n=[...n].map(s=>s+s).join(""));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>it.rgbToAnsi256(...it.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let o,n,r;if(e>=232)o=((e-232)*10+8)/255,n=o,r=o;else{e-=16;let a=e%36;o=Math.floor(e/36)/5,n=Math.floor(a/6)/5,r=a%6/5}let s=Math.max(o,n,r)*2;if(s===0)return 30;let i=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(o));return s===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,o,n)=>it.ansi256ToAnsi(it.rgbToAnsi256(e,o,n)),enumerable:!1},hexToAnsi:{value:e=>it.ansi256ToAnsi(it.hexToAnsi256(e)),enumerable:!1}}),it}var xB,SB,wB,it,cRe,Aee,Cee,uRe,Dee,EB,AB=p(()=>{xB=(t=0)=>e=>`\x1B[${e+t}m`,SB=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,wB=(t=0)=>(e,o,n)=>`\x1B[${38+t};2;${e};${o};${n}m`,it={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},cRe=Object.keys(it.modifier),Aee=Object.keys(it.color),Cee=Object.keys(it.bgColor),uRe=[...Aee,...Cee];Dee=Tee(),EB=Dee});function yA(t,e,o){return String(t).normalize().replaceAll(`\r
|
|
629
|
+
`).map((i,a)=>xn(la,{children:[xn(f,{name:"fgDim",children:[e.box.vertical," "]}),Un(f,{name:n||o?"danger":"fg",children:i})]},a)),xn(f,{name:"fgDim",children:[e.box.bottomLeft," ",r," ",e.box.horizontal.repeat(4)]})]})]})}var see,iee,V1=p(()=>{"use strict";te();ug();Dt();ta();see=4,iee="shell"});import"react";import{Box as sA,Text as X1}from"ink";import{jsx as Sr,jsxs as Ul}from"react/jsx-runtime";function aee(t){if(t.status==="running")return"rodando";if(t.status==="done")return"pronto";if(t.status==="cancelled")return"parado";switch(t.stop){case"timeout":return"timeout";case"limit":return"teto";default:return"falhou"}}function lee(t){let e=t.child,o=aee(e),n=e.status==="running"?Sr(F,{name:"clock",role:"depth"}):e.status==="done"?Sr(F,{name:"ok",role:"success"}):e.status==="cancelled"?Sr(F,{name:"err",role:"fgDim"}):Sr(F,{name:"err",role:"danger"}),r=e.status==="done"?"success":e.status==="fail"?"danger":"fgDim";return Ul(sA,{paddingLeft:2,children:[Ul(f,{name:"accent",children:["[",e.label,"]"]}),Sr(X1,{children:" "}),n,Sr(X1,{children:" "}),Sr(f,{name:r,children:o}),e.summary!==void 0&&e.status!=="running"&&Ul(f,{name:"fgDim",children:[" \xB7 ",e.summary]})]})}function iA(t){let e=t.childrenStatus,o=e.length,n=e.filter(s=>s.status==="running").length,r=n>0?` (${n} rodando)`:"";return Ul(sA,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[Ul(sA,{children:[Sr(F,{name:"subagents",role:"accent"}),Ul(f,{name:"fg",children:[" ",o," sub-agente",o===1?"":"s",":"]}),r!==""&&Sr(f,{name:"fgDim",children:r})]}),e.map((s,i)=>Sr(lee,{child:s},`${s.label}:${i}`))]})}var J1=p(()=>{"use strict";te()});import"react";import{Box as jl,Text as aA}from"ink";import{jsx as No,jsxs as ei}from"react/jsx-runtime";function cee(t){switch(t){case"pending":return"testando";case"ok":return"ok";case"warn":return"aviso";default:return"falha"}}function uee(t){let e=Q(),o=t.check,n=cee(o.status),r,s;if(o.status==="pending"){let i=e.spinnerFrames,a=e.animate?i[(t.frame??0)%i.length]:e.glyph("clock");r=No(f,{name:"accent",children:a}),s="fgDim"}else o.status==="ok"?(r=No(F,{name:"ok",role:"success"}),s="success"):o.status==="warn"?(r=No(F,{name:"ask",role:"accent"}),s="accent"):(r=No(F,{name:"err",role:"danger"}),s="danger");return ei(jl,{flexDirection:"column",children:[ei(jl,{children:[No(aA,{children:" "}),r,No(aA,{children:" "}),ei(f,{name:"fg",children:[o.label,":"]}),No(aA,{children:" "}),o.detail!==void 0&&o.detail!==""?No(f,{name:s,children:o.detail}):ei(f,{name:s,children:[n,"\u2026"]})]}),o.status!=="pending"&&o.status!=="ok"&&o.fix!==void 0&&No(jl,{paddingLeft:4,children:ei(f,{name:"fgDim",children:["\u2192 ",o.fix]})})]})}function lA(t){let e=t.checks,o=e.filter(s=>s.status==="pending").length,n=o>0?` (${o} testando)`:"",r=t.frame??0;return ei(jl,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[ei(jl,{children:[No(F,{name:"clock",role:"accent"}),No(f,{name:"fg",children:" doctor \u2014 diagn\xF3stico"}),n!==""&&No(f,{name:"fgDim",children:n})]}),e.map(s=>No(uee,{check:s,frame:r},s.id)),t.summary!==void 0&&No(jl,{paddingTop:1,children:ei(f,{name:"fgDim",children:["resumo: ",t.summary]})})]})}var Q1=p(()=>{"use strict";te()});import"react";import{Box as fo,Text as Dg}from"ink";import{jsx as Ne,jsxs as mt}from"react/jsx-runtime";function Z1(t){switch(t){case"done":return"success";case"cancelled":return"fgDim";case"failed":return"danger";default:return"accent"}}function uA(t){let e=[`${Xt(t.tokens)} tokens`];return t.toolCalls>0&&e.push(`${t.toolCalls} tools`),e.push(pn(t.durationMs)),e.join(" \xB7 ")}function dee(t){let e=t.node,o=e.kind==="root"?0:2,n=t.focused?"\u25B8":" ";return mt(fo,{paddingLeft:o,children:[mt(f,{name:t.focused?"accent":"fgDim",children:[n," "]}),mt(f,{name:"accent",children:["[",e.label,"]"]}),Ne(Dg,{children:" "}),Ne(f,{name:Z1(e.phase),children:cA[e.phase]}),mt(f,{name:"fgDim",children:[" \xB7 ",uA(e.accounting)]})]})}function mee(t){let{t:e}=Se(),o=t.progress,n=o.max>1,r=o.subcyclesTotal>0,s=`${e("flowtree.subcycles")} ${o.subcyclesDone}/${o.subcyclesTotal}`;return n?mt(fo,{flexDirection:"column",children:[Ne(fo,{children:mt(f,{name:"accent",children:["\u21BB ",e("flowtree.cycle")," ",o.iteration,"/",o.max]})}),mt(fo,{paddingLeft:2,children:[Ne(f,{name:"fgDim",children:"\u2514 "}),r&&mt(f,{name:"fgDim",children:[s," \xB7 "]}),mt(f,{name:"accent",children:[e("flowtree.turn")," ",o.iteration]})]})]}):mt(fo,{children:[mt(f,{name:"accent",children:["\u21BB ",e("flowtree.cycle")]}),r&&mt(f,{name:"fgDim",children:[" \xB7 ",s]})]})}function fee(t){let e=Math.max(1,t.maxRows??10),o=t.columns,n=o!==void 0&&o>0?i=>{let l=(i.kind==="root"?0:2)+ve(` [${i.label}] ${cA[i.phase]} \xB7 ${uA(i.accounting)}`);return Math.max(1,Math.ceil(l/o))}:void 0,{start:r,slice:s}=xr(t.overview,t.selected,e,n);return mt(fo,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[t.cycleProgress!==void 0&&Ne(mee,{progress:t.cycleProgress}),mt(fo,{children:[Ne(F,{name:"subagents",role:"accent"}),Ne(f,{name:"fg",children:" \xE1rvore de fluxos \u2014 ver \xB7 parar \xB7 interagir"})]}),s.map((i,a)=>Ne(dee,{node:i,focused:r+a===t.selected},i.id)),t.overview.length>s.length&&Ne(fo,{children:mt(f,{name:"fgDim",children:[" \u2026 ",t.overview.length-s.length," n\xF3s a mais (\u2191\u2193 rola)"]})}),Ne(fo,{paddingTop:1,children:Ne(f,{name:"fgDim",children:"\u2191\u2193 navega \xB7 enter: ver \xB7 p: parar este \xB7 P: parar todos \xB7 i: interagir \xB7 esc: fecha"})})]})}function pee(t){let e=t.activity,o=[];return e.durationMs!==void 0&&o.push(pn(e.durationMs)),(e.added!==void 0||e.removed!==void 0)&&o.push(`+${e.added??0}/\u2212${e.removed??0}`),e.tokens!==void 0&&o.push(`${Xt(e.tokens)} tok`),mt(fo,{flexDirection:"column",paddingLeft:2,children:[mt(fo,{children:[e.running?Ne(F,{name:"clock",role:"depth"}):e.ok?Ne(F,{name:"ok",role:"success"}):Ne(F,{name:"err",role:"danger"}),Ne(Dg,{children:" "}),Ne(f,{name:"fg",children:e.tool}),e.target!==""&&mt(f,{name:"fgDim",children:[" ",e.target]}),Ne(Dg,{children:" "}),Ne(f,{name:e.running?"fgDim":e.ok?"success":"danger",children:e.summary&&e.summary!==""?e.summary:e.running?"rodando":e.ok?"ok":"erro"}),o.length>0&&mt(f,{name:"fgDim",children:[" \xB7 ",o.join(" \xB7 ")]})]}),e.running&&e.tail!==void 0&&e.tail!==""&&Ne(fo,{paddingLeft:4,children:Ne(f,{name:"fgDim",children:e.tail})})]})}function hee(t){let e=t.node;return mt(fo,{flexDirection:"column",paddingLeft:2,paddingBottom:1,children:[mt(fo,{children:[Ne(F,{name:"subagents",role:"accent"}),Ne(f,{name:"fg",children:" "}),mt(f,{name:"accent",children:["[",e.label,"]"]}),Ne(Dg,{children:" "}),Ne(f,{name:Z1(e.phase),children:cA[e.phase]}),mt(f,{name:"fgDim",children:[" \xB7 ",uA(e.accounting)]})]}),e.recent.length===0?Ne(fo,{paddingLeft:2,children:Ne(f,{name:"fgDim",children:"sem atividade recente."})}):e.recent.map((o,n)=>Ne(pee,{activity:o},`${o.tool}:${n}`)),Ne(fo,{paddingTop:1,children:Ne(f,{name:"fgDim",children:"p: parar este \xB7 i: interagir \xB7 esc/enter: volta \xE0 \xE1rvore"})})]})}function dA(t){return t.drillIn?Ne(hee,{node:t.drillIn}):Ne(fee,{...t})}var cA,eB=p(()=>{"use strict";te();hn();Dt();pt();$l();cA={thinking:"pensando",tool:"rodando tool",asking:"aguardando confirma\xE7\xE3o",done:"conclu\xEDdo",cancelled:"parado",failed:"falhou"}});function mA({onlyFirst:t=!1}={}){let r="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(r,t?void 0:"g")}var tB=p(()=>{});function bm(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return!t.includes("\x1B")&&!t.includes("\x9B")?t:t.replace(gee,"")}var gee,fA=p(()=>{tB();gee=mA()});var oB,nB,rB,sB,iB,aB,pA,lB=p(()=>{oB=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],nB=12288,rB=65510,sB=[12288,12288,65281,65376,65504,65510],iB=4352,aB=262141,pA=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141]});var _g,cB=p(()=>{_g=(t,e)=>{let o=0,n=Math.floor(t.length/2)-1;for(;o<=n;){let r=Math.floor((o+n)/2),s=r*2;if(e<t[s])n=r-1;else if(e>t[s+1])o=r+1;else return!0}return!1}});function xee(t){let e=t[0],o=t[1];for(let n=0;n<t.length;n+=2){let r=t[n],s=t[n+1];if(uB>=r&&uB<=s)return[r,s];s-r>o-e&&(e=r,o=s)}return[e,o]}var uB,vee,kee,dB,mB,fB,pB=p(()=>{lB();cB();uB=19968,[vee,kee]=xee(pA);dB=t=>t<161||t>1114109?!1:_g(oB,t),mB=t=>t<nB||t>rB?!1:_g(sB,t),fB=t=>t>=vee&&t<=kee?!0:t<iB||t>aB?!1:_g(pA,t)});function See(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function hB(t,{ambiguousAsWide:e=!1}={}){return See(t),mB(t)||fB(t)||e&&dB(t)?2:1}var gB=p(()=>{pB()});var bB=N8((dRe,yB)=>{yB.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});function ca(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:o=!0,countAnsiEscapeCodes:n=!1}=e;if(n||(t=bm(t)),t.length===0)return 0;let r=0,s={ambiguousAsWide:!o};for(let{segment:i}of wee.segment(t)){let a=i.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!Eee.test(i)){if((0,vB.default)().test(i)){r+=2;continue}r+=hB(a,s)}}return r}var vB,wee,Eee,kB=p(()=>{fA();gB();vB=B8(bB(),1),wee=new Intl.Segmenter,Eee=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u")});function Tee(){let t=new Map;for(let[e,o]of Object.entries(it)){for(let[n,r]of Object.entries(o))it[n]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},o[n]=it[n],t.set(r[0],r[1]);Object.defineProperty(it,e,{value:o,enumerable:!1})}return Object.defineProperty(it,"codes",{value:t,enumerable:!1}),it.color.close="\x1B[39m",it.bgColor.close="\x1B[49m",it.color.ansi=xB(),it.color.ansi256=SB(),it.color.ansi16m=wB(),it.bgColor.ansi=xB(10),it.bgColor.ansi256=SB(10),it.bgColor.ansi16m=wB(10),Object.defineProperties(it,{rgbToAnsi256:{value(e,o,n){return e===o&&o===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(o/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let o=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!o)return[0,0,0];let[n]=o;n.length===3&&(n=[...n].map(s=>s+s).join(""));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>it.rgbToAnsi256(...it.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let o,n,r;if(e>=232)o=((e-232)*10+8)/255,n=o,r=o;else{e-=16;let a=e%36;o=Math.floor(e/36)/5,n=Math.floor(a/6)/5,r=a%6/5}let s=Math.max(o,n,r)*2;if(s===0)return 30;let i=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(o));return s===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,o,n)=>it.ansi256ToAnsi(it.rgbToAnsi256(e,o,n)),enumerable:!1},hexToAnsi:{value:e=>it.ansi256ToAnsi(it.hexToAnsi256(e)),enumerable:!1}}),it}var xB,SB,wB,it,hRe,Aee,Cee,gRe,Dee,EB,AB=p(()=>{xB=(t=0)=>e=>`\x1B[${e+t}m`,SB=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,wB=(t=0)=>(e,o,n)=>`\x1B[${38+t};2;${e};${o};${n}m`,it={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},hRe=Object.keys(it.modifier),Aee=Object.keys(it.color),Cee=Object.keys(it.bgColor),gRe=[...Aee,...Cee];Dee=Tee(),EB=Dee});function yA(t,e,o){return String(t).normalize().replaceAll(`\r
|
|
630
630
|
`,`
|
|
631
631
|
`).split(`
|
|
632
632
|
`).map(n=>Lee(n,e,o)).join(`
|
|
@@ -648,8 +648,8 @@ Notas:
|
|
|
648
648
|
`)};break}case"bang":{if(t.status!=="running"&&t.output!==void 0&&e>=5)return{...t,output:n(t.output.split(`
|
|
649
649
|
`),4,o.columns-vm,2).join(`
|
|
650
650
|
`)};break}default:break}return{kind:"note",title:"\u2026",lines:[bA(Hl(t,o))]}}function NB(t,e,o,n){let r=t.length;if(r===0||e<=0)return{start:0,end:0,hiddenAbove:0,hiddenBelow:0,blocks:[],usedLines:0};let s=Math.min(Math.max(0,Math.trunc(o)),r-1),i=r-s,a=0,l=i;for(let c=i-1;c>=0;c-=1){let u=Hl(t[c],n);if(a+u>e)break;a+=u,l=c}if(l===i){let c=Iee(t[i-1],e,n),u=Hl(c,n);return u<=e?{start:i-1,end:i,hiddenAbove:i-1,hiddenBelow:r-i,blocks:[c],usedLines:u}:{start:i,end:i,hiddenAbove:i,hiddenBelow:r-i,blocks:[],usedLines:0}}return{start:l,end:i,hiddenAbove:l,hiddenBelow:r-i,blocks:t.slice(l,i),usedLines:a}}var jn,vm,OB,MB,LB,vA=p(()=>{"use strict";RB();P();Dt();ta();Zd();jn=2,vm=4,OB=7,MB=6,LB=10});import"react";import{Box as Hn,Text as ua}from"ink";import{Fragment as $B,jsx as Je,jsxs as $t}from"react/jsx-runtime";function Nee(t){switch(t){case"done":return"success";case"cancelled":return"fgDim";case"failed":return"danger";default:return"accent"}}function $ee(t){return t.kind==="spawn"?{glyph:"subagents",role:"depth"}:t.kind==="broker"?{glyph:"broker",role:"depth"}:t.kind==="deny"?{glyph:"err",role:"danger"}:t.kind==="ask"?{glyph:"ask",role:"accent"}:t.status==="running"?{glyph:"toolInflight",role:"fgDim"}:t.status==="err"?{glyph:"err",role:"danger"}:{glyph:"tool",role:"success"}}function Pg(t,e){return e<=1?t:Ji(t,e)}function UB(t){let e=[];return(t.added!==void 0||t.removed!==void 0)&&e.push(`+${t.added??0} \u2212${t.removed??0}`),t.durationMs!==void 0&&e.push(pn(t.durationMs)),t.tokens!==void 0&&e.push(`${Xt(t.tokens)} tok`),e.join(" \xB7 ")}function jB(t){let e=[Xt(t.tokens)];return t.toolCalls>0&&e.push(`${t.toolCalls} tools`),e.push(pn(t.durationMs)),e.join(" \xB7 ")}function Bee(t){return t==="running"?"fgDim":t==="err"?"danger":"success"}function HB(t){return t==="running"?"rodando":t==="err"?"erro":"ok"}function qB(t){let e=t.event,o=$ee(e),n=Math.max(4,t.cols-4-ve(e.label)-1),r=UB(e),s=e.summary!==void 0&&e.summary!==""?e.summary:HB(e.status);return $t(Hn,{flexDirection:"column",paddingLeft:2,children:[Je(Hn,{children:$t(ua,{wrap:"wrap",children:[Je(F,{name:o.glyph,role:o.role}),Je(ua,{children:" "}),Je(f,{name:"fg",children:e.label}),e.detail!==""&&$t(f,{name:"fgDim",children:[" ",Pg(e.detail,n)]}),Je(ua,{children:" \xB7 "}),Je(f,{name:Bee(e.status),children:s}),r!==""&&$t(f,{name:"fgDim",children:[" \xB7 ",r]})]})}),e.status==="running"&&e.tail!==void 0&&e.tail!==""&&Je(Hn,{paddingLeft:4,children:Je(f,{name:"fgDim",children:Pg(e.tail,Math.max(4,t.cols-4))})})]})}function Uee(t){let e=t.section,o=e.kind==="root"?0:1;return $t(Hn,{flexDirection:"column",paddingLeft:o,children:[$t(Hn,{children:[$t(f,{name:"fgDim",children:[e.collapsed?"\u25B6":"\u25BC"," "]}),$t(f,{name:"accent",children:["[",e.label,"]"]}),Je(ua,{children:" "}),Je(f,{name:Nee(e.phase),children:BB[e.phase]}),$t(f,{name:"fgDim",children:[" \xB7 ",jB(e)]}),e.collapsed&&Je(f,{name:"fgDim",children:" (colapsado)"})]}),!e.collapsed&&e.events.map((n,r)=>Je(qB,{event:n,cols:t.cols},`${e.id}:${r}`))]})}function jee(t){let e=[];for(let o of t)if(e.push({t:"header",section:o}),!o.collapsed)for(let n of o.events)e.push({t:"event",section:o,event:n});return e}function Hee(t,e){if(t.t==="header"){let c=t.section,u=`x [${c.label}] ${BB[c.phase]} \xB7 ${jB(c)}${c.collapsed?" (colapsado)":""}`;return Nt(u,Math.max(4,e-(c.kind==="root"?0:1)))}let o=t.event,n=Math.max(4,e-4-ve(o.label)-1),r=UB(o),s=o.summary!==void 0&&o.summary!==""?o.summary:HB(o.status),i=`x ${o.label}${o.detail!==""?` ${Pg(o.detail,n)}`:""} \xB7 ${s}${r!==""?` \xB7 ${r}`:""}`,a=Nt(i,Math.max(4,e-2)),l=o.status==="running"&&o.tail!==void 0&&o.tail!==""?1:0;return a+l}function ql(t){let e=t.columns??40,o=jee(t.sections);if(o.length===0){let h=(t.bootInfo??[]).filter(A=>A.lines.length>0),g=[];for(let A of h)g.push({key:A.title,kind:"title",text:A.title}),A.lines.forEach((T,O)=>g.push({key:`${A.title}:${O}`,kind:"line",text:T}));let b=Math.max(0,t.visibleRows-1),w=(g.length>b?[...g.slice(0,Math.max(0,b-1)),{key:"\u2026",kind:"line",text:"\u2026"}]:g).map(A=>A.kind==="title"?$t(Hn,{children:[Je(F,{name:"clock",role:"fgDim"}),Je(ua,{children:" "}),Je(f,{name:"accent",children:A.text})]},A.key):Je(Hn,{paddingLeft:2,children:Je(f,{name:"fgDim",children:Pg(A.text,Math.max(4,e-2))})},A.key));return $t(Hn,{flexDirection:"column",children:[$t(Hn,{children:[t.focused&&$t($B,{children:[Je(F,{name:"you",role:"accent"}),Je(ua,{children:" "})]}),Je(f,{name:t.focused?"accent":"fgDim",children:"LOG"}),Je(f,{name:"fgDim",children:" \xB7 sem atividade ainda"})]}),w]})}let n=Math.max(1,t.visibleRows-1),r=o.length,s=Math.max(0,r-1),i=Math.min(Math.max(0,t.scrollOffset),s),a=r-i,l=0,c=a;for(let h=a-1;h>=0;h-=1){let g=Hee(o[h],e);if(l+g>n)break;l+=g,c=h}let u=o.slice(c,a),m=c,d=r-a;return $t(Hn,{flexDirection:"column",children:[$t(Hn,{children:[t.focused&&$t($B,{children:[Je(F,{name:"you",role:"accent"}),Je(ua,{children:" "})]}),Je(f,{name:t.focused?"accent":"fgDim",children:"LOG"}),m>0&&$t(f,{name:"fgDim",children:[" \xB7 \u2191",m," acima"]}),d===0?Je(f,{name:"fgDim",children:" \xB7 \u25BC ao vivo"}):$t(f,{name:"fgDim",children:[" \xB7 \u2193",d," abaixo"]})]}),u.map((h,g)=>h.t==="header"?Je(Uee,{section:{...h.section,events:[]},cols:e},`h:${h.section.id}:${g}`):Je(qB,{event:h.event,cols:e},`e:${h.section.id}:${g}`))]})}var BB,WB=p(()=>{"use strict";te();hn();Dt();vA();tg();BB={thinking:"pensando",tool:"rodando",asking:"confirmando",done:"ok",cancelled:"parado",failed:"falhou"}});import"react";import{Box as qn,Text as wr}from"ink";import{jsx as St,jsxs as gt}from"react/jsx-runtime";function xA(t){let{score:e,running:o,startedAt:n}=t,s=(t.now??Date.now)()-n,i=hl(s);if(e.unknownFormat)return gt(qn,{flexDirection:"column",paddingLeft:2,children:[gt(qn,{children:[St(F,{name:"toolInflight",role:"depth"}),St(wr,{children:" "}),gt(f,{name:"fgDim",children:["rodando testes\u2026 ",i]})]}),St(qn,{paddingLeft:2,children:St(f,{name:"fgDim",children:"formato n\xE3o reconhecido \u2014 placar indispon\xEDvel"})})]});let a=e.total>0,l=e.passed+e.failed,c=e.failed>0?"danger":"success";return gt(qn,{flexDirection:"column",paddingLeft:2,children:[St(qn,{children:a?St(Bl,{label:`${l}/${e.total} testes`,value:l,max:e.total,role:e.failed>0?"danger":"accent",frame:t.frame??0}):St(Bl,{label:"testes em andamento",elapsedMs:s,frame:t.frame??0})}),gt(qn,{paddingLeft:1,children:[gt(f,{name:"success",children:[St(F,{name:"ok",role:"success"}),gt(wr,{children:[" ",e.passed," passaram"]})]}),St(wr,{children:" "}),gt(f,{name:c,children:[St(F,{name:e.failed>0?"err":"ok",role:c}),gt(wr,{children:[" ",e.failed," falharam"]})]}),e.total>0&&St(f,{name:"fgDim",children:gt(wr,{children:[" (total: ",e.total,")"]})}),St(f,{name:"fgDim",children:gt(wr,{children:[" ",i]})})]}),e.durationMs!==void 0&&St(qn,{paddingLeft:1,children:gt(f,{name:"fgDim",children:["dura\xE7\xE3o: ",(e.durationMs/1e3).toFixed(2),"s"]})}),e.failures.length>0&>(qn,{flexDirection:"column",paddingLeft:1,paddingTop:0,children:[gt(f,{name:"danger",children:["falhas (",Math.min(e.failures.length,e.failed),"):"]}),e.failures.slice(0,kA).map((u,m)=>gt(qn,{paddingLeft:2,children:[gt(f,{name:"danger",children:[St(F,{name:"err",role:"danger"}),gt(wr,{children:[" ",u.name]})]}),u.message!==""&&St(f,{name:"fgDim",children:gt(wr,{children:[": ",u.message.split(`
|
|
651
|
-
`)[0]?.slice(0,120)??""]})})]},m)),e.failures.length>kA&&St(qn,{paddingLeft:2,children:gt(f,{name:"fgDim",children:["\u2026 e mais ",e.failures.length-kA," falhas"]})})]}),!o&&St(qn,{paddingLeft:1,children:e.failed===0?gt(f,{name:"success",children:[St(F,{name:"ok",role:"success"}),St(wr,{children:" todos passaram"})]}):gt(f,{name:"danger",children:[St(F,{name:"err",role:"danger"}),gt(wr,{children:[" ",e.failed," falharam"]})]})})]})}var kA,GB=p(()=>{"use strict";te();XE();hn();kA=10});import"react";import{Box as qee,Text as Wee}from"ink";import{jsx as Fg,jsxs as Gee}from"react/jsx-runtime";function SA(t){let e=t.accounting,o=[`${Xt(e.tokens)} tokens`];return e.toolCalls>0&&o.push(`${e.toolCalls} tools`),o.push(pn(e.durationMs)),Gee(qee,{paddingLeft:2,children:[e.live?Fg(F,{name:"clock",role:"depth"}):Fg(F,{name:"ok",role:"success"}),Fg(Wee,{children:" "}),Fg(f,{name:"fgDim",children:o.join(" \xB7 ")})]})}var zB=p(()=>{"use strict";te();hn()});import KB from"react";import{Box as zee,Text as YB}from"ink";import{Fragment as EA,jsx as ti,jsxs as Wn}from"react/jsx-runtime";function wA(t){return t==="crit"?"danger":t==="warn"?"accent":"fgDim"}function AA(t){let e=kc(t.quota,t.now),o=Db(t.serverLimits,t.now);if(e===void 0&&o===void 0)return null;let n=e?.creditBalance,r=n===void 0&&o!==void 0;return Wn(zee,{paddingLeft:2,children:[n!==void 0&&Wn(EA,{children:[ti(f,{name:"fgDim",children:"cr\xE9dito: "}),ti(f,{name:wA(e?.maxLevel??"ok"),children:n})]}),e!==void 0&&e.segments.map((s,i)=>Wn(KB.Fragment,{children:[(i>0||n!==void 0)&&ti(f,{name:"fgDim",children:" \xB7 "}),Wn(f,{name:"fgDim",children:[s.label,": "]}),Wn(f,{name:wA(s.level),children:[s.pct,"%"]})]},`q-${s.label}`)),e?.resetText!==void 0&&Wn(EA,{children:[ti(YB,{children:" "}),Wn(f,{name:"fgDim",children:["\xB7 ",e.resetText]})]}),e!==void 0&&r&&ti(f,{name:"fgDim",children:" \xB7 "}),r&&o.segments.map((s,i)=>Wn(KB.Fragment,{children:[i>0&&ti(f,{name:"fgDim",children:" \xB7 "}),Wn(f,{name:"fgDim",children:[s.label,": "]}),ti(f,{name:wA(s.level),children:s.value})]},`s-${s.label}`)),r&&o.resetText!==void 0&&Wn(EA,{children:[ti(YB,{children:" "}),Wn(f,{name:"fgDim",children:["\xB7 ",o.resetText]})]})]})}var VB=p(()=>{"use strict";P();te()});import"react";import{jsx as Yee}from"react/jsx-runtime";function da(t){let o=Z().box.horizontal,n=Math.max(1,t.columns??80),r=t.subtle?Math.min(Kee,n):n,s=t.subtle?"fgDim":t.role??"fgDim",i=o.repeat(r);return Yee(f,{name:s,children:i})}var Kee,XB=p(()=>{"use strict";te();Kee=12});var Ig=p(()=>{"use strict";LN();Gi();$N();Hw();YN();XN();z$();X$();t1();o1();n1();r1();s1();l1();c1();g1();y1();v1();k1();A1();T1();D1();_1();R1();O1();P1();I1();$1();ug();B1();XE();em();QE();z1();K1();Y1();V1();J1();Q1();eB();WB();GB();zB();VB();XB()});import{useEffect as Vee,useState as Xee}from"react";function km(t={}){let e=t.enabled??!0,o=t.intervalMs??Jee,[n,r]=Xee(0);return Vee(()=>{if(!e)return;let s=setInterval(()=>r(i=>i+1),o);return()=>clearInterval(s)},[e,o]),e?n:0}var Jee,CA=p(()=>{"use strict";Jee=120});import{useCallback as Er,useMemo as Qee,useRef as Zee,useState as Wl}from"react";function JB(t){let[e,o]=Wl(!1),[n,r]=Wl(""),[s,i]=Wl(0),[a,l]=Wl([]),[c,u]=Wl([]),[m,d]=Wl(null),h=Zee(!1),g=Qee(()=>QS(n,a),[n,a]),b=Er(async()=>{if(!h.current){h.current=!0;try{let B=await t.fileIndex.list();l(B.filter(X=>sS(X)))}catch{l([])}}},[t.fileIndex]),y=Er(()=>{o(!0),r(""),i(0),b()},[b]),w=Er(()=>{o(!1),r(""),i(0)},[]),A=Er(B=>{r(B),i(0)},[]),T=Er(B=>{i(X=>{let oe=Math.max(0,g.length-1);return Math.min(oe,Math.max(0,X+B))})},[g.length]),O=Er(async(B,X)=>{let oe=await t.attachReader.attach(B,X!==void 0?{confirmSensitive:X}:{});return oe.kind==="rejected"?(d(`@${oe.path||B} \u2014 ${oe.reason}`),null):(d(null),u(ne=>ne.some(M=>M.path===oe.path)?ne:[...ne,{path:oe.path,item:oe.item,truncated:oe.truncated}]),oe.path)},[t.attachReader]),N=Er(async()=>{let B=g[s];return w(),B?O(B.path):null},[g,s,w,O]),G=Er(()=>{u(B=>B.length===0?B:B.slice(0,-1))},[]),V=Er(()=>u([]),[]),z=Er(()=>d(null),[]);return{open:e,query:n,selected:s,hits:g,attachments:c,notice:m,openPicker:y,closePicker:w,setQuery:A,move:T,confirm:N,removeLast:G,clear:V,dismissNotice:z,attachPath:O}}var QB=p(()=>{"use strict";Rd()});import{useCallback as To,useMemo as oi,useRef as ete,useState as $o}from"react";function ZB(t,e){return t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.family.toLowerCase().includes(e)}function eU(t){let[e,o]=$o(!1),[n,r]=$o(0),[s,i]=$o([]),[a,l]=$o(!1),[c,u]=$o(null),[m,d]=$o(!1),[h,g]=$o(""),[b,y]=$o(0),[w,A]=$o(!1),[T,O]=$o(null),[N,G]=$o(0),[V,z]=$o(!1),[B,X]=$o(""),oe=ete(!1),ne=oi(()=>Fc(),[]),[M,j]=$o([]),Ae=To(J=>{let H=J.findIndex(ue=>ue.key===t.currentTier);return H>=0?H:0},[t.currentTier]),se=To(async()=>{if(oe.current)return;oe.current=!0,l(!0);let J=async()=>{try{let ue=await t.catalog.list();ue.length===0?(i(Fn),u(!0)):(i(ue),u(!1)),r(Ae(ue.length===0?Fn:ue))}catch{i(Fn),u(!0),r(Ae(Fn))}},H=async()=>{if(!t.customModels){j([]);return}try{j(await t.customModels.list())}catch{j([])}};try{await Promise.all([J(),H()])}finally{l(!1)}},[t.catalog,t.customModels,Ae]),he=To(()=>{o(!0),d(!1),g(""),y(0),A(!1),O(null),G(0),z(!1),X(""),se()},[se]),ie=To(()=>{o(!1),d(!1),g(""),y(0),A(!1),O(null),G(0),z(!1),X("")},[]),fe=s.length,R=e&&n===fe,de=To(J=>{m||r(H=>{let ue=Math.max(0,s.length);return Math.min(ue,Math.max(0,H+J))})},[s.length,m]),ae=oi(()=>{let J=h.trim().toLowerCase();return M.filter(H=>!(w&&H.supportsTools!==!0||J!==""&&!ZB(H,J)))},[M,h,w]),Y=ae.length===0?-1:Math.min(Math.max(0,b),ae.length-1),Oe=oi(()=>{if(ae.length<=xm||Y<0)return 0;let J=Math.floor(xm/2),H=ae.length-xm;return Math.min(Math.max(0,Y-J),H)},[ae.length,Y]),yt=oi(()=>ae.slice(Oe,Oe+xm).map((J,H)=>({model:J,highlighted:Oe+H===Y})),[ae,Oe,Y]),et=oi(()=>{if(!m||Y<0)return null;let J=ae[Y];return J&&J.supportsTools===!1?J.id:null},[m,Y,ae]),Le=oi(()=>{let J=h.trim().toLowerCase();return J===""||M.length===0?[]:M.filter(H=>ZB(H,J)).slice(0,8).map(tte)},[h,M]),Rt=oi(()=>{let J=h.trim();if(J===""||M.length===0)return!1;let H=J.toLowerCase();return!M.some(ue=>ue.id.toLowerCase()===H)},[h,M]),Qo=To(J=>{m&&y(H=>{let ue=ae.length;return ue===0?0:Math.min(ue-1,Math.max(0,H+J))})},[m,ae.length]),wt=To(()=>{m&&(A(J=>!J),y(0))},[m]),Te=To(J=>{O(J),G(0),z(!1),X(""),d(!1)},[]),Et=To(()=>{if(T){if(V){let si=Ib(B);if(si===null)return null;let cs=T;return ie(),{model:cs,effort:si}}if(ne[Ra(N)]?.kind==="custom")return z(!0),X(""),null;let ue=Fb(Ra(N));if(ue===null)return null;let Ot=T;return ie(),{model:Ot,effort:ue}}if(m){let H=Y>=0?ae[Y]:void 0;if(H)return Te(H.supportsTools===void 0?{kind:"custom",model:H.id}:{kind:"custom",model:H.id,supportsTools:H.supportsTools}),null;let ue=h.trim();return ue===""||Te({kind:"custom",model:ue}),null}if(n===fe)return d(!0),g(""),y(0),A(!1),null;let J=s[n];return J&&Te({kind:"tier",key:J.key}),null},[T,V,B,ne,N,s,n,fe,m,h,ae,Y,ie,Te]),rt=To(J=>{!T||V||G(H=>Ra(H+J))},[T,V]),I=To(J=>{if(!V)return;let H=J.replace(/[\r\n\t]/g,"");H!==""&&X(ue=>ue+H)},[V]),K=To(()=>{V&&X(J=>J.slice(0,-1))},[V]),ye=To(()=>V?(z(!1),X(""),!0):T?(O(null),G(0),!0):!1,[V,T]),Ee=oi(()=>{if(!V)return null;let J=wf(B);return J.ok?null:J.reason},[V,B]),Pe=To(J=>{if(!m)return;let H=J.replace(/[\r\n\t]/g,"");H!==""&&(y(0),g(ue=>ue+H))},[m]),Fe=To(()=>{m&&(y(0),g(J=>J.slice(0,-1)))},[m]);return{open:e,selected:n,tiers:s,loading:a,usingFallback:c,customSelected:R,customInputOpen:m,customInput:h,customSuggestions:Le,customWarnOutOfCatalog:Rt,customBrowserAvailable:M.length>0,customFilteredCount:ae.length,customTotalCount:M.length,customRows:yt,customBrowseIndex:Y,customHasMoreAbove:Oe>0,customHasMoreBelow:Oe+xm<ae.length,customToolsOnly:w,customNoToolsWarning:et,openPicker:he,closePicker:ie,move:de,confirm:Et,appendCustom:Pe,backspaceCustom:Fe,browseMove:Qo,toggleToolsOnly:wt,effortStepOpen:T!==null,effortOptions:ne,effortSelected:Ra(N),currentEffort:t.currentEffort,effortCustomOpen:V,effortCustomInput:B,effortCustomWarn:Ee,effortMove:rt,appendEffortCustom:I,backspaceEffortCustom:K,backFromEffort:ye}}function tte(t){let e=[t.name,t.family].map(o=>o.trim()).filter(o=>o!=="");return e.length>0?`${t.id} \xB7 ${e.join(" \xB7 ")}`:t.id}var xm,tU=p(()=>{"use strict";P();Vr();xm=10});import{useCallback as Ng,useState as TA}from"react";function oU(t){let e=[];e.push({kind:"mode",mode:t.mode,actionable:!0});for(let o of tf)e.push({kind:"safe-tool",tool:o,decision:t.effectiveSafeDefault(o),actionable:!0});for(let o of t.sessionGrants.list())e.push({kind:"grant",grantKey:o,actionable:!0});for(let o of Vy)e.push({kind:"locked",category:o,actionable:!1});return e}function nU(t){let[e,o]=TA(!1),[n,r]=TA(0),[s,i]=TA(0),a=oU(t),l=Ng(()=>{o(!0),r(0),i(d=>d+1)},[]),c=Ng(()=>{o(!1)},[]),u=Ng(d=>{r(h=>{let g=Math.max(0,a.length-1);return Math.min(g,Math.max(0,h+d))})},[a.length]),m=Ng(()=>{let d=a[n];if(!(!d||!d.actionable)){switch(d.kind){case"mode":t.setMode(dw(t.mode));break;case"grant":t.sessionGrants.revoke(d.grantKey);break;case"safe-tool":{let h=d.decision==="allow"?"ask":"allow";t.setSafeToolDefault(d.tool,h);break}}i(h=>h+1),r(h=>Math.min(h,Math.max(0,oU(t).length-1)))}},[a,n,t]);return{open:e,selected:n,rows:a,mode:t.mode,openPanel:l,closePanel:c,move:u,act:m}}var rU=p(()=>{"use strict";P();mw()});import{useCallback as $g,useState as sU}from"react";function iU(t){let e=Ko.findIndex(o=>o.name===t);return e>=0?e:0}function aU(t){let[e,o]=sU(!1),[n,r]=sU(()=>iU(t.currentTheme)),s=$g(()=>{r(iU(t.currentTheme)),o(!0)},[t.currentTheme]),i=$g(()=>{o(!1)},[]),a=$g(c=>{r(u=>{let m=Math.max(0,Ko.length-1);return Math.min(m,Math.max(0,u+c))})},[]),l=$g(()=>{let c=Ko[n];return o(!1),c?c.name:null},[n]);return{open:e,selected:n,themes:Ko,openPicker:s,closePicker:i,move:a,confirm:l}}var lU=p(()=>{"use strict";Rs()});import{useCallback as Bg,useState as cU}from"react";function uU(t){let e=Yt.findIndex(o=>o.code===t);return e>=0?e:0}function dU(t){let[e,o]=cU(!1),[n,r]=cU(()=>uU(t.currentLang)),s=Bg(()=>{r(uU(t.currentLang)),o(!0)},[t.currentLang]),i=Bg(()=>{o(!1)},[]),a=Bg(c=>{r(u=>{let m=Math.max(0,Yt.length-1);return Math.min(m,Math.max(0,u+c))})},[]),l=Bg(()=>{let c=Yt[n];return o(!1),c?c.code:null},[n]);return{open:e,selected:n,langs:Yt,openPicker:s,closePicker:i,move:a,confirm:l}}var mU=p(()=>{"use strict";pt()});function Ug(t,e=Sn){let o=t.trim().toLowerCase();if(o!=="")return e.find(n=>n.name.toLowerCase()===o)}function fU(t,e=Sn){if(t.length===0)return e;let o=new Map(e.map(s=>[s.name.toLowerCase(),s])),n=new Set,r=[];for(let s of t){let i=s.name.trim();if(i==="")continue;let a=i.toLowerCase();if(n.has(a))continue;n.add(a);let l=o.get(a);r.push(l?{...l,name:i}:{name:i,label:ote(i),summary:"cadastrado no broker"})}return r.sort((s,i)=>s.isDefault&&!i.isDefault?-1:i.isDefault&&!s.isDefault?1:s.name.localeCompare(i.name)),r}function ote(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Sn,jg=p(()=>{"use strict";Sn=[{name:"openrouter",label:"OpenRouter",summary:"gateway multi-provider (padr\xE3o do broker)",isDefault:!0},{name:"deepseek",label:"DeepSeek",summary:"API direta da DeepSeek"}]});import{useCallback as Sm,useRef as nte,useState as wm}from"react";function Em(t,e){if(e===void 0)return 0;let o=t.findIndex(n=>n.name.toLowerCase()===e.toLowerCase());return o>=0?o:0}function pU(t){let[e,o]=wm(!1),[n,r]=wm(Sn),[s,i]=wm(()=>Em(Sn,t.currentProvider)),[a,l]=wm(!1),[c,u]=wm(null),m=nte(!1),d=Sm(async()=>{if(!m.current){if(m.current=!0,!t.providersClient){r(Sn),u(!0),i(Em(Sn,t.currentProvider));return}l(!0);try{let w=await t.providersClient.list(),A=fU(w),T=w.length===0;r(A),u(T),i(Em(A,t.currentProvider))}catch{r(Sn),u(!0),i(Em(Sn,t.currentProvider))}finally{l(!1)}}},[t.providersClient,t.currentProvider]),h=Sm(()=>{i(Em(n,t.currentProvider)),o(!0),d()},[t.currentProvider,n,d]),g=Sm(()=>{o(!1)},[]),b=Sm(w=>{i(A=>{let T=Math.max(0,n.length-1);return Math.min(T,Math.max(0,A+w))})},[n.length]),y=Sm(()=>{let w=n[s];return o(!1),w?w.name:null},[n,s]);return{open:e,selected:s,providers:n,loading:a,usingFallback:c,openPicker:h,closePicker:g,move:b,confirm:y}}var hU=p(()=>{"use strict";jg()});import{useCallback as Hg,useState as DA}from"react";function gU(t){let[e,o]=DA(!1),[n,r]=DA(0),[s,i]=DA([]),a=Hg(()=>{i(LE(t.store,t.limit??ME)),r(0),o(!0)},[t.store,t.limit]),l=Hg(()=>{o(!1)},[]),c=Hg(m=>{r(d=>{let h=Math.max(0,s.length-1);return Math.min(h,Math.max(0,d+m))})},[s.length]),u=Hg(()=>{let m=s[n];return o(!1),m?m.id:null},[s,n]);return{open:e,selected:n,sessions:s,openPicker:a,closePicker:l,move:c,confirm:u}}var yU=p(()=>{"use strict";vg()});import{useCallback as Am,useState as qg}from"react";function bU(t){let[e,o]=qg("closed"),[n,r]=qg(0),[s,i]=qg([]),[a,l]=qg(0),c=Am(()=>{let g=[];try{g=C1(t.source.list(),t.limit??30)}catch{g=[]}i(g),r(0),l(0),o("list")},[t.source,t.limit]),u=Am(()=>{o("closed")},[]),m=Am(g=>{r(b=>{let y=e==="action"?xg.length:s.length,w=Math.max(0,y-1);return Math.min(w,Math.max(0,b+g))})},[e,s.length]),d=Am(()=>{if(e==="list")return s.length===0||(l(n),r(0),o("action")),null;if(e==="action"){let g=s[a],b=xg[n];return o("closed"),!g||!b?null:{checkpointId:g.id,action:b}}return null},[e,s,n,a]),h=Am(()=>{if(e==="action"){r(a),o("list");return}o("closed")},[e,a]);return{phase:e,open:e!=="closed",selected:n,checkpoints:s,actions:xg,target:e==="action"?s[a]:void 0,openPicker:c,closePicker:u,move:m,confirm:d,back:h}}var vU=p(()=>{"use strict";FE()});import{useCallback as Cm,useMemo as ste,useState as _A}from"react";function kU(t={}){let[e,o]=_A(!1),[n,r]=_A(""),[s,i]=_A(0),a=t.userCommands??[],l=t.natives,c=ste(()=>f1(n,a,l),[n,a,l]),u=Cm(()=>{r(""),i(0),o(!0)},[]),m=Cm(()=>{o(!1)},[]),d=Cm(b=>{r(b),i(0)},[]),h=Cm(b=>{i(y=>{let w=Math.max(0,c.length-1);return Math.min(w,Math.max(0,y+b))})},[c.length]),g=Cm(()=>{let b=c[s]??null;return o(!1),b},[c,s]);return{open:e,query:n,hits:c,selected:s,openPalette:u,closePalette:m,setQuery:d,move:h,confirm:g}}var xU=p(()=>{"use strict";Fl()});function SU(t){let e=t.trim();if(e==="")return{kind:"stop"};if(ite.test(e)){let o=e.replace(ate,"").trim();return o===""?{kind:"stop"}:{kind:"redirect",inject:o}}return{kind:"redirect",inject:e}}var ite,ate,wU=p(()=>{"use strict";ite=/^\/ask(?=\s|$)/i,ate=/^\/ask\s*/i});function EU(t,e=!0){return t==="thinking"||t==="boot"||t==="compacting"?!0:t==="streaming"||t==="retrying"?e:!1}function Wg(t){return t==="thinking"||t==="streaming"||t==="retrying"||t==="compacting"}var RA=p(()=>{"use strict"});import{appendFileSync as lte}from"node:fs";import{homedir as cte}from"node:os";import{join as ute}from"node:path";function dte(t=process.env){let e=t.ALUY_DEBUG_RENDER;return e!==void 0&&e!==""&&e!=="0"&&e!=="false"}function Tm(t){if(dte())try{OA===void 0&&(OA=ute(cte(),".aluy","render-debug.log")),lte(OA,`${new Date().toISOString()} ${t}
|
|
652
|
-
`)}catch{}}var OA,AU=p(()=>{"use strict"});function CU(t){return t.subagentsRunning&&t.isPlainGoal&&t.nonEmpty&&!t.hasPendingAttachment}var TU=p(()=>{"use strict"});function DU(t,e){let o=Number.isFinite(t)&&t>0?Math.floor(t):0;if(!e)return{layout:"single",chatCols:o,logCols:0,disabledByWidth:!1};if(o<fte)return{layout:"single",chatCols:o,logCols:0,disabledByWidth:!0};if(o>=mte){let n=Math.max(1,Math.floor(o*hte)),r=o-n-gte;return r>=pte?{layout:"side",chatCols:n,logCols:r,disabledByWidth:!1}:{layout:"tabs",chatCols:o,logCols:o,disabledByWidth:!1}}return{layout:"tabs",chatCols:o,logCols:o,disabledByWidth:!1}}function vte(t){return t==="side"?yte:t==="tabs"?bte:0}function _U(t){let e=sm({rows:t.rows,live:t.live,phase:t.phase,hasBlocks:t.hasBlocks,...t.columns!==void 0?{columns:t.columns}:{}}),o=vte(t.layout),n=Math.min(ma,Math.max(0,t.logColumnLines??0)),r=t.rows-ea-tm(t.rows)-o-nm-om(t.mode)-Tl(t.columns)-(t.queuedLines??0)-(t.composerOverflow??0)-1,s=r-e,i=r-Math.max(e,n),a=Math.min(s,i);return Math.max(cg,a)}var mte,fte,pte,hte,gte,yte,bte,ma,RU=p(()=>{"use strict";ta();mte=100,fte=60,pte=34,hte=.62,gte=1,yte=1,bte=1,ma=12});function kte(t){let e=t.running?"running":t.ok===!1?"err":"ok";return{kind:"tool",label:t.tool,detail:t.target,status:e,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.added!==void 0?{added:t.added}:{},...t.removed!==void 0?{removed:t.removed}:{},...t.summary!==void 0?{summary:t.summary}:{},...t.tokens!==void 0?{tokens:t.tokens}:{},...t.tail!==void 0?{tail:t.tail}:{}}}function MA(t,e,o={}){let n=o.collapsed??new Set,r=o.cap??500,s=[],i=0;for(let a of t){let l=n.has(a.id),u=(e(a.id)?.recent??[]).map(kte);a.phase==="thinking"&&(u=[...u,{kind:"broker",label:"broker",detail:"gerando",status:"running",...a.accounting.tokens>0?{tokens:a.accounting.tokens}:{}}]),o.errorsOnly&&(u=u.filter(m=>m.status==="err"||m.kind==="deny")),i+=u.length,s.push({id:a.id,kind:a.kind,label:a.label,phase:a.phase,tokens:a.accounting.tokens,toolCalls:a.accounting.toolCalls,durationMs:a.accounting.durationMs,collapsed:l,events:l?[]:u})}if(i>r){let a=r;for(let l=s.length-1;l>=0;l--){let c=s[l];if(a<=0){s[l]={...c,events:[]};continue}c.events.length>a?(s[l]={...c,events:c.events.slice(c.events.length-a)},a=0):a-=c.events.length}}return{sections:s,totalEvents:i}}function OU(t){let e=0;for(let o of t)e+=1+(o.collapsed?0:o.events.length);return e}var MU=p(()=>{"use strict"});function Gg(t){let e=!1,o=[],n=[];for(let r of t)r.kind==="you"&&(e=!0),!e&&r.kind==="note"&&xte.has(r.title)?o.push(r):n.push(r);return{startupNotes:o,conversation:n}}var xte,LA=p(()=>{"use strict";xte=new Set(["config","agentes"])});import"react";import{Box as ho,Text as FA}from"ink";import{Fragment as IA,jsx as Ce,jsxs as po}from"react/jsx-runtime";function PA(t){let e=Math.max(1,t.columns);if(t.label!==void 0&&t.label!==""){let r=`\u2500\u2500 ${t.focused===!0?"\u258C ":""}${t.label} `,s=Math.max(0,e-r.length);return po(ho,{children:[Ce(f,{name:"fgDim",children:"\u2500\u2500 "}),t.focused===!0&&po(IA,{children:[Ce(F,{name:"you",role:"accent"}),Ce(f,{name:"fgDim",children:" "})]}),Ce(f,{name:"accent",children:t.label}),po(f,{name:"fgDim",children:[" ","\u2500".repeat(s)]})]})}return Ce(f,{name:"fgDim",children:"\u2500".repeat(e)})}function Ste(t){let{t:e}=Se(),o=
|
|
651
|
+
`)[0]?.slice(0,120)??""]})})]},m)),e.failures.length>kA&&St(qn,{paddingLeft:2,children:gt(f,{name:"fgDim",children:["\u2026 e mais ",e.failures.length-kA," falhas"]})})]}),!o&&St(qn,{paddingLeft:1,children:e.failed===0?gt(f,{name:"success",children:[St(F,{name:"ok",role:"success"}),St(wr,{children:" todos passaram"})]}):gt(f,{name:"danger",children:[St(F,{name:"err",role:"danger"}),gt(wr,{children:[" ",e.failed," falharam"]})]})})]})}var kA,GB=p(()=>{"use strict";te();XE();hn();kA=10});import"react";import{Box as qee,Text as Wee}from"ink";import{jsx as Fg,jsxs as Gee}from"react/jsx-runtime";function SA(t){let e=t.accounting,o=[`${Xt(e.tokens)} tokens`];return e.toolCalls>0&&o.push(`${e.toolCalls} tools`),o.push(pn(e.durationMs)),Gee(qee,{paddingLeft:2,children:[e.live?Fg(F,{name:"clock",role:"depth"}):Fg(F,{name:"ok",role:"success"}),Fg(Wee,{children:" "}),Fg(f,{name:"fgDim",children:o.join(" \xB7 ")})]})}var zB=p(()=>{"use strict";te();hn()});import KB from"react";import{Box as zee,Text as YB}from"ink";import{Fragment as EA,jsx as ti,jsxs as Wn}from"react/jsx-runtime";function wA(t){return t==="crit"?"danger":t==="warn"?"accent":"fgDim"}function AA(t){let e=kc(t.quota,t.now),o=Db(t.serverLimits,t.now);if(e===void 0&&o===void 0)return null;let n=e?.creditBalance,r=n===void 0&&o!==void 0;return Wn(zee,{paddingLeft:2,children:[n!==void 0&&Wn(EA,{children:[ti(f,{name:"fgDim",children:"cr\xE9dito: "}),ti(f,{name:wA(e?.maxLevel??"ok"),children:n})]}),e!==void 0&&e.segments.map((s,i)=>Wn(KB.Fragment,{children:[(i>0||n!==void 0)&&ti(f,{name:"fgDim",children:" \xB7 "}),Wn(f,{name:"fgDim",children:[s.label,": "]}),Wn(f,{name:wA(s.level),children:[s.pct,"%"]})]},`q-${s.label}`)),e?.resetText!==void 0&&Wn(EA,{children:[ti(YB,{children:" "}),Wn(f,{name:"fgDim",children:["\xB7 ",e.resetText]})]}),e!==void 0&&r&&ti(f,{name:"fgDim",children:" \xB7 "}),r&&o.segments.map((s,i)=>Wn(KB.Fragment,{children:[i>0&&ti(f,{name:"fgDim",children:" \xB7 "}),Wn(f,{name:"fgDim",children:[s.label,": "]}),ti(f,{name:wA(s.level),children:s.value})]},`s-${s.label}`)),r&&o.resetText!==void 0&&Wn(EA,{children:[ti(YB,{children:" "}),Wn(f,{name:"fgDim",children:["\xB7 ",o.resetText]})]})]})}var VB=p(()=>{"use strict";P();te()});import"react";import{jsx as Yee}from"react/jsx-runtime";function da(t){let o=Q().box.horizontal,n=Math.max(1,t.columns??80),r=t.subtle?Math.min(Kee,n):n,s=t.subtle?"fgDim":t.role??"fgDim",i=o.repeat(r);return Yee(f,{name:s,children:i})}var Kee,XB=p(()=>{"use strict";te();Kee=12});var Ig=p(()=>{"use strict";LN();Gi();$N();Hw();YN();XN();z$();X$();t1();o1();n1();r1();s1();l1();c1();g1();y1();v1();k1();A1();T1();D1();_1();R1();O1();P1();I1();$1();ug();B1();XE();em();QE();z1();K1();Y1();V1();J1();Q1();eB();WB();GB();zB();VB();XB()});import{useEffect as Vee,useState as Xee}from"react";function km(t={}){let e=t.enabled??!0,o=t.intervalMs??Jee,[n,r]=Xee(0);return Vee(()=>{if(!e)return;let s=setInterval(()=>r(i=>i+1),o);return()=>clearInterval(s)},[e,o]),e?n:0}var Jee,CA=p(()=>{"use strict";Jee=120});import{useCallback as Er,useMemo as Qee,useRef as Zee,useState as Wl}from"react";function JB(t){let[e,o]=Wl(!1),[n,r]=Wl(""),[s,i]=Wl(0),[a,l]=Wl([]),[c,u]=Wl([]),[m,d]=Wl(null),h=Zee(!1),g=Qee(()=>QS(n,a),[n,a]),b=Er(async()=>{if(!h.current){h.current=!0;try{let B=await t.fileIndex.list();l(B.filter(X=>sS(X)))}catch{l([])}}},[t.fileIndex]),y=Er(()=>{o(!0),r(""),i(0),b()},[b]),w=Er(()=>{o(!1),r(""),i(0)},[]),A=Er(B=>{r(B),i(0)},[]),T=Er(B=>{i(X=>{let oe=Math.max(0,g.length-1);return Math.min(oe,Math.max(0,X+B))})},[g.length]),O=Er(async(B,X)=>{let oe=await t.attachReader.attach(B,X!==void 0?{confirmSensitive:X}:{});return oe.kind==="rejected"?(d(`@${oe.path||B} \u2014 ${oe.reason}`),null):(d(null),u(ne=>ne.some(M=>M.path===oe.path)?ne:[...ne,{path:oe.path,item:oe.item,truncated:oe.truncated}]),oe.path)},[t.attachReader]),N=Er(async()=>{let B=g[s];return w(),B?O(B.path):null},[g,s,w,O]),G=Er(()=>{u(B=>B.length===0?B:B.slice(0,-1))},[]),V=Er(()=>u([]),[]),z=Er(()=>d(null),[]);return{open:e,query:n,selected:s,hits:g,attachments:c,notice:m,openPicker:y,closePicker:w,setQuery:A,move:T,confirm:N,removeLast:G,clear:V,dismissNotice:z,attachPath:O}}var QB=p(()=>{"use strict";Rd()});import{useCallback as To,useMemo as oi,useRef as ete,useState as $o}from"react";function ZB(t,e){return t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.family.toLowerCase().includes(e)}function eU(t){let[e,o]=$o(!1),[n,r]=$o(0),[s,i]=$o([]),[a,l]=$o(!1),[c,u]=$o(null),[m,d]=$o(!1),[h,g]=$o(""),[b,y]=$o(0),[w,A]=$o(!1),[T,O]=$o(null),[N,G]=$o(0),[V,z]=$o(!1),[B,X]=$o(""),oe=ete(!1),ne=oi(()=>Fc(),[]),[M,j]=$o([]),Ae=To(J=>{let H=J.findIndex(ue=>ue.key===t.currentTier);return H>=0?H:0},[t.currentTier]),se=To(async()=>{if(oe.current)return;oe.current=!0,l(!0);let J=async()=>{try{let ue=await t.catalog.list();ue.length===0?(i(Fn),u(!0)):(i(ue),u(!1)),r(Ae(ue.length===0?Fn:ue))}catch{i(Fn),u(!0),r(Ae(Fn))}},H=async()=>{if(!t.customModels){j([]);return}try{j(await t.customModels.list())}catch{j([])}};try{await Promise.all([J(),H()])}finally{l(!1)}},[t.catalog,t.customModels,Ae]),he=To(()=>{o(!0),d(!1),g(""),y(0),A(!1),O(null),G(0),z(!1),X(""),se()},[se]),ie=To(()=>{o(!1),d(!1),g(""),y(0),A(!1),O(null),G(0),z(!1),X("")},[]),fe=s.length,R=e&&n===fe,de=To(J=>{m||r(H=>{let ue=Math.max(0,s.length);return Math.min(ue,Math.max(0,H+J))})},[s.length,m]),ae=oi(()=>{let J=h.trim().toLowerCase();return M.filter(H=>!(w&&H.supportsTools!==!0||J!==""&&!ZB(H,J)))},[M,h,w]),Y=ae.length===0?-1:Math.min(Math.max(0,b),ae.length-1),Oe=oi(()=>{if(ae.length<=xm||Y<0)return 0;let J=Math.floor(xm/2),H=ae.length-xm;return Math.min(Math.max(0,Y-J),H)},[ae.length,Y]),yt=oi(()=>ae.slice(Oe,Oe+xm).map((J,H)=>({model:J,highlighted:Oe+H===Y})),[ae,Oe,Y]),et=oi(()=>{if(!m||Y<0)return null;let J=ae[Y];return J&&J.supportsTools===!1?J.id:null},[m,Y,ae]),Le=oi(()=>{let J=h.trim().toLowerCase();return J===""||M.length===0?[]:M.filter(H=>ZB(H,J)).slice(0,8).map(tte)},[h,M]),Rt=oi(()=>{let J=h.trim();if(J===""||M.length===0)return!1;let H=J.toLowerCase();return!M.some(ue=>ue.id.toLowerCase()===H)},[h,M]),Qo=To(J=>{m&&y(H=>{let ue=ae.length;return ue===0?0:Math.min(ue-1,Math.max(0,H+J))})},[m,ae.length]),wt=To(()=>{m&&(A(J=>!J),y(0))},[m]),Te=To(J=>{O(J),G(0),z(!1),X(""),d(!1)},[]),Et=To(()=>{if(T){if(V){let si=Ib(B);if(si===null)return null;let cs=T;return ie(),{model:cs,effort:si}}if(ne[Ra(N)]?.kind==="custom")return z(!0),X(""),null;let ue=Fb(Ra(N));if(ue===null)return null;let Ot=T;return ie(),{model:Ot,effort:ue}}if(m){let H=Y>=0?ae[Y]:void 0;if(H)return Te(H.supportsTools===void 0?{kind:"custom",model:H.id}:{kind:"custom",model:H.id,supportsTools:H.supportsTools}),null;let ue=h.trim();return ue===""||Te({kind:"custom",model:ue}),null}if(n===fe)return d(!0),g(""),y(0),A(!1),null;let J=s[n];return J&&Te({kind:"tier",key:J.key}),null},[T,V,B,ne,N,s,n,fe,m,h,ae,Y,ie,Te]),rt=To(J=>{!T||V||G(H=>Ra(H+J))},[T,V]),I=To(J=>{if(!V)return;let H=J.replace(/[\r\n\t]/g,"");H!==""&&X(ue=>ue+H)},[V]),K=To(()=>{V&&X(J=>J.slice(0,-1))},[V]),ye=To(()=>V?(z(!1),X(""),!0):T?(O(null),G(0),!0):!1,[V,T]),Ee=oi(()=>{if(!V)return null;let J=wf(B);return J.ok?null:J.reason},[V,B]),Pe=To(J=>{if(!m)return;let H=J.replace(/[\r\n\t]/g,"");H!==""&&(y(0),g(ue=>ue+H))},[m]),Fe=To(()=>{m&&(y(0),g(J=>J.slice(0,-1)))},[m]);return{open:e,selected:n,tiers:s,loading:a,usingFallback:c,customSelected:R,customInputOpen:m,customInput:h,customSuggestions:Le,customWarnOutOfCatalog:Rt,customBrowserAvailable:M.length>0,customFilteredCount:ae.length,customTotalCount:M.length,customRows:yt,customBrowseIndex:Y,customHasMoreAbove:Oe>0,customHasMoreBelow:Oe+xm<ae.length,customToolsOnly:w,customNoToolsWarning:et,openPicker:he,closePicker:ie,move:de,confirm:Et,appendCustom:Pe,backspaceCustom:Fe,browseMove:Qo,toggleToolsOnly:wt,effortStepOpen:T!==null,effortOptions:ne,effortSelected:Ra(N),currentEffort:t.currentEffort,effortCustomOpen:V,effortCustomInput:B,effortCustomWarn:Ee,effortMove:rt,appendEffortCustom:I,backspaceEffortCustom:K,backFromEffort:ye}}function tte(t){let e=[t.name,t.family].map(o=>o.trim()).filter(o=>o!=="");return e.length>0?`${t.id} \xB7 ${e.join(" \xB7 ")}`:t.id}var xm,tU=p(()=>{"use strict";P();Vr();xm=10});import{useCallback as Ng,useState as TA}from"react";function oU(t){let e=[];e.push({kind:"mode",mode:t.mode,actionable:!0});for(let o of tf)e.push({kind:"safe-tool",tool:o,decision:t.effectiveSafeDefault(o),actionable:!0});for(let o of t.sessionGrants.list())e.push({kind:"grant",grantKey:o,actionable:!0});for(let o of Vy)e.push({kind:"locked",category:o,actionable:!1});return e}function nU(t){let[e,o]=TA(!1),[n,r]=TA(0),[s,i]=TA(0),a=oU(t),l=Ng(()=>{o(!0),r(0),i(d=>d+1)},[]),c=Ng(()=>{o(!1)},[]),u=Ng(d=>{r(h=>{let g=Math.max(0,a.length-1);return Math.min(g,Math.max(0,h+d))})},[a.length]),m=Ng(()=>{let d=a[n];if(!(!d||!d.actionable)){switch(d.kind){case"mode":t.setMode(dw(t.mode));break;case"grant":t.sessionGrants.revoke(d.grantKey);break;case"safe-tool":{let h=d.decision==="allow"?"ask":"allow";t.setSafeToolDefault(d.tool,h);break}}i(h=>h+1),r(h=>Math.min(h,Math.max(0,oU(t).length-1)))}},[a,n,t]);return{open:e,selected:n,rows:a,mode:t.mode,openPanel:l,closePanel:c,move:u,act:m}}var rU=p(()=>{"use strict";P();mw()});import{useCallback as $g,useState as sU}from"react";function iU(t){let e=Ko.findIndex(o=>o.name===t);return e>=0?e:0}function aU(t){let[e,o]=sU(!1),[n,r]=sU(()=>iU(t.currentTheme)),s=$g(()=>{r(iU(t.currentTheme)),o(!0)},[t.currentTheme]),i=$g(()=>{o(!1)},[]),a=$g(c=>{r(u=>{let m=Math.max(0,Ko.length-1);return Math.min(m,Math.max(0,u+c))})},[]),l=$g(()=>{let c=Ko[n];return o(!1),c?c.name:null},[n]);return{open:e,selected:n,themes:Ko,openPicker:s,closePicker:i,move:a,confirm:l}}var lU=p(()=>{"use strict";Rs()});import{useCallback as Bg,useState as cU}from"react";function uU(t){let e=Yt.findIndex(o=>o.code===t);return e>=0?e:0}function dU(t){let[e,o]=cU(!1),[n,r]=cU(()=>uU(t.currentLang)),s=Bg(()=>{r(uU(t.currentLang)),o(!0)},[t.currentLang]),i=Bg(()=>{o(!1)},[]),a=Bg(c=>{r(u=>{let m=Math.max(0,Yt.length-1);return Math.min(m,Math.max(0,u+c))})},[]),l=Bg(()=>{let c=Yt[n];return o(!1),c?c.code:null},[n]);return{open:e,selected:n,langs:Yt,openPicker:s,closePicker:i,move:a,confirm:l}}var mU=p(()=>{"use strict";pt()});function Ug(t,e=Sn){let o=t.trim().toLowerCase();if(o!=="")return e.find(n=>n.name.toLowerCase()===o)}function fU(t,e=Sn){if(t.length===0)return e;let o=new Map(e.map(s=>[s.name.toLowerCase(),s])),n=new Set,r=[];for(let s of t){let i=s.name.trim();if(i==="")continue;let a=i.toLowerCase();if(n.has(a))continue;n.add(a);let l=o.get(a);r.push(l?{...l,name:i}:{name:i,label:ote(i),summary:"cadastrado no broker"})}return r.sort((s,i)=>s.isDefault&&!i.isDefault?-1:i.isDefault&&!s.isDefault?1:s.name.localeCompare(i.name)),r}function ote(t){return t.charAt(0).toUpperCase()+t.slice(1)}var Sn,jg=p(()=>{"use strict";Sn=[{name:"openrouter",label:"OpenRouter",summary:"gateway multi-provider (padr\xE3o do broker)",isDefault:!0},{name:"deepseek",label:"DeepSeek",summary:"API direta da DeepSeek"}]});import{useCallback as Sm,useRef as nte,useState as wm}from"react";function Em(t,e){if(e===void 0)return 0;let o=t.findIndex(n=>n.name.toLowerCase()===e.toLowerCase());return o>=0?o:0}function pU(t){let[e,o]=wm(!1),[n,r]=wm(Sn),[s,i]=wm(()=>Em(Sn,t.currentProvider)),[a,l]=wm(!1),[c,u]=wm(null),m=nte(!1),d=Sm(async()=>{if(!m.current){if(m.current=!0,!t.providersClient){r(Sn),u(!0),i(Em(Sn,t.currentProvider));return}l(!0);try{let w=await t.providersClient.list(),A=fU(w),T=w.length===0;r(A),u(T),i(Em(A,t.currentProvider))}catch{r(Sn),u(!0),i(Em(Sn,t.currentProvider))}finally{l(!1)}}},[t.providersClient,t.currentProvider]),h=Sm(()=>{i(Em(n,t.currentProvider)),o(!0),d()},[t.currentProvider,n,d]),g=Sm(()=>{o(!1)},[]),b=Sm(w=>{i(A=>{let T=Math.max(0,n.length-1);return Math.min(T,Math.max(0,A+w))})},[n.length]),y=Sm(()=>{let w=n[s];return o(!1),w?w.name:null},[n,s]);return{open:e,selected:s,providers:n,loading:a,usingFallback:c,openPicker:h,closePicker:g,move:b,confirm:y}}var hU=p(()=>{"use strict";jg()});import{useCallback as Hg,useState as DA}from"react";function gU(t){let[e,o]=DA(!1),[n,r]=DA(0),[s,i]=DA([]),a=Hg(()=>{i(LE(t.store,t.limit??ME)),r(0),o(!0)},[t.store,t.limit]),l=Hg(()=>{o(!1)},[]),c=Hg(m=>{r(d=>{let h=Math.max(0,s.length-1);return Math.min(h,Math.max(0,d+m))})},[s.length]),u=Hg(()=>{let m=s[n];return o(!1),m?m.id:null},[s,n]);return{open:e,selected:n,sessions:s,openPicker:a,closePicker:l,move:c,confirm:u}}var yU=p(()=>{"use strict";vg()});import{useCallback as Am,useState as qg}from"react";function bU(t){let[e,o]=qg("closed"),[n,r]=qg(0),[s,i]=qg([]),[a,l]=qg(0),c=Am(()=>{let g=[];try{g=C1(t.source.list(),t.limit??30)}catch{g=[]}i(g),r(0),l(0),o("list")},[t.source,t.limit]),u=Am(()=>{o("closed")},[]),m=Am(g=>{r(b=>{let y=e==="action"?xg.length:s.length,w=Math.max(0,y-1);return Math.min(w,Math.max(0,b+g))})},[e,s.length]),d=Am(()=>{if(e==="list")return s.length===0||(l(n),r(0),o("action")),null;if(e==="action"){let g=s[a],b=xg[n];return o("closed"),!g||!b?null:{checkpointId:g.id,action:b}}return null},[e,s,n,a]),h=Am(()=>{if(e==="action"){r(a),o("list");return}o("closed")},[e,a]);return{phase:e,open:e!=="closed",selected:n,checkpoints:s,actions:xg,target:e==="action"?s[a]:void 0,openPicker:c,closePicker:u,move:m,confirm:d,back:h}}var vU=p(()=>{"use strict";FE()});import{useCallback as Cm,useMemo as ste,useState as _A}from"react";function kU(t={}){let[e,o]=_A(!1),[n,r]=_A(""),[s,i]=_A(0),a=t.userCommands??[],l=t.natives,c=ste(()=>f1(n,a,l),[n,a,l]),u=Cm(()=>{r(""),i(0),o(!0)},[]),m=Cm(()=>{o(!1)},[]),d=Cm(b=>{r(b),i(0)},[]),h=Cm(b=>{i(y=>{let w=Math.max(0,c.length-1);return Math.min(w,Math.max(0,y+b))})},[c.length]),g=Cm(()=>{let b=c[s]??null;return o(!1),b},[c,s]);return{open:e,query:n,hits:c,selected:s,openPalette:u,closePalette:m,setQuery:d,move:h,confirm:g}}var xU=p(()=>{"use strict";Fl()});function SU(t){let e=t.trim();if(e==="")return{kind:"stop"};if(ite.test(e)){let o=e.replace(ate,"").trim();return o===""?{kind:"stop"}:{kind:"redirect",inject:o}}return{kind:"redirect",inject:e}}var ite,ate,wU=p(()=>{"use strict";ite=/^\/ask(?=\s|$)/i,ate=/^\/ask\s*/i});function EU(t,e=!0){return t==="thinking"||t==="boot"||t==="compacting"?!0:t==="streaming"||t==="retrying"?e:!1}function Wg(t){return t==="thinking"||t==="streaming"||t==="retrying"||t==="compacting"}var RA=p(()=>{"use strict"});import{appendFileSync as lte}from"node:fs";import{homedir as cte}from"node:os";import{join as ute}from"node:path";function dte(t=process.env){let e=t.ALUY_DEBUG_RENDER;return e!==void 0&&e!==""&&e!=="0"&&e!=="false"}function Tm(t){if(dte())try{OA===void 0&&(OA=ute(cte(),".aluy","render-debug.log")),lte(OA,`${new Date().toISOString()} ${t}
|
|
652
|
+
`)}catch{}}var OA,AU=p(()=>{"use strict"});function CU(t){return t.subagentsRunning&&t.isPlainGoal&&t.nonEmpty&&!t.hasPendingAttachment}var TU=p(()=>{"use strict"});function DU(t,e){let o=Number.isFinite(t)&&t>0?Math.floor(t):0;if(!e)return{layout:"single",chatCols:o,logCols:0,disabledByWidth:!1};if(o<fte)return{layout:"single",chatCols:o,logCols:0,disabledByWidth:!0};if(o>=mte){let n=Math.max(1,Math.floor(o*hte)),r=o-n-gte;return r>=pte?{layout:"side",chatCols:n,logCols:r,disabledByWidth:!1}:{layout:"tabs",chatCols:o,logCols:o,disabledByWidth:!1}}return{layout:"tabs",chatCols:o,logCols:o,disabledByWidth:!1}}function vte(t){return t==="side"?yte:t==="tabs"?bte:0}function _U(t){let e=sm({rows:t.rows,live:t.live,phase:t.phase,hasBlocks:t.hasBlocks,...t.columns!==void 0?{columns:t.columns}:{}}),o=vte(t.layout),n=Math.min(ma,Math.max(0,t.logColumnLines??0)),r=t.rows-ea-tm(t.rows)-o-nm-om(t.mode)-Tl(t.columns)-(t.queuedLines??0)-(t.composerOverflow??0)-1,s=r-e,i=r-Math.max(e,n),a=Math.min(s,i);return Math.max(cg,a)}var mte,fte,pte,hte,gte,yte,bte,ma,RU=p(()=>{"use strict";ta();mte=100,fte=60,pte=34,hte=.62,gte=1,yte=1,bte=1,ma=12});function kte(t){let e=t.running?"running":t.ok===!1?"err":"ok";return{kind:"tool",label:t.tool,detail:t.target,status:e,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.added!==void 0?{added:t.added}:{},...t.removed!==void 0?{removed:t.removed}:{},...t.summary!==void 0?{summary:t.summary}:{},...t.tokens!==void 0?{tokens:t.tokens}:{},...t.tail!==void 0?{tail:t.tail}:{}}}function MA(t,e,o={}){let n=o.collapsed??new Set,r=o.cap??500,s=[],i=0;for(let a of t){let l=n.has(a.id),u=(e(a.id)?.recent??[]).map(kte);a.phase==="thinking"&&(u=[...u,{kind:"broker",label:"broker",detail:"gerando",status:"running",...a.accounting.tokens>0?{tokens:a.accounting.tokens}:{}}]),o.errorsOnly&&(u=u.filter(m=>m.status==="err"||m.kind==="deny")),i+=u.length,s.push({id:a.id,kind:a.kind,label:a.label,phase:a.phase,tokens:a.accounting.tokens,toolCalls:a.accounting.toolCalls,durationMs:a.accounting.durationMs,collapsed:l,events:l?[]:u})}if(i>r){let a=r;for(let l=s.length-1;l>=0;l--){let c=s[l];if(a<=0){s[l]={...c,events:[]};continue}c.events.length>a?(s[l]={...c,events:c.events.slice(c.events.length-a)},a=0):a-=c.events.length}}return{sections:s,totalEvents:i}}function OU(t){let e=0;for(let o of t)e+=1+(o.collapsed?0:o.events.length);return e}var MU=p(()=>{"use strict"});function Gg(t){let e=!1,o=[],n=[];for(let r of t)r.kind==="you"&&(e=!0),!e&&r.kind==="note"&&xte.has(r.title)?o.push(r):n.push(r);return{startupNotes:o,conversation:n}}var xte,LA=p(()=>{"use strict";xte=new Set(["config","agentes"])});import"react";import{Box as ho,Text as FA}from"ink";import{Fragment as IA,jsx as Ce,jsxs as po}from"react/jsx-runtime";function PA(t){let e=Math.max(1,t.columns);if(t.label!==void 0&&t.label!==""){let r=`\u2500\u2500 ${t.focused===!0?"\u258C ":""}${t.label} `,s=Math.max(0,e-r.length);return po(ho,{children:[Ce(f,{name:"fgDim",children:"\u2500\u2500 "}),t.focused===!0&&po(IA,{children:[Ce(F,{name:"you",role:"accent"}),Ce(f,{name:"fgDim",children:" "})]}),Ce(f,{name:"accent",children:t.label}),po(f,{name:"fgDim",children:[" ","\u2500".repeat(s)]})]})}return Ce(f,{name:"fgDim",children:"\u2500".repeat(e)})}function Ste(t){let{t:e}=Se(),o=Q(),n=t.blocks,r=Math.max(1,t.rows-1),s={columns:t.columns,rows:t.screenRows,mono:o.colorMode==="mono",streamMaxLines:IB(r)},i=NB(n,r,t.scroll,s),a=i.blocks;return t.overlay!==void 0&&t.overlay!==null?po(ho,{flexDirection:"column",height:t.rows,children:[po(ho,{children:[Ce(f,{name:"accent",children:e("cockpit.conversa")}),Ce(f,{name:"fgDim",children:" \xB7 /menu"})]}),Ce(ho,{flexDirection:"column",height:r,overflow:"hidden",children:t.overlay})]}):n.length===0?po(ho,{flexDirection:"column",height:t.rows,children:[po(ho,{children:[t.focused===!0&&po(IA,{children:[Ce(F,{name:"you",role:"accent"}),Ce(FA,{children:" "})]}),Ce(f,{name:t.focused?"accent":"fgDim",children:e("cockpit.conversa")}),Ce(f,{name:"fgDim",children:" \xB7 \u25BC ao vivo"})]}),po(ho,{height:r,width:t.columns,flexDirection:"column",alignItems:"center",justifyContent:"center",children:[Ce(f,{name:"accent",children:e("cockpit.welcomeTitle")}),Ce(f,{name:"fgDim",children:e("cockpit.welcomeHint")})]})]}):po(ho,{flexDirection:"column",height:t.rows,children:[po(ho,{children:[t.focused&&po(IA,{children:[Ce(F,{name:"you",role:"accent"}),Ce(FA,{children:" "})]}),Ce(f,{name:t.focused?"accent":"fgDim",children:e("cockpit.conversa")}),i.hiddenAbove>0&&po(f,{name:"fgDim",children:[" \xB7 \u2191",i.hiddenAbove]}),i.hiddenBelow===0?Ce(f,{name:"fgDim",children:" \xB7 \u25BC ao vivo"}):po(f,{name:"fgDim",children:[" \xB7 \u2193",i.hiddenBelow]})]}),Ce(ho,{flexDirection:"column",height:r,overflow:"hidden",justifyContent:"flex-end",children:a.map((l,c)=>Ce(zg,{block:l,isCurrent:i.start+c===n.length-1,frame:t.frame,columns:t.columns,rows:t.screenRows,maxLines:s.streamMaxLines},i.start+c))})]})}function LU(t){let{t:e}=Se(),{layout:o}=t,n=t.state.meta.tokens,r=t.state.meta.windowPct,{startupNotes:s,conversation:i}=Gg(t.state.blocks),a=s.map(l=>({title:l.title,lines:l.lines}));return po(ho,{flexDirection:"column",width:t.columns,height:o.rows,children:[Ce(ho,{height:o.headerRows,children:Ce(Wd,{tier:t.tierDisplay,columns:t.columns,rows:1,...t.version!==void 0?{version:t.version}:{}})}),Ce(PA,{columns:t.columns}),Ce(Ste,{blocks:i,rows:o.regions.conversaRows,screenRows:o.rows,columns:t.columns,focused:t.focus==="conversa",scroll:t.conversaScroll,frame:t.frame,overlay:t.overlay}),Ce(PA,{columns:t.columns}),Ce(ho,{height:o.regions.logRows,children:Ce(ql,{sections:t.logSections,visibleRows:o.regions.logRows,scrollOffset:t.logScroll,focused:t.focus==="log",columns:t.columns,bootInfo:a})}),Ce(PA,{columns:t.columns}),Ce(ho,{height:o.statusRows,children:Ce(Gd,{cwd:t.cwd,tier:t.tierDisplay,isDefaultTier:t.isDefaultTier,...t.state.meta.model!==void 0?{model:t.state.meta.model}:{},tokens:n,windowPct:r,columns:t.columns,error:t.state.phase==="error",busy:Wg(t.state.phase),frame:t.frame,...t.state.meta.focus!==void 0?{focus:t.state.meta.focus}:{},...process.env.ALUY_CYCLE_UI_OFF!=="1"&&process.env.ALUY_CYCLE_UI_OFF!=="true"&&t.state.cycleProgress!==void 0?{cycleProgress:t.state.cycleProgress}:{}})}),Ce(ho,{height:o.composerRows,children:Ce(Vd,{value:t.input,cursorPos:t.cursorPos,active:t.composerActive,showCursor:t.showCursor,shellMode:t.input.startsWith("!"),maxRows:o.composerRows,columns:t.columns,...t.state.meta.label!==void 0?{sessionLabel:t.state.meta.label}:{},...t.state.meta.labelColor!==void 0?{sessionColor:t.state.meta.labelColor}:{}})}),Ce(ho,{height:o.hintsRows,children:t.hintState===null||t.hintState==="idle"?po(f,{name:"fgDim",children:[e("hints.cockpit"),Ce(FA,{children:" \xB7 "}),Xt(n)," tok"]}):Ce(ym,{state:t.hintState})})]})}var PU=p(()=>{"use strict";te();pt();Ig();Ig();NA();hn();LA();RA();vA();te()});function wte(t){return!Number.isFinite(t)||t<=1?1:Math.min(5,Math.floor(t))}function Ete(t,e){let o=Math.min(3,t-1);if(e===void 0){let s=Math.round(t*.3);return Math.min(t-1,Math.max(o,s))}if(!e.hasActivity&&e.activeAgents===0)return Math.min(1,t-1);let n=Math.floor(t*(e.focused||e.activeAgents>0?.6:.5)),r=Math.max(1,e.lines);return Math.min(t-1,Math.max(o,Math.min(n,r)))}function ni(t,e,o=1,n){if(e<80)return{kind:"refuse",reason:"narrow",rows:t,cols:e};if(t<9)return{kind:"refuse",reason:"short",rows:t,cols:e};let r=t-7,s=wte(o)-1,i=Math.max(0,Math.min(s,r-2)),a=1+i,l=r-i,c=Ete(l,n),u=l-c;return{kind:"cockpit",rows:t,cols:e,headerRows:1,statusRows:1,composerRows:a,hintsRows:1,regions:{conversaRows:u,logRows:c}}}var $A=p(()=>{"use strict"});function FU(t,e,o,n){let r=Math.max(1,n),s=Math.max(1,r-1),i=Math.max(0,o-r),a=e;switch(t){case"up":a=e+1;break;case"down":a=e-1;break;case"pageUp":a=e+s;break;case"pageDown":a=e-s;break;case"home":a=i;break;case"end":a=0;break}return Math.min(Math.max(0,a),i)}var IU=p(()=>{"use strict"});function NU(t){return t.length<2||t[0]!=="["&&t[0]!=="O"?!1:Ate.test(t)}var Ate,$U=p(()=>{"use strict";Ate=/^(?:\[[0-9;:<>?]*|O[0-9;:<>?]*[ -/]*)[A-Za-z~^$@]$/});function Dte(t){let e=-1;for(let o=t.length-1;o>=0;o--)if(t[o]?.kind==="you"){e=o;break}return e>=0?t.slice(e):t}function BU(t){let e=t.some(m=>m.kind==="you"),o=t.some(m=>m.kind==="aluy"),n=e&&o,r=Dte(t),s=!1,i=!1,a=!1,l=!1,c=!1;for(let m of r)switch(m.kind){case"tool":{let d=m.verb.toLowerCase();(Cte.has(d)||m.added!==void 0||m.removed!==void 0)&&(s=!0),Tte.has(d)&&(c=!0),(d==="test"||/\btest/.test(m.target.toLowerCase()))&&(i=!0),m.status==="err"&&(l=!0);break}case"testrun":{i=!0,!m.score.unknownFormat&&m.score.failed>0&&(a=!0);break}case"deny":l=!0;break;case"broker-error":l=!0;break;case"bang":{(m.status==="err"||m.status==="blocked")&&(l=!0);break}default:break}return a&&(l=!0),{hasConversation:n,editedFiles:s,ranTests:i,testsFailed:a,hadError:l,explorationOnly:c&&!s}}var Cte,Tte,UU=p(()=>{"use strict";Cte=new Set(["edit","write","create"]),Tte=new Set(["read","grep","glob","list","search"])});function jU(t,e){let o=BU(t),r=HD(o,{max:1})[0];if(r!==void 0)return e(_te[r])}var _te,HU=p(()=>{"use strict";P();UU();_te={"run-tests":"suggest.runTests","fix-failing":"suggest.fixFailing",summarize:"suggest.summarize","retry-different":"suggest.retryDifferent",implement:"suggest.implement",explain:"suggest.explain","next-step":"suggest.nextStep"}});function WU(t){if(t==="")return 0;let e=0;for(let n=0;n<t.length;n+=1)t[n]===`
|
|
653
653
|
`&&(e+=1);let o=t.endsWith(`
|
|
654
654
|
`)?1:0;return e-o+1}function GU(t,e={}){let o=e.minLines??Rte,n=e.minChars??Ote;return WU(t)>=o||t.length>n}function Mte(t,e){return`[texto colado #${t}, +${e} ${e===1?"linha":"linhas"}]`}function zU(){let t=1,e=new Map;return{add(o,n){let r=t;return t+=1,e.set(r,o),{id:r,label:Mte(r,n),content:o}},get(o){return e.get(o)},remove(o){e.delete(o)},reset(){e.clear(),t=1},snapshot(){return e}}}function KU(t,e,o){let n=WU(e),r=o.add(e,n);return Vi(t,r.label)}function YU(t,e){let o=[];qU.lastIndex=0;let n;for(;(n=qU.exec(t))!==null;){let r=Number(n[1]);e.get(r)!==void 0&&o.push({id:r,start:n.index,end:n.index+n[0].length})}return o}function VU(t,e,o){let n=_t(t.text,t.cursor),r=YU(t.text,e);for(let s of r){let i=o==="backward"&&n===s.end,a=o==="forward"&&n===s.start,l=n>s.start&&n<s.end;if(i||a||l)return{handled:!0,state:{text:t.text.slice(0,s.start)+t.text.slice(s.end),cursor:s.start},removedId:s.id}}return{handled:!1,state:t}}function XU(t,e){let o=YU(t,e);if(o.length===0)return t;let n=t;for(let r=o.length-1;r>=0;r-=1){let s=o[r],i=e.get(s.id);i!==void 0&&(n=n.slice(0,s.start)+i+n.slice(s.end))}return n}var Rte,Ote,qU,JU=p(()=>{"use strict";eg();Rte=6,Ote=800;qU=/\[texto colado #(\d+), \+\d+ linhas?\]/g});var QU=p(()=>{"use strict";P()});function UA(t,e){let o=t.trim().toLowerCase(),n;o==="on"||o==="ligar"?n=!0:o==="off"||o==="desligar"?n=!1:n=!e.enabled;let s=[`sino de aten\xE7\xE3o: ${n?"ligado":"desligado"}`,"avisa quando o Aluy pede aprova\xE7\xE3o ou conclui um turno longo (BEL + notifica\xE7\xE3o","de desktop best-effort). texto neutro \u2014 nunca o conte\xFAdo da conversa.",...e.tty?[]:["\u26A0 sem TTY (sa\xEDda piped/CI) \u2014 o sino n\xE3o soa aqui; a prefer\xEAncia vale num terminal."]];return{kind:"notify",enable:n,note:{title:"notify",lines:s}}}function Dm(t,e){let o=t.trim();if(o==="")return{kind:"theme",theme:void 0,note:{title:"theme",lines:["temas dispon\xEDveis (use `/theme <nome>`):",...Ko.map(r=>`${r.name===e?"\u25CF ":" "}${r.name} \u2014 ${r.summary}`)]}};let n=Wr(o);return n?n.name===e?{kind:"theme",theme:void 0,note:{title:"theme",lines:[`o tema j\xE1 \xE9 ${n.label} (${n.name}).`]}}:{kind:"theme",theme:n.name,note:{title:"theme",lines:[`tema trocado para: ${n.label} (${n.name})`]}}:{kind:"theme",theme:void 0,note:{title:"theme",lines:[`tema desconhecido: "${o}".`,`dispon\xEDveis: ${Ko.map(r=>r.name).join(", ")}.`]}}}function jA(t,e){let o=t.trim();if(o==="")return{kind:"lang",lang:void 0,note:{title:"lang",lines:[Gs(e,"lang.listTitle"),...Yt.map(r=>`${r.code===e?"\u25CF ":" "}${r.code} \u2014 ${r.label}`)]}};let n=Os(o);return n?n.code===e?{kind:"lang",lang:void 0,note:{title:"lang",lines:[Gs(e,"lang.current",{label:n.label})]}}:{kind:"lang",lang:n.code,note:{title:"lang",lines:[Gs(n.code,"lang.changed",{label:n.label})]}}:{kind:"lang",lang:void 0,note:{title:"lang",lines:[Gs(e,"lang.unknown",{input:o}),`${Gs(e,"lang.listTitle")}: ${Yt.map(r=>r.code).join(", ")}.`]}}}function _m(t,e){let o=t.trim();if(o==="")return{kind:"provider",provider:void 0,note:{title:"provider",lines:["providers do modo Custom (use `/provider <nome>`):",...Sn.map(r=>`${r.name===e?"\u25CF ":" "}${r.name} \u2014 ${r.summary}${r.isDefault?" (padr\xE3o)":""}`),"\u25CD s\xF3 o NOME vai ao broker, que resolve provider/credencial (nunca exibido)","pareia com o modelo Custom (`/model` \u2192 Custom). fora de Custom, \xE9 ignorado."]}};let n=Ug(o);return n?n.name===e?{kind:"provider",provider:void 0,note:{title:"provider",lines:[`o provider j\xE1 \xE9 ${n.label} (${n.name}).`]}}:{kind:"provider",provider:n.name,note:{title:"provider",lines:[`provider do modo Custom: ${n.label} (${n.name})`,"\u25CD enviado ao broker em par com o modelo Custom \u2014 ele resolve a credencial (nunca exibida)","vale s\xF3 nesta sess\xE3o (n\xE3o persiste). pareie com `/model` \u2192 Custom."]}}:{kind:"provider",provider:void 0,note:{title:"provider",lines:[`provider desconhecido: "${o}".`,`dispon\xEDveis: ${Sn.map(r=>r.name).join(", ")}.`]}}}function Lte(t){return t<1e3?String(t):t<1e6?`${(t/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${(t/1e6).toFixed(1).replace(/\.0$/,"")}M`}function ZU(t,e){switch(t){case"help":return{kind:"note",note:{title:"comandos",lines:Xo.map(o=>`/${o.name.padEnd(12)} ${o.summary}`)}};case"model":return{kind:"note",note:{title:"model",lines:[`tier: ${e.usage.tier}`,...e.unsafe?["\u26A0 sess\xE3o em modo yolo (aprova\xE7\xE3o desligada)"]:[]]}};case"provider":return _m("",void 0);case"effort":return{kind:"note",note:{title:"effort",lines:["use /effort <valor> para setar (low/medium/high/custom)"]}};case"usage":return{kind:"note",note:{title:"usage",lines:[`tokens nesta sess\xE3o: ${Lte(e.usage.tokens)}`,`janela de contexto: ${e.usage.windowPct}% usada`,`tier: ${e.usage.tier}`]}};case"permissions":return{kind:"note",note:{title:"permissions",lines:e.unsafe?["\u26A0 MODO YOLO ativo \u2014 a catraca est\xE1 DESLIGADA: tudo \xE9 auto-aprovado.","sem --yolo: leitura = allow \xB7 escrita/bash = ask \xB7 sempre-ask (rede/","destrutivo/escalada/exec-de-pacote/config) sempre pergunta."]:["leitura (read/grep) = allow","escrita (edit) e bash (run_command) = ask com o efeito exato","sempre-ask (rede/destrutivo/escalada/exec-de-pacote/config): sempre pergunta","regras por workspace = evolu\xE7\xE3o p\xF3s-v1"]}};case"tools":return{kind:"note",note:Pte(void 0,e.unsafe??!1)};case"init":return{kind:"note",note:{title:"init",lines:["analiso o repo (stack, comandos, estrutura) e crio um ALUY.md na raiz","com esse contexto \u2014 voc\xEA confirma a escrita (diff) e edita \xE0 vontade.","o agente l\xEA o ALUY.md como contexto de projeto no boot de cada sess\xE3o."]}};case"login":return{kind:"note",note:{title:"login",lines:["para entrar, rode `aluy login` num terminal (device-flow RFC 8628)","ou `aluy login --token <PAT>` em CI/headless.","o fluxo device-flow dentro da TUI \xE9 a evolu\xE7\xE3o natural."]}};case"whoami":case"logout":return{kind:"async",id:t};case"telegram":return{kind:"note",note:{title:"telegram",lines:["uso: /telegram [status | allow <chat-id> | deny <chat-id> | logout | login]"]}};case"doctor":return{kind:"note",note:{title:"doctor",lines:["health-check indispon\xEDvel neste contexto \u2014 rode `aluy doctor` no shell."]}};case"undo":case"redo":return{kind:"note",note:{title:`/${t}`,lines:["desfazer/refazer indispon\xEDvel neste contexto (sem journal de sess\xE3o)."]}};case"rewind":return{kind:"note",note:{title:"/rewind",lines:["rewind indispon\xEDvel neste contexto (precisa da TUI interativa)."]}};case"memory":return{kind:"note",note:{title:"memory",lines:["vejo/edito/esque\xE7o/fixo os fatos que o agente lembra entre sess\xF5es","(global + projeto), pela mec\xE2nica interna \u2014 nunca por `cat` (read-deny).","a mem\xF3ria \xE9 relembrada como DADO, nunca instru\xE7\xE3o.","uso: /memory [forget|edit|pin|unpin <id>]"]}};case"todo":return{kind:"note",note:{title:"todo",lines:["vejo/gerencio o backlog de tarefas anotadas pelo agente (persistente).","o agente anota pedidos com a tool add_todo; voc\xEA gerencia com /todo.","uso: /todo [done <id>|clear]"]}};case"history":return{kind:"note",note:{title:"history",lines:["lista as sess\xF5es anteriores (data \xB7 diret\xF3rio \xB7 1\xAA mensagem) e RETOMA a","escolhida sem sair do aluy \u2014 a conversa antiga reaparece e voc\xEA continua.","no TTY: \u2191\u2193 navega \xB7 enter retoma \xB7 esc cancela. no n\xE3o-TTY: `/history <id>`."]}};case"ask":return{kind:"note",note:{title:"/ask",lines:["`/ask <pergunta>` responde em PARALELO, sem parar o trabalho em curso \u2014","read-only (n\xE3o toca arquivos nem o hist\xF3rico). Dispon\xEDvel no modo interativo."]}};case"rooms":return{kind:"note",note:{title:"/rooms",lines:["`/rooms` (ou `list`) lista as salas (c\xF3digo \xB7 msgs \xB7 atividade \xB7 quem);","`/rooms new` cria; `/rooms read [c\xF3digo]` snapshot \u2014 SEM c\xF3digo abre um PICKER","pra escolher a sala; `/rooms watch <c\xF3digo>` observa AO VIVO. Modo interativo."]}};case"subagent":return{kind:"note",note:{title:"/subagent",lines:["`/subagent <nome>` abre uma conversa 1:1 FOCADA e cont\xEDnua com um perfil `.md`;","sua entrada vai S\xD3 p/ ele (escopo \u2286 voc\xEA). `/back` volta ao principal. Modo interativo."]}};case"back":return{kind:"note",note:{title:"/back",lines:["`/back` sai do foco de `/subagent` e volta ao agente principal."]}};case"rename":return{kind:"note",note:{title:"rename",lines:["dou um NOME amig\xE1vel + uma COR de identifica\xE7\xE3o \xE0 sess\xE3o corrente:"," /rename <nome> \u2192 nome + cor autom\xE1tica (est\xE1vel pelo nome)"," /rename <nome> --cor <cor> \u2192 nome + cor escolhida (paleta do DS)"," /rename \u2192 mostra o nome/cor atuais"," /rename --limpar \u2192 remove o r\xF3tulo (volta ao default)","o \u25CF+nome aparece no composer e no /history. \xE9 s\xF3 identifica\xE7\xE3o local","(dado de UI) \u2014 nunca sai da sua m\xE1quina."]}};case"clear":return{kind:"clear"};case"compact":return{kind:"note",note:{title:"compact",lines:["resumo a conversa at\xE9 aqui num sum\xE1rio denso (decis\xF5es, estado, arquivos","tocados) e continuo a sess\xE3o com o contexto reduzido \u2014 libera a janela.","o resumo \xE9 gerado pelo modelo via broker; nada sai do dado para instru\xE7\xE3o."]}};case"theme":return Dm("",Ko[0].name);case"lang":return jA("",Yt[0].code);case"cycle":return{kind:"note",note:{title:"cycle",lines:['rodo uma tarefa em CICLOS: `/cycle <intervalo|--por dur> "tarefa"`.',"cada ciclo passa pela MESMA catraca (n\xE3o \xE9 bypass); cercado por PARADAS","DURAS (dura\xE7\xE3o \xB7 itera\xE7\xF5es \xB7 budget agregado \xB7 conclus\xE3o) e par\xE1vel a","qualquer hora. sem teto \u21D2 N\xC3O inicia (prote\xE7\xE3o contra loop infinito).","dois ritmos: fixo (intervalo/--por) e --auto (o agente decide o ritmo)."]}};case"cron":return{kind:"note",note:{title:"cron",lines:["agendamento PERSISTENTE (mesmo motor do `aluy cron`):",'`/cron list` \xB7 `/cron add <quando> "<tarefa>" [--yolo]` \xB7 `/cron edit <id> \u2026`',"`/cron enable|disable <id>` \xB7 `/cron rm <id>`. <quando> = cron de 5 campos."]}};case"notify":return UA("",{enabled:!1,tty:!0});case"split":return{kind:"note",note:{title:"split",lines:["liga/desliga o MODO VIEW AVAN\xC7ADO (split CHAT | LOG) \u2014 o painel de LOG de","atividade (agrupado por agente) ao lado da conversa. Tamb\xE9m via Ctrl+L.","\u2265100 col: lado-a-lado \xB7 60\u201399 col: abas (Tab alterna) \xB7 <60 col: desabilita.","a prefer\xEAncia PERSISTE entre sess\xF5es (ui.splitView)."]}};case"suggest":return{kind:"note",note:{title:"suggest",lines:["liga/desliga a SUGEST\xC3O DE PR\xD3XIMO PROMPT: ao fim de um turno, com o composer","vazio, aparece um ghost (dim) do que pedir a seguir; Tab o aceita no composer.","a gera\xE7\xE3o \xE9 heur\xEDstica LOCAL (sem modelo/tokens \u2014 n\xE3o gasta seu provider).","default LIGADO. `/suggest on|off` for\xE7a; a prefer\xEAncia PERSISTE (ui.suggestions)."]}};case"fullscreen":return{kind:"note",note:{title:"fullscreen",lines:["liga/desliga o MODO COCKPIT (tela cheia, alt-screen): 6 regi\xF5es fixas","(header/conversa/log/status/composer/hints), cada uma com scroll pr\xF3prio.","perde o scrollback/copy-paste NATIVOS \u2014 use /export ou ctrl+s p/ o transcript","redigido. INLINE \xE9 o DEFAULT \u2014 /fullscreen sai e volta a ele. <80 col cai pro","inline com aviso. a prefer\xEAncia PERSISTE (ui.fullscreen). s\xF3 vale em TTY."]}};case"export":return{kind:"note",note:{title:"export",lines:["grava o transcript desta sess\xE3o num arquivo markdown em ~/.aluy/exports/","(0600), J\xC1 REDIGIDO (CLI-SEC-6): segredos/tokens que apareceram na tela","saem como \u2039redigido\u203A no arquivo. \xDAtil p/ copiar/compartilhar a conversa."]}};case"mcp":return{kind:"note",note:{title:"mcp",lines:["lista os servers MCP (de ~/.aluy/mcp.json, do .mcp.json do projeto e do","Codex), com origem, command, estado (\u2713 ativo / \u25CB desativado) e as tools.","gerencie sem editar o JSON \xE0 m\xE3o, direto na sess\xE3o:"," /mcp add <nome> -- <command> [args...] \xB7 /mcp remove <nome>"," /mcp disable <nome> (desliga sem desinstalar) \xB7 /mcp enable <nome>","as tools MCP passam pela catraca (efeito \u21D2 confirma\xE7\xE3o); nunca auto-allow.","descubra novos no registro oficial: `/mcp search <termo>`."]}};case"agents":return{kind:"note",note:{title:"agents",lines:["lista os perfis de sub-agente .md que o aluy mapeou \u2014 GLOBAIS","(~/.aluy/agents/*.md, config do dono) e de PROJETO (.claude/agents/*.md, dado","do repo), com nome, escopo, tools (\u2286 pai) e a persona. Mostra tamb\xE9m os","rejeitados (.md malformado / `tools:` ileg\xEDvel) com o motivo.","s\xE3o os perfis que o spawn_agent (sub-agentes) invoca por nome."]}};case"inventory":return{kind:"note",note:{title:"inventory",lines:["invent\xE1rio do que a sess\xE3o carregou da .aluy/ (+ ~/.aluy/):","ALUY.md, agentes, comandos, skills, workflows e mem\xF3ria de projeto \u2014","com as contagens (espelhadas na StatusBar como \u2301) e os nomes."]}};case"skills":return{kind:"note",note:{title:"skills",lines:["lista as skills (SKILL.md) que o aluy mapeou \u2014 GLOBAIS","(~/.aluy/skills/<nome>/SKILL.md, config do dono) e de PROJETO","(.claude/skills/<nome>/SKILL.md, dado do repo), com nome, escopo e descri\xE7\xE3o.","Mostra tamb\xE9m as rejeitadas (sem name / corpo vazio) com o motivo.","uma skill \xE9 uma capacidade empacotada cujas instru\xE7\xF5es s\xE3o injetadas sob demanda."]}};case"workflows":return{kind:"note",note:{title:"workflows",lines:["lista os workflows .md que o aluy mapeou \u2014 GLOBAIS","(~/.aluy/workflows/*.md, config do dono) e de PROJETO (.aluy/workflows/*.md,","dado do repo), com nome, descri\xE7\xE3o e N atividades. Mostra tamb\xE9m os rejeitados","(.md malformado / sem name / sem atividades) com o motivo.","workflows s\xE3o fluxos de atividades que coordenam o agente (fatia 2: run)."]}};case"add-dir":return{kind:"note",note:{title:"add-dir",lines:["autoriza um diret\xF3rio EXTRA al\xE9m da raiz do workspace \u2014 o agente passa a","ler/editar/navegar nele (a conten\xE7\xE3o dura continua valendo em cada raiz).","ATO DO USU\xC1RIO: o agente n\xE3o tem ferramenta p/ se auto-ampliar.","uso: /add-dir <path> \xB7 sem args lista as ra\xEDzes \xB7 vale s\xF3 nesta sess\xE3o."]}};case"quit":return{kind:"quit"}}}function BA(t,e){return!e||e===""?t:t===e?"~":t.startsWith(e+"/")?`~${t.slice(e.length)}`:t}function e2(t,e,o=process.env.HOME){let n=t.trim();if(n==="")return{title:"add-dir",lines:["ra\xEDzes autorizadas desta sess\xE3o (o agente l\xEA/edita/navega s\xF3 dentro delas):",...e.roots.map((a,l)=>`${l===0?"\u25CF ":"+ "}${BA(a,o)}${l===0?" (raiz do workspace)":""}`),"adicione outra com `/add-dir <path>` \u2014 vale s\xF3 nesta sess\xE3o."]};let r=e.roots,s;try{s=e.addRoot(n)}catch(i){return{title:"add-dir",lines:[i instanceof Error?i.message:`n\xE3o foi poss\xEDvel autorizar "${n}".`,"uso: /add-dir <path> \u2014 o diret\xF3rio precisa existir. nada mudou."]}}return e.roots.length===r.length?{title:"add-dir",lines:[`${BA(s,o)} j\xE1 est\xE1 autorizado \u2014 nada a fazer.`]}:{title:"add-dir",lines:[`\u2713 ${BA(s,o)} adicionado \u2014 o agente pode ler/editar/navegar nele.`,"vale s\xF3 nesta SESS\xC3O (n\xE3o persiste). `/add-dir` sem args lista as ra\xEDzes."]}}function t2(t,e){let o=[];if(e&&o.push(`\u26A0 config: ${e}`),t.length===0)return o.push("nenhum server MCP configurado."),o.push("adicione sem sair daqui: /mcp add <nome> -- <command> [args...]"),{title:"mcp",lines:o};for(let n of t){let r=n.state.kind==="ok"?`\u2713 ativo \xB7 ${n.state.toolCount} tool${n.state.toolCount===1?"":"s"}`:n.state.kind==="disabled"?"\u25CB desativado":n.state.kind==="error"?`erro \xB7 ${n.state.error}`:"\u2014",s=n.managed?"":" [n\xE3o-gerenciado pelo aluy]";o.push(`${n.name} \u2014 ${Lu(n.origin)} \xB7 ${r}${s}`),o.push(` ${n.command}${n.args.length?" "+n.args.join(" "):""}`),n.envKeys.length&&o.push(` env: ${n.envKeys.join(", ")}`);let i=Mi(n);i!==void 0&&o.push(` \u26A0 ${i}`);for(let a of n.tools)o.push(` \u2022 ${a.qualifiedName}${a.description?` \u2014 ${a.description}`:""}`)}return o.push("gerencie daqui: /mcp add <nome> -- <command> [args...] \xB7 /mcp remove|disable|enable <nome>."),o.push("tools MCP passam pela catraca (efeito \u21D2 confirma\xE7\xE3o)."),o.push("busca no registro oficial aberto: `/mcp search <termo>`."),{title:"mcp",lines:o}}function o2(t){let e=t.trim();if(e==="")return null;let o=/^search(?:\s+([\s\S]*))?$/i.exec(e);return o?{query:(o[1]??"").trim().replace(/\s+/g," ")}:null}function n2(t){let e=t.trim();if(e==="")return null;let o=e.split(/\s+/),n=o[0].toLowerCase();if(n!=="reconnect"&&n!=="reload")return null;let r=o.slice(1).join(" ")||"all";return{kind:n,scope:r}}function r2(){return{title:"mcp",lines:["uso: /mcp search <termo>","busca servers MCP no registro oficial aberto (sem login) e mostra a linha","`\u2192 aluy mcp add \u2026` pronta p/ copiar. ex.: /mcp search github"]}}function s2(t){return{title:"mcp",lines:[`buscando "${t}" no registro oficial\u2026`]}}function Pte(t,e){let o=[],n={read_file:"l\xEA o conte\xFAdo de um arquivo",write_file:"cria um arquivo novo (ou reescreve com overwrite:true)",edit_file:"edita um arquivo existente substituindo um trecho exato",glob:"acha arquivos por padr\xE3o de caminho (ex.: **/*.ts)",grep:"busca uma substring literal em arquivos (n\xE3o regex)",run_command:"executa um comando de shell",run_tests:"roda testes (vitest/jest/pytest/go test) e mostra resultado",change_dir:"muda o diret\xF3rio de trabalho da sess\xE3o (cd)"},r={read:"leitura",write:"escrita",exec:"execu\xE7\xE3o"};o.push("ferramentas nativas (8):");let s=Object.entries(n).map(([i,a])=>{let l=i==="run_command"||i==="run_tests"?"exec":i==="write_file"||i==="edit_file"?"write":"read";return[i,r[l]??l,a]});if(o.push(...$r(["ferramenta","efeito","o que faz"],s,{maxWidths:[14,9,48]})),t&&t.length>0){o.push(""),o.push(`ferramentas MCP (${t.length} server(s)):`);for(let i of t){let a=i.state.kind==="ok"?`\u2713 ${i.state.toolCount}`:i.state.kind==="error"?"\u2717 erro":i.state.kind==="disabled"?"\u26A0 desabilitado":"? desconhecido";if(o.push(` mcp__${i.name} (${i.command}) \u2014 ${a}`),i.state.kind==="ok")for(let l of i.tools){let c=l.description?` \u2014 ${l.description}`:"";o.push(` ${l.qualifiedName}${c}`)}}}else o.push(""),o.push("MCP: use /mcp para ver os servers e suas ferramentas.");return o.push(""),o.push("delega\xE7\xE3o:"),o.push(" spawn_agent \u2014 delega subtarefas a sub-agentes locais paralelos"),o.push(" room_post / room_read \u2014 conversa entre agentes em sala"),o.push(""),o.push("permiss\xE3o (catraca):"),e?o.push(" \u26A0 MODO YOLO \u2014 catraca DESLIGADA: tudo \xE9 auto-aprovado."):o.push(" leitura = allow \xB7 escrita/bash = ask \xB7 rede/destrutivo = sempre-ask"),{title:"tools",lines:o}}async function i2(t,e){let{text:o}=await Sw(t,e);return{title:"mcp",lines:o.split(`
|
|
655
655
|
`)}}async function a2(t,e){if(t==="whoami")try{let o=await e.whoami();return o?{title:"whoami",lines:[`user: ${o.user??"\u2014 (PAT \u2014 use device-flow p/ ver o usu\xE1rio)"}`,`org: ${o.organization_id}`,`escopos: ${o.scopes.join(", ")}`,`tipo: ${o.kind==="pat"?"PAT":"sess\xE3o device-flow"}`,`token: ${o.token_hint} (redigido \u2014 o segredo vive s\xF3 no keychain)`]}:{title:"whoami",lines:["n\xE3o autenticado \u2014 rode `aluy login`."]}}catch{return{title:"whoami",lines:["n\xE3o foi poss\xEDvel ler a credencial."]}}try{let{revoked:o}=await e.logout();return{title:"logout",lines:[o?"sess\xE3o revogada no servidor e credencial apagada do keychain.":"credencial apagada do keychain (nada a revogar no servidor)."]}}catch{return{title:"logout",lines:["n\xE3o foi poss\xEDvel concluir o logout \u2014 tente de novo."]}}}async function l2(t,e){let o=t.trim().split(/\s+/).filter(Boolean),n=(o[0]??"status").toLowerCase(),r=e.configStore.load();if(n==="status"||n===""){let s=await e.secretStore.get().catch(()=>null),i=Ms(r);return{title:"telegram",lines:[`token: ${s?`presente (${Ds(s)})`:"ausente \u2014 rode `aluy telegram login` no terminal"}`,`allowlist: ${i.length>0?`[${i.join(", ")}]`:"VAZIA (bridge fechada \u2014 /telegram allow <chat-id>)"}`,"estado: a bridge ainda N\xC3O est\xE1 ativa (ativa\xE7\xE3o sob revis\xE3o de seguran\xE7a)."]}}if(n==="allow"||n==="deny"){let s=o[1],i=s!==void 0&&/^-?\d+$/.test(s)?Number(s):NaN;if(!Number.isInteger(i))return{title:"telegram",lines:[`uso: /telegram ${n} <chat-id> (um inteiro)`]};let a=n==="allow"?Fp(r,i):Ip(r,i);return e.configStore.save({connectors:{telegram:{allowlist:a}}}),{title:"telegram",lines:[`chat-id ${i} ${n==="allow"?"autorizado":"removido"}. allowlist: [${a.join(", ")}]`]}}return n==="logout"?(await e.secretStore.clear().catch(()=>{}),{title:"telegram",lines:["token do bot removido do keychain (a bridge n\xE3o autentica mais)."]}):n==="login"?{title:"telegram",lines:["o token do bot \xE9 sens\xEDvel \u2014 rode `aluy telegram login` no TERMINAL (prompt sem eco, vai p/ o keychain).","aqui na sess\xE3o: /telegram status \xB7 /telegram allow <id> \xB7 /telegram deny <id> \xB7 /telegram logout"]}:{title:"telegram",lines:["uso: /telegram [status | allow <chat-id> | deny <chat-id> | logout | login]"]}}function c2(t,e){t.kind==="note"?e.pushNote(t.note.title,t.note.lines):t.kind==="clear"&&e.clear()}var HA=p(()=>{"use strict";P();ko();zh();Fl();Rs();QU();pt();jg()});function Kg(t){let e=t.trim();if(e==="")return{kind:"list"};let o=e.search(/\s/),n=(o===-1?e:e.slice(0,o)).toLowerCase(),r=o===-1?"":e.slice(o+1).trim();if(n==="list"||n==="listar"||n==="ls")return{kind:"list"};if(n==="esquecer"||n==="forget"||n==="rm"||n==="remover")return r===""?{kind:"help",reason:"forget requer um <id> (veja /memory)."}:{kind:"forget",id:r.split(/\s+/)[0]};if(n==="editar"||n==="edit"){let s=r.search(/\s/);if(s===-1)return{kind:"help",reason:"edit requer <id> <novo texto>."};let i=r.slice(0,s),a=r.slice(s+1).trim();return a===""?{kind:"help",reason:"edit requer <id> <novo texto>."}:{kind:"edit",id:i,text:a}}return n==="fixar"||n==="pin"?r===""?{kind:"help",reason:"pin requer um <id>."}:{kind:"pin",id:r.split(/\s+/)[0],pinned:!0}:n==="desfixar"||n==="unpin"?r===""?{kind:"help",reason:"unpin requer um <id>."}:{kind:"pin",id:r.split(/\s+/)[0],pinned:!1}:{kind:"help",reason:`subcomando desconhecido: "${n}".`}}function Fte(t){let e=[t.scope,t.provenance,...t.pinned?["\u{1F4CC} fixado"]:[],...Ci(t.text)?["\u26A0 diretiva (\xE9 DADO, n\xE3o ordem)"]:[]].join(" \xB7 ");return`${t.id} [${e}] ${t.text}`}async function Yg(t,e,o){if(t.kind==="help")return{title:"memory",lines:[t.reason,"",...u2]};if(t.kind==="list"){let r=await e.list();return r.length===0?{title:"memory",lines:["mem\xF3ria vazia \u2014 nenhum fato lembrado ainda.","",...u2]}:{title:`memory (${r.length})`,lines:[...r.map(Fte),"","edite com /memory edit|forget|pin <id>"]}}return o?{title:"memory",lines:["\u2298 modo Plan (read-only): edit/forget/pin a mem\xF3ria \xE9 EFEITO \u2014 negado.","saia do Plan (Tab/\u25B8 normal) p/ podar/fixar a mem\xF3ria."]}:t.kind==="forget"?{title:"memory",lines:[await e.forget(t.id)?`fato ${t.id} esquecido.`:`id n\xE3o encontrado: ${t.id}.`]}:t.kind==="edit"?{title:"memory",lines:[await e.edit(t.id,t.text)?`fato ${t.id} atualizado.`:`id n\xE3o encontrado (ou texto inv\xE1lido): ${t.id}.`]}:{title:"memory",lines:await e.pin(t.id,t.pinned)?[`fato ${t.id} ${t.pinned?"fixado":"desfixado"}.`,...t.pinned?["(fixar \xE9 reten\xE7\xE3o \u2014 o fato continua DADO no recall, nunca vira instru\xE7\xE3o)"]:[]]:[`id n\xE3o encontrado: ${t.id}.`]}}var u2,qA=p(()=>{"use strict";P();u2=["uso:"," /memory lista os fatos (global + projeto)"," /memory forget <id> remove um fato"," /memory edit <id> \u2026 corrige o texto de um fato"," /memory pin <id> fixa (reten\xE7\xE3o \u2014 N\xC3O vira instru\xE7\xE3o)"," /memory unpin <id> desfixa","","a mem\xF3ria \xE9 relembrada como DADO (nunca instru\xE7\xE3o); fixar \xE9 s\xF3 reten\xE7\xE3o."]});function Vg(t){let e=t.trim();if(e==="")return{kind:"list"};let o=e.search(/\s/),n=(o===-1?e:e.slice(0,o)).toLowerCase(),r=o===-1?"":e.slice(o+1).trim();return n==="list"||n==="ls"?{kind:"list"}:n==="done"?r===""?{kind:"help",reason:"done requer um <id> (veja /todo)."}:{kind:"done",id:r.split(/\s+/)[0]}:n==="clear"?{kind:"clear"}:n==="help"?{kind:"help",reason:""}:{kind:"help",reason:`subcomando desconhecido: "${n}".`}}function d2(t){return`${t.done?"\u2713":"\u25CB"} ${t.id} ${t.text}`}async function Xg(t,e,o){if(t.kind==="help")return{title:"todo",lines:t.reason?[t.reason,"",...WA]:[...WA]};if(t.kind==="list"){let r=await e.list();if(r.length===0)return{title:"todo",lines:["backlog vazio \u2014 nenhum item anotado ainda.","",...WA]};let s=r.filter(l=>!l.done),i=r.filter(l=>l.done),a=[`backlog (${r.length} itens: ${s.length} pendentes, ${i.length} feitos):`,...s.length>0?["","\u2500\u2500 Pendentes \u2500\u2500",...s.map(d2)]:["","(nenhum pendente)"],...i.length>0?["","\u2500\u2500 Feitos \u2500\u2500",...i.map(d2)]:[],"","marque feito com /todo done <id> \xB7 limpe feitos com /todo clear"];return{title:`todo (${s.length} pendentes)`,lines:a}}if(o)return{title:"todo",lines:["\u2298 modo Plan (read-only): done/clear o backlog \xE9 EFEITO \u2014 negado.","saia do Plan (Tab/\u25B8 normal) p/ marcar itens como feitos."]};if(t.kind==="done")return{title:"todo",lines:[await e.done(t.id)?`item ${t.id} marcado como conclu\xEDdo. \u2713`:`id n\xE3o encontrado: ${t.id}. Use /todo para ver os ids.`]};let n=await e.clearDone();return{title:"todo",lines:[n>0?`${n} item(ns) conclu\xEDdo(s) removido(s).`:"nenhum item feito para limpar."]}}var WA,GA=p(()=>{"use strict";WA=["uso:"," /todo lista os itens (pendentes + feitos)"," /todo done <id> marca um item como conclu\xEDdo"," /todo clear remove os itens j\xE1 feitos","","o agente anota pedidos com a tool add_todo; voc\xEA gerencia com /todo."]});function m2(t){return t.kind==="memory"||t.kind==="full"}function f2(t,e){if(e.kind!=="full"&&e.kind!=="memory")return{armed:!1,nextArmed:void 0};let o=t===e.kind;return{armed:o,nextArmed:o?void 0:e.kind}}function Jg(t){let e=t.trim().toLowerCase();return e===""?{kind:"session"}:e==="full"||e==="tudo"?{kind:"full"}:e==="memory"||e==="mem\xF3ria"||e==="memoria"?{kind:"memory"}:e==="cancelar"||e==="cancel"?{kind:"cancel"}:{kind:"help",reason:`subcomando desconhecido: "${e}".`}}function Nte(t,e){let o=`${e} fato${e===1?"":"s"}`;return[`\u26A0 ${t==="full"?"isto LIMPA a sess\xE3o (contexto da conversa) E APAGA PERMANENTEMENTE a mem\xF3ria do agente:":"isto APAGA PERMANENTEMENTE a mem\xF3ria do agente:"}`,` \u2022 ${o} da mem\xF3ria (global + projeto) \u2014 IRREVERS\xCDVEL.`,"N\xC3O apaga: as sess\xF5es salvas (/history) nem o /undo \u2014 esses continuam recuper\xE1veis.",`confirme repetindo \`/clear ${t}\` \xB7 cancele com \`/clear cancelar\` (ou qualquer outro comando).`]}async function Qg(t,e,o){if(t.kind==="session")return e.clearSession(),{note:{title:"clear",lines:[]},armed:!1,cleared:!0};if(t.kind==="cancel")return{note:{title:"clear",lines:[o?"confirma\xE7\xE3o cancelada \u2014 nada foi apagado.":"nada pendente a cancelar."]},armed:!1,cleared:!1};if(t.kind==="help")return{note:{title:"clear",lines:[t.reason,"",...Ite]},armed:!1,cleared:!1};let n=t.kind,s=(await e.memory.list()).length;if(s===0){let l=n==="full";return l&&e.clearSession(),{note:{title:"clear",lines:n==="full"?["sess\xE3o limpa. mem\xF3ria j\xE1 estava vazia \u2014 nada a apagar."]:["mem\xF3ria j\xE1 estava vazia \u2014 nada a apagar."]},armed:!1,cleared:l}}if(!o)return{note:{title:"clear",lines:Nte(n,s)},armed:!0,cleared:!1};await e.memory.clearAll();let i=n==="full";i&&e.clearSession();let a=`${s} fato${s===1?"":"s"}`;return{note:{title:"clear",lines:n==="full"?[`sess\xE3o limpa e mem\xF3ria apagada: ${a} (global + projeto) removidos.`]:[`mem\xF3ria apagada: ${a} (global + projeto) removidos. a sess\xE3o segue.`]},armed:!1,cleared:i}}var Ite,zA=p(()=>{"use strict";Ite=["uso:"," /clear limpa S\xD3 a sess\xE3o (contexto da conversa) \u2014 a mem\xF3ria fica intacta"," /clear memory APAGA a mem\xF3ria do agente (global + projeto) \u2014 pede confirma\xE7\xE3o"," /clear full limpa a sess\xE3o E APAGA a mem\xF3ria (global + projeto) \u2014 pede confirma\xE7\xE3o","","memory/full s\xE3o IRREVERS\xCDVEIS e N\xC3O tocam as sess\xF5es salvas nem o /undo (recuper\xE1veis)."]});function KA(t){return t==="local"?"erro do provider local":"erro de broker"}async function Rm(t,e){let o=qi(t);if(!e||o.length===0)return{goal:t,items:[],notes:[]};let n=[],r=[];for(let s of o){let i=await e.attach(s.path);i.kind==="ok"?(n.push(i.item),r.push(`[anexo] @${i.path}${i.truncated?" (truncado)":""}`)):r.push(`[anexo recusado] @${s.path} \u2014 ${i.reason}`)}return{goal:ew(t,o),items:n,notes:r}}async function p2(t,e,o,n={}){if(e===void 0||e.trim()===""){o.write('aluy: sem objetivo e sem TTY \u2014 nada a fazer. Use `aluy "objetivo"`.\n');return}let r=e.trim();if(r.startsWith("!")){let a=r.slice(1).trim();if(a===""){o.write("aluy: `!` sem comando \u2014 nada a rodar.\n");return}let l=0,c=t.subscribe(u=>{for(let m=l;m<u.blocks.length;m++){let d=u.blocks[m];if(d.kind==="bang"&&d.status==="running")break;let h=C2(d);h!==""&&o.write(h+`
|
|
@@ -684,10 +684,10 @@ Notas:
|
|
|
684
684
|
`),!0}function C2(t){switch(t.kind){case"testrun":{let e=t.score;return e.unknownFormat?"[testes] placar indispon\xEDvel (formato n\xE3o reconhecido)":`[testes] ${e.passed} \u2713 ${e.failed} \u2717 (${e.total})`}case"you":return`[voc\xEA] ${t.text}`;case"aluy":{let e=an(t.text);return e.trim()===""?"":`[aluy] ${e}`}case"tool":return t.status==="running"?`[tool] ${t.verb} ${t.target} \u2014 ${t.verbGerund??"rodando"}`:`[tool] ${t.verb} ${t.target} \u2014 ${t.result} ${t.status==="ok"?"ok":"erro"}`;case"bang":{if(t.status==="running")return`[shell] $ ${t.command} \u2014 rodando`;let e=t.status==="blocked"?"bloqueado":t.status==="ok"?"ok":"erro",o=t.output&&t.output.trim()!==""?`
|
|
685
685
|
${t.output}`:"";return`[shell] $ ${t.command} \u2014 ${e}${o}`}case"subagents":{let e=`[sub-agentes] ${t.children.length}:`,o=t.children.map(n=>{let r=n.status==="running"?"rodando":n.status==="done"?"pronto":n.stop==="timeout"?"timeout":n.stop==="limit"?"teto":"falhou",s=n.summary!==void 0&&n.status!=="running"?` \xB7 ${n.summary}`:"";return` [${n.label}] ${r}${s}`});return[e,...o].join(`
|
|
686
686
|
`)}case"deny":return`[negado] ${t.verb} ${t.exact}`;case"broker-error":return`[${KA(t.backend)}] ${t.message}${t.status!==void 0?` (${t.status})`:""}`;case"note":return`[${t.title}] ${t.lines.join(" \xB7 ")}`;case"doctor":{let e="[doctor]",o=t.checks.flatMap(r=>{let s=r.status==="ok"?"\u2713":r.status==="warn"?"\u26A0":r.status==="fail"?"\u2717":"\u25F7",i=r.detail!==void 0&&r.detail!==""?`: ${r.detail}`:": testando\u2026",a=` ${s} ${r.label}${i}`;return r.status!=="ok"&&r.status!=="pending"&&r.fix!==void 0?[a,` \u2192 ${r.fix}`]:[a]}),n=t.summary!==void 0?[` resumo: ${t.summary}`]:[];return[e,...o,...n].join(`
|
|
687
|
-
`)}case"inject":return`[encaixado]${t.text.trim()?` ${t.text.trim()}`:""}`}}var $te,YA=p(()=>{"use strict";P();Rd();Vr();HA();qA();GA();zA();$te="-".repeat(12)});import{useEffect as Qt,useState as ze,useReducer as Bte,useCallback as Zt,useMemo as T2,useRef as eo}from"react";import{Box as le,Static as Ute,Text as D2,useApp as jte,useInput as Hte,useStdin as qte,useStdout as Wte}from"ink";import{Fragment as O2,jsx as _,jsxs as go}from"react/jsx-runtime";function M2(t){let{controller:e}=t,{exit:o}=jte(),{stdout:n}=Wte(),r=Z(),{lang:s,t:i}=Se(),[,a]=Bte(x=>x+1,0);Qt(()=>{if(!n||typeof n.on!="function")return;let x=()=>a();return n.on("resize",x),()=>{typeof n.off=="function"&&n.off("resize",x)}},[n]);let l=n?.columns??80,c=n?.rows??24,u=r.density!=="compact",m=r.density!=="compact",[d,h]=ze(e.current),[g,b]=ze({text:"",cursor:0}),y=g.text,w=g.cursor,[A,T]=ze(!1),[O,N]=ze(0),[G,V]=ze(()=>new Set),[z,B]=ze(!1),[X,oe]=ze(""),ne=d.phase==="questioning"?d.pendingQuestion?.spec:void 0,M=eo(void 0);Qt(()=>{ne!==M.current&&(M.current=ne,N(0),V(new Set),oe(""),B(ne?.kind==="text"))},[ne]);let[j,Ae]=ze(0),[se,he]=ze(!1),[ie,fe]=ze(0),[R,de]=ze([]),[ae,Y]=ze(-1),[Oe,yt]=ze(t.initialSuggestions!==!1),[et,Le]=ze(void 0),Rt=eo(e.current.phase),Qo=eo(void 0);Qo.current=et;let wt=eo(g);wt.current=g;let[Te,Et]=ze([]),rt=eo([]),I=eo(0);rt.current=Te,Te.length===0&&(I.current=0);let K=Zt(x=>{rt.current=[...rt.current,x],Et(v=>[...v,x])},[]),ye=Zt(()=>{rt.current=[],Et([]),I.current=0},[]),[Ee,Pe]=ze(!1),[Fe,J]=ze(0),[H,ue]=ze(null),[Ot,si]=ze(t.initialSplitView===!0),[cs,Zo]=ze(!1),[k,Ut]=ze("chat"),[Ar,At]=ze(()=>new Set),[fa,en]=ze(0),[ii,us]=ze(!1),[to,ai]=ze(t.initialFullscreen===!0),[pa,tn]=ze("conversa"),[wn,on]=ze(0),[Bo,Cr]=ze(!1),Gn=eo(void 0),jt=eo(void 0),q=eo(!1),ce=eo(void 0),vt=Zt(()=>{jt.current!==void 0&&(clearTimeout(jt.current),jt.current=void 0),Gn.current=void 0,Cr(!1)},[]);Qt(()=>()=>{jt.current!==void 0&&clearTimeout(jt.current),ce.current!==void 0&&clearTimeout(ce.current)},[]);let Ht=Yh(d.meta.label),Uo=y.length===0?1:Vo(y,l>Ht?l-Ht:l),Tr=Math.max(3,Math.floor(c/3)),ds=Math.max(0,Math.min(Uo,Tr)-1),Kl=to?e.flowOverview():[],Dr=to?MA(Kl,x=>e.drillInFlow(x),{collapsed:Ar,errorsOnly:ii}).sections:[],ha=Kl.filter(x=>x.kind==="subagent"&&(x.phase==="thinking"||x.phase==="tool"||x.phase==="asking")).length,li=to?Gg(d.blocks).startupNotes:[],Pm=li.length>0?1+li.reduce((x,v)=>x+1+v.lines.length,0):0,iy=to?{lines:OU(Dr)+Pm,hasActivity:Dr.length>0||Pm>0,activeAgents:ha,focused:pa==="log"}:void 0,En=ni(c,l,Uo,iy),Yl=to&&En.kind==="cockpit",zn=DU(l,Ot),jo=zn.layout,_o=jo==="side"||jo==="tabs"&&k==="log",ga=_o&&cs,ge=JB({fileIndex:t.fileIndex??Gte,attachReader:t.attachReader??zte}),U=eU({catalog:t.catalog??Kte,...t.customModels?{customModels:t.customModels}:{},currentTier:d.meta.tier,...t.currentEffort!==void 0?{currentEffort:t.currentEffort}:{}}),qt=nU(t.permissionControl??Xte),Vl=t.currentTheme??Pi(r.brightness),Wt=aU({currentTheme:Vl}),Xl=t.currentLang??s,Mt=dU({currentLang:Xl}),ms=(d.meta.provider??"")!==""?d.meta.provider:t.currentProvider,oo=pU({...ms!==void 0?{currentProvider:ms}:{},...t.providersClient?{providersClient:t.providersClient}:{}}),ya=T2(()=>m1(Xo,i),[i]),Gt=gU({store:t.sessionStore??Yte}),Jl=t.rewindSource??Vte,E=bU({source:Jl}),$=T2(()=>E.target?Jl.barriersAfter(E.target.id):[],[E.target,Jl]),ee=kU({...t.userCommands!==void 0?{userCommands:t.userCommands}:{},natives:ya}),D=t.syncActive??!0,L=EU(d.phase,D)||Zte(d.blocks),W=km({enabled:r.animate&&L}),pe=Wg(d.phase);km({enabled:pe,intervalMs:1e3}),Qt(()=>{let x=e.subscribe(h);return()=>{x(),e.dispose()}},[e]),Qt(()=>{if(t.initialFullscreen!==!0||t.cockpitEnteredAtBoot===!0)return;if(ni(c,l).kind==="cockpit")t.cockpitScreen?.enter();else{ai(!1);let v=ni(c,l),S=v.kind==="refuse"&&v.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[S])}},[]);let ke=eo(t.initialFullscreen===!0&&En.kind==="cockpit"),bt=eo(t.initialFullscreen===!0);Qt(()=>{let x=bt.current!==to;if(bt.current=to,!to){ke.current=!1;return}let v=En.kind==="cockpit";if(x){ke.current=v;return}let S=ke.current;if(S&&!v){t.cockpitScreen?.leave();let C=En.kind==="refuse"&&En.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[C])}else!S&&v?(t.cockpitScreen?.enter(),a()):S&&v&&t.cockpitScreen?.resetDiffer?.();ke.current=v},[c,l,to]);let{stdin:lt}=qte();Qt(()=>{if(!lt)return;let x=v=>{let S=typeof v=="string"?v:v.toString("utf8");if(S.includes("\x1B[19~")||S.includes("\x1BOW")){e.cancelAllFlows(),ye();return}let C=qN(S);C==="home"?b(Q=>({...Q,cursor:0})):C==="end"&&b(Q=>({...Q,cursor:Q.text.length}))};return lt.on("data",x),()=>{lt.removeListener("data",x)}},[lt,e,ye,b]),Qt(()=>{if(d.phase!=="boot")return;let x=t.bootMs??900;if(x<=0)return;let v=setTimeout(()=>e.dismissBoot(),x);return()=>clearTimeout(v)},[d.phase,e,t.bootMs]),Qt(()=>{d.phase!=="stuck"&&A&&T(!1)},[d.phase,A]);let _e=t.userCommands??[],nn=y.startsWith("/")?y.slice(1):"",no=p1(nn,_e,ya),$e=Zt((x,v)=>{b({text:x,cursor:_t(x,v??x.length)})},[]);Qt(()=>{let x=Rt.current,v=d.phase;if(Rt.current=v,x===v)return;let S=v==="idle"||v==="done";S&&(x!=="idle"&&x!=="done"&&x!=="boot")?Oe&&y===""&&Te.length===0&&Le(jU(d.blocks,i)):S||Le(void 0)},[d.phase,d.blocks,y,Te.length,Oe,i]),Qt(()=>{y!==""&&Le(void 0)},[y]);let yo=Zt(x=>{he(_E(x,t.userCommands??[])),fe(0)},[t.userCommands]),Ho=Zt(()=>{Tm("clearScreen() \u2192 \\x1b[2J\\x1b[3J + staticKey++ (REEMITE hist\xF3rico)"),n?.write("\x1B[H\x1B[2J\x1B[3J"),Ae(x=>x+1)},[n]),Re=t.registerClearScreen;Qt(()=>{Re?.(Ho)},[Re,Ho]),Qt(()=>{Tm(`slashOpen=${se} (rows=${c} cols=${l})`)},[se,c,l]);let Me=eo({rows:c,columns:l}),_r=eo(!1);Qt(()=>{if(to){Me.current={rows:c,columns:l};return}let x=Me.current;if(x.rows===c&&x.columns===l)return;if(_r.current){Me.current={rows:c,columns:l},Tm(`resize ${x.rows}x${x.columns} \u2192 ${c}x${l} (F196: viva > rows \u21D2 PULA clearScreen; Ink repinta via clearTerminal)`);return}Tm(`resize ${x.rows}x${x.columns} \u2192 ${c}x${l} (clearScreen em 90ms)`),Me.current={rows:c,columns:l};let v=setTimeout(()=>Ho(),90);return()=>clearTimeout(v)},[c,l,to,Ho]);let fs=Zt(()=>{si(x=>{let v=!x;return t.onSplitViewChange?.(v),v||(Zo(!1),Ut("chat")),v})},[t]),Ql=Zt(()=>{ai(x=>{let v=!x,S=ni(c,l).kind==="cockpit";if(v&&S)t.cockpitScreen?.enter(),e.replaceNote("cockpit",[i("cockpit.entered")]);else if(v&&!S){let C=ni(c,l),Q=C.kind==="refuse"&&C.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[Q])}else t.cockpitScreen?.leave(),Ho(),e.replaceNote("cockpit",[i("cockpit.left")]);return t.onFullscreenChange?.(v),v}),tn("conversa"),on(0),en(0)},[t,e,i,c,l,Ho]),An=Zt((x,v)=>{if(x.id==="split"){fs();return}if(x.id==="fullscreen"){Ql();return}if(x.id==="suggest"){let S=v.trim().toLowerCase(),C=S==="on"?!0:S==="off"?!1:!Oe;yt(C),t.onSuggestionsChange?.(C),C||Le(void 0),e.replaceNote("suggest",[C?"sugest\xE3o de pr\xF3ximo prompt LIGADA \u2014 Tab aceita o ghost no composer.":"sugest\xE3o de pr\xF3ximo prompt DESLIGADA."]);return}if(x.id==="export"){t.onExportTranscript?t.onExportTranscript().then(S=>{e.pushNote("export",S.ok&&S.path?[`transcript exportado (redigido) \u2192 ${S.path}`]:[S.error??"export indispon\xEDvel"])}):e.replaceNote("export",["export indispon\xEDvel nesta sess\xE3o."]);return}if(x.id==="model"&&v.trim()===""&&d.meta.backend==="local"){e.replaceNote("model-local",["Backend LOCAL (BYO): os tiers do broker n\xE3o se aplicam aqui.","O modelo vem do seu provider \u2014 troque com /provider, ou defina ALUY_LOCAL_MODEL / --model."]);return}if(x.id==="model"&&v.trim()===""&&t.catalog!==void 0&&t.onSelectTier!==void 0){U.openPicker();return}if(x.id==="permissions"&&t.permissionControl!==void 0){qt.openPanel();return}if(x.id==="history"&&t.sessionStore!==void 0&&t.onResumeSession!==void 0){let S=v.trim();if(S===""){Gt.openPicker();return}Ho(),t.onResumeSession(S);return}if(x.id==="rewind"&&t.rewindSource!==void 0&&t.onRewind!==void 0){E.openPicker();return}if(x.id==="theme"&&t.onSelectTheme!==void 0){let S=v.trim();if(S===""){Wt.openPicker();return}let C=Wr(S);if(C){t.onSelectTheme(C.name);return}}if(x.id==="lang"&&t.onSelectLang!==void 0){let S=v.trim();if(S===""){Mt.openPicker();return}let C=Os(S);if(C){t.onSelectLang(C.code);return}}if(x.id==="provider"&&t.onSelectProvider!==void 0){let S=v.trim();if(S===""){oo.openPicker();return}let C=Ug(S,oo.providers);if(C){t.onSelectProvider(C.name);return}}t.onCommand?.(x,v)},[t,U,qt,Wt,Mt,oo,Gt,E,Ho,fs,Oe]),Fm=Zt(x=>{if(x.action.kind==="command"){An(x.action.command,"");return}x.action.actionId==="cycle-mode"&&e.cycleMode()},[An,e]),ps=Zt(x=>{on(0),en(0);let v=Pl(x,_e);if(v.kind==="goal"){if(v.text!==""){if(qi(v.text).length>0&&t.attachReader){let C=ge.attachments.map(Q=>Q.item);Rm(v.text,t.attachReader).then(({goal:Q,items:Be})=>{if(Q===""&&Be.length===0){ge.clear();return}let He=[...C,...Be],Ro=Q!==""?Q:v.text;de(Yn=>[...Yn,Ro]),e.submit(Ro,He),ge.clear()});return}let S=ge.attachments.map(C=>C.item);de(C=>[...C,v.text]),e.submit(v.text,S),ge.clear()}return}if(v.kind==="command"){An(v.command,v.args);return}if(v.kind==="bang"){de(S=>[...S,`!${v.command}`]),e.runBang(v.command);return}},[e,_e,ge,An,t.attachReader]),zt=Zt(x=>{let v=Pl(x,_e);return v.kind!=="goal"||v.text===""||ge.attachments.length>0||qi(v.text).length>0?!1:e.injectInput("root",v.text)},[e,_e,ge]),Cn=Zt(x=>{let v=Pl(x,_e);return v.kind!=="command"||!AE(v.command,v.args)?!1:(An(v.command,v.args),!0)},[_e,An]),ba=Zt(x=>{if(rt.current.length>0){K(x);return}let v=Pl(x,_e),S=v.kind==="goal"?v.text:"";if(CU({subagentsRunning:R2(e.current.blocks),isPlainGoal:v.kind==="goal",nonEmpty:S!=="",hasPendingAttachment:ge.attachments.length>0||S!==""&&qi(S).length>0})){zt(x);return}!zt(x)&&!Cn(x)&&K(x)},[K,zt,Cn,e,_e,ge]),rn=eo();rn.current||(rn.current=mN());let Tn=eo();Tn.current||(Tn.current=zU());let ci=Zt(x=>{let v=XU(x,Tn.current);return Tn.current.reset(),v},[]),va=Zt(x=>{let v=VU(x,Tn.current,"backward");return v.handled?(v.removedId!==void 0&&Tn.current.remove(v.removedId),v.state):qw(x)},[]),u8=eo({open:!1}),fC=Zt(x=>{if(x==="")return;e.current.phase==="boot"&&e.dismissBoot(),ge.dismissNotice();let v=GU(x);b(S=>{let C=v?KU(S,x,Tn.current):Vi(S,x);return yo(C.text),ay(C.text),C}),Y(-1)},[e,ge,yo]);Qt(()=>{if(!lt)return;let x=rn.current,v=S=>{let C=typeof S=="string"?S:S.toString("utf8");if(!x.isInPaste()&&!C.includes("\x1B[20"))return;let Q=x.feed(C);for(let Be of Q)Be.kind==="paste"&&fC(Be.text)};return lt.on("data",v),()=>{lt.removeListener("data",v)}},[lt,fC]);let d8=ge.open||U.open||qt.open||Wt.open||Mt.open||oo.open||Gt.open||E.open||ee.open,Im=kF({...d,anyPickerOpen:d8});Qt(()=>{if(!Im||Te.length===0)return;let x=Te[0]??"",v=Pl(x,_e);if(v.kind==="command"&&v.command.id==="clear"){ye(),ps(x);return}Et(S=>S.slice(1)),ps(x)},[Im,Te,ps,_e,ye]),Qt(()=>{if(Im||Te.length===0||d.phase!=="thinking"&&d.phase!=="streaming")return;let x=0;for(let v of Te){if(!zt(v))break;x+=1}x>0&&Et(v=>v.slice(x))},[Im,Te,d.phase,zt]),Hte((x,v)=>{if(!dN(u8.current,x)&&!NU(x)){if(d.phase==="boot"){if(v.ctrl&&x==="c"){o();return}if(x&&!v.ctrl&&!v.meta){e.dismissBoot();let S=x.search(/[\r\n]/);S!==-1?ps(y+x.slice(0,S)):b(C=>{let Q=C.text+x;return he(_E(Q,t.userCommands??[])),{text:Q,cursor:Q.length}});return}e.dismissBoot();return}if(Yl&&!se&&!ge.open&&!ee.open&&d.phase!=="asking"){if(v.tab&&!v.shift){tn(C=>C==="conversa"?"log":"conversa");return}if(v.ctrl&&(x==="s"||x==="")){t.onExportTranscript?t.onExportTranscript().then(C=>{C.ok&&C.path?e.pushNote("export",[`${i("cockpit.exported")} ${C.path}`]):e.pushNote("export",[C.error??"export indispon\xEDvel"])}):e.pushNote("export",["export indispon\xEDvel nesta sess\xE3o"]);return}let S=En.kind==="cockpit"?En:void 0;if(S){let C=v.pageUp?"pageUp":v.pageDown?"pageDown":v.upArrow?"up":v.downArrow?"down":void 0;if(C!==void 0){if(pa==="conversa"){let Q=Math.max(1,Math.round((S.regions.conversaRows-1)/4)),Be=C==="up"?1:C==="down"?-1:C==="pageUp"?Q:-Q;on(He=>Math.min(Math.max(0,He+Be),Math.max(0,d.blocks.length-1)))}else{let Q=Math.max(1,S.regions.logRows-1);en(Be=>FU(C,Be,Dr.length+1,Q))}return}}}if(!Ee){if(v.ctrl&&x==="l"){Ot&&jo==="tabs"?(Ut(S=>S==="chat"?"log":"chat"),Zo(S=>!S)):fs();return}if(v.tab&&!v.shift&&_o){jo==="tabs"?(Ut(S=>S==="chat"?"log":"chat"),Zo(S=>!S)):Zo(S=>!S);return}if(ga){if(v.escape){Zo(!1);return}if(v.upArrow){en(S=>S+1);return}if(v.downArrow){en(S=>Math.max(0,S-1));return}if(v.pageUp){en(S=>S+ma);return}if(v.pageDown){en(S=>Math.max(0,S-ma));return}if(v.return){At(S=>{let C=new Set(S);return C.has("root")?C.delete("root"):C.add("root"),C});return}if(x==="e"&&!v.ctrl&&!v.meta){us(S=>!S);return}if(!(v.ctrl&&x==="c")&&!(v.ctrl&&x==="t"))return}}if(Ee){if(H){if(v.escape||v.return){ue(null);return}if(x==="p"){e.cancelFlow(H);return}if(x==="i"){y.trim()!==""&&(e.injectInput(H,y),$e(""));return}return}let S=e.flowOverview();if(v.escape||v.ctrl&&x==="t"){Pe(!1);return}if(v.upArrow){J(C=>Math.max(0,C-1));return}if(v.downArrow){J(C=>Math.min(Math.max(0,S.length-1),C+1));return}if(v.return){let C=S[Math.min(Fe,S.length-1)];C&&ue(C.id);return}if(x==="p"){let C=S[Math.min(Fe,S.length-1)];C&&e.cancelFlow(C.id);return}if(x==="P"){e.cancelAllFlows();return}if(x==="i"){let C=S[Math.min(Fe,S.length-1)];C&&y.trim()!==""&&(e.injectInput(C.id,y),$e(""));return}return}if(d.phase==="asking"&&d.pendingAsk){let S=d.pendingAsk.request.alwaysAsk;if(x==="a")return e.resolveAsk({kind:"approve-once"});if(x==="s"&&S===!1)return e.resolveAsk({kind:"approve-session"});if(x==="n")return e.resolveAsk({kind:"deny",reason:"negado pelo usu\xE1rio"});if(v.escape){let C=Date.now(),Q=rt.current.length>0,Be=C-I.current<500;e.resolveAsk({kind:"deny",reason:"cancelado (esc)"}),Be&&!Q&&(e.interrupt(),ye()),I.current=Q?0:C;return}return x==="e"?e.resolveAsk({kind:"deny",reason:"editar (n\xE3o aplicado)"}):void 0}if(d.phase==="questioning"&&d.pendingQuestion){let S=d.pendingQuestion.spec,C=S.options??[],Q=S.kind!=="text"&&S.allowOther!==!1;if(v.escape){if(z&&S.kind!=="text"){B(!1),oe("");return}return e.resolveQuestion({kind:"unavailable",reason:"cancelado (esc)"})}if(z){if(v.return){let He=X.trim();return He===""?void 0:e.resolveQuestion({kind:"text",text:He})}if(v.backspace||v.delete){oe(He=>He.slice(0,-1));return}if(x&&!v.ctrl&&!v.meta){oe(He=>He+x);return}return}let Be=C.length-1;if(v.upArrow){N(He=>He===yr?Be:He<=0?Q?yr:Be:He-1);return}if(v.downArrow){N(He=>He===yr?0:He>=Be?Q?yr:0:He+1);return}if(S.kind==="multi"&&x===" "&&O!==yr&&O>=0){V(He=>{let Ro=new Set(He);return Ro.has(O)?Ro.delete(O):Ro.add(O),Ro});return}if(v.return){if(O===yr){B(!0);return}if(S.kind==="multi"){let Ro=[...G].sort((Vn,O8)=>Vn-O8),Yn=Ro.map(Vn=>C[Vn]?.label??"").filter(Vn=>Vn!=="");return e.resolveQuestion({kind:"choices",indices:Ro,labels:Yn})}let He=C[O];return He?e.resolveQuestion({kind:"choice",index:O,label:He.label}):void 0}return}if(d.phase==="budget"){if(x==="n")return o();if(x==="c"){e.continueAfterBudget();return}if(x==="k"&&e.canCompact){e.compactAfterBudget();return}return}if(d.phase==="cycle-ceiling"){if(x==="n"||v.escape){e.stopCycleCeiling();return}if(x==="c"){e.continueCycleCeiling();return}return}if(d.pendingUnsafeConfirm===!0){if(x==="s"||x==="y"){e.confirmUnsafe();return}if(x==="n"||v.escape){e.cancelUnsafe();return}return}if(d.phase==="stuck")if(A){if(v.escape){T(!1);return}if(v.return&&!v.shift){let S=g.text;b({text:"",cursor:0}),T(!1),e.redirectAfterStuck(S);return}}else{if(x==="r"){T(!0);return}if(x==="c"){e.continueAfterStuck();return}if(x==="n"||v.escape){e.endAfterStuck();return}return}if(Qte(d.blocks)&&(v.escape||v.ctrl&&x==="c")){e.interrupt(),ye();return}if(d.phase==="thinking"||d.phase==="streaming"||d.phase==="retrying"){if(v.ctrl&&x==="t"){ue(null),J(0),Pe(!0);return}if(se){if(v.upArrow){fe(C=>Math.max(0,C-1));return}if(v.downArrow){fe(C=>Math.min(no.length-1,C+1));return}if(v.escape){he(!1),fe(0);return}if(v.tab){let C=no[ie];if(C){let Q=pg(C);$e(Q),yo(Q)}return}if(v.return&&!v.shift){let C=no[ie];if(C&&C.kind==="subcommand"&&DE(C)){he(!1),fe(0);let Q=d1(C);K(Q),de(Be=>[...Be,Q]),$e(""),Y(-1);return}if(C&&C.kind==="subcommand"){let Q=pg(C);$e(Q),yo(Q);return}if(he(!1),fe(0),C){if(AE(C.command,"")){An(C.command,""),$e(""),Y(-1);return}let Q=`/${C.command.name}`;K(Q),de(Be=>[...Be,Q]),$e(""),Y(-1)}return}}if(v.ctrl&&x==="c"){e.interrupt(),ye();return}if(v.escape){let C=rt.current.length>0,Q=e.current.pendingInjects.length>0,Be=ci(y).trim(),He=Be!=="";if(C||Q||He){let Ro=Q;if(He){let Yn=SU(Be);Yn.kind==="redirect"&&(e.injectInput("root",Yn.inject),de(Vn=>[...Vn,Yn.inject]),Ro=!0),$e(""),Y(-1)}if(!d.cycleActive&&rt.current.length>0){let Yn=[];for(let Vn of rt.current)zt(Vn)?Ro=!0:Yn.push(Vn);Et(Yn)}Ro&&e.expedite();return}e.interrupt(),ye();return}if(v.return&&v.ctrl||!v.return&&x===`
|
|
688
|
-
`&&!v.ctrl&&!v.meta){let C=ci(y).trim();C!==""&&(e.injectInput("root",C),$e(""),de(
|
|
689
|
-
`));return}if(v.return){let C=ci(y).trim();C!==""&&(ba(C),de(
|
|
690
|
-
`?e.injectInput("root",Be):ba(Be),de(He=>[...He,Be])),Y(-1),{text:"",cursor:0}}),he(!1),fe(0);return}b(C=>{let
|
|
687
|
+
`)}case"inject":return`[encaixado]${t.text.trim()?` ${t.text.trim()}`:""}`}}var $te,YA=p(()=>{"use strict";P();Rd();Vr();HA();qA();GA();zA();$te="-".repeat(12)});import{useEffect as Qt,useState as ze,useReducer as Bte,useCallback as Zt,useMemo as T2,useRef as eo}from"react";import{Box as le,Static as Ute,Text as D2,useApp as jte,useInput as Hte,useStdin as qte,useStdout as Wte}from"ink";import{Fragment as O2,jsx as _,jsxs as go}from"react/jsx-runtime";function M2(t){let{controller:e}=t,{exit:o}=jte(),{stdout:n}=Wte(),r=Q(),{lang:s,t:i}=Se(),[,a]=Bte(x=>x+1,0);Qt(()=>{if(!n||typeof n.on!="function")return;let x=()=>a();return n.on("resize",x),()=>{typeof n.off=="function"&&n.off("resize",x)}},[n]);let l=n?.columns??80,c=n?.rows??24,u=r.density!=="compact",m=r.density!=="compact",[d,h]=ze(e.current),[g,b]=ze({text:"",cursor:0}),y=g.text,w=g.cursor,[A,T]=ze(!1),[O,N]=ze(0),[G,V]=ze(()=>new Set),[z,B]=ze(!1),[X,oe]=ze(""),ne=d.phase==="questioning"?d.pendingQuestion?.spec:void 0,M=eo(void 0);Qt(()=>{ne!==M.current&&(M.current=ne,N(0),V(new Set),oe(""),B(ne?.kind==="text"))},[ne]);let[j,Ae]=ze(0),[se,he]=ze(!1),[ie,fe]=ze(0),[R,de]=ze([]),[ae,Y]=ze(-1),[Oe,yt]=ze(t.initialSuggestions!==!1),[et,Le]=ze(void 0),Rt=eo(e.current.phase),Qo=eo(void 0);Qo.current=et;let wt=eo(g);wt.current=g;let[Te,Et]=ze([]),rt=eo([]),I=eo(0);rt.current=Te,Te.length===0&&(I.current=0);let K=Zt(x=>{rt.current=[...rt.current,x],Et(v=>[...v,x])},[]),ye=Zt(()=>{rt.current=[],Et([]),I.current=0},[]),[Ee,Pe]=ze(!1),[Fe,J]=ze(0),[H,ue]=ze(null),[Ot,si]=ze(t.initialSplitView===!0),[cs,Zo]=ze(!1),[k,Ut]=ze("chat"),[Ar,At]=ze(()=>new Set),[fa,en]=ze(0),[ii,us]=ze(!1),[to,ai]=ze(t.initialFullscreen===!0),[pa,tn]=ze("conversa"),[wn,on]=ze(0),[Bo,Cr]=ze(!1),Gn=eo(void 0),jt=eo(void 0),q=eo(!1),ce=eo(void 0),vt=Zt(()=>{jt.current!==void 0&&(clearTimeout(jt.current),jt.current=void 0),Gn.current=void 0,Cr(!1)},[]);Qt(()=>()=>{jt.current!==void 0&&clearTimeout(jt.current),ce.current!==void 0&&clearTimeout(ce.current)},[]);let Ht=Yh(d.meta.label),Uo=y.length===0?1:Vo(y,l>Ht?l-Ht:l),Tr=Math.max(3,Math.floor(c/3)),ds=Math.max(0,Math.min(Uo,Tr)-1),Kl=to?e.flowOverview():[],Dr=to?MA(Kl,x=>e.drillInFlow(x),{collapsed:Ar,errorsOnly:ii}).sections:[],ha=Kl.filter(x=>x.kind==="subagent"&&(x.phase==="thinking"||x.phase==="tool"||x.phase==="asking")).length,li=to?Gg(d.blocks).startupNotes:[],Pm=li.length>0?1+li.reduce((x,v)=>x+1+v.lines.length,0):0,iy=to?{lines:OU(Dr)+Pm,hasActivity:Dr.length>0||Pm>0,activeAgents:ha,focused:pa==="log"}:void 0,En=ni(c,l,Uo,iy),Yl=to&&En.kind==="cockpit",zn=DU(l,Ot),jo=zn.layout,_o=jo==="side"||jo==="tabs"&&k==="log",ga=_o&&cs,ge=JB({fileIndex:t.fileIndex??Gte,attachReader:t.attachReader??zte}),U=eU({catalog:t.catalog??Kte,...t.customModels?{customModels:t.customModels}:{},currentTier:d.meta.tier,...t.currentEffort!==void 0?{currentEffort:t.currentEffort}:{}}),qt=nU(t.permissionControl??Xte),Vl=t.currentTheme??Pi(r.brightness),Wt=aU({currentTheme:Vl}),Xl=t.currentLang??s,Mt=dU({currentLang:Xl}),ms=(d.meta.provider??"")!==""?d.meta.provider:t.currentProvider,oo=pU({...ms!==void 0?{currentProvider:ms}:{},...t.providersClient?{providersClient:t.providersClient}:{}}),ya=T2(()=>m1(Xo,i),[i]),Gt=gU({store:t.sessionStore??Yte}),Jl=t.rewindSource??Vte,E=bU({source:Jl}),$=T2(()=>E.target?Jl.barriersAfter(E.target.id):[],[E.target,Jl]),ee=kU({...t.userCommands!==void 0?{userCommands:t.userCommands}:{},natives:ya}),D=t.syncActive??!0,L=EU(d.phase,D)||Zte(d.blocks),W=km({enabled:r.animate&&L}),pe=Wg(d.phase);km({enabled:pe,intervalMs:1e3}),Qt(()=>{let x=e.subscribe(h);return()=>{x(),e.dispose()}},[e]),Qt(()=>{if(t.initialFullscreen!==!0||t.cockpitEnteredAtBoot===!0)return;if(ni(c,l).kind==="cockpit")t.cockpitScreen?.enter();else{ai(!1);let v=ni(c,l),S=v.kind==="refuse"&&v.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[S])}},[]);let ke=eo(t.initialFullscreen===!0&&En.kind==="cockpit"),bt=eo(t.initialFullscreen===!0);Qt(()=>{let x=bt.current!==to;if(bt.current=to,!to){ke.current=!1;return}let v=En.kind==="cockpit";if(x){ke.current=v;return}let S=ke.current;if(S&&!v){t.cockpitScreen?.leave();let C=En.kind==="refuse"&&En.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[C])}else!S&&v?(t.cockpitScreen?.enter(),a()):S&&v&&t.cockpitScreen?.resetDiffer?.();ke.current=v},[c,l,to]);let{stdin:lt}=qte();Qt(()=>{if(!lt)return;let x=v=>{let S=typeof v=="string"?v:v.toString("utf8");if(S.includes("\x1B[19~")||S.includes("\x1BOW")){e.cancelAllFlows(),ye();return}let C=qN(S);C==="home"?b(Z=>({...Z,cursor:0})):C==="end"&&b(Z=>({...Z,cursor:Z.text.length}))};return lt.on("data",x),()=>{lt.removeListener("data",x)}},[lt,e,ye,b]),Qt(()=>{if(d.phase!=="boot")return;let x=t.bootMs??900;if(x<=0)return;let v=setTimeout(()=>e.dismissBoot(),x);return()=>clearTimeout(v)},[d.phase,e,t.bootMs]),Qt(()=>{d.phase!=="stuck"&&A&&T(!1)},[d.phase,A]);let _e=t.userCommands??[],nn=y.startsWith("/")?y.slice(1):"",no=p1(nn,_e,ya),$e=Zt((x,v)=>{b({text:x,cursor:_t(x,v??x.length)})},[]);Qt(()=>{let x=Rt.current,v=d.phase;if(Rt.current=v,x===v)return;let S=v==="idle"||v==="done";S&&(x!=="idle"&&x!=="done"&&x!=="boot")?Oe&&y===""&&Te.length===0&&Le(jU(d.blocks,i)):S||Le(void 0)},[d.phase,d.blocks,y,Te.length,Oe,i]),Qt(()=>{y!==""&&Le(void 0)},[y]);let yo=Zt(x=>{he(_E(x,t.userCommands??[])),fe(0)},[t.userCommands]),Ho=Zt(()=>{Tm("clearScreen() \u2192 \\x1b[2J\\x1b[3J + staticKey++ (REEMITE hist\xF3rico)"),n?.write("\x1B[H\x1B[2J\x1B[3J"),Ae(x=>x+1)},[n]),Re=t.registerClearScreen;Qt(()=>{Re?.(Ho)},[Re,Ho]),Qt(()=>{Tm(`slashOpen=${se} (rows=${c} cols=${l})`)},[se,c,l]);let Me=eo({rows:c,columns:l}),_r=eo(!1);Qt(()=>{if(to){Me.current={rows:c,columns:l};return}let x=Me.current;if(x.rows===c&&x.columns===l)return;if(_r.current){Me.current={rows:c,columns:l},Tm(`resize ${x.rows}x${x.columns} \u2192 ${c}x${l} (F196: viva > rows \u21D2 PULA clearScreen; Ink repinta via clearTerminal)`);return}Tm(`resize ${x.rows}x${x.columns} \u2192 ${c}x${l} (clearScreen em 90ms)`),Me.current={rows:c,columns:l};let v=setTimeout(()=>Ho(),90);return()=>clearTimeout(v)},[c,l,to,Ho]);let fs=Zt(()=>{si(x=>{let v=!x;return t.onSplitViewChange?.(v),v||(Zo(!1),Ut("chat")),v})},[t]),Ql=Zt(()=>{ai(x=>{let v=!x,S=ni(c,l).kind==="cockpit";if(v&&S)t.cockpitScreen?.enter(),e.replaceNote("cockpit",[i("cockpit.entered")]);else if(v&&!S){let C=ni(c,l),Z=C.kind==="refuse"&&C.reason==="narrow"?i("cockpit.refuseNarrow"):i("cockpit.refuseShort");e.replaceNote("cockpit",[Z])}else t.cockpitScreen?.leave(),Ho(),e.replaceNote("cockpit",[i("cockpit.left")]);return t.onFullscreenChange?.(v),v}),tn("conversa"),on(0),en(0)},[t,e,i,c,l,Ho]),An=Zt((x,v)=>{if(x.id==="split"){fs();return}if(x.id==="fullscreen"){Ql();return}if(x.id==="suggest"){let S=v.trim().toLowerCase(),C=S==="on"?!0:S==="off"?!1:!Oe;yt(C),t.onSuggestionsChange?.(C),C||Le(void 0),e.replaceNote("suggest",[C?"sugest\xE3o de pr\xF3ximo prompt LIGADA \u2014 Tab aceita o ghost no composer.":"sugest\xE3o de pr\xF3ximo prompt DESLIGADA."]);return}if(x.id==="export"){t.onExportTranscript?t.onExportTranscript().then(S=>{e.pushNote("export",S.ok&&S.path?[`transcript exportado (redigido) \u2192 ${S.path}`]:[S.error??"export indispon\xEDvel"])}):e.replaceNote("export",["export indispon\xEDvel nesta sess\xE3o."]);return}if(x.id==="model"&&v.trim()===""&&d.meta.backend==="local"){e.replaceNote("model-local",["Backend LOCAL (BYO): os tiers do broker n\xE3o se aplicam aqui.","O modelo vem do seu provider \u2014 troque com /provider, ou defina ALUY_LOCAL_MODEL / --model."]);return}if(x.id==="model"&&v.trim()===""&&t.catalog!==void 0&&t.onSelectTier!==void 0){U.openPicker();return}if(x.id==="permissions"&&t.permissionControl!==void 0){qt.openPanel();return}if(x.id==="history"&&t.sessionStore!==void 0&&t.onResumeSession!==void 0){let S=v.trim();if(S===""){Gt.openPicker();return}Ho(),t.onResumeSession(S);return}if(x.id==="rewind"&&t.rewindSource!==void 0&&t.onRewind!==void 0){E.openPicker();return}if(x.id==="theme"&&t.onSelectTheme!==void 0){let S=v.trim();if(S===""){Wt.openPicker();return}let C=Wr(S);if(C){t.onSelectTheme(C.name);return}}if(x.id==="lang"&&t.onSelectLang!==void 0){let S=v.trim();if(S===""){Mt.openPicker();return}let C=Os(S);if(C){t.onSelectLang(C.code);return}}if(x.id==="provider"&&t.onSelectProvider!==void 0){let S=v.trim();if(S===""){oo.openPicker();return}let C=Ug(S,oo.providers);if(C){t.onSelectProvider(C.name);return}}t.onCommand?.(x,v)},[t,U,qt,Wt,Mt,oo,Gt,E,Ho,fs,Oe]),Fm=Zt(x=>{if(x.action.kind==="command"){An(x.action.command,"");return}x.action.actionId==="cycle-mode"&&e.cycleMode()},[An,e]),ps=Zt(x=>{on(0),en(0);let v=Pl(x,_e);if(v.kind==="goal"){if(v.text!==""){if(qi(v.text).length>0&&t.attachReader){let C=ge.attachments.map(Z=>Z.item);Rm(v.text,t.attachReader).then(({goal:Z,items:Be})=>{if(Z===""&&Be.length===0){ge.clear();return}let He=[...C,...Be],Ro=Z!==""?Z:v.text;de(Yn=>[...Yn,Ro]),e.submit(Ro,He),ge.clear()});return}let S=ge.attachments.map(C=>C.item);de(C=>[...C,v.text]),e.submit(v.text,S),ge.clear()}return}if(v.kind==="command"){An(v.command,v.args);return}if(v.kind==="bang"){de(S=>[...S,`!${v.command}`]),e.runBang(v.command);return}},[e,_e,ge,An,t.attachReader]),zt=Zt(x=>{let v=Pl(x,_e);return v.kind!=="goal"||v.text===""||ge.attachments.length>0||qi(v.text).length>0?!1:e.injectInput("root",v.text)},[e,_e,ge]),Cn=Zt(x=>{let v=Pl(x,_e);return v.kind!=="command"||!AE(v.command,v.args)?!1:(An(v.command,v.args),!0)},[_e,An]),ba=Zt(x=>{if(rt.current.length>0){K(x);return}let v=Pl(x,_e),S=v.kind==="goal"?v.text:"";if(CU({subagentsRunning:R2(e.current.blocks),isPlainGoal:v.kind==="goal",nonEmpty:S!=="",hasPendingAttachment:ge.attachments.length>0||S!==""&&qi(S).length>0})){zt(x);return}!zt(x)&&!Cn(x)&&K(x)},[K,zt,Cn,e,_e,ge]),rn=eo();rn.current||(rn.current=mN());let Tn=eo();Tn.current||(Tn.current=zU());let ci=Zt(x=>{let v=XU(x,Tn.current);return Tn.current.reset(),v},[]),va=Zt(x=>{let v=VU(x,Tn.current,"backward");return v.handled?(v.removedId!==void 0&&Tn.current.remove(v.removedId),v.state):qw(x)},[]),u8=eo({open:!1}),fC=Zt(x=>{if(x==="")return;e.current.phase==="boot"&&e.dismissBoot(),ge.dismissNotice();let v=GU(x);b(S=>{let C=v?KU(S,x,Tn.current):Vi(S,x);return yo(C.text),ay(C.text),C}),Y(-1)},[e,ge,yo]);Qt(()=>{if(!lt)return;let x=rn.current,v=S=>{let C=typeof S=="string"?S:S.toString("utf8");if(!x.isInPaste()&&!C.includes("\x1B[20"))return;let Z=x.feed(C);for(let Be of Z)Be.kind==="paste"&&fC(Be.text)};return lt.on("data",v),()=>{lt.removeListener("data",v)}},[lt,fC]);let d8=ge.open||U.open||qt.open||Wt.open||Mt.open||oo.open||Gt.open||E.open||ee.open,Im=kF({...d,anyPickerOpen:d8});Qt(()=>{if(!Im||Te.length===0)return;let x=Te[0]??"",v=Pl(x,_e);if(v.kind==="command"&&v.command.id==="clear"){ye(),ps(x);return}Et(S=>S.slice(1)),ps(x)},[Im,Te,ps,_e,ye]),Qt(()=>{if(Im||Te.length===0||d.phase!=="thinking"&&d.phase!=="streaming")return;let x=0;for(let v of Te){if(!zt(v))break;x+=1}x>0&&Et(v=>v.slice(x))},[Im,Te,d.phase,zt]),Hte((x,v)=>{if(!dN(u8.current,x)&&!NU(x)){if(d.phase==="boot"){if(v.ctrl&&x==="c"){o();return}if(x&&!v.ctrl&&!v.meta){e.dismissBoot();let S=x.search(/[\r\n]/);S!==-1?ps(y+x.slice(0,S)):b(C=>{let Z=C.text+x;return he(_E(Z,t.userCommands??[])),{text:Z,cursor:Z.length}});return}e.dismissBoot();return}if(Yl&&!se&&!ge.open&&!ee.open&&d.phase!=="asking"){if(v.tab&&!v.shift){tn(C=>C==="conversa"?"log":"conversa");return}if(v.ctrl&&(x==="s"||x==="")){t.onExportTranscript?t.onExportTranscript().then(C=>{C.ok&&C.path?e.pushNote("export",[`${i("cockpit.exported")} ${C.path}`]):e.pushNote("export",[C.error??"export indispon\xEDvel"])}):e.pushNote("export",["export indispon\xEDvel nesta sess\xE3o"]);return}let S=En.kind==="cockpit"?En:void 0;if(S){let C=v.pageUp?"pageUp":v.pageDown?"pageDown":v.upArrow?"up":v.downArrow?"down":void 0;if(C!==void 0){if(pa==="conversa"){let Z=Math.max(1,Math.round((S.regions.conversaRows-1)/4)),Be=C==="up"?1:C==="down"?-1:C==="pageUp"?Z:-Z;on(He=>Math.min(Math.max(0,He+Be),Math.max(0,d.blocks.length-1)))}else{let Z=Math.max(1,S.regions.logRows-1);en(Be=>FU(C,Be,Dr.length+1,Z))}return}}}if(!Ee){if(v.ctrl&&x==="l"){Ot&&jo==="tabs"?(Ut(S=>S==="chat"?"log":"chat"),Zo(S=>!S)):fs();return}if(v.tab&&!v.shift&&_o){jo==="tabs"?(Ut(S=>S==="chat"?"log":"chat"),Zo(S=>!S)):Zo(S=>!S);return}if(ga){if(v.escape){Zo(!1);return}if(v.upArrow){en(S=>S+1);return}if(v.downArrow){en(S=>Math.max(0,S-1));return}if(v.pageUp){en(S=>S+ma);return}if(v.pageDown){en(S=>Math.max(0,S-ma));return}if(v.return){At(S=>{let C=new Set(S);return C.has("root")?C.delete("root"):C.add("root"),C});return}if(x==="e"&&!v.ctrl&&!v.meta){us(S=>!S);return}if(!(v.ctrl&&x==="c")&&!(v.ctrl&&x==="t"))return}}if(Ee){if(H){if(v.escape||v.return){ue(null);return}if(x==="p"){e.cancelFlow(H);return}if(x==="i"){y.trim()!==""&&(e.injectInput(H,y),$e(""));return}return}let S=e.flowOverview();if(v.escape||v.ctrl&&x==="t"){Pe(!1);return}if(v.upArrow){J(C=>Math.max(0,C-1));return}if(v.downArrow){J(C=>Math.min(Math.max(0,S.length-1),C+1));return}if(v.return){let C=S[Math.min(Fe,S.length-1)];C&&ue(C.id);return}if(x==="p"){let C=S[Math.min(Fe,S.length-1)];C&&e.cancelFlow(C.id);return}if(x==="P"){e.cancelAllFlows();return}if(x==="i"){let C=S[Math.min(Fe,S.length-1)];C&&y.trim()!==""&&(e.injectInput(C.id,y),$e(""));return}return}if(d.phase==="asking"&&d.pendingAsk){let S=d.pendingAsk.request.alwaysAsk;if(x==="a")return e.resolveAsk({kind:"approve-once"});if(x==="s"&&S===!1)return e.resolveAsk({kind:"approve-session"});if(x==="n")return e.resolveAsk({kind:"deny",reason:"negado pelo usu\xE1rio"});if(v.escape){let C=Date.now(),Z=rt.current.length>0,Be=C-I.current<500;e.resolveAsk({kind:"deny",reason:"cancelado (esc)"}),Be&&!Z&&(e.interrupt(),ye()),I.current=Z?0:C;return}return x==="e"?e.resolveAsk({kind:"deny",reason:"editar (n\xE3o aplicado)"}):void 0}if(d.phase==="questioning"&&d.pendingQuestion){let S=d.pendingQuestion.spec,C=S.options??[],Z=S.kind!=="text"&&S.allowOther!==!1;if(v.escape){if(z&&S.kind!=="text"){B(!1),oe("");return}return e.resolveQuestion({kind:"unavailable",reason:"cancelado (esc)"})}if(z){if(v.return){let He=X.trim();return He===""?void 0:e.resolveQuestion({kind:"text",text:He})}if(v.backspace||v.delete){oe(He=>He.slice(0,-1));return}if(x&&!v.ctrl&&!v.meta){oe(He=>He+x);return}return}let Be=C.length-1;if(v.upArrow){N(He=>He===yr?Be:He<=0?Z?yr:Be:He-1);return}if(v.downArrow){N(He=>He===yr?0:He>=Be?Z?yr:0:He+1);return}if(S.kind==="multi"&&x===" "&&O!==yr&&O>=0){V(He=>{let Ro=new Set(He);return Ro.has(O)?Ro.delete(O):Ro.add(O),Ro});return}if(v.return){if(O===yr){B(!0);return}if(S.kind==="multi"){let Ro=[...G].sort((Vn,O8)=>Vn-O8),Yn=Ro.map(Vn=>C[Vn]?.label??"").filter(Vn=>Vn!=="");return e.resolveQuestion({kind:"choices",indices:Ro,labels:Yn})}let He=C[O];return He?e.resolveQuestion({kind:"choice",index:O,label:He.label}):void 0}return}if(d.phase==="budget"){if(x==="n")return o();if(x==="c"){e.continueAfterBudget();return}if(x==="k"&&e.canCompact){e.compactAfterBudget();return}return}if(d.phase==="cycle-ceiling"){if(x==="n"||v.escape){e.stopCycleCeiling();return}if(x==="c"){e.continueCycleCeiling();return}return}if(d.pendingUnsafeConfirm===!0){if(x==="s"||x==="y"){e.confirmUnsafe();return}if(x==="n"||v.escape){e.cancelUnsafe();return}return}if(d.phase==="stuck")if(A){if(v.escape){T(!1);return}if(v.return&&!v.shift){let S=g.text;b({text:"",cursor:0}),T(!1),e.redirectAfterStuck(S);return}}else{if(x==="r"){T(!0);return}if(x==="c"){e.continueAfterStuck();return}if(x==="n"||v.escape){e.endAfterStuck();return}return}if(Qte(d.blocks)&&(v.escape||v.ctrl&&x==="c")){e.interrupt(),ye();return}if(d.phase==="thinking"||d.phase==="streaming"||d.phase==="retrying"){if(v.ctrl&&x==="t"){ue(null),J(0),Pe(!0);return}if(se){if(v.upArrow){fe(C=>Math.max(0,C-1));return}if(v.downArrow){fe(C=>Math.min(no.length-1,C+1));return}if(v.escape){he(!1),fe(0);return}if(v.tab){let C=no[ie];if(C){let Z=pg(C);$e(Z),yo(Z)}return}if(v.return&&!v.shift){let C=no[ie];if(C&&C.kind==="subcommand"&&DE(C)){he(!1),fe(0);let Z=d1(C);K(Z),de(Be=>[...Be,Z]),$e(""),Y(-1);return}if(C&&C.kind==="subcommand"){let Z=pg(C);$e(Z),yo(Z);return}if(he(!1),fe(0),C){if(AE(C.command,"")){An(C.command,""),$e(""),Y(-1);return}let Z=`/${C.command.name}`;K(Z),de(Be=>[...Be,Z]),$e(""),Y(-1)}return}}if(v.ctrl&&x==="c"){e.interrupt(),ye();return}if(v.escape){let C=rt.current.length>0,Z=e.current.pendingInjects.length>0,Be=ci(y).trim(),He=Be!=="";if(C||Z||He){let Ro=Z;if(He){let Yn=SU(Be);Yn.kind==="redirect"&&(e.injectInput("root",Yn.inject),de(Vn=>[...Vn,Yn.inject]),Ro=!0),$e(""),Y(-1)}if(!d.cycleActive&&rt.current.length>0){let Yn=[];for(let Vn of rt.current)zt(Vn)?Ro=!0:Yn.push(Vn);Et(Yn)}Ro&&e.expedite();return}e.interrupt(),ye();return}if(v.return&&v.ctrl||!v.return&&x===`
|
|
688
|
+
`&&!v.ctrl&&!v.meta){let C=ci(y).trim();C!==""&&(e.injectInput("root",C),$e(""),de(Z=>[...Z,C]),Y(-1));return}if(v.return&&v.shift){b(C=>Vi(C,`
|
|
689
|
+
`));return}if(v.return){let C=ci(y).trim();C!==""&&(ba(C),de(Z=>[...Z,C]),$e(""),Y(-1));return}if(v.backspace||v.delete){if(y===""&&Te.length>0){Et(C=>C.slice(0,-1));return}b(C=>{let Z=va(C);return yo(Z.text),Z});return}if(v.leftArrow){b(C=>({...C,cursor:v.meta?Kd(C):Ww(C)}));return}if(v.rightArrow){b(C=>({...C,cursor:v.meta?Zh(C):Gw(C)}));return}if(v.ctrl&&x==="a"){b(C=>({...C,cursor:0}));return}if(v.ctrl&&x==="e"){b(C=>({...C,cursor:C.text.length}));return}if(x&&!v.ctrl&&!v.meta){if(x.search(/[\r\n]/)!==-1){b(C=>{let Z=zd(C,x),Be=ci(Z.state.text).trim();return Be!==""&&(Z.newline===`
|
|
690
|
+
`?e.injectInput("root",Be):ba(Be),de(He=>[...He,Be])),Y(-1),{text:"",cursor:0}}),he(!1),fe(0);return}b(C=>{let Z=zd(C,x).state;return yo(Z.text),Z});return}return}if(d.phase==="error"){if(v.escape){e.dismissError(),Ho();return}if((x==="r"||x==="R")&&!v.ctrl&&!v.meta){e.retryLastGoal(),Ho();return}if(!(v.ctrl&&x==="c"))return}if(ee.open){if(v.escape){ee.closePalette();return}if(v.upArrow){ee.move(-1);return}if(v.downArrow){ee.move(1);return}if(v.return){let S=ee.confirm();S&&Fm(S);return}if(v.backspace||v.delete){ee.setQuery(ee.query.slice(0,-1));return}if(v.ctrl&&(x==="p"||x==="x"||x==="c")){ee.closePalette();return}x&&!v.ctrl&&!v.meta&&ee.setQuery(ee.query+x);return}if(U.open){if(U.effortStepOpen){if(U.effortCustomOpen){if(v.escape){U.backFromEffort();return}if(v.return){let S=U.confirm();S&&t.onSelectConjugated?.(S.model,S.effort);return}if(v.backspace||v.delete){U.backspaceEffortCustom();return}x&&!v.ctrl&&!v.meta&&U.appendEffortCustom(x);return}if(v.upArrow){U.effortMove(-1);return}if(v.downArrow){U.effortMove(1);return}if(v.return||v.tab){let S=U.confirm();S&&t.onSelectConjugated?.(S.model,S.effort);return}if(v.escape){U.backFromEffort();return}return}if(U.customInputOpen){if(v.escape){U.closePicker();return}if(v.upArrow){U.browseMove(-1);return}if(v.downArrow){U.browseMove(1);return}if(v.return){U.confirm();return}if(v.backspace||v.delete){U.backspaceCustom();return}if(v.ctrl&&x==="t"){U.toggleToolsOnly();return}x&&!v.ctrl&&!v.meta&&U.appendCustom(x);return}if(v.upArrow){U.move(-1);return}if(v.downArrow){U.move(1);return}if(v.return||v.tab){U.confirm();return}if(v.escape){U.closePicker();return}return}if(qt.open){if(v.upArrow){qt.move(-1);return}if(v.downArrow){qt.move(1);return}if(v.return){qt.act();return}if(v.escape){qt.closePanel();return}return}if(Wt.open){if(v.upArrow){Wt.move(-1);return}if(v.downArrow){Wt.move(1);return}if(v.return||v.tab){let S=Wt.confirm();S&&t.onSelectTheme?.(S);return}if(v.escape){Wt.closePicker();return}return}if(Mt.open){if(v.upArrow){Mt.move(-1);return}if(v.downArrow){Mt.move(1);return}if(v.return||v.tab){let S=Mt.confirm();S&&t.onSelectLang?.(S);return}if(v.escape){Mt.closePicker();return}return}if(oo.open){if(v.upArrow){oo.move(-1);return}if(v.downArrow){oo.move(1);return}if(v.return||v.tab){let S=oo.confirm();S&&t.onSelectProvider?.(S);return}if(v.escape){oo.closePicker();return}return}if(Gt.open){if(v.upArrow){Gt.move(-1);return}if(v.downArrow){Gt.move(1);return}if(v.return||v.tab){let S=Gt.confirm();S&&(Ho(),t.onResumeSession?.(S));return}if(v.escape){Gt.closePicker();return}return}if(E.open){if(v.upArrow){E.move(-1);return}if(v.downArrow){E.move(1);return}if(v.return){let S=E.confirm();S&&t.onRewind?.(S);return}if(v.escape){E.back();return}return}if(se){if(v.upArrow){fe(S=>Math.max(0,S-1));return}if(v.downArrow){fe(S=>Math.min(no.length-1,S+1));return}if(v.return||v.tab){let S=no[ie];if(S===void 0){if(v.return){let C=y.trim().split(/\s+/)[0]??"";$e(""),he(!1),fe(0),e.replaceNote("slash-unknown",[`comando desconhecido: ${C||"/"} \u2014 veja /help para a lista.`])}return}if(S){let C=S.kind==="command"&&S.command.subcommands!==void 0&&S.command.subcommands.length>0;if(S.kind==="subcommand"&&DE(S)&&v.return){$e(""),he(!1),fe(0),An(S.parent,S.sub.name);return}if(S.kind==="subcommand"||C&&v.tab){let Z=pg(S);$e(Z),yo(Z);return}$e(""),he(!1),fe(0),An(S.command,"")}return}if(v.escape){he(!1),fe(0);return}}if(ge.open){if(v.upArrow){ge.move(-1);return}if(v.downArrow){ge.move(1);return}if(v.return||v.tab){ge.confirm(),$e(tw(y));return}if(v.escape){ge.closePicker();return}}if(v.ctrl&&x==="c"){let S=Date.now(),C=Gn.current!==void 0&&S-Gn.current<=zw,Z=ge.attachments.length>0,Be=Z&&y.trim()===""?"clear":WN(y,C);if(Be==="clear"){$e(""),Z&&ge.clear(),vt();return}if(Be==="exit"){vt(),o();return}Gn.current=S,Cr(!0),jt.current!==void 0&&clearTimeout(jt.current),jt.current=setTimeout(vt,zw);return}if(Bo&&vt(),v.escape){if(t.rewindSource!==void 0&&t.onRewind!==void 0&&y===""){if(q.current){q.current=!1,ce.current!==void 0&&clearTimeout(ce.current),E.openPicker();return}q.current=!0,ce.current!==void 0&&clearTimeout(ce.current),ce.current=setTimeout(()=>{q.current=!1},600);return}q.current=!1}else q.current&&(q.current=!1,ce.current!==void 0&&clearTimeout(ce.current));if(v.ctrl&&(x==="p"||x==="x")&&!se&&!ge.open){ee.openPalette();return}if(v.tab&&!se&&wt.current.text===""&&Qo.current!==void 0){$e(Qo.current),Le(void 0);return}if(v.tab&&!se){e.cycleMode();return}if(!se&&v.upArrow&&R.length>0){let S=ae<0?R.length-1:Math.max(0,ae-1);Y(S),$e(R[S]??"");return}if(!se&&v.downArrow&&ae>=0){let S=ae+1;S>=R.length?(Y(-1),$e("")):(Y(S),$e(R[S]??""));return}if(v.leftArrow){b(S=>({...S,cursor:v.meta?Kd(S):Ww(S)}));return}if(v.rightArrow){b(S=>({...S,cursor:v.meta?Zh(S):Gw(S)}));return}if(v.meta&&(x==="b"||x==="f")){b(S=>({...S,cursor:x==="b"?Kd(S):Zh(S)}));return}if(v.ctrl&&x==="a"){b(S=>({...S,cursor:0}));return}if(v.ctrl&&x==="e"){b(S=>({...S,cursor:S.text.length}));return}if(v.ctrl&&(x==="u"||x==="k"||x==="w")){b(S=>{let C=x==="u"?UN(S):x==="k"?jN(S):HN(S);return yo(C.text),C}),Y(-1);return}if(v.return&&v.shift){b(S=>Vi(S,`
|
|
691
691
|
`));return}if(v.return){let S=ci(y);$e(""),he(!1),fe(0),Y(-1),ge.closePicker(),ps(S);return}if(v.backspace||v.delete){if(y===""&&ge.attachments.length>0){ge.removeLast();return}b(S=>{let C=va(S);return yo(C.text),ay(C.text),C});return}if(x&&!v.ctrl&&!v.meta){if(x.search(/[\r\n]/)!==-1){ge.dismissNotice();let S=zd({text:y,cursor:y.length},x).state.text,C=ci(S);$e(""),he(!1),fe(0),Y(-1),ge.closePicker(),ps(C);return}ge.dismissNotice(),b(S=>{let C=zd(S,x).state;return yo(C.text),ay(C.text),C}),Y(-1)}}});function ay(x){let v=Dh(x);if(v){let S=d.phase==="idle"||d.phase==="done";if(!ge.open){S&&(ge.openPicker(),ge.setQuery(v.query));return}ge.setQuery(v.query)}else ge.open&&ge.closePicker()}let pC=d.phase==="thinking"||d.phase==="streaming"||d.phase==="retrying",m8=d.phase==="stuck"&&A,hC=d.phase==="idle"||d.phase==="done"||pC||m8,gC=d.phase==="asking"?"aguardando sua decis\xE3o acima":void 0,yC=t.animate!==!1&&(y!==""||!pC),bC=et!==void 0&&!Yl&&(d.phase==="idle"||d.phase==="done"),vC=bC?et:void 0,f8=toe(d,t.egress),Zl=eoe(d,se,ee.open,R2(d.blocks)),ly=pe?e.turnAccounting():void 0,kC=ly&&ly.live?hl(ly.durationMs):void 0,p8=t.now??Date.now,h8=d.progress?Math.max(0,p8()-d.progress.startedAt):0,{done:g8,live:ec,liveStart:xC}=DF(d.blocks),y8=Te.length>0?Xd(Te.length)+1:0,b8=d.pendingInjects.length>0?Xd(d.pendingInjects.length)+1:0,v8=d.pendingAsks.length>0?Xd(d.pendingAsks.length)+1:0,Nm=y8+b8+v8,Kn=q$({rows:c,live:ec,phase:d.phase,hasBlocks:d.blocks.length>0,mode:d.mode,columns:l,stagedLines:Nm}),k8=se?Math.min(mg(no),Kn):0,SC=se?k8+1:0,x8=W$({rows:c,live:ec,phase:d.phase,hasBlocks:d.blocks.length>0,columns:l,mode:d.mode,queuedLines:Nm,overlayLines:SC,composerOverflow:ds});_r.current=G$({rows:c,live:ec,phase:d.phase,hasBlocks:d.blocks.length>0,mode:d.mode,columns:l,stagedLines:Nm,overlayLines:SC,composerOverflow:ds})>=c;let tc=_o?MA(e.flowOverview(),x=>e.drillInFlow(x),{collapsed:Ar,errorsOnly:ii}).sections:[],S8=jo==="side"?Math.min(ma,tc.length+1):0,w8=jo==="single"?x8:_U({rows:c,layout:jo,live:ec,phase:d.phase,hasBlocks:d.blocks.length>0,mode:d.mode,columns:l,queuedLines:Nm,composerOverflow:ds,logColumnLines:S8}),wC=d.meta.backend!=="local"&&d.meta.tier===gn&&d.meta.model===void 0,E8=process.env.ALUY_SHOW_MODEL==="1"||process.env.ALUY_SHOW_MODEL==="true",EC=process.env.ALUY_CYCLE_UI_OFF==="1"||process.env.ALUY_CYCLE_UI_OFF==="true",AC=d.meta.backend==="local",A8=d.meta.provider??(process.env.ALUY_LOCAL_PROVIDER?.trim()||void 0),C8=d.meta.model??d.meta.activeModel??(process.env.ALUY_LOCAL_MODEL?.trim()||void 0),CC=AC?void 0:d.meta.model??(E8?d.meta.activeModel:void 0),$m=AC?["local",A8,C8].filter(x=>x!==void 0&&x!=="").join(" \xB7 ")||"local":`broker \xB7 ${tS(d.meta.tier,U.tiers)}`,T8=se||U.open||Wt.open||Mt.open||oo.open||Gt.open||E.open||ee.open,D8=go(O2,{children:[ee.open&&_(le,{flexDirection:"column",paddingBottom:1,children:_(gg,{hits:ee.hits,selected:ee.selected,query:ee.query,maxRows:Math.min(8,Kn)})}),se&&_(le,{flexDirection:"column",children:_(hg,{commands:no,selected:ie,query:nn,maxRows:Math.min(8,Kn),columns:l})}),U.open&&_(le,{flexDirection:"column",children:_(bg,{tiers:U.tiers,selected:U.selected,currentTier:d.meta.tier,loading:U.loading,usingFallback:U.usingFallback,customSelected:U.customSelected,customInputOpen:U.customInputOpen,customInput:U.customInput,customSuggestions:U.customSuggestions,customWarnOutOfCatalog:U.customWarnOutOfCatalog,customBrowserAvailable:U.customBrowserAvailable,customRows:U.customRows,customFilteredCount:U.customFilteredCount,customTotalCount:U.customTotalCount,customHasMoreAbove:U.customHasMoreAbove,customHasMoreBelow:U.customHasMoreBelow,customToolsOnly:U.customToolsOnly,customNoToolsWarning:U.customNoToolsWarning,effortStepOpen:U.effortStepOpen,effortOptions:U.effortOptions,effortSelected:U.effortSelected,...U.currentEffort!==void 0?{currentEffort:U.currentEffort}:{},effortCustomOpen:U.effortCustomOpen,effortCustomInput:U.effortCustomInput,effortCustomWarn:U.effortCustomWarn})}),Wt.open&&_(le,{flexDirection:"column",children:_(wg,{themes:Wt.themes,selected:Wt.selected,currentTheme:Vl})}),Mt.open&&_(le,{flexDirection:"column",children:_(Eg,{langs:Mt.langs,selected:Mt.selected,currentLang:Xl})}),oo.open&&_(le,{flexDirection:"column",children:_(HE,{providers:oo.providers,selected:oo.selected,usingFallback:oo.usingFallback,maxRows:Kn-2,columns:l,...ms!==void 0?{currentProvider:ms}:{}})}),Gt.open&&_(le,{flexDirection:"column",children:_(kg,{sessions:Gt.sessions,selected:Gt.selected})}),E.open&&E.phase!=="closed"&&_(le,{flexDirection:"column",children:_(Sg,{phase:E.phase,checkpoints:E.checkpoints,actions:E.actions,target:E.target,selected:E.selected,barrierWarnings:$})})]});if(Yl&&d.phase!=="boot"&&En.kind==="cockpit")return _(LU,{state:d,layout:En,logSections:Dr,focus:pa,conversaScroll:wn,logScroll:fa,input:y,cursorPos:w,composerActive:hC,showCursor:yC,hintState:Zl,tierDisplay:$m,isDefaultTier:wC,columns:l,frame:W,cwd:d.meta.cwd,overlay:T8?D8:null,...t.version!==void 0?{version:t.version}:{}});let cy=kc(d.meta.quota),uy=cy!==void 0&&cy.segments.length>0?cy.segments.reduce((x,v)=>v.pct>x.pct?v:x):void 0,_8=[_2,...g8],R8=tc.reduce((x,v)=>x+v.events.length,0),dy=go(O2,{children:[d.blocks.length===0&&d.phase==="idle"?_(YE,{...t.userName!==void 0?{name:t.userName}:{}}):ec.map((x,v)=>_(zg,{block:x,isCurrent:xC+v===d.blocks.length-1,frame:W,maxLines:w8,columns:jo==="side"?zn.chatCols:l,rows:c},xC+v)),(d.phase==="thinking"||d.phase==="retrying")&&_(le,{paddingTop:d.blocks.length>0?1:0,children:_(oa,{glyph:"aluy",glyphRole:"accent",label:d.workingLabel??"pensando",frame:W})}),d.phase==="compacting"&&d.progress&&_(le,{paddingTop:d.blocks.length>0?1:0,children:_(Bl,{label:d.progress.label,frame:W,elapsedMs:h8,...d.progress.value!==void 0?{value:d.progress.value}:{},...d.progress.max!==void 0?{max:d.progress.max}:{}})}),d.phase==="asking"&&d.pendingAsk&&_(le,{paddingTop:1,children:_(bE,{request:d.pendingAsk.request,...f8})}),d.phase==="questioning"&&d.pendingQuestion&&_(le,{paddingTop:1,children:_(kE,{spec:d.pendingQuestion.spec,cursor:O,selected:G,editing:z,draft:X})}),d.phase==="budget"&&d.pendingBudget&&_(le,{paddingTop:1,children:_(SE,{...d.pendingBudget,canCompact:e.canCompact})}),d.phase==="cycle-ceiling"&&d.pendingCycleCeiling&&_(le,{paddingTop:1,children:_(EE,{...d.pendingCycleCeiling})}),d.pendingUnsafeConfirm===!0&&go(le,{paddingTop:1,flexDirection:"column",children:[_(f,{name:"accent",children:"\u26A0 ativar MODO YOLO? A catraca de aprova\xE7\xE3o ser\xE1 DESLIGADA."}),_(f,{name:"fgDim",children:"(a cerca de FS e a rede interna seguem confinadas \u2014 s\xF3 a aprova\xE7\xE3o cai)"}),_(f,{name:"fgDim",children:"[s] sim, ativar \xB7 [n] n\xE3o (Esc cancela)"})]}),d.phase==="stuck"&&d.pendingStuck&&_(le,{paddingTop:1,children:_(wE,{...d.pendingStuck,redirecting:A})})]});return d.phase==="boot"?go(le,{flexDirection:"column",children:[_(le,{paddingBottom:1,children:_(Cg,{mode:d.mode,columns:l})}),_(GE,{tier:$m,columns:l,frame:W,status:d.workingLabel??"conectando",...t.version!==void 0?{version:t.version}:{}})]}):go(le,{flexDirection:"column",children:[_(Ute,{items:_8,children:(x,v)=>{if(x===_2)return go(le,{flexDirection:"column",children:[m&&_(da,{columns:l}),_(Wd,{tier:$m,columns:l,rows:c,...t.version!==void 0?{version:t.version}:{},...d.meta.backend!==void 0?{backend:d.meta.backend}:{}}),m&&_(da,{columns:l})]},"header");let S=x,C=v-1;return go(le,{flexDirection:"column",children:[S.kind==="you"&&C>0&&_(le,{paddingBottom:1,children:_(da,{columns:l,subtle:!0})}),_(zg,{block:S,isCurrent:!1,frame:0,columns:l})]},C)}},j),zn.disabledByWidth&&_(le,{paddingTop:1,children:_(f,{name:"fgDim",children:"split desabilitado: tela estreita (<60 col) \u2014 alargue o terminal ou /split"})}),jo==="single"?_(le,{flexDirection:"column",paddingY:1,children:dy}):jo==="side"?go(le,{flexDirection:"column",paddingY:1,children:[go(le,{children:[_(le,{width:zn.chatCols}),_(f,{name:"fgDim",children:"\u2502 "}),_(f,{name:ga?"accent":"fgDim",children:"LOG"})]}),go(le,{flexDirection:"row",children:[_(le,{flexDirection:"column",width:zn.chatCols,children:dy}),_(le,{width:1,flexShrink:0,children:_(f,{name:"fgDim",children:"\u2502"})}),_(le,{flexDirection:"column",width:zn.logCols,flexShrink:0,children:_(ql,{sections:tc,visibleRows:ma,scrollOffset:fa,focused:ga,columns:zn.logCols})})]})]}):go(le,{flexDirection:"column",paddingY:1,children:[go(le,{children:[_(f,{name:k==="chat"?"accent":"fgDim",children:"\u258ECHAT"}),_(D2,{children:" "}),_(f,{name:k==="log"?"accent":"fgDim",children:"LOG"}),k!=="log"&&tc.length>0&&go(f,{name:"accent",children:[" \u25CF",Math.min(99,R8)]})]}),k==="log"?_(ql,{sections:tc,visibleRows:ma,scrollOffset:fa,focused:ga,columns:l}):dy]}),ee.open&&_(le,{flexDirection:"column",paddingBottom:1,children:_(gg,{hits:ee.hits,selected:ee.selected,query:ee.query,maxRows:Math.min(8,Kn)})}),qt.open&&_(le,{flexDirection:"column",paddingBottom:1,children:_(NE,{rows:qt.rows,selected:qt.selected,mode:qt.mode,columns:l,maxRows:Math.max(4,Kn-6)})}),Ee&&_(le,{flexDirection:"column",paddingBottom:1,children:_(dA,{overview:e.flowOverview(),selected:Fe,maxRows:Math.max(4,Kn-2),columns:l,...!EC&&d.cycleProgress!==void 0?{cycleProgress:d.cycleProgress}:{},...H?{drillIn:e.drillInFlow(H)}:{}})}),ge.open&&_(le,{flexDirection:"column",paddingBottom:1,children:_(RE,{hits:ge.hits,selected:ge.selected,query:ge.query,columns:l})}),ge.notice!==null&&_(le,{paddingBottom:1,children:_(Tg,{title:"anexo recusado",lines:[ge.notice]})}),ge.attachments.length>0&&_(le,{paddingBottom:1,children:_(WE,{chips:ge.attachments.map(x=>({path:x.path,truncated:x.truncated})),active:ge.attachments.length-1})}),Te.length>0&&_(le,{paddingBottom:1,children:_(Qw,{items:Te})}),d.pendingInjects.length>0&&_(le,{paddingBottom:1,children:_(Zw,{items:d.pendingInjects})}),d.pendingAsks.length>0&&_(le,{paddingBottom:1,children:_(eE,{items:d.pendingAsks})}),_(da,{columns:l}),_(Vd,{value:y,cursorPos:w,active:hC,showCursor:yC,maxRows:Tr,columns:l,shellMode:y.startsWith("!"),...vC!==void 0?{placeholder:vC}:{},...gC!==void 0?{hint:gC}:{},...d.meta.label!==void 0?{sessionLabel:d.meta.label}:{},...d.meta.labelColor!==void 0?{sessionColor:d.meta.labelColor}:{}}),se&&_(le,{flexDirection:"column",paddingTop:1,children:_(hg,{commands:no,selected:ie,query:nn,maxRows:Kn,columns:l})}),U.open&&_(le,{flexDirection:"column",paddingTop:1,children:_(bg,{tiers:U.tiers,selected:U.selected,currentTier:d.meta.tier,loading:U.loading,usingFallback:U.usingFallback,customSelected:U.customSelected,customInputOpen:U.customInputOpen,customInput:U.customInput,customSuggestions:U.customSuggestions,customWarnOutOfCatalog:U.customWarnOutOfCatalog,customBrowserAvailable:U.customBrowserAvailable,customRows:U.customRows,customFilteredCount:U.customFilteredCount,customTotalCount:U.customTotalCount,customHasMoreAbove:U.customHasMoreAbove,customHasMoreBelow:U.customHasMoreBelow,customToolsOnly:U.customToolsOnly,customNoToolsWarning:U.customNoToolsWarning,effortStepOpen:U.effortStepOpen,effortOptions:U.effortOptions,effortSelected:U.effortSelected,...U.currentEffort!==void 0?{currentEffort:U.currentEffort}:{},effortCustomOpen:U.effortCustomOpen,effortCustomInput:U.effortCustomInput,effortCustomWarn:U.effortCustomWarn})}),Wt.open&&_(le,{flexDirection:"column",paddingTop:1,children:_(wg,{themes:Wt.themes,selected:Wt.selected,currentTheme:Vl})}),Mt.open&&_(le,{flexDirection:"column",paddingTop:1,children:_(Eg,{langs:Mt.langs,selected:Mt.selected,currentLang:Xl})}),Gt.open&&_(le,{flexDirection:"column",paddingTop:1,children:_(kg,{sessions:Gt.sessions,selected:Gt.selected,maxRows:Kn-2,columns:l})}),E.open&&E.phase!=="closed"&&_(le,{flexDirection:"column",paddingTop:1,children:_(Sg,{phase:E.phase,checkpoints:E.checkpoints,actions:E.actions,target:E.target,selected:E.selected,barrierWarnings:$,maxRows:Kn-2,columns:l})}),_(da,{columns:l}),d.turnAccounting&&(d.phase==="done"||d.phase==="budget")&&_(SA,{accounting:d.turnAccounting}),(d.phase==="done"||d.phase==="budget"||d.phase==="idle"||d.phase==="error")&&_(AA,{quota:d.meta.quota,serverLimits:d.meta.serverLimits}),l>=60&&c>=fE&&_(le,{height:1}),_(Gd,{...d.meta.branch!==void 0?{branch:d.meta.branch}:{},cwd:d.meta.cwd,tier:$m,isDefaultTier:wC,...CC!==void 0?{model:CC}:{},tokens:d.meta.tokens,...d.meta.budgetPct!==void 0?{budgetPct:d.meta.budgetPct}:{},windowPct:d.meta.windowPct,...uy!==void 0?{quotaPct:uy.pct,quotaLevel:uy.level}:{},columns:l,error:d.phase==="error",...d.governance!==void 0?{governance:d.governance}:{},...!EC&&d.cycleProgress!==void 0?{cycleProgress:d.cycleProgress}:{},busy:pe,frame:W}),d.detachedSubagents!==void 0&&d.detachedSubagents>0&&_(le,{children:go(D2,{color:"yellow",children:["\u26A0 ",d.detachedSubagents," sub-agente(s) em segundo plano (esc) \u2014 F8 para parar."]})}),_(Cg,{mode:d.mode,columns:l}),u&&Zl&&Zl!=="ask"&&Zl!=="ask-destructive"&&_(ym,{state:Zl,...kC!==void 0?{elapsed:kC}:{},...Bo?{armedExit:!0}:{},...bC?{suggesting:!0}:{}})]})}function zg(t){let e=t.block;switch(e.kind){case"you":return _(le,{paddingBottom:1,children:_(pE,{text:e.text,isCurrent:t.isCurrent})});case"aluy":return _(le,{paddingBottom:1,children:_(hE,{text:e.text,streaming:e.streaming,isCurrent:t.isCurrent,frame:t.frame,...t.maxLines!==void 0?{maxLines:t.maxLines}:{},...t.columns!==void 0?{columns:t.columns}:{}})});case"tool":return _(yE,{verb:e.verb,target:e.target,result:e.result,status:e.status,frame:t.frame,...e.verbGerund!==void 0?{verbGerund:e.verbGerund}:{},...e.output!==void 0?{output:e.output}:{},...e.liveOutput!==void 0?{liveOutput:e.liveOutput}:{},maxLines:t.rows!==void 0?Dl(t.rows,t.columns):Ys,...t.columns!==void 0?{columns:t.columns}:{}});case"note":return _(le,{paddingBottom:1,children:_(Tg,{title:e.title,lines:e.lines})});case"bang":return _(le,{paddingBottom:1,children:_(rA,{command:e.command,status:e.status,frame:t.frame,...e.output!==void 0?{output:e.output}:{},...e.liveOutput!==void 0?{liveOutput:e.liveOutput}:{},maxLines:t.rows!==void 0?Dl(t.rows,t.columns):Ys,...t.columns!==void 0?{columns:t.columns}:{}})});case"subagents":return _(iA,{childrenStatus:e.children});case"doctor":return _(lA,{checks:e.checks,frame:t.frame,...e.summary!==void 0?{summary:e.summary}:{}});case"deny":return _(le,{paddingLeft:2,children:go(f,{name:"danger",children:["[x] negado \xB7 ",e.verb," ",e.exact]})});case"broker-error":return _(xE,{message:e.message,...e.headline!==void 0?{headline:e.headline}:{},...e.status!==void 0?{status:e.status}:{},...e.attempt!==void 0?{attempt:e.attempt}:{},...e.maxAttempts!==void 0?{maxAttempts:e.maxAttempts}:{},...e.retryInSeconds!==void 0?{retryInSeconds:e.retryInSeconds}:{},...e.retrying!==void 0?{retrying:e.retrying}:{},...e.backend!==void 0?{backend:e.backend}:{}});case"testrun":return _(xA,{score:e.score,running:e.running,startedAt:e.startedAt,frame:t.frame});case"inject":return _(Jte,{text:e.text})}}function Jte(t){let e=t.text.trim(),o=e.length>80?`${e.slice(0,80)}\u2026`:e;return _(le,{paddingLeft:2,paddingBottom:1,children:go(f,{name:"fgDim",children:["\u21B3 encaixado",o?`: ${o}`:""]})})}function Qte(t){for(let e=t.length-1;e>=0;e--){let o=t[e];if(o){if(o.kind==="bang")return o.status==="running";if(o.kind==="you"||o.kind==="tool"||o.kind==="aluy")return!1}}return!1}function R2(t){for(let e=t.length-1;e>=0;e--){let o=t[e];if(o?.kind==="subagents")return o.children.some(n=>n.status==="running")}return!1}function Zte(t){for(let e=t.length-1;e>=0;e--){let o=t[e];if(o?.kind==="doctor")return o.checks.some(n=>n.status==="pending")}return!1}function eoe(t,e,o,n=!1){if(o)return"palette";if(e)return"slash";switch(t.phase){case"thinking":case"retrying":return n?"work-subagents":"thinking";case"streaming":return n?"work-subagents":"streaming";case"asking":return t.pendingAsk?.request.category==="always-ask:destructive"?"ask-destructive":"ask";case"budget":return"budget";case"cycle-ceiling":return"budget";case"error":return"error";case"idle":case"done":return n?"idle-subagents":"idle";default:return null}}function toe(t,e){if(!e||t.phase!=="asking"||!t.pendingAsk)return{};let o=t.pendingAsk.request.effect;if(o.kind!=="network"&&o.kind!=="command")return{};let n=t.pendingAsk.request.call.input.command,r=typeof n=="string"?n:"",s=o.target??TS(r);return s===void 0?{}:{egressOutsideAllowlist:e.inspect(r).outsideAllowlist,egressTarget:s}}var _2,Gte,zte,Kte,Yte,Vte,Xte,NA=p(()=>{"use strict";Ig();te();CA();QB();tU();rU();lU();mU();hU();yU();vU();xU();Rs();pt();jg();P();Md();Vr();hn();wU();RA();aw();ta();Dt();AU();TU();RU();MU();LA();PU();$A();IU();eg();Rw();$U();HU();JU();Fl();Rd();YA();xh();_2=Symbol("header"),Gte={list:async()=>[]},zte={attach:async()=>({kind:"rejected",path:"",reason:"sem leitor"})},Kte={list:async()=>[]},Yte={list:()=>[],load:()=>null},Vte={list:()=>[],barriersAfter:()=>[]},Xte={mode:"normal",setMode:()=>{},sessionGrants:{list:()=>[],revoke:()=>!1},effectiveSafeDefault:()=>"allow",setSafeToolDefault:()=>!1}});import{useCallback as L2,useMemo as P2,useState as F2}from"react";import{jsx as VA}from"react/jsx-runtime";function I2(t){let{initialTheme:e,env:o,density:n,safeGlyphs:r,onThemeChanged:s,initialLang:i,onLangChanged:a,...l}=t,[c,u]=F2(e),[m,d]=F2(i??sr),h=P2(()=>VO(c,{...o!==void 0?{env:o}:{},...n!==void 0?{density:n}:{},...r!==void 0?{safeGlyphs:r}:{}}),[c,o,n,r]),g=P2(()=>Ki(m),[m]),b=L2(w=>{u(w),s?.(w)},[s]),y=L2(w=>{d(w),a?.(w)},[a]);return VA(Wi,{theme:h,children:VA(Bw,{value:g,children:VA(M2,{...l,currentTheme:c,onSelectTheme:b,currentLang:m,onSelectLang:y})})})}var N2=p(()=>{"use strict";te();Rs();pt();NA()});import{request as ooe}from"node:https";import{request as noe}from"node:http";function B2(t={}){let e=t.resolver??new lo,o=t.httpsRequestFn??ooe,n=t.httpRequestFn??noe,r=t.maxRedirects??0;return async function(i,a){let l=a.redirect??"error",c=i,u=0,m=new URL(i).origin,d=a.headers;for(;;){let h=await wb(c,e);if(!h.ok)throw new Error(`backend local: egress recusado \u2014 ${h.reason} (PROV-SEC-1, anti-SSRF)`);let g=await roe({url:c,host:h.host,pinnedIp:h.pinnedIp,method:a.method,headers:d,...a.body!==void 0?{body:a.body}:{},...a.signal?{signal:a.signal}:{},httpsRequestFn:o,httpRequestFn:n}),b=g.statusCode??0,y=U2(g.headers.location);if(ioe(b)&&y!==void 0){if(l==="error")throw g.resume(),new Error(`backend local: redirect (${b} \u2192 ${y}) BLOQUEADO (PROV-SEC-1, anti-SSRF: redirect n\xE3o-revalidado \xE9 vetor p/ metadata da cloud)`);if(l==="manual")return g.resume(),$2(g,b);if(u>=r)throw g.resume(),new Error(`backend local: excesso de redirects (>${r}) \u2014 abortado (anti-SSRF)`);let w=new URL(y,c).toString();new URL(w).origin!==m&&(d=loe(d)),g.resume(),c=w,u+=1;continue}return $2(g,b)}}}function roe(t){let e=new URL(t.url),o=e.protocol==="https:",n=t.pinnedIp.includes(":")?6:4,r=((c,u,m)=>{typeof u=="object"&&u!==null&&u.all===!0?m(null,[{address:t.pinnedIp,family:n}]):m(null,t.pinnedIp,n)}),s=o?t.httpsRequestFn:t.httpRequestFn,i=t.body,a={...t.headers,Host:soe(e,t.host)};i!==void 0&&a["Content-Length"]===void 0&&(a["Content-Length"]=String(Buffer.byteLength(i)));let l={protocol:e.protocol,host:t.host,servername:t.host,port:e.port?Number(e.port):o?443:80,path:e.pathname+e.search,method:t.method,lookup:r,headers:a};return new Promise((c,u)=>{let m=!1,d=()=>{t.signal&&b&&t.signal.removeEventListener("abort",b)},h=y=>{m||(m=!0,d(),u(y))},g=s(l,y=>{m||(m=!0,d(),c(y))}),b=()=>{g.destroy();let y=new Error("cancelado");y.name="AbortError",h(y)};if(t.signal){if(t.signal.aborted){g.destroy();let y=new Error("cancelado");y.name="AbortError",h(y);return}t.signal.addEventListener("abort",b)}g.on("error",h),i!==void 0&&g.write(i),g.end()})}function $2(t,e){let o=!1,n=async()=>{if(o)throw new Error("corpo j\xE1 consumido");o=!0;let r=[];for await(let s of t)r.push(s);return Buffer.concat(r).toString("utf8")};return{status:e,ok:e>=200&&e<300,headers:{get(r){return U2(t.headers[r.toLowerCase()])??null}},body:o?null:t,async json(){let r=await n();return r===""?void 0:JSON.parse(r)},text:n}}function soe(t,e){return t.port?`${e}:${t.port}`:e}function ioe(t){return t===301||t===302||t===303||t===307||t===308}function U2(t){if(t!==void 0)return Array.isArray(t)?t[0]:t}function loe(t){let e={};for(let[o,n]of Object.entries(t))aoe.has(o.toLowerCase())||(e[o]=n);return e}var aoe,j2=p(()=>{"use strict";P();Bs();aoe=new Set(["authorization","cookie","proxy-authorization"])});function coe(t,e){return Rn(e,t)?.baseUrl}function uoe(t,e){let o=Rn(e,t)?.auth;return o!==void 0&&o.length>0&&o.every(n=>n==="none")?"none":"apikey"}function doe(t,e,o){return(Rn(e,t)?.wireFormat??"openai-compat")==="anthropic"?new fc:new pc({provider:t,defaultBaseUrl:o})}async function H2(t){let e=t.catalog??Zn(),o=t.auth??uoe(t.provider,e),n=t.resolver??new lo,r=coe(t.provider,e);if(r===void 0&&(t.baseUrl===void 0||t.baseUrl===""))throw new Error(`backend local: provider desconhecido '${t.provider}' (n\xE3o est\xE1 no cat\xE1logo) e sem --local-base-url. Adicione-o em ~/.aluy/providers.json ou passe um base_url.`);let s=doe(t.provider,e,r??""),i=t.baseUrl??r??"";if(t.baseUrl!==void 0&&t.baseUrl!==""){let c=await Sb(t.baseUrl,n);if(!c.ok)throw new Error(`backend local: ${c.reason} (PROV-SEC-1, anti-SSRF)`);i=t.baseUrl}let a=t.fetch??B2({resolver:n}),l=t.getCredential??EM({provider:t.provider,auth:o,...t.env?{env:t.env}:{},...t.oauthAccessToken?{oauthAccessToken:t.oauthAccessToken}:{}});return new wc({adapter:s,config:{provider:t.provider,model:t.model,auth:o,...t.baseUrl?{baseUrl:i}:{}},baseUrl:i,getCredential:l,fetch:a,...t.maxTokens!==void 0?{maxTokens:t.maxTokens}:{}})}var q2=p(()=>{"use strict";P();Bs();sl();j2()});import{homedir as moe}from"node:os";import{join as foe}from"node:path";async function ey(t={}){let e=t.workspaceRoot??process.cwd(),o=t.aluyHome??foe(moe(),".aluy"),n=new Xr({baseDir:o}),{config:r,error:s}=n.load(),i=t.loadCodexConfig?t.loadCodexConfig():void 0,a=t.loadProjectConfig?await t.loadProjectConfig():void 0,l=Ou(...i?[i.config]:[],r,...a?[a.config]:[]),c=[i?.error,s,a?.error].filter(b=>typeof b=="string").join(" | ")||void 0,u=t.makeTransport??(()=>new Yr({cwd:e,...t.parentEnv?{parentEnv:t.parentEnv}:{},...t.sandboxLauncher?{sandboxLauncher:t.sandboxLauncher,workspaceRoots:[e]}:{}})),m=await Pu(l,u),d=[],h=ux(m.tools,b=>d.push(b)),g=[...i?[{origin:"codex",config:i.config}]:[],{origin:"aluy-global",config:r},...a?[{origin:"project",config:a.config}]:[]];return{tools:h,transports:m.transports,discovery:m,sources:g,...c?{configError:c}:{},...d.length>0?{warnings:d}:{},close:()=>ix(m.transports)}}var W2=p(()=>{"use strict";P();Ni();Xu()});var G2=p(()=>{"use strict";Ni();th();Ju();Xu();W2();Fd()});var poe,ty,XA=p(()=>{"use strict";P();poe="https://api.telegram.org",ty=class{token;fetchFn;apiBase;longPollSeconds;offset=0;constructor(e){this.token=e.token,this.fetchFn=e.fetchFn??globalThis.fetch,this.apiBase=e.allowNonDefaultApiBase===!0&&e.apiBase?e.apiBase:poe,this.longPollSeconds=e.longPollSeconds??25}get redactedToken(){return Ds(this.token)}safeForLog(e){return wx(e,this.token)}async poll(e){let o=`${this.apiBase}/bot${this.token}/getUpdates?timeout=${this.longPollSeconds}&offset=${this.offset}&allowed_updates=${encodeURIComponent('["message"]')}`,n;try{let s=await this.fetchFn(o,e?{signal:e}:{});if(!s.ok)return[];n=await s.json()}catch{return[]}let r=kx(n,this.offset);return this.offset=r.nextOffset,r.updates}async*stream(e){for(;!e?.aborted;){let o=await this.poll(e);for(let n of o){if(e?.aborted)return;yield n}}}async send(e,o,n){let r=`${this.apiBase}/bot${this.token}/sendMessage`;try{let s=await this.fetchFn(r,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:e,text:o}),...n?{signal:n}:{}});return s.ok?(await s.json())?.ok===!0:!1}catch{return!1}}}});var oy,z2=p(()=>{"use strict";P();XA();oy=class{constructor(e,o={}){this.client=e;this.opts=o}client;opts;meta=Fu;async*incoming(){for await(let e of this.client.stream(this.opts.signal))yield yx(e)}async send(e){let o=Number(e.conversation);Number.isFinite(o)&&await this.client.send(o,e.content,this.opts.signal)}}});var hoe,goe,K2,ny,Y2=p(()=>{"use strict";P();hoe=20,goe=6e4,K2="telegram (dado externo)",ny=class{connector;allowlist;sink;redactor;egressLimiter;now;log;ac=new AbortController;lockedConversation;constructor(e){this.connector=e.connectorFactory(this.ac.signal),this.allowlist=e.allowlist,this.sink=e.sink,this.redactor=e.redactor,this.egressLimiter=e.egressLimiter??new Iu(hoe,goe),this.now=e.now??Date.now,this.log=e.log??(o=>process.stderr.write(`${o}
|
|
692
692
|
`))}get signal(){return this.ac.signal}get currentTarget(){return this.lockedConversation}route(e){let o=Ap(e,this.allowlist,Fu);switch(o.kind){case"instruction":this.lockedConversation=e.conversation,this.sink.injectInstruction(o.text),o.forwardedData!==void 0&&o.forwardedData.trim()!==""&&this.sink.injectData(K2,o.forwardedData);break;case"data":this.sink.injectData(K2,o.text);break;case"discard":this.log(`[telegram] descartado: ${o.reason}`);break}return o}async pump(){try{for await(let e of this.connector.incoming()){if(this.ac.signal.aborted)break;try{this.route(e)}catch(o){this.log(`[telegram] erro ao rotear ingresso: ${this.safe(o)}`)}}}catch(e){this.log(`[telegram] long-poll encerrado: ${this.safe(e)}`)}}sendTool(){return{name:"telegram_send",effect:"comms",description:'Envia uma mensagem de texto de volta pela conversa de Telegram CORRENTE (a do dono que te falou). Input: { "text": string }. O DESTINO \xE9 fixo (a conversa travada) \u2014 voc\xEA N\xC3O escolhe para quem vai (anti-exfiltra\xE7\xE3o). H\xE1 um teto anti-spam por minuto.',parameters:{type:"object",properties:{text:{type:"string",description:"O texto a enviar de volta na conversa corrente."}},required:["text"]},run:e=>this.runSend(e)}}async runSend(e){let o=String(e.text??"").trim();if(o==="")return{ok:!1,observation:'telegram_send: "text" \xE9 obrigat\xF3rio.'};let n=this.lockedConversation;if(n===void 0)return{ok:!1,observation:"telegram_send: nenhuma conversa de Telegram ativa \u2014 s\xF3 d\xE1 para responder depois que o dono te escreve pelo Telegram."};if(!this.egressLimiter.tryConsume(this.now()))return{ok:!1,observation:"telegram_send: teto anti-spam atingido (muitos envios no \xFAltimo minuto) \u2014 envio NEGADO. Espere antes de tentar de novo."};try{return await this.connector.send({content:o,conversation:n}),{ok:!0,observation:"mensagem enviada na conversa de Telegram corrente."}}catch(r){return{ok:!1,observation:`telegram_send: falha ao enviar \u2014 ${this.safe(r)}`}}}stop(){this.ac.abort()}safe(e){let o=e instanceof Error?e.message:String(e);return this.redactor.safeForLog(o)}}});async function V2(t){let e=t.secretStore??new Is("telegram"),o=t.configStore??new Ue,n;try{n=await e.get()}catch{n=null}if(n===null||n.trim()==="")return{active:!1,reason:"Telegram pedido (--telegram) mas sem token no keychain \u2014 rode `aluy telegram login`. A bridge segue desativada (nenhuma conex\xE3o \xE9 aberta)."};let r;try{let a=Ms(o.load()),l=bx(a);r=new Set(Array.from(l,c=>String(c)))}catch{r=new Set}let s=new ty({token:n,...t.fetchFn?{fetchFn:t.fetchFn}:{}});return{active:!0,bridge:new ny({connectorFactory:a=>new oy(s,{signal:a}),allowlist:r,sink:t.sink,redactor:s,...t.bridgeOverrides??{}}),allowlistSize:r.size}}var X2=p(()=>{"use strict";XA();z2();Y2();P();Xp();ko()});async function J2(t,e){let o=t.probeOverride?.tierTester!==void 0,r=lh(o).map(d=>({id:d.id,label:d.label,status:"pending"})),s=new Map(r.map((d,h)=>[d.id,h]));e({checks:[...r]});let i=t.unsafe===!0?["--yolo"]:[],a={...t.env!==void 0?{env:t.env}:{},...t.workspaceRoot!==void 0?{workspaceRoot:t.workspaceRoot}:{},getAccessToken:()=>t.login.getAccessToken(),memory:t.memory,extraFlags:i,...t.probeOverride??{},onCheck:(d,h)=>{let g=ch(d,h),b=s.get(d);g&&b!==void 0&&(r[b]={id:d,label:g.label,status:g.status,...g.detail!==void 0?{detail:g.detail}:{},...g.fix!==void 0?{fix:g.fix}:{}},e({checks:[...r]}))}},l=await od(a),c=rd(l),m={checks:c.checks.map(d=>({id:d.id,label:d.label,status:d.status,detail:d.detail,...d.fix!==void 0?{fix:d.fix}:{}})),summary:uh(c.checks)};return e(m),m}var Q2=p(()=>{"use strict";hS();dh()});import{readFileSync as yoe}from"node:fs";import{homedir as boe}from"node:os";import{join as Z2}from"node:path";function voe(t,e=15,o=Z2(boe(),".aluy")){try{let n=yoe(Z2(o,"logs",`${t}.log`),"utf8").trimEnd();return n===""?void 0:n.split(`
|
|
693
693
|
`).slice(-e).join(`
|
|
@@ -699,14 +699,14 @@ ${o[s]}`).join(`
|
|
|
699
699
|
`);return s=s.replace(/\n{3,}/g,`
|
|
700
700
|
|
|
701
701
|
`).replace(/\n+$/,"")+`
|
|
702
|
-
`,s}var Sj=p(()=>{"use strict";P()});function nC(t,e){return e!==void 0&&e.trim()!==""?!0:t.some(o=>o.kind==="you"||o.kind==="aluy")}function wj(t,e){if(!nC(e.blocks,e.label))return!1;try{return t.save(e)}catch{return!1}}function Moe(t){let e=new Date(t),o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${o(e.getMonth()+1)}-${o(e.getDate())} ${o(e.getHours())}:${o(e.getMinutes())}`}function Loe(t){let e=Math.max(0,Math.floor(t/1e3));if(e<60)return"h\xE1 instantes";let o=Math.floor(e/60);if(o<60)return`h\xE1 ${o} min`;let n=Math.floor(o/60);return n<24?`h\xE1 ${n} h`:`h\xE1 ${Math.floor(n/24)} d`}function Ej(t,e){return`\u21BB retomar a conversa anterior (${t} ${t===1?"mensagem":"mensagens"}, ${Loe(e)})? [S/n] `}function Aj(t){if(t.length===0)return["nenhuma sess\xE3o salva ainda."];let e=["sess\xF5es salvas (retome com: aluy --resume <id>):",""];for(let o of t){let n=o.title??"(sem objetivo)";e.push(` ${o.id}`),e.push(` ${Moe(o.updatedAt)} \xB7 ${o.cwd} \xB7 ${o.blockCount} blocos`),e.push(` ${n}`)}return e}var rC=p(()=>{"use strict"});function Mm(t,e=Cj){let o=t.tier.trim();if(o!=="custom")return{tier:o};let n=t.model?.trim();if(n!==void 0&&n!==""){let r=t.provider?.trim();return{tier:"custom",model:n,...r!==void 0&&r!==""?{provider:r}:{}}}return{tier:e,warning:`sess\xE3o Custom anterior sem o modelo salvo \u2014 retomada no tier ${e}. Use /model p/ reescolher o modelo Custom.`}}function Tj(t,e=Cj){return Mm({tier:t.tier??"",...t.model!==void 0?{model:t.model}:{},...t.provider!==void 0?{provider:t.provider}:{}},e)}function Poe(t,e,o){if(t===void 0)return{kind:"none"};if(t.kind==="continue"){let r=e.latestForCwd(o);if(r&&_j(r.blocks)>0)return{kind:"resumed",record:r};for(let s of e.list()){if(s.cwd!==o||s.title===void 0)continue;let i=e.load(s.id);if(i)return{kind:"resumed",record:i}}return{kind:"none"}}if(t.id!==void 0&&t.id.trim()!==""){let r=t.id.trim(),s=e.load(r);if(s)return{kind:"resumed",record:s};let i=r.toLowerCase(),a=e.list().filter(l=>(l.label??"").trim().toLowerCase()===i);if(a.length===1){let l=e.load(a[0].id);if(l)return{kind:"resumed",record:l}}return a.length>1?{kind:"pick",choices:a}:{kind:"not-found",requestedId:r}}let n=e.list().filter(r=>r.title!==void 0||r.label!==void 0);return n.length>0?{kind:"pick",choices:n}:{kind:"none"}}function Foe(t){let e=0;for(let o of t)(o.kind==="you"||o.kind==="aluy")&&(e+=1);return e}function _j(t){let e=0;for(let o of t)o.kind==="you"&&(e+=1);return e}function Ioe(t,e,o,n,r=Date.now(),s=Dj){if(t!==void 0||e)return{kind:"explicit"};let i=o.latestForCwd(n);if(!i)return{kind:"none"};let a=Math.max(0,r-i.updatedAt);if(a>s)return{kind:"none"};let l=Foe(i.blocks);return l===0?{kind:"none"}:_j(i.blocks)===0?{kind:"none"}:{kind:"offer",record:i,ageMs:a,messageCount:l}}async function Rj(t){let e=Poe(t.request,t.store,t.cwd);if(e.kind!=="none"||!t.isTty)return e;let o=Ioe(t.request,t.fresh,t.store,t.cwd,t.now??Date.now(),t.windowMs??Dj);if(o.kind!=="offer")return{kind:"none"};let n=!1;try{n=await t.promptYesNo(Ej(o.messageCount,o.ageMs))}catch{n=!1}return n?{kind:"resumed",record:o.record}:{kind:"none"}}var Cj,Dj,Oj=p(()=>{"use strict";rC();Cj="aluy-flux";Dj=1440*60*1e3});function
|
|
703
|
-
`).map(o=>o.trimEnd());for(;e.length>1&&e[e.length-1]==="";)e.pop();return e}function Wj(t){let e=
|
|
704
|
-
`)}function
|
|
705
|
-
`)}function
|
|
706
|
-
`)}function
|
|
702
|
+
`,s}var Sj=p(()=>{"use strict";P()});function nC(t,e){return e!==void 0&&e.trim()!==""?!0:t.some(o=>o.kind==="you"||o.kind==="aluy")}function wj(t,e){if(!nC(e.blocks,e.label))return!1;try{return t.save(e)}catch{return!1}}function Moe(t){let e=new Date(t),o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${o(e.getMonth()+1)}-${o(e.getDate())} ${o(e.getHours())}:${o(e.getMinutes())}`}function Loe(t){let e=Math.max(0,Math.floor(t/1e3));if(e<60)return"h\xE1 instantes";let o=Math.floor(e/60);if(o<60)return`h\xE1 ${o} min`;let n=Math.floor(o/60);return n<24?`h\xE1 ${n} h`:`h\xE1 ${Math.floor(n/24)} d`}function Ej(t,e){return`\u21BB retomar a conversa anterior (${t} ${t===1?"mensagem":"mensagens"}, ${Loe(e)})? [S/n] `}function Aj(t){if(t.length===0)return["nenhuma sess\xE3o salva ainda."];let e=["sess\xF5es salvas (retome com: aluy --resume <id>):",""];for(let o of t){let n=o.title??"(sem objetivo)";e.push(` ${o.id}`),e.push(` ${Moe(o.updatedAt)} \xB7 ${o.cwd} \xB7 ${o.blockCount} blocos`),e.push(` ${n}`)}return e}var rC=p(()=>{"use strict"});function Mm(t,e=Cj){let o=t.tier.trim();if(o!=="custom")return{tier:o};let n=t.model?.trim();if(n!==void 0&&n!==""){let r=t.provider?.trim();return{tier:"custom",model:n,...r!==void 0&&r!==""?{provider:r}:{}}}return{tier:e,warning:`sess\xE3o Custom anterior sem o modelo salvo \u2014 retomada no tier ${e}. Use /model p/ reescolher o modelo Custom.`}}function Tj(t,e=Cj){return Mm({tier:t.tier??"",...t.model!==void 0?{model:t.model}:{},...t.provider!==void 0?{provider:t.provider}:{}},e)}function Poe(t,e,o){if(t===void 0)return{kind:"none"};if(t.kind==="continue"){let r=e.latestForCwd(o);if(r&&_j(r.blocks)>0)return{kind:"resumed",record:r};for(let s of e.list()){if(s.cwd!==o||s.title===void 0)continue;let i=e.load(s.id);if(i)return{kind:"resumed",record:i}}return{kind:"none"}}if(t.id!==void 0&&t.id.trim()!==""){let r=t.id.trim(),s=e.load(r);if(s)return{kind:"resumed",record:s};let i=r.toLowerCase(),a=e.list().filter(l=>(l.label??"").trim().toLowerCase()===i);if(a.length===1){let l=e.load(a[0].id);if(l)return{kind:"resumed",record:l}}return a.length>1?{kind:"pick",choices:a}:{kind:"not-found",requestedId:r}}let n=e.list().filter(r=>r.title!==void 0||r.label!==void 0);return n.length>0?{kind:"pick",choices:n}:{kind:"none"}}function Foe(t){let e=0;for(let o of t)(o.kind==="you"||o.kind==="aluy")&&(e+=1);return e}function _j(t){let e=0;for(let o of t)o.kind==="you"&&(e+=1);return e}function Ioe(t,e,o,n,r=Date.now(),s=Dj){if(t!==void 0||e)return{kind:"explicit"};let i=o.latestForCwd(n);if(!i)return{kind:"none"};let a=Math.max(0,r-i.updatedAt);if(a>s)return{kind:"none"};let l=Foe(i.blocks);return l===0?{kind:"none"}:_j(i.blocks)===0?{kind:"none"}:{kind:"offer",record:i,ageMs:a,messageCount:l}}async function Rj(t){let e=Poe(t.request,t.store,t.cwd);if(e.kind!=="none"||!t.isTty)return e;let o=Ioe(t.request,t.fresh,t.store,t.cwd,t.now??Date.now(),t.windowMs??Dj);if(o.kind!=="offer")return{kind:"none"};let n=!1;try{n=await t.promptYesNo(Ej(o.messageCount,o.ageMs))}catch{n=!1}return n?{kind:"resumed",record:o.record}:{kind:"none"}}var Cj,Dj,Oj=p(()=>{"use strict";rC();Cj="aluy-flux";Dj=1440*60*1e3});function qoe(t,e){let n=Math.max(1,Math.trunc(e))+Hoe;return((Number.isFinite(t)?Math.trunc(t):0)*Boe%n+n)%n}function Woe(t,e,o){let n=qoe(e,o),r=Number.isFinite(t)?Math.trunc(t):0,s=Math.abs(r-n);return s<=Uoe?2:s<=joe?1:0}function Goe(t){return t===2?"accent":t===1?"accentMid":"accentDim"}function zoe(){let t=Math.max(xl.length,Ld.length),e=[];for(let o=0;o<t;o+=1)e.push(`${xl[o]??""}${Noe}${Ld[o]??""}`);return e}function Lj(t,e=!0){let o=zoe(),n=o.length,r=o.reduce((l,c)=>Math.max(l,c.length),0),s=(l,c)=>(o[l]?.[c]??" ")===Mj,i=l=>e?Goe(Woe(l,t,r)):"accent",a=[];for(let l=0;l<n+1;l+=1){let c=[];for(let u=0;u<r+1;u+=1)s(l,u)?c.push({role:i(u),char:Mj}):s(l-1,u-1)?c.push({role:"accentDim",char:$oe}):c.push({role:null,char:" "});a.push(c)}return a}function Pj(t){let e=[];for(let o of t){let n=e[e.length-1];n&&n.role===o.role?n.text+=o.char:e.push({role:o.role,text:o.char})}return e}var Mj,Noe,$oe,Boe,Uoe,joe,Hoe,Fj=p(()=>{"use strict";Gi();Mj="\u2588",Noe=" ",$oe="\u2592",Boe=3,Uoe=1,joe=4,Hoe=8});function Koe(t,e=6){if(sC.length===0)return 0;let o=Number.isFinite(t)&&t>0?Math.floor(t):0,n=e>=1?Math.floor(e):1;return Math.floor(o/n)%sC.length}function Ij(t,e=6){return sC[Koe(t,e)]??""}var sC,Nj=p(()=>{"use strict";sC=["aquecendo os neur\xF4nios","convencendo os el\xE9trons","alinhando os pixels","domando os bits","fazendo um cafezinho","acordando os hamsters","consultando os astros","embaralhando as ideias","afiando os l\xE1pis","respirando fundo","contando at\xE9 dez","calibrando o bom humor","procurando as chaves","desenrolando o fio","ajeitando as almofadas","apertando os parafusos"]});import"react";import{Box as Do,Text as $j}from"ink";import{jsx as at,jsxs as Gl}from"react/jsx-runtime";function Voe(t){let e=(t%iC+iC)%iC;return".".repeat(e)}function Bj(t){let e=Q(),o=t.columns,n=t.rows,r=t.frame??0,s=t.status??"carregando",i=t.tagline??Yoe,l=e.animate&&e.unicode&&o>=Pd?at(Qoe,{frame:r}):at(os,{columns:o});return t.prompt!==void 0?Gl(Do,{width:o,height:n,flexDirection:"column",alignItems:"center",justifyContent:"center",children:[l,at(Do,{paddingTop:1,children:at(ene,{prompt:t.prompt,columns:o})})]}):Gl(Do,{width:o,height:n,flexDirection:"column",alignItems:"center",justifyContent:"center",children:[l,at(Do,{paddingTop:1,children:at(Xoe,{text:i})}),at(Do,{paddingTop:1,children:at(Zoe,{status:s,frame:r})}),t.version!==void 0&&t.version!==""&&at(Do,{paddingTop:1,children:at(Joe,{version:t.version})})]})}function Xoe(t){return at(Do,{children:at(f,{name:"accentDim",children:t.text})})}function Joe(t){return Gl(Do,{children:[at(f,{name:"fgDim",children:"Aluy CLI \xB7 "}),Gl(f,{name:"depth",children:["v",t.version]})]})}function Qoe(t){let e=Q(),o=Lj(t.frame,e.animate);return at(Do,{flexDirection:"column",children:o.map((n,r)=>at(Do,{children:Pj(n).map((s,i)=>s.role===null?at($j,{children:s.text},i):at(f,{name:s.role,children:s.text},i))},r))})}function Zoe(t){let e=Q(),o=e.animate?Voe(t.frame):e.unicode?"\u2026":"...",n=t.status==="carregando"?Ij(e.animate?t.frame:0):t.status;return at(Do,{children:Gl(f,{name:"fgDim",children:[n,o]})})}function ene(t){let o=Q().role("accent").color,n=Math.max(Pd,Math.min(t.columns-6,56));return Gl(Do,{flexDirection:"column",borderStyle:"round",...o!==void 0?{borderColor:o}:{},paddingX:2,paddingY:0,width:n,children:[at(Do,{paddingBottom:1,children:at(f,{name:"accent",children:t.prompt.title})}),t.prompt.body.map((r,s)=>at(Do,{children:at($j,{children:r})},s)),at(Do,{paddingTop:1,children:at(f,{name:"fgDim",children:t.prompt.options})})]})}var iC,Yoe,Uj=p(()=>{"use strict";te();Gi();Fj();Nj();iC=4,Yoe="agente de terminal"});function zl(t,e){e&&t.write("\x1B[2J\x1B[3J\x1B[H")}var aC=p(()=>{"use strict"});import{useEffect as tne,useSyncExternalStore as Hj}from"react";import{render as one,useApp as nne,useInput as rne}from"ink";import{Fragment as dne,jsx as Lm}from"react/jsx-runtime";function qj(t=process.env){let e=t.ALUY_SPLASH_MIN_MS;if(e!==void 0){let o=Number.parseInt(e,10);if(Number.isFinite(o)&&o>=0)return o}return 2e3}function ine(t){let o=t.trim().replace(/\s*\[[sSnNyY/]+\]\s*$/u,"").trim(),n=o.toLowerCase();return n.includes("yolo")?{title:"\u26A0 modo YOLO",body:lC(o),options:"[s] entrar em YOLO \xB7 [n] seguir normal"}:n.includes("retomar")?{title:"\u21BB retomar sess\xE3o",body:lC(o),options:"[s] retomar \xB7 [n] nova sess\xE3o"}:{title:"aluy",body:lC(o),options:"[s] sim \xB7 [n] n\xE3o"}}function lC(t){let e=t.split(`
|
|
703
|
+
`).map(o=>o.trimEnd());for(;e.length>1&&e[e.length-1]==="";)e.pop();return e}function Wj(t){let e=ane(),o=one(Lm(Wi,{theme:t.theme,children:Lm(lne,{store:e})}),{stdout:t.stdout,exitOnCtrlC:!1});return new cC(e,o,t.stdout)}function ane(){let t={status:"carregando",prompt:void 0,resolve:null,done:!1},e=new Set;return{get:()=>t,set:o=>{t=o(t);for(let n of e)n()},subscribe:o=>(e.add(o),()=>e.delete(o))}}function lne(t){let e=Hj(t.store.subscribe,t.store.get,t.store.get),{exit:o}=nne(),n=e.prompt===void 0&&!e.done,r=km({enabled:n,intervalMs:sne});return rne((s,i)=>{let a=t.store.get().resolve;if(!a)return;if(i.return)return a(!0);let l=s.toLowerCase();if(l==="s"||l==="y")return a(!0);if(l==="n"||i.escape||i.ctrl&&l==="c")return a(!1)}),tne(()=>{e.done&&o()},[e.done,o]),e.done?null:Lm(une,{status:e.status,frame:r,...e.prompt!==void 0?{prompt:e.prompt}:{}})}function cne(t){return process.stdout.on("resize",t),()=>{process.stdout.off("resize",t)}}function jj(){return`${process.stdout.columns??80}x${process.stdout.rows??24}`}function une(t){let e=Hj(cne,jj,jj),[o,n]=e.split("x"),r=Number(o)||80,s=Number(n)||24;return Lm(Bj,{columns:r,rows:s,status:t.status,frame:t.frame,version:dn,...t.prompt!==void 0?{prompt:t.prompt}:{}})}var sne,cC,Gj=p(()=>{"use strict";te();CA();Uj();aC();nl();sne=320;cC=class{constructor(e,o,n){this.store=e;this.instance=o;this.stdout=n}store;instance;stdout;setStatus(e){this.store.set(o=>({...o,status:e}))}promptYesNo=e=>new Promise(o=>{let n=ine(e),r=s=>{this.store.set(i=>({...i,prompt:void 0,resolve:null})),o(s)};this.store.set(s=>({...s,prompt:n,resolve:r}))});async finish(){this.store.set(e=>({...e,done:!0,prompt:void 0,resolve:null})),this.instance.rerender(Lm(dne,{})),this.instance.clear(),this.instance.unmount(),await new Promise(e=>setTimeout(e,50)),zl(this.stdout,!0)}}});function zj(t){if(t.isTTY!==!0||typeof t.resume!="function")return!1;try{return t.resume(),!0}catch{return!1}}var Kj=p(()=>{"use strict"});function fne(t){let e=t.lastIndexOf("\x1B");if(e===-1)return 0;let o=t.slice(e);if(o==="\x1B")return 1;if(o[1]!=="[")return 0;for(let n=2;n<o.length;n+=1){let r=o[n];if(!(r>="0"&&r<="9")&&!(r===";"||r===":"))return 0}return o.length}function pne(){let t="";return{feed:o=>{let n=t+o;t="",n=n.replace(mne,"");let r=fne(n);return r>0&&(t=n.slice(n.length-r),n=n.slice(0,n.length-r)),n},hasPending:()=>t!=="",takePending:()=>{let o=t;return t="",o}}}function Yj(t){let e=t;if(typeof e.read!="function")return()=>{};if(e[uC])return()=>{};let o=e.read,n=pne(),r="",s,i=()=>{s!==void 0&&(clearTimeout(s),s=void 0),n.hasPending()&&(s=setTimeout(()=>{s=void 0,r+=n.takePending(),e.emit?.("readable")},hne),s.unref?.())},a=function(l){let c=l===void 0?o.call(this):o.call(this,l),u=r;if(r="",c==null)return u!==""?u:c;let m=typeof c=="string"?c:String(c),d=u+n.feed(m);return i(),d};return e.read=a,e[uC]=!0,()=>{e.read===a&&(s!==void 0&&(clearTimeout(s),s=void 0),e.read=o,e[uC]=!1)}}var mne,hne,uC,Vj=p(()=>{"use strict";mne=new RegExp("\x1B\\[[0-9;:]*u","g");hne=75,uC=Symbol.for("aluy.csiUGuard.wrapped")});function gne(){return["---","name: exemplo","description: Agente de exemplo \u2014 revisa arquivos e sugere melhorias.","tools: read_file, grep","---","Voc\xEA \xE9 um revisor de c\xF3digo amig\xE1vel. Leia os arquivos indicados e aponte","melhorias de legibilidade, performance e seguran\xE7a. Seja conciso e objetivo.","N\xE3o invente problemas \u2014 aponte s\xF3 o que realmente pode melhorar.",""].join(`
|
|
704
|
+
`)}function yne(){return["---","name: exemplo","description: Workflow de exemplo \u2014 analisa e melhora um arquivo.","---","1. analisar \u2014 Leia o arquivo alvo e identifique problemas de c\xF3digo, performance e seguran\xE7a.","2. melhorar \u2014 Corrija os problemas encontrados, um de cada vez.","3. verificar \u2014 Rode os testes e confirme que nada quebrou.",""].join(`
|
|
705
|
+
`)}function bne(){return["---","summary: Analisa um arquivo e sugere melhorias de c\xF3digo.","---","Analise o arquivo $ARGUMENTS e sugira melhorias de legibilidade, performance e seguran\xE7a.","Seja conciso \u2014 foque no que realmente importa.",""].join(`
|
|
706
|
+
`)}function vne(t={}){let e=t.name??"este projeto",o=[];o.push(`# ${e}`),o.push(""),o.push("Instru\xE7\xF5es de projeto para o agente Aluy (lidas no in\xEDcio de cada sess\xE3o).","Edite \xE0 vontade \u2014 voc\xEA \xE9 o dono deste contexto."),o.push(""),o.push("## O que \xE9"),o.push(""),o.push(t.description??"<!-- Descreva o objetivo do projeto em 1\u20132 linhas. -->"),o.push(""),o.push("## Stack"),o.push(""),o.push(t.stack??"<!-- Linguagem/framework principais. -->"),o.push(""),o.push("## Comandos"),o.push("");let n=t.scripts??{},r=Object.keys(n);if(r.length>0){o.push("```bash");for(let s of r)o.push(`npm run ${s} # ${n[s]}`);o.push("```")}else o.push("<!-- Como instalar, buildar, testar e rodar (build/test/lint/start). -->");if(o.push(""),o.push("## Estrutura"),o.push(""),t.topDirs&&t.topDirs.length>0)for(let s of t.topDirs)o.push(`- \`${s}/\``);else o.push("<!-- Os diret\xF3rios principais e o que vive em cada um. -->");return o.push(""),o.push("## Conven\xE7\xF5es"),o.push(""),o.push("<!-- Padr\xF5es de c\xF3digo, idioma de docs/commits, regras de seguran\xE7a, o que N\xC3O fazer. -->"),o.push(""),o.join(`
|
|
707
707
|
`)}function Zj(t){return["Voc\xEA \xE9 um especialista em scaffolding de projetos Aluy. Sua tarefa \xE9 gerar a","configura\xE7\xE3o `.aluy/` SOB MEDIDA para o projeto descrito abaixo.","","## O que voc\xEA deve criar","","Analise a descri\xE7\xE3o do projeto e crie os seguintes arquivos em `.aluy/`:","","1. **ALUY.md** (na raiz do projeto) \u2014 instru\xE7\xF5es de projeto para o agente Aluy."," Deve conter: nome do projeto, stack, comandos principais (build/test/lint),"," estrutura de diret\xF3rios e conven\xE7\xF5es. Use o formato:"," ```"," # nome-do-projeto"," Instru\xE7\xF5es de projeto para o agente Aluy\u2026"," ## O que \xE9"," \u2026"," ## Stack"," \u2026"," ## Comandos"," \u2026"," ## Estrutura"," \u2026"," ## Conven\xE7\xF5es"," \u2026"," ```","","2. **Agentes** em `.aluy/agents/` \u2014 perfis de sub-agentes NOMEADOS (`.md`)."," Formato EXATO (frontmatter YAML + corpo = system prompt):"," ```"," ---"," name: nome-do-agente # obrigat\xF3rio, min\xFAsculas, [a-z0-9_-]"," description: O que ele faz (1 frase)"," tools: read_file, grep # opcional \u2014 restringe o toolset (\u2286 pai)"," model: sonnet # opcional \u2014 prefer\xEAncia de tier"," ---"," Voc\xEA \xE9 um [persona]. [Instru\xE7\xF5es claras e objetivas.]"," ```"," - `tools:` AUSENTE = herda o toolset do pai."," - `tools:` PRESENTE = RESTRINGE \xE0 lista declarada."," - Crie agentes RELEVANTES ao stack descrito (ex.: revisor, tester, dev,"," arquiteto\u2026). SEMPRE crie pelo menos 1 agente.","","3. **Workflows** em `.aluy/workflows/` \u2014 fluxos de atividades (`.md`)."," Formato EXATO:"," ```"," ---"," name: nome-do-workflow # obrigat\xF3rio"," description: O que o fluxo entrega (1 frase)"," ---"," 1. passo-um [agente] \u2014 Objetivo claro do primeiro passo."," 2. passo-dois \u2014 Objetivo claro do segundo passo (sem agente = usa o default)."," ```"," - `[agente]` \xE9 OPCIONAL \u2014 se presente, invoca o agente `.md` com esse nome."," - O separador entre id e objetivo \xE9 `\u2014` (em-dash) ou `-`."," - Crie workflows do SDLC relevantes ao stack (ex.: implementar-estoria,"," code-review, deploy, bug-fix\u2026). Crie pelo menos 1 workflow.","","4. **Comandos** em `.aluy/commands/` \u2014 atalhos de prompt (`.md`)."," Formato EXATO:"," ```"," ---"," summary: O que o comando faz (1 frase)"," ---"," Template do prompt. Use $ARGUMENTS para os args do usu\xE1rio."," Ex.: Revise o arquivo $ARGUMENTS e sugira melhorias."," ```"," - O nome do comando vem do NOME DO ARQUIVO (sem `.md`)."," - `$ARGUMENTS` \xE9 substitu\xEDdo pelo que o usu\xE1rio digitar ap\xF3s `/<nome>`."," - Crie comandos \xDATEIS ao stack (ex.: revisar, testar, deploy, explicar\u2026)."," Crie pelo menos 1 comando.","","## IMPORTANTE","","- Escreva CADA arquivo com a ferramenta `write_file` (que passa pela catraca).","- Use caminhos RELATIVOS a partir da raiz do workspace:"," `ALUY.md`, `.aluy/agents/<nome>.md`, `.aluy/workflows/<nome>.md`,"," `.aluy/commands/<nome>.md`.","- N\xC3O crie diret\xF3rios explicitamente \u2014 o `write_file` j\xE1 os cria.","- Se um arquivo j\xE1 existir, use `overwrite: false` (padr\xE3o) \u2014 N\xC3O sobrescreva"," config do dono.","- Seja CRIATIVO e RELEVANTE: os agentes/workflows/comandos devem refletir o"," stack e o dom\xEDnio do projeto descrito.","- Ap\xF3s criar todos os arquivos, fa\xE7a um RESUMO do que foi criado e por qu\xEA.","","## Descri\xE7\xE3o do projeto","",t.trim(),""].join(`
|
|
708
|
-
`)}async function
|
|
709
|
-
`)));let m=t.projectInstructions!==void 0?{instructions:t.projectInstructions,sources:[]}:await
|
|
708
|
+
`)}async function kne(t,e){let o={},n={};e&&(n.name=e);try{let i=await t.fs.readFile("package.json"),a=JSON.parse(i);if(typeof a.name=="string"&&a.name.trim()!==""&&(n.name=a.name),typeof a.description=="string"&&a.description.trim()!==""&&(n.description=a.description),a.scripts&&typeof a.scripts=="object"){let c={},u=["build","test","lint","typecheck","start","dev","format"];for(let m of u){let d=a.scripts[m];typeof d=="string"&&(c[m]=d)}Object.keys(c).length>0&&(n.scripts=c)}let l={...a.dependencies,...a.devDependencies};n.stack=l&&"typescript"in l?"TypeScript / Node":"Node"}catch{}let r=["src","packages","tests","test","docs","lib","app"],s=[];for(let i of r)try{let{matches:a}=await t.search.search("",i);a.length>0&&s.push(i)}catch{}return s.length>0&&(n.topDirs=s),Object.assign(o,n),o}function xne(t){return[{path:Ui,content:vne(t)},{path:Xj,content:gne()},{path:Jj,content:yne()},{path:Qj,content:bne()}]}async function Sne(t,e,o,n,r,s=!1,i){if(e&&!s)return"skipped";let a={name:"write_file",input:{path:t.path,content:t.content,...s?{overwrite:!0}:{}}},l=Rr(n,a);if(l.decision==="deny")return"denied";if(l.decision==="ask"){if(!l.effect)return"error";if((await r.resolve({call:a,effect:l.effect,category:l.category??"default",reason:l.reason,alwaysAsk:(l.category??"").startsWith("always-ask:")},i)).kind==="deny")return"denied"}return(await qf.run(a.input,o)).ok?"created":"error"}function sy(t){return t===Ui?`${Ui} (config do projeto)`:t===Xj?".aluy/agents/exemplo.md (agente de exemplo)":t===Jj?".aluy/workflows/exemplo.md (workflow de exemplo)":t===Qj?".aluy/commands/exemplo.md (comando de exemplo)":t}async function e8(t){let{ports:e,permission:o,askResolver:n}=t,r=await kne(e,t.rootName),s=xne(r),i=[];for(let g of s)try{i.push(await e.fs.exists(g.path))}catch{i.push(!1)}if(i[0]&&t.overwrite!==!0&&i.slice(1).every(Boolean))return{created:!1,note:{title:"init",lines:[`j\xE1 existe um ${Ui} e a estrutura .aluy/ est\xE1 completa \u2014 nada a criar.`,"edite os arquivos \xE0 m\xE3o, ou remova-os e rode /init novamente.",`para regenerar o ${Ui}, use \`/init --force\`.`]},createdPaths:[],skippedPaths:s.map(g=>g.path)};let l=[],c=[],u=[],m=[];for(let g=0;g<s.length;g++){let b=s[g],y=g===0&&t.overwrite===!0?!1:i[g],w=g===0&&t.overwrite===!0&&i[g];switch(await Sne(b,y,e,o,n,w,t.signal)){case"created":l.push(b.path);break;case"skipped":c.push(b.path);break;case"denied":u.push(b.path);break;case"error":m.push(b.path);break}}let d=l.length>0,h=[];if(d){h.push("scaffold criado com sucesso:");for(let g of l){let b=i[s.findIndex(y=>y.path===g)]?"regenerado":"criado";h.push(` ${b}: ${sy(g)}`)}}if(c.length>0){d&&h.push(""),h.push("pulados (j\xE1 existiam \u2014 idempotente, n\xE3o sobrescrevo):");for(let g of c)h.push(` \u21B7 ${sy(g)}`)}if(u.length>0){(d||c.length>0)&&h.push(""),h.push("recusados pela catraca de seguran\xE7a:");for(let g of u)h.push(` \u2717 ${sy(g)}`)}if(m.length>0){(d||c.length>0||u.length>0)&&h.push(""),h.push("falharam ao escrever:");for(let g of m)h.push(` \u26A0 ${sy(g)}`)}return!d&&c.length===s.length&&h.push("tudo j\xE1 existe \u2014 nada a criar (idempotente)."),d&&(h.push(""),h.push("revise e edite os arquivos \u2014 eles s\xE3o seus."),h.push("os exemplos em .aluy/ s\xE3o carregados automaticamente no pr\xF3ximo boot."),r.stack&&h.push(`stack detectada: ${r.stack}`),r.topDirs&&r.topDirs.length>0&&h.push(`estrutura: ${r.topDirs.map(g=>`${g}/`).join(", ")}`)),{created:d,note:{title:"init",lines:h},createdPaths:l,skippedPaths:c}}var dC,Xj,Jj,Qj,t8=p(()=>{"use strict";P();PS();dC=".aluy",Xj=`${dC}/agents/exemplo.md`,Jj=`${dC}/workflows/exemplo.md`,Qj=`${dC}/commands/exemplo.md`});var a8={};ft(a8,{NATIVE_COMMANDS:()=>Xo,NO_CYCLE_CEILING_MESSAGE:()=>mC,defaultBootPrompt:()=>s8,describeConfigSources:()=>i8,emitBootClear:()=>zl,isLoggedOut:()=>r8,preflightCycleCeiling:()=>n8,resolveCycleBootCeilings:()=>o8,runSession:()=>Ane});import{render as wne}from"ink";import{basename as Ene}from"node:path";import{jsx as Rne}from"react/jsx-runtime";function o8(t){let e={};if(t.cycles!==void 0){let o=Number(t.cycles);Number.isFinite(o)&&Number.isInteger(o)&&o>=1&&(e.maxIterations=o)}if(t.cycleFor!==void 0){let o=Es(t.cycleFor);o!==void 0&&o>0&&(e.maxDurationMs=o)}if(!(e.maxIterations===void 0&&e.maxDurationMs===void 0))return e}function n8(t,e){try{let n={...Ba(t).request,...e?.maxIterations!==void 0?{maxIterations:e.maxIterations}:{},...e?.maxDurationMs!==void 0?{maxDurationMs:e.maxDurationMs}:{}};return Ha(n),{kind:"ok"}}catch(o){if(o instanceof nr)return{kind:"no-ceiling"};if(o instanceof so)return{kind:"parse-error",message:o.message};throw o}}async function Ane(t={}){let e=t.env??process.env,o=t.headless!==void 0,n=!o&&(t.stdout??process.stdout).isTTY===!0,r=t.stdout??process.stdout,s=yj(r,process),i=n&&t.promptYesNo===void 0,a;if(i){let E=t.stdout??process.stdout;zl(E,!0);let $=cn({env:e,...t.dense?{density:"compact"}:{},...t.safeGlyphs?{safeGlyphs:!0}:{}});a=Wj({theme:$,stdout:E});let ee=qj(e);ee>0&&await new Promise(D=>setTimeout(D,ee))}let l=a?.promptYesNo??t.promptYesNo??s8(t.stdout),c=t.mode,u=!1;t.yoloEntryNotice!==void 0&&n&&(await l(t.yoloEntryNotice)||(c="normal",u=!0,i||(t.stdout??process.stderr).write?.(`aluy: YOLO cancelado \u2014 seguindo em modo normal.
|
|
709
|
+
`)));let m=t.projectInstructions!==void 0?{instructions:t.projectInstructions,sources:[]}:await Tne(t),d=m.instructions,h=m.sources,g=t.configStore??new Ue,b=g.load();e.ALUY_MEM_MIN_SCORE===void 0&&b.recallMinScore!==void 0&&(e.ALUY_MEM_MIN_SCORE=String(b.recallMinScore));let y=Tx(t.lang,tM(b),e),w=Rx(t.split,b),A=process.env.ALUY_FULLSCREEN==="1"?Ox(t.fullscreen,b):!1,T=oM(b,e),O=t.sessionStore??new vd;try{O.gc()}catch{}let N=new ao(t.workspaceRoot!==void 0?{root:t.workspaceRoot}:{}),G=N.root,V=await Rj({request:t.resume,fresh:t.fresh===!0,isTty:n,store:O,cwd:G,promptYesNo:l});V.kind==="not-found"&&process.stderr.write(`aluy: sess\xE3o "${V.requestedId}" n\xE3o encontrada \u2014 iniciando uma nova.
|
|
710
710
|
`);let z=V.kind==="resumed"?V.record:null,B=z?Mm(z,gn):void 0,X=Tj(b,gn),oe=B&&B.tier.trim()!==""?B.tier:void 0,ne=X.tier.trim()!==""?X.tier:void 0,M=Uu(t.tier,{...b,...ne!==void 0?{tier:ne}:{},...oe!==void 0?{tier:oe}:{}},gn),j=M!=="custom"?void 0:t.model!==void 0&&t.model.trim()!==""?t.model.trim():t.tier!==void 0&&t.tier.trim()!==""?void 0:B?.model??X.model,Ae=M!=="custom"||j===void 0||t.model!==void 0&&t.model.trim()!==""||t.tier!==void 0&&t.tier.trim()!==""?void 0:B?.provider??X.provider,se=B===void 0&&(t.tier===void 0||t.tier.trim()==="")&&X.warning!==void 0?X.warning:void 0,he=new js({workspace:N}),ie=new Qu({workspace:N,readFile:E=>he.readFile(E),exists:E=>he.exists(E)}),fe=t.codexMcpConfigStore??new fn,R=!1,de=!1,ae=e.ALUY_SANDBOX_MCP?gh({processEnv:e}):void 0,Y=t.mcpTools!==void 0?void 0:await ey({workspaceRoot:G,parentEnv:e,...ae?{sandboxLauncher:ae}:{},loadProjectConfig:async()=>{let E=await ie.load();return R=E.config.servers.length>0,E},loadCodexConfig:()=>{let E=fe.load();return de=E.config.servers.length>0,E}}),Oe=t.mcpTools??Y?.tools??[];Y?.configError&&process.stderr.write(`aluy: MCP \u2014 ${Y.configError}
|
|
711
711
|
`);let yt,et={injectInstruction:E=>{yt?.injectInput("root",E)},injectData:(E,$)=>{yt?.ingestExternalData(E,$)}},Le;if(t.telegram===!0){let $=await(t.telegramActivate??V2)({sink:et});$.active?(Le=$.bridge,$.allowlistSize===0&&process.stderr.write("aluy: telegram \u2014 bridge ativa mas allowlist VAZIA (fechada): autorize seu chat com `aluy telegram allow <chat-id>` para receber mensagens.\n")):process.stderr.write(`aluy: telegram \u2014 ${$.reason}
|
|
712
712
|
`)}let Rt=Le?[...Oe,Le.sendTool()]:Oe;for(let E of Y?.warnings??[])process.stderr.write(`aluy: MCP \u2014 ${E}
|
|
@@ -721,26 +721,26 @@ ${o[s]}`).join(`
|
|
|
721
721
|
`),Me(2);return}zt={result:"",ok:Tn===void 0&&rn!==void 0&&rn.started===!0&&rn.ran,diagnostic:Tn}}else zt=await h2(k.controller,Re,{attachReader:k.attachReader,...fs.length>0?{seedHistory:fs}:{},quiet:t.headless?.quiet??!1})}finally{An(),ps()}if(At(),zt.diagnostic!==void 0&&process.stderr.write(`aluy: ${zt.diagnostic}
|
|
722
722
|
`),Ql==="json"){let Cn={result:zt.result,ok:zt.ok,tier:k.controller.tier,...k.controller.model!==void 0?{model:k.controller.model}:{}};E.write(JSON.stringify(Cn)+`
|
|
723
723
|
`)}else Ql==="text"&&zt.result!==""&&E.write(zt.result+`
|
|
724
|
-
`);await k.controller.drainMemoryWrites(),Me(zt.ok?0:1);return}if(k2(t.goal,E,{currentTheme:Pi(cn({env:e}).brightness)})){let Re=
|
|
725
|
-
`),k.controller.resetResumeContext(),k.controller.restoreBlocks(Re.blocks);let _r=ji(Re.blocks);_r.length>0&&k.controller.seedHistory(_r),At()}}))return;{let Re=!1,Me=k.controller.subscribe(()=>At());try{Re=await y2(k.controller,t.goal,E)}finally{Me(),Re&&At()}if(Re)return}let no=[];try{no=[...await k.memory.recall()]}catch{no=[]}let $e=[...no,...Ar],yo=k.controller.subscribe(()=>At()),Ho=ry(Re=>k.controller.subscribe(Re),{runner:tn,config:wn});try{await p2(k.controller,t.goal,E,{attachReader:k.attachReader,...$e.length>0?{seedHistory:$e}:{}})}finally{Ho(),yo(),At()}return}finally{Y&&await Y.close()}}if(a?await a.finish():zl(t.stdout??process.stdout,n),n)try{process.stdin.resume(),await new Promise(E=>setImmediate(E)),await new Promise(E=>setImmediate(E)),process.stdin.pause()}catch{}let on=await kne(e,t.stdout,b),Bo=t.safeGlyphs?{safeGlyphs:!0}:{},Cr=t.dense?{density:"compact"}:{},Gn=Wr(on)?cn({env:e,theme:Wr(on).brightness,...Cr,...Bo}):cn({env:e,...Cr,...Bo}),jt=new qh({stdout:t.stdout??process.stdout,env:e});{let E=_s(on);E&&jt.apply(E.bg)}let q=t.stdout??process.stdout,ce=OS(e),vt=new yd({write:E=>q.write(E),isTty:!0,enabled:ce.enabled,desktop:ce.desktop}),Ht=uj(E=>k.controller.subscribe(E),{port:vt}),Uo=ry(E=>k.controller.subscribe(E),{runner:tn,config:wn});u&&i&&k.controller.pushNote("yolo",["YOLO cancelado \u2014 seguindo em modo normal."]);{let E=i8({instructionSources:h,globalCommands:ii.length,projectCommands:us.length,mcpServers:Y?.discovery.servers.length??0,projectMcp:R,codexMcp:de});E.length>0&&k.controller.pushNote("config",E)}{let E=SN(dn,e);E!==void 0&&k.controller.pushNote("update",[E]),wN(dn,e)}ye==="broker"&&await r8({login:k.login,env:e})&&k.controller.pushNote("login",["sem credencial \u2014 rode `aluy login` (ou defina ALUY_TOKEN)."]);{let E=[],$=I.list().length;if($>0){let ee=I.list().map(D=>`${D.name} (${D.origin==="global"?"global":"projeto"})`).join(" \xB7 ");E.push(`${$} agente(s) .md: ${ee}`)}for(let ee of I.crossLayerConflicts)E.push(`\u26A0 "${ee.name}": h\xE1 um .md de PROJETO hom\xF4nimo de um agente GLOBAL confi\xE1vel \u2014 delegar por nome pedir\xE1 CONFIRMA\xC7\xC3O (sem TTY \u21D2 negado).`);for(let ee of K)E.push(`\u26A0 ${ee.reason}`);E.length>0&&k.controller.pushNote("agentes",E)}let Tr=new Om({journal:k.journal}),ds=null,Kl=E=>{k.controller.pushNote(E.note.title,E.note.lines),ds=E.kind==="confirm"?E.proceed:null},Dr=null,ha,li,Pm=async E=>{Y&&await Y.close();let $=await ey({workspaceRoot:G,parentEnv:e,...ae?{sandboxLauncher:ae}:{},loadProjectConfig:async()=>{let L=await ie.load();return R=L.config.servers.length>0,L},loadCodexConfig:()=>{let L=fe.load();return de=L.config.servers.length>0,L}});k.controller.refreshMcpTools($.tools),Y=$;let ee=[],D=[];for(let L of $.discovery.servers)E!=="all"&&L.server!==E||(L.ok?ee.push(L.server):D.push(`${L.server} (${L.error??"desconhecido"})`));return{ok:ee,failed:D}},iy=(E,$="")=>{if(E.id!=="clear"&&(li=void 0),E.source==="user"||E.id===void 0){let D=pa.get(E.name);if(!D){k.controller.pushNote(`/${E.name}`,["comando do usu\xE1rio sem corpo \u2014 ignorado."]);return}let L=nk(D.template,$);if(L.trim()===""){k.controller.pushNote(`/${E.name}`,["comando do usu\xE1rio expandiu p/ vazio \u2014 nada a fazer."]);return}k.controller.submit(L);return}if(E.id==="model"&&$.trim()!==""){let D=eh((L,W)=>{k.controller.setTier(L,W),g.saveTier(L,W)},$.trim());k.controller.pushNote(D.title,D.lines);return}if(E.id==="theme"){let D=Dm($,Pi(Gn.brightness));D.kind==="theme"&&k.controller.pushNote(D.note.title,D.note.lines);return}if(E.id==="provider"){let D=_m($,k.controller.provider);D.kind==="provider"&&(D.provider!==void 0&&k.controller.setProvider(D.provider),k.controller.pushNote(D.note.title,D.note.lines));return}if(E.id==="effort"){if(!$||$.trim()==="")k.controller.pushNote("effort",[`atual: ${k.controller.effort??"(default do modelo)"}`]);else{let D=$.trim();D.length>32?k.controller.pushNote("effort",[`erro: "effort" aceita no m\xE1ximo 32 caracteres (recebeu ${D.length})`]):(k.controller.setEffort(D),k.controller.pushNote("effort",[`definido para: ${D}`]))}return}if(E.id==="ask"){k.controller.askParallel($);return}if(E.id==="rooms"){let[D,...L]=$.trim().split(/\s+/);if(D===""||D===void 0||D==="list")k.controller.roomList();else if(D==="new")k.controller.roomNew();else if(D==="read"){let W=L.join(" ").trim();W===""?k.controller.roomReadPick():k.controller.roomRead(W)}else D==="watch"?k.controller.roomWatch(L.join(" ")):k.controller.pushNote("/rooms",[`subcomando "${D}" \u2014 use list | new | read <c\xF3digo> | watch <c\xF3digo>.`]);return}if(E.id==="subagent"){let D=$.trim();D===""?k.controller.exitFocus():k.controller.enterSubagentFocus(D);return}if(E.id==="back"){k.controller.exitFocus();return}if(E.id==="rename"){let D=Mw($);switch(D.kind){case"set":k.controller.setLabel(D.label.label,D.label.color),Lw(`aluy \xB7 ${D.label.label}`),At(),k.controller.pushNote("rename",[...D.notice!==void 0?[D.notice]:[],`sess\xE3o: \u25CF ${D.label.label}`,`cor: ${D.label.color}`,"o \u25CF+nome aparece no composer e no /history. troque a cor com `--cor <cor>`;","limpe com `/rename --limpar`. \xE9 s\xF3 identifica\xE7\xE3o local (dado de UI)."]);return;case"clear":k.controller.setLabel(void 0),Lw(void 0),At(),k.controller.pushNote("rename",["r\xF3tulo removido \u2014 a sess\xE3o volta sem nome."]);return;case"show":{let L=k.controller.label;k.controller.pushNote("rename",L!==void 0?[`sess\xE3o: \u25CF ${L}${k.controller.labelColor?` (${k.controller.labelColor})`:""}`,"troque com `/rename <nome> [--cor <cor>]` \xB7 limpe com `/rename --limpar`."]:["esta sess\xE3o n\xE3o tem r\xF3tulo.","d\xEA um: `/rename <nome>` (cor autom\xE1tica) ou `/rename <nome> --cor <cor>`.",`cores: ${Ja.join(", ")}.`]);return}case"error":k.controller.pushNote("rename",[D.message]);return}}if(E.id==="init"){let D=/(?:^|\s)--force\b/.test($)||$.trim()==="--force",L=$.replace(/--force\b/,"").trim();if(L!==""&&!D){let W=Zj(L);k.controller.pushNote("init",[`gerando scaffold sob medida para: ${L}`,"o agente vai analisar a descri\xE7\xE3o e criar os arquivos em .aluy/\u2026"]),k.controller.submit(W);return}e8({ports:k.ports,permission:k.engine,askResolver:k.askResolver,rootName:bne(k.workspace.root),overwrite:D}).then(W=>k.controller.pushNote(W.note.title,W.note.lines));return}if(E.id==="notify"){let D=UA($,{enabled:vt.enabled,tty:!0});D.kind==="notify"&&(vt.setEnabled(D.enable),k.controller.pushNote(D.note.title,D.note.lines));return}if(E.id==="undo"){let D=ds??(()=>Tr.undo());ds=null,D().then(Kl);return}if(E.id==="redo"){ds=null,Tr.redo().then(Kl);return}if(E.id==="compact"){k.controller.compact();return}if(E.id==="cycle"){let D=$.trim().split(/\s+/)[0]?.toLowerCase();if(D==="pause"){k.controller.cyclePause();return}if(D==="resume"){k.controller.cycleResume();return}if(D==="stop"){k.controller.cycleStop();return}if(D==="status"){k.controller.cycleStatus();return}if(D==="edit"){let W=($.trim().match(/^edit\b\s*(.*)$/i)?.[1]??"").trim().match(/"[^"]*"|\S+/g)??[],pe={},ke=[];for(let lt=0;lt<W.length;lt+=1){let _e=W[lt];if(_e==="--max-iter"||_e==="--iter"){let $e=Number(W[lt+1]);lt+=1,Number.isInteger($e)&&(pe.maxIterations=$e);continue}let nn=_e.match(/^(\d+)x$/i);if(nn){pe.maxIterations=Number(nn[1]);continue}let no=_e.match(/^(\d+)(s|m|h)$/i);if(no&&pe.intervalMs===void 0&&ke.length===0){let $e=Number(no[1]),yo=no[2].toLowerCase();pe.intervalMs=$e*(yo==="s"?1e3:yo==="m"?6e4:36e5);continue}ke.push(_e.replace(/^"|"$/g,""))}let bt=ke.join(" ").trim();bt&&(pe.task=bt),k.controller.cycleEdit(pe);return}if($.trim()===""){k.controller.pushNote("/cycle",['uso: `/cycle <intervalo|--por dur> "tarefa"` \u2014 ex.: `/cycle 5m "rode os testes e corrija o que quebrar"`.',"sem teto (dura\xE7\xE3o/itera\xE7\xF5es/intervalo), o /cycle N\xC3O inicia \u2014 \xE9 uma prote\xE7\xE3o contra execu\xE7\xE3o sem fim."]);return}k.controller.cycle($);return}if(E.id==="clear"){let D=Jg($),{armed:L,nextArmed:W}=f2(li,D);li=W,Qg(D,{clearSession:()=>k.controller.clear(),memory:k.memory},L).then(pe=>{pe.armed||(li=void 0),pe.note.lines.length>0&&k.controller.pushNote(pe.note.title,pe.note.lines),pe.cleared&&Dr?.()});return}if(E.id==="memory"){let D=Kg($);Yg(D,k.memory,k.engine.isPlan).then(L=>k.controller.pushNote(L.title,L.lines));return}if(E.id==="todo"){let D=Vg($);Xg(D,k.todoStore,k.engine.isPlan).then(L=>k.controller.pushNote(L.title,L.lines));return}if(E.id==="cron"){let D=[],L={out:ke=>D.push(ke),err:ke=>D.push(ke)},W=$.match(/"[^"]*"|\S+/g)?.map(ke=>ke.replace(/^"|"$/g,""))??[],pe=W.length===0?["list"]:W;Aw(pe,{io:L}).then(()=>k.controller.pushNote("cron",D.length>0?D:["(sem sa\xEDda)"]));return}if(E.id==="add-dir"){let D=e2($,k.workspace);k.controller.pushNote(D.title,D.lines);return}if(E.id==="agents"){let D=su({profiles:[...Et.profiles,...rt.profiles],errors:K});k.controller.pushNote(D.title,D.lines);return}if(E.id==="workflows"){let D=/^\s*run\s+(\S+)/.exec($);if(D){let bt=D[1];k.controller.workflowRun(bt);return}let L=/^\s*use\s+(\S+)/.exec($);if(L){let bt=L[1];k.controller.workflowsUse(bt);return}let W=new ur().load(),pe=new dr({workspace:k.workspace}).load(),ke=du({workflows:[...W.workflows,...pe.workflows],errors:[...W.errors,...pe.errors]});k.controller.pushNote(ke.title,ke.lines);return}if(E.id==="skills"){let D=new es().load(),L=new ts({workspace:k.workspace}).load(),W=lu({skills:[...D.skills,...L.skills],errors:[...D.errors,...L.errors]});k.controller.pushNote(W.title,W.lines);return}if(E.id==="inventory"){let D=[...new es().load().skills,...new ts({workspace:k.workspace}).load().skills],L=[...new ur().load().workflows,...new dr({workspace:k.workspace}).load().workflows],W=[...Et.profiles,...rt.profiles].map(_e=>_e.name),pe=to.map(_e=>`/${_e.name}`),ke=k.controller.current.governance,bt=_e=>_e.length>0?_e.join(", "):"\u2014",lt=h.length>0?`\u2713 ${h.join(" \u203A ")}`:"\u2717 ausente";k.controller.pushNote("invent\xE1rio \xB7 .aluy/",[`instru\xE7\xF5es de projeto: ${lt}`,`agentes (${W.length}): ${bt(W)}`,`comandos do usu\xE1rio (${pe.length}): ${bt(pe)}`,`skills (${D.length}): ${bt(D.map(_e=>_e.name))}`,`workflows (${L.length}): ${bt(L.map(_e=>_e.name))}`,`mem\xF3ria de projeto: ${ke?.memory??0} fato(s)`]);return}if(E.id==="doctor"){if(/(^|\s)fix(\s|$)/.test($)){let W=ej(JA),pe=tj({logTails:W});k.controller.pushNote("doctor fix",["tentando consertar os complementos do turbo \u2014 vou diagnosticar pelos logs, rodar o","bootstrap e reparar. Acompanhe abaixo."]),k.controller.submit(pe);return}let D=/(^|\s)--(deep|test)(\s|$)/.test($),L=k.workspace.root;J2({login:k.login,memory:{count:async()=>(await k.memory.list()).length},workspaceRoot:L,unsafe:k.engine.isUnsafe,env:e,probeOverride:{makeMcpTransport:()=>new Yr({cwd:L,parentEnv:e}),...D?{tierTester:()=>mh({tier:k.controller.tier,...k.controller.model!==void 0?{model:k.controller.model}:{},login:k.login,env:e})}:{}}},W=>k.controller.upsertDoctor(W.checks,W.summary)).then(W=>{W.checks.find(ke=>ke.id==="sidecars")?.status==="fail"&&k.controller.pushNote("doctor",["H\xE1 complemento(s) do turbo fora. Quer que eu tente consertar?","Digite /doctor fix \u2014 eu leio os logs, rodo o bootstrap e reparo sozinho."])});return}if(E.id==="mcp"){let D=n2($);if(D){let{kind:pe,scope:ke}=D,bt=pe==="reload"?"reload":"reconnect";k.controller.pushNote("mcp",[`/${bt} ${ke==="all"?"todos":ke}: recarregando\u2026`]),Pm(ke).then(({ok:lt,failed:_e})=>{let nn=[];lt.length>0&&nn.push(`\u2713 ${lt.join(", ")}`),_e.length>0&&nn.push(`\u2717 ${_e.join(", ")}`),lt.length===0&&_e.length===0&&nn.push("nenhum server afetado."),k.controller.pushNote(`mcp ${bt}`,nn)});return}let L=sj($);if(L){let pe=ij(L);k.controller.pushNote(pe.title,pe.lines);return}let W=o2($);if(W){if(W.query===""){let ke=r2();k.controller.pushNote(ke.title,ke.lines);return}let pe=s2(W.query);k.controller.pushNote(pe.title,pe.lines),i2(W.query,Qo).then(ke=>k.controller.pushNote(ke.title,ke.lines));return}if(Y){let pe=Oi(Y.sources,Y.discovery),ke=t2(pe,Y.configError);k.controller.pushNote(ke.title,ke.lines);return}}if(E.id==="telegram"){l2($,{configStore:g,secretStore:new Is("telegram")}).then(D=>k.controller.pushNote(D.title,D.lines));return}let ee=ZU(E.id,{usage:k.controller.usage,unsafe:k.engine.isUnsafe});if(ee.kind==="quit"){ha.unmount();return}if(ee.kind==="async"){a2(ee.id,k.login).then(D=>k.controller.pushNote(D.title,D.lines));return}c2(ee,k.controller)},En=E=>{let $=O.load(E);if(!$){k.controller.pushNote("history",[`sess\xE3o n\xE3o encontrada: ${E} \u2014 nada mudou.`]);return}let ee=Mm($,gn);S1($,{restoreBlocks:D=>k.controller.restoreBlocks(D),seedHistory:D=>k.controller.seedHistory(D),resetContinuation:()=>k.controller.resetResumeContext(),switchSession:D=>{Ut.id=D.id,Ut.cwd=D.cwd,ee.tier.trim()!==""&&k.controller.setTier(ee.tier,ee.model),ee.tier==="custom"&&ee.model&&k.controller.setProvider(ee.provider)},clearScreen:()=>{}}),k.controller.setLabel($.label,$.labelColor),At(),ee.warning&&k.controller.pushNote("model",[ee.warning]),k.controller.pushNote("history",[`sess\xE3o retomada: ${E} \u2014 continue de onde parou.`])},Yl=E=>{let $=k.checkpoints.get(E.checkpointId);if(!$){k.controller.pushNote("rewind",["ponto n\xE3o encontrado \u2014 nada mudou."]);return}let ee=[`voltando ao ponto #${$.ordinal}: ${$.label}`];if((E.action==="both"||E.action==="code")&&k.checkpoints.restoreCode($.id).then(D=>{let L=[];D.written.length>0&&L.push(`arquivos restaurados: ${D.written.length}`),D.removed.length>0&&L.push(`arquivos removidos (eram novos): ${D.removed.length}`),D.written.length===0&&D.removed.length===0&&L.push("nenhuma edi\xE7\xE3o de arquivo posterior ao ponto \u2014 c\xF3digo intacto.");for(let W of D.failed)L.push(`\u26A0 falhou: ${W.path} \u2014 ${W.reason}`);if(D.barrierWarnings.length>0){L.push("comando(s) rodaram depois do ponto (efeito de shell N\xC3O desfeito):");for(let W of D.barrierWarnings)L.push(` \xB7 ${W}`)}k.controller.pushNote("rewind \u2014 c\xF3digo",L)}),E.action==="both"||E.action==="conversation"){let D=k.controller.rewindConversation($.blockCount,ji);ee.push(D>0?`conversa rebobinada \u2014 ${D} bloco(s) posterior(es) descartado(s).`:"conversa j\xE1 estava neste ponto."),Dr?.(),At()}k.controller.pushNote("rewind",ee)},zn=nN(e),jo=rN(e),_o=zn||jo?sN(r,{sync:zn,overwrite:jo,onOverflowRegimeExit:()=>Dr?.()}):void 0,ga=_o?.stdout??r,ge=A&&ni(r.rows??0,r.columns??0).kind==="cockpit";ge&&(oC(r),_o?.setCockpit(!0));let U=uN(r),qt=()=>U.disable();process.once("exit",qt);let Vl=t.exportStore??new bd,Wt=async E=>{let $=xj(k.controller.blocks,{sessionId:Ut.id,...k.controller.label!==void 0?{label:k.controller.label}:{},tier:k.controller.tier});return Vl.write($,{sessionId:Ut.id,...E!==void 0?{fileName:E}:{}})},Xl=()=>{_o?.cleanup(),jt.reset(),qt()},Mt=vj(process,Xl),ms=k.controller.provider,oo=ms!==void 0&&ms!==""?{currentProvider:ms}:{},ya=k.controller.effort,Gt=ya!==void 0&&ya!==""?{currentEffort:ya}:{};zj(process.stdin);let Jl=Yj(process.stdin);try{i&&k.controller.dismissBoot(),ha=yne(Ene(I2,{initialTheme:on,env:e,...Cr,...Bo,onThemeChanged:L=>{let W=Wr(L);W&&jt.apply(W.bg),W&&g.saveTheme(W.name),k.controller.pushNote("theme",[`tema trocado para: ${W?W.label:L} (${L})`])},initialLang:y,onLangChanged:L=>{let W=Fi(L);g.saveLang(L);let pe=Ki(L).t;k.controller.pushNote("lang",[pe("lang.changed",{label:W?W.label:L})])},controller:k.controller,egress:k.egress,userCommands:ai,animate:Gn.animate,syncActive:_o!==void 0,version:dn,onCommand:iy,registerClearScreen:L=>{Dr=L},fileIndex:k.fileIndex,attachReader:k.attachReader,catalog:k.catalogClient,customModels:k.customModelClient,providersClient:k.providersClient,sessionStore:O,onResumeSession:En,rewindSource:k.checkpoints,onRewind:Yl,initialSplitView:w,onSplitViewChange:L=>{g.saveSplitView(L)},initialFullscreen:A,cockpitEnteredAtBoot:ge,cockpitScreen:{enter:()=>{oC(r),_o?.setCockpit(!0)},leave:()=>{_o?.setCockpit(!1),r.write("\x1B[?1049l\x1B[?25h\x1B[2J\x1B[3J\x1B[H"),_o?.resetDiffer()},resetDiffer:()=>{_o?.resetDiffer()}},onFullscreenChange:L=>{g.saveFullscreen(L)},initialSuggestions:T,onSuggestionsChange:L=>{g.saveSuggestions(L)},onExportTranscript:Wt,onSelectTier:(L,W,pe)=>{k.controller.setTier(L,W),g.saveTier(L,W),L==="custom"&&W?k.controller.pushNote("model",[`modelo Custom: ${W}`,"\u25CD slug enviado ao broker, que revalida e resolve o provider/credencial (nunca exibido)","\u26A0 warn-but-allow \u2014 fora do cat\xE1logo curado pode ter custo/qualidade vari\xE1vel",...pe?.supportsTools===!1?["\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem"]:[]]):k.controller.pushNote("model",[`tier trocado para: ${L}`])},...Gt,onSelectConjugated:(L,W)=>{let pe=L.kind==="tier"?L.key:"custom",ke=L.kind==="custom"?L.model:void 0;k.controller.setTier(pe,ke),g.saveTier(pe,ke),W.kind==="set"&&k.controller.setEffort(W.value);let bt=W.kind==="set"?`esfor\xE7o: ${W.value}`:`esfor\xE7o: ${k.controller.effort??"(default do modelo)"} (mantido)`,lt=L.kind==="custom"&&L.supportsTools===!1?["\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem"]:[];pe==="custom"&&ke?k.controller.pushNote("model",[`modelo Custom: ${ke}`,bt,"\u25CD slug enviado ao broker, que revalida e resolve o provider/credencial (nunca exibido)","\u26A0 warn-but-allow \u2014 fora do cat\xE1logo curado pode ter custo/qualidade vari\xE1vel",...lt]):k.controller.pushNote("model",[`tier trocado para: ${pe}`,bt])},...oo,onSelectProvider:L=>{k.controller.setProvider(L);let W=k.controller.provider===L;k.controller.pushNote("provider",W?[`provider do modo Custom: ${L}`,"\u25CD enviado ao broker em par com o modelo Custom \u2014 ele resolve a credencial (nunca exibida)","vale s\xF3 nesta sess\xE3o (n\xE3o persiste)."]:[`provider pretendido: ${L}`,"\u26A0 sem modelo Custom ativo \u2014 o provider pareia com um modelo Custom.","selecione um modelo via `/model` \u2192 Custom e refa\xE7a o `/provider`."])},permissionControl:{get mode(){return k.engine.mode},setMode:L=>k.controller.setMode(L),sessionGrants:k.engine.sessionGrants,effectiveSafeDefault:L=>k.engine.effectiveSafeDefault(L),setSafeToolDefault:(L,W)=>k.engine.setSafeToolDefault(L,W)}}),{stdout:ga,exitOnCtrlC:!1});let E=[];try{E=[...await k.memory.recall()]}catch{E=[]}let $=[...E,...Ar];$.length>0&&k.controller.seedHistory($);let ee=k.controller.subscribe(()=>At());k.controller.setMemoryShutdown(()=>{At(),process.exitCode=1;try{ha.unmount()}catch{}}),k.controller.startMemoryMonitor(),Le&&(yt=k.controller,Le.pump());let D=Lt(wn,"session-start");D.length>0&&tn.runAll(D),t.goal!==void 0&&t.goal.trim()!==""&&k.controller.submit(t.goal);try{await ha.waitUntilExit()}finally{_o?.cleanup(),jt.reset(),s.dispose(),Mt.dispose()}if(Le?.stop(),yt=void 0,Y&&await Y.close(),Ht(),Uo(),ee(),At(),process.stdout.isTTY&&nC(k.controller.current.blocks,k.controller.label)){let L=k.controller.label,W=L!==void 0&&L.trim()!==""?` ou pelo nome: aluy --resume ${/\s/.test(L)?`"${L}"`:L}
|
|
724
|
+
`);await k.controller.drainMemoryWrites(),Me(zt.ok?0:1);return}if(k2(t.goal,E,{currentTheme:Pi(cn({env:e}).brightness)})){let Re=Dne(t.goal),Me=Re?Wr(Re):void 0;Me&&g.saveTheme(Me.name);return}if(x2(t.goal,E,{currentLang:y})){let Re=_ne(t.goal),Me=Re?Os(Re):void 0;Me&&g.saveLang(Me.code);return}if(await b2(t.goal,E,{catalog:k.catalogClient,tier:{setTier:(Re,Me)=>{k.controller.setTier(Re,Me),g.saveTier(Re,Me)}},currentTier:k.controller.tier})||S2(t.goal,E,{currentProvider:k.controller.provider,setProvider:Re=>k.controller.setProvider(Re)})||await v2(t.goal,E,new Om({journal:k.journal}))||await w2(t.goal,E,{memory:k.memory,isPlan:k.engine.isPlan})||await E2(t.goal,E,{store:k.todoStore,isPlan:k.engine.isPlan})||await A2(t.goal,E,{memory:k.memory,clearSession:()=>k.controller.clear()})||pN(t.goal,E,{setLabel:(Re,Me)=>k.controller.setLabel(Re,Me),currentLabel:k.controller.label,currentColor:k.controller.labelColor,persist:()=>At()})||w1(t.goal,E,{store:O,resume:Re=>{Ut.id=Re.id,Ut.cwd=Re.cwd;let Me=Mm(Re,gn);Me.tier.trim()!==""&&k.controller.setTier(Me.tier,Me.model),Me.tier==="custom"&&Me.model&&k.controller.setProvider(Me.provider),Me.warning&&E.write(`[history] ${Me.warning}
|
|
725
|
+
`),k.controller.resetResumeContext(),k.controller.restoreBlocks(Re.blocks);let _r=ji(Re.blocks);_r.length>0&&k.controller.seedHistory(_r),At()}}))return;{let Re=!1,Me=k.controller.subscribe(()=>At());try{Re=await y2(k.controller,t.goal,E)}finally{Me(),Re&&At()}if(Re)return}let no=[];try{no=[...await k.memory.recall()]}catch{no=[]}let $e=[...no,...Ar],yo=k.controller.subscribe(()=>At()),Ho=ry(Re=>k.controller.subscribe(Re),{runner:tn,config:wn});try{await p2(k.controller,t.goal,E,{attachReader:k.attachReader,...$e.length>0?{seedHistory:$e}:{}})}finally{Ho(),yo(),At()}return}finally{Y&&await Y.close()}}if(a?await a.finish():zl(t.stdout??process.stdout,n),n)try{process.stdin.resume(),await new Promise(E=>setImmediate(E)),await new Promise(E=>setImmediate(E)),process.stdin.pause()}catch{}let on=await Cne(e,t.stdout,b),Bo=t.safeGlyphs?{safeGlyphs:!0}:{},Cr=t.dense?{density:"compact"}:{},Gn=Wr(on)?cn({env:e,theme:Wr(on).brightness,...Cr,...Bo}):cn({env:e,...Cr,...Bo}),jt=new qh({stdout:t.stdout??process.stdout,env:e});{let E=_s(on);E&&jt.apply(E.bg)}let q=t.stdout??process.stdout,ce=OS(e),vt=new yd({write:E=>q.write(E),isTty:!0,enabled:ce.enabled,desktop:ce.desktop}),Ht=uj(E=>k.controller.subscribe(E),{port:vt}),Uo=ry(E=>k.controller.subscribe(E),{runner:tn,config:wn});u&&i&&k.controller.pushNote("yolo",["YOLO cancelado \u2014 seguindo em modo normal."]);{let E=i8({instructionSources:h,globalCommands:ii.length,projectCommands:us.length,mcpServers:Y?.discovery.servers.length??0,projectMcp:R,codexMcp:de});E.length>0&&k.controller.pushNote("config",E)}{let E=SN(dn,e);E!==void 0&&k.controller.pushNote("update",[E]),wN(dn,e)}ye==="broker"&&await r8({login:k.login,env:e})&&k.controller.pushNote("login",["sem credencial \u2014 rode `aluy login` (ou defina ALUY_TOKEN)."]);{let E=[],$=I.list().length;if($>0){let ee=I.list().map(D=>`${D.name} (${D.origin==="global"?"global":"projeto"})`).join(" \xB7 ");E.push(`${$} agente(s) .md: ${ee}`)}for(let ee of I.crossLayerConflicts)E.push(`\u26A0 "${ee.name}": h\xE1 um .md de PROJETO hom\xF4nimo de um agente GLOBAL confi\xE1vel \u2014 delegar por nome pedir\xE1 CONFIRMA\xC7\xC3O (sem TTY \u21D2 negado).`);for(let ee of K)E.push(`\u26A0 ${ee.reason}`);E.length>0&&k.controller.pushNote("agentes",E)}let Tr=new Om({journal:k.journal}),ds=null,Kl=E=>{k.controller.pushNote(E.note.title,E.note.lines),ds=E.kind==="confirm"?E.proceed:null},Dr=null,ha,li,Pm=async E=>{Y&&await Y.close();let $=await ey({workspaceRoot:G,parentEnv:e,...ae?{sandboxLauncher:ae}:{},loadProjectConfig:async()=>{let L=await ie.load();return R=L.config.servers.length>0,L},loadCodexConfig:()=>{let L=fe.load();return de=L.config.servers.length>0,L}});k.controller.refreshMcpTools($.tools),Y=$;let ee=[],D=[];for(let L of $.discovery.servers)E!=="all"&&L.server!==E||(L.ok?ee.push(L.server):D.push(`${L.server} (${L.error??"desconhecido"})`));return{ok:ee,failed:D}},iy=(E,$="")=>{if(E.id!=="clear"&&(li=void 0),E.source==="user"||E.id===void 0){let D=pa.get(E.name);if(!D){k.controller.pushNote(`/${E.name}`,["comando do usu\xE1rio sem corpo \u2014 ignorado."]);return}let L=nk(D.template,$);if(L.trim()===""){k.controller.pushNote(`/${E.name}`,["comando do usu\xE1rio expandiu p/ vazio \u2014 nada a fazer."]);return}k.controller.submit(L);return}if(E.id==="model"&&$.trim()!==""){let D=eh((L,W)=>{k.controller.setTier(L,W),g.saveTier(L,W)},$.trim());k.controller.pushNote(D.title,D.lines);return}if(E.id==="theme"){let D=Dm($,Pi(Gn.brightness));D.kind==="theme"&&k.controller.pushNote(D.note.title,D.note.lines);return}if(E.id==="provider"){let D=_m($,k.controller.provider);D.kind==="provider"&&(D.provider!==void 0&&k.controller.setProvider(D.provider),k.controller.pushNote(D.note.title,D.note.lines));return}if(E.id==="effort"){if(!$||$.trim()==="")k.controller.pushNote("effort",[`atual: ${k.controller.effort??"(default do modelo)"}`]);else{let D=$.trim();D.length>32?k.controller.pushNote("effort",[`erro: "effort" aceita no m\xE1ximo 32 caracteres (recebeu ${D.length})`]):(k.controller.setEffort(D),k.controller.pushNote("effort",[`definido para: ${D}`]))}return}if(E.id==="ask"){k.controller.askParallel($);return}if(E.id==="rooms"){let[D,...L]=$.trim().split(/\s+/);if(D===""||D===void 0||D==="list")k.controller.roomList();else if(D==="new")k.controller.roomNew();else if(D==="read"){let W=L.join(" ").trim();W===""?k.controller.roomReadPick():k.controller.roomRead(W)}else D==="watch"?k.controller.roomWatch(L.join(" ")):k.controller.pushNote("/rooms",[`subcomando "${D}" \u2014 use list | new | read <c\xF3digo> | watch <c\xF3digo>.`]);return}if(E.id==="subagent"){let D=$.trim();D===""?k.controller.exitFocus():k.controller.enterSubagentFocus(D);return}if(E.id==="back"){k.controller.exitFocus();return}if(E.id==="rename"){let D=Mw($);switch(D.kind){case"set":k.controller.setLabel(D.label.label,D.label.color),Lw(`aluy \xB7 ${D.label.label}`),At(),k.controller.pushNote("rename",[...D.notice!==void 0?[D.notice]:[],`sess\xE3o: \u25CF ${D.label.label}`,`cor: ${D.label.color}`,"o \u25CF+nome aparece no composer e no /history. troque a cor com `--cor <cor>`;","limpe com `/rename --limpar`. \xE9 s\xF3 identifica\xE7\xE3o local (dado de UI)."]);return;case"clear":k.controller.setLabel(void 0),Lw(void 0),At(),k.controller.pushNote("rename",["r\xF3tulo removido \u2014 a sess\xE3o volta sem nome."]);return;case"show":{let L=k.controller.label;k.controller.pushNote("rename",L!==void 0?[`sess\xE3o: \u25CF ${L}${k.controller.labelColor?` (${k.controller.labelColor})`:""}`,"troque com `/rename <nome> [--cor <cor>]` \xB7 limpe com `/rename --limpar`."]:["esta sess\xE3o n\xE3o tem r\xF3tulo.","d\xEA um: `/rename <nome>` (cor autom\xE1tica) ou `/rename <nome> --cor <cor>`.",`cores: ${Ja.join(", ")}.`]);return}case"error":k.controller.pushNote("rename",[D.message]);return}}if(E.id==="init"){let D=/(?:^|\s)--force\b/.test($)||$.trim()==="--force",L=$.replace(/--force\b/,"").trim();if(L!==""&&!D){let W=Zj(L);k.controller.pushNote("init",[`gerando scaffold sob medida para: ${L}`,"o agente vai analisar a descri\xE7\xE3o e criar os arquivos em .aluy/\u2026"]),k.controller.submit(W);return}e8({ports:k.ports,permission:k.engine,askResolver:k.askResolver,rootName:Ene(k.workspace.root),overwrite:D}).then(W=>k.controller.pushNote(W.note.title,W.note.lines));return}if(E.id==="notify"){let D=UA($,{enabled:vt.enabled,tty:!0});D.kind==="notify"&&(vt.setEnabled(D.enable),k.controller.pushNote(D.note.title,D.note.lines));return}if(E.id==="undo"){let D=ds??(()=>Tr.undo());ds=null,D().then(Kl);return}if(E.id==="redo"){ds=null,Tr.redo().then(Kl);return}if(E.id==="compact"){k.controller.compact();return}if(E.id==="cycle"){let D=$.trim().split(/\s+/)[0]?.toLowerCase();if(D==="pause"){k.controller.cyclePause();return}if(D==="resume"){k.controller.cycleResume();return}if(D==="stop"){k.controller.cycleStop();return}if(D==="status"){k.controller.cycleStatus();return}if(D==="edit"){let W=($.trim().match(/^edit\b\s*(.*)$/i)?.[1]??"").trim().match(/"[^"]*"|\S+/g)??[],pe={},ke=[];for(let lt=0;lt<W.length;lt+=1){let _e=W[lt];if(_e==="--max-iter"||_e==="--iter"){let $e=Number(W[lt+1]);lt+=1,Number.isInteger($e)&&(pe.maxIterations=$e);continue}let nn=_e.match(/^(\d+)x$/i);if(nn){pe.maxIterations=Number(nn[1]);continue}let no=_e.match(/^(\d+)(s|m|h)$/i);if(no&&pe.intervalMs===void 0&&ke.length===0){let $e=Number(no[1]),yo=no[2].toLowerCase();pe.intervalMs=$e*(yo==="s"?1e3:yo==="m"?6e4:36e5);continue}ke.push(_e.replace(/^"|"$/g,""))}let bt=ke.join(" ").trim();bt&&(pe.task=bt),k.controller.cycleEdit(pe);return}if($.trim()===""){k.controller.pushNote("/cycle",['uso: `/cycle <intervalo|--por dur> "tarefa"` \u2014 ex.: `/cycle 5m "rode os testes e corrija o que quebrar"`.',"sem teto (dura\xE7\xE3o/itera\xE7\xF5es/intervalo), o /cycle N\xC3O inicia \u2014 \xE9 uma prote\xE7\xE3o contra execu\xE7\xE3o sem fim."]);return}k.controller.cycle($);return}if(E.id==="clear"){let D=Jg($),{armed:L,nextArmed:W}=f2(li,D);li=W,Qg(D,{clearSession:()=>k.controller.clear(),memory:k.memory},L).then(pe=>{pe.armed||(li=void 0),pe.note.lines.length>0&&k.controller.pushNote(pe.note.title,pe.note.lines),pe.cleared&&Dr?.()});return}if(E.id==="memory"){let D=Kg($);Yg(D,k.memory,k.engine.isPlan).then(L=>k.controller.pushNote(L.title,L.lines));return}if(E.id==="todo"){let D=Vg($);Xg(D,k.todoStore,k.engine.isPlan).then(L=>k.controller.pushNote(L.title,L.lines));return}if(E.id==="cron"){let D=[],L={out:ke=>D.push(ke),err:ke=>D.push(ke)},W=$.match(/"[^"]*"|\S+/g)?.map(ke=>ke.replace(/^"|"$/g,""))??[],pe=W.length===0?["list"]:W;Aw(pe,{io:L}).then(()=>k.controller.pushNote("cron",D.length>0?D:["(sem sa\xEDda)"]));return}if(E.id==="add-dir"){let D=e2($,k.workspace);k.controller.pushNote(D.title,D.lines);return}if(E.id==="agents"){let D=su({profiles:[...Et.profiles,...rt.profiles],errors:K});k.controller.pushNote(D.title,D.lines);return}if(E.id==="workflows"){let D=/^\s*run\s+(\S+)/.exec($);if(D){let bt=D[1];k.controller.workflowRun(bt);return}let L=/^\s*use\s+(\S+)/.exec($);if(L){let bt=L[1];k.controller.workflowsUse(bt);return}let W=new ur().load(),pe=new dr({workspace:k.workspace}).load(),ke=du({workflows:[...W.workflows,...pe.workflows],errors:[...W.errors,...pe.errors]});k.controller.pushNote(ke.title,ke.lines);return}if(E.id==="skills"){let D=new es().load(),L=new ts({workspace:k.workspace}).load(),W=lu({skills:[...D.skills,...L.skills],errors:[...D.errors,...L.errors]});k.controller.pushNote(W.title,W.lines);return}if(E.id==="inventory"){let D=[...new es().load().skills,...new ts({workspace:k.workspace}).load().skills],L=[...new ur().load().workflows,...new dr({workspace:k.workspace}).load().workflows],W=[...Et.profiles,...rt.profiles].map(_e=>_e.name),pe=to.map(_e=>`/${_e.name}`),ke=k.controller.current.governance,bt=_e=>_e.length>0?_e.join(", "):"\u2014",lt=h.length>0?`\u2713 ${h.join(" \u203A ")}`:"\u2717 ausente";k.controller.pushNote("invent\xE1rio \xB7 .aluy/",[`instru\xE7\xF5es de projeto: ${lt}`,`agentes (${W.length}): ${bt(W)}`,`comandos do usu\xE1rio (${pe.length}): ${bt(pe)}`,`skills (${D.length}): ${bt(D.map(_e=>_e.name))}`,`workflows (${L.length}): ${bt(L.map(_e=>_e.name))}`,`mem\xF3ria de projeto: ${ke?.memory??0} fato(s)`]);return}if(E.id==="doctor"){if(/(^|\s)fix(\s|$)/.test($)){let W=ej(JA),pe=tj({logTails:W});k.controller.pushNote("doctor fix",["tentando consertar os complementos do turbo \u2014 vou diagnosticar pelos logs, rodar o","bootstrap e reparar. Acompanhe abaixo."]),k.controller.submit(pe);return}let D=/(^|\s)--(deep|test)(\s|$)/.test($),L=k.workspace.root;J2({login:k.login,memory:{count:async()=>(await k.memory.list()).length},workspaceRoot:L,unsafe:k.engine.isUnsafe,env:e,probeOverride:{makeMcpTransport:()=>new Yr({cwd:L,parentEnv:e}),...D?{tierTester:()=>mh({tier:k.controller.tier,...k.controller.model!==void 0?{model:k.controller.model}:{},login:k.login,env:e})}:{}}},W=>k.controller.upsertDoctor(W.checks,W.summary)).then(W=>{W.checks.find(ke=>ke.id==="sidecars")?.status==="fail"&&k.controller.pushNote("doctor",["H\xE1 complemento(s) do turbo fora. Quer que eu tente consertar?","Digite /doctor fix \u2014 eu leio os logs, rodo o bootstrap e reparo sozinho."])});return}if(E.id==="mcp"){let D=n2($);if(D){let{kind:pe,scope:ke}=D,bt=pe==="reload"?"reload":"reconnect";k.controller.pushNote("mcp",[`/${bt} ${ke==="all"?"todos":ke}: recarregando\u2026`]),Pm(ke).then(({ok:lt,failed:_e})=>{let nn=[];lt.length>0&&nn.push(`\u2713 ${lt.join(", ")}`),_e.length>0&&nn.push(`\u2717 ${_e.join(", ")}`),lt.length===0&&_e.length===0&&nn.push("nenhum server afetado."),k.controller.pushNote(`mcp ${bt}`,nn)});return}let L=sj($);if(L){let pe=ij(L);k.controller.pushNote(pe.title,pe.lines);return}let W=o2($);if(W){if(W.query===""){let ke=r2();k.controller.pushNote(ke.title,ke.lines);return}let pe=s2(W.query);k.controller.pushNote(pe.title,pe.lines),i2(W.query,Qo).then(ke=>k.controller.pushNote(ke.title,ke.lines));return}if(Y){let pe=Oi(Y.sources,Y.discovery),ke=t2(pe,Y.configError);k.controller.pushNote(ke.title,ke.lines);return}}if(E.id==="telegram"){l2($,{configStore:g,secretStore:new Is("telegram")}).then(D=>k.controller.pushNote(D.title,D.lines));return}let ee=ZU(E.id,{usage:k.controller.usage,unsafe:k.engine.isUnsafe});if(ee.kind==="quit"){ha.unmount();return}if(ee.kind==="async"){a2(ee.id,k.login).then(D=>k.controller.pushNote(D.title,D.lines));return}c2(ee,k.controller)},En=E=>{let $=O.load(E);if(!$){k.controller.pushNote("history",[`sess\xE3o n\xE3o encontrada: ${E} \u2014 nada mudou.`]);return}let ee=Mm($,gn);S1($,{restoreBlocks:D=>k.controller.restoreBlocks(D),seedHistory:D=>k.controller.seedHistory(D),resetContinuation:()=>k.controller.resetResumeContext(),switchSession:D=>{Ut.id=D.id,Ut.cwd=D.cwd,ee.tier.trim()!==""&&k.controller.setTier(ee.tier,ee.model),ee.tier==="custom"&&ee.model&&k.controller.setProvider(ee.provider)},clearScreen:()=>{}}),k.controller.setLabel($.label,$.labelColor),At(),ee.warning&&k.controller.pushNote("model",[ee.warning]),k.controller.pushNote("history",[`sess\xE3o retomada: ${E} \u2014 continue de onde parou.`])},Yl=E=>{let $=k.checkpoints.get(E.checkpointId);if(!$){k.controller.pushNote("rewind",["ponto n\xE3o encontrado \u2014 nada mudou."]);return}let ee=[`voltando ao ponto #${$.ordinal}: ${$.label}`];if((E.action==="both"||E.action==="code")&&k.checkpoints.restoreCode($.id).then(D=>{let L=[];D.written.length>0&&L.push(`arquivos restaurados: ${D.written.length}`),D.removed.length>0&&L.push(`arquivos removidos (eram novos): ${D.removed.length}`),D.written.length===0&&D.removed.length===0&&L.push("nenhuma edi\xE7\xE3o de arquivo posterior ao ponto \u2014 c\xF3digo intacto.");for(let W of D.failed)L.push(`\u26A0 falhou: ${W.path} \u2014 ${W.reason}`);if(D.barrierWarnings.length>0){L.push("comando(s) rodaram depois do ponto (efeito de shell N\xC3O desfeito):");for(let W of D.barrierWarnings)L.push(` \xB7 ${W}`)}k.controller.pushNote("rewind \u2014 c\xF3digo",L)}),E.action==="both"||E.action==="conversation"){let D=k.controller.rewindConversation($.blockCount,ji);ee.push(D>0?`conversa rebobinada \u2014 ${D} bloco(s) posterior(es) descartado(s).`:"conversa j\xE1 estava neste ponto."),Dr?.(),At()}k.controller.pushNote("rewind",ee)},zn=nN(e),jo=rN(e),_o=zn||jo?sN(r,{sync:zn,overwrite:jo,onOverflowRegimeExit:()=>Dr?.()}):void 0,ga=_o?.stdout??r,ge=A&&ni(r.rows??0,r.columns??0).kind==="cockpit";ge&&(oC(r),_o?.setCockpit(!0));let U=uN(r),qt=()=>U.disable();process.once("exit",qt);let Vl=t.exportStore??new bd,Wt=async E=>{let $=xj(k.controller.blocks,{sessionId:Ut.id,...k.controller.label!==void 0?{label:k.controller.label}:{},tier:k.controller.tier});return Vl.write($,{sessionId:Ut.id,...E!==void 0?{fileName:E}:{}})},Xl=()=>{_o?.cleanup(),jt.reset(),qt()},Mt=vj(process,Xl),ms=k.controller.provider,oo=ms!==void 0&&ms!==""?{currentProvider:ms}:{},ya=k.controller.effort,Gt=ya!==void 0&&ya!==""?{currentEffort:ya}:{};zj(process.stdin);let Jl=Yj(process.stdin);try{i&&k.controller.dismissBoot(),ha=wne(Rne(I2,{initialTheme:on,env:e,...Cr,...Bo,onThemeChanged:L=>{let W=Wr(L);W&&jt.apply(W.bg),W&&g.saveTheme(W.name),k.controller.pushNote("theme",[`tema trocado para: ${W?W.label:L} (${L})`])},initialLang:y,onLangChanged:L=>{let W=Fi(L);g.saveLang(L);let pe=Ki(L).t;k.controller.pushNote("lang",[pe("lang.changed",{label:W?W.label:L})])},controller:k.controller,egress:k.egress,userCommands:ai,animate:Gn.animate,syncActive:_o!==void 0,version:dn,onCommand:iy,registerClearScreen:L=>{Dr=L},fileIndex:k.fileIndex,attachReader:k.attachReader,catalog:k.catalogClient,customModels:k.customModelClient,providersClient:k.providersClient,sessionStore:O,onResumeSession:En,rewindSource:k.checkpoints,onRewind:Yl,initialSplitView:w,onSplitViewChange:L=>{g.saveSplitView(L)},initialFullscreen:A,cockpitEnteredAtBoot:ge,cockpitScreen:{enter:()=>{oC(r),_o?.setCockpit(!0)},leave:()=>{_o?.setCockpit(!1),r.write("\x1B[?1049l\x1B[?25h\x1B[2J\x1B[3J\x1B[H"),_o?.resetDiffer()},resetDiffer:()=>{_o?.resetDiffer()}},onFullscreenChange:L=>{g.saveFullscreen(L)},initialSuggestions:T,onSuggestionsChange:L=>{g.saveSuggestions(L)},onExportTranscript:Wt,onSelectTier:(L,W,pe)=>{k.controller.setTier(L,W),g.saveTier(L,W),L==="custom"&&W?k.controller.pushNote("model",[`modelo Custom: ${W}`,"\u25CD slug enviado ao broker, que revalida e resolve o provider/credencial (nunca exibido)","\u26A0 warn-but-allow \u2014 fora do cat\xE1logo curado pode ter custo/qualidade vari\xE1vel",...pe?.supportsTools===!1?["\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem"]:[]]):k.controller.pushNote("model",[`tier trocado para: ${L}`])},...Gt,onSelectConjugated:(L,W)=>{let pe=L.kind==="tier"?L.key:"custom",ke=L.kind==="custom"?L.model:void 0;k.controller.setTier(pe,ke),g.saveTier(pe,ke),W.kind==="set"&&k.controller.setEffort(W.value);let bt=W.kind==="set"?`esfor\xE7o: ${W.value}`:`esfor\xE7o: ${k.controller.effort??"(default do modelo)"} (mantido)`,lt=L.kind==="custom"&&L.supportsTools===!1?["\u26A0 este modelo n\xE3o suporta ferramentas \u2014 o agente cai no parser de texto / pode n\xE3o usar MCP/tools bem"]:[];pe==="custom"&&ke?k.controller.pushNote("model",[`modelo Custom: ${ke}`,bt,"\u25CD slug enviado ao broker, que revalida e resolve o provider/credencial (nunca exibido)","\u26A0 warn-but-allow \u2014 fora do cat\xE1logo curado pode ter custo/qualidade vari\xE1vel",...lt]):k.controller.pushNote("model",[`tier trocado para: ${pe}`,bt])},...oo,onSelectProvider:L=>{k.controller.setProvider(L);let W=k.controller.provider===L;k.controller.pushNote("provider",W?[`provider do modo Custom: ${L}`,"\u25CD enviado ao broker em par com o modelo Custom \u2014 ele resolve a credencial (nunca exibida)","vale s\xF3 nesta sess\xE3o (n\xE3o persiste)."]:[`provider pretendido: ${L}`,"\u26A0 sem modelo Custom ativo \u2014 o provider pareia com um modelo Custom.","selecione um modelo via `/model` \u2192 Custom e refa\xE7a o `/provider`."])},permissionControl:{get mode(){return k.engine.mode},setMode:L=>k.controller.setMode(L),sessionGrants:k.engine.sessionGrants,effectiveSafeDefault:L=>k.engine.effectiveSafeDefault(L),setSafeToolDefault:(L,W)=>k.engine.setSafeToolDefault(L,W)}}),{stdout:ga,exitOnCtrlC:!1});let E=[];try{E=[...await k.memory.recall()]}catch{E=[]}let $=[...E,...Ar];$.length>0&&k.controller.seedHistory($);let ee=k.controller.subscribe(()=>At());k.controller.setMemoryShutdown(()=>{At(),process.exitCode=1;try{ha.unmount()}catch{}}),k.controller.startMemoryMonitor(),Le&&(yt=k.controller,Le.pump());let D=Lt(wn,"session-start");D.length>0&&tn.runAll(D),t.goal!==void 0&&t.goal.trim()!==""&&k.controller.submit(t.goal);try{await ha.waitUntilExit()}finally{_o?.cleanup(),jt.reset(),s.dispose(),Mt.dispose()}if(Le?.stop(),yt=void 0,Y&&await Y.close(),Ht(),Uo(),ee(),At(),process.stdout.isTTY&&nC(k.controller.current.blocks,k.controller.label)){let L=k.controller.label,W=L!==void 0&&L.trim()!==""?` ou pelo nome: aluy --resume ${/\s/.test(L)?`"${L}"`:L}
|
|
726
726
|
`:"";process.stdout.write(`
|
|
727
727
|
Sess\xE3o salva \u2014 id: ${Ut.id}
|
|
728
728
|
Para retomar esta conversa: aluy --resume ${Ut.id}
|
|
729
729
|
`+W+" (ou `aluy --continue` para a sess\xE3o mais recente deste diret\xF3rio)\n\n")}}finally{try{process.stdin.setRawMode?.(!1),process.stdin.pause?.()}catch{}Jl(),_o?.cleanup(),jt.reset(),s.dispose(),qt(),process.removeListener("exit",qt),Mt.dispose()}}async function r8(t){if((t.env.ALUY_TOKEN??"").trim()!=="")return!1;try{return await t.login.whoami()===null}catch{return!0}}function s8(t,e){return o=>new Promise(n=>{let r=t??process.stdout,s=e??process.stdin;if(s.isTTY!==!0){n(!1);return}r.write(o);let i="",a=()=>{s.removeListener("data",c);try{s.setRawMode?.(!1),s.pause()}catch{}},l=u=>{a(),r.write(`
|
|
730
730
|
`);let m=u.trim().toLowerCase();n(m===""||m==="s"||m==="sim"||m==="y"||m==="yes")},c=u=>{let m=u.toString("utf8");for(let d of m){if(d==="\r"||d===`
|
|
731
|
-
`){l(i);return}if(d===""||d===""){l("n");return}if(i===""){let h=d.toLowerCase();if(h==="s"||h==="y"){l("s");return}if(h==="n"){l("n");return}}i+=d}};try{s.setRawMode?.(!0),s.resume(),s.on("data",c)}catch{a(),n(!1)}})}async function
|
|
731
|
+
`){l(i);return}if(d===""||d===""){l("n");return}if(i===""){let h=d.toLowerCase();if(h==="s"||h==="y"){l("s");return}if(h==="n"){l("n");return}}i+=d}};try{s.setRawMode?.(!0),s.resume(),s.on("data",c)}catch{a(),n(!1)}})}async function Cne(t,e,o={}){if(t.COLORFGBG!==void 0&&t.COLORFGBG.trim()!=="")return Pi(cn({env:t}).brightness);if(o.theme!==void 0)return o.theme;let n=await bI({stdout:e??process.stdout,stdin:process.stdin,env:t});return n?Pi(n):Cx}async function Tne(t){try{let e=new ao(t.workspaceRoot!==void 0?{root:t.workspaceRoot}:{}),o=new js({workspace:e});return await LS({workspace:e,fs:o})}catch{return{sources:[]}}}function i8(t){let e=[];t.instructionSources.length>0&&e.push(`instru\xE7\xF5es: ${t.instructionSources.join(" + ")}`);let o=[];if(t.globalCommands>0&&o.push(`~/.aluy/commands (${t.globalCommands})`),t.projectCommands>0&&o.push(`.claude/commands (${t.projectCommands})`),o.length>0&&e.push(`comandos: ${o.join(" + ")}`),t.mcpServers>0){let n=["~/.aluy/mcp.json"];t.projectMcp&&n.push(".mcp.json"),t.codexMcp&&n.push("~/.codex/config.toml"),e.push(`MCP: ${t.mcpServers} server(s) (${n.join(" + ")})`)}return e}function Dne(t){let e=(t??"").trim();if(!e.startsWith("/theme "))return;let o=e.slice(7).trim();return o===""?void 0:o}function _ne(t){let e=(t??"").trim();if(!e.startsWith("/lang "))return;let o=e.slice(6).trim();return o===""?void 0:o}var mC,l8=p(()=>{"use strict";iN();Rw();te();te();hN();gN();ju();nl();EN();N2();Md();Uh();q2();Wu();zx();G2();SS();YA();Fl();HA();Xp();X2();zh();Q2();oj();yS();Xu();lj();P();Vr();MS();dj();mj();Td();fj();hj();ko();bj();kj();$A();Sj();pt();Oj();rC();vg();Gj();aC();Kj();Vj();P();Md();t8();qA();GA();Cw();zA();mC='aluy: --cycle exige um teto do ciclo \u2014 sem teto N\xC3O inicia (prote\xE7\xE3o contra execu\xE7\xE3o sem fim). Use --cycles N (n\xBA de ciclos) e/ou --cycle-for <dur> (dura\xE7\xE3o total). Ex.: aluy -p "diga oi" --cycle --cycles 2 \u2014 ou aluy -p "diga oi" --cycle --cycle-for 30m.'});Bm();import{spawn as One}from"node:child_process";import{totalmem as Mne}from"node:os";import{appendFileSync as Lne,mkdirSync as Pne}from"node:fs";import{join as Fne}from"node:path";P();import{join as ol}from"node:path";import{spawn as nG}from"node:child_process";import{win32 as rG,posix as sG}from"node:path";P();import{mkdirSync as iG,chmodSync as aG,existsSync as lG,openSync as cG,closeSync as uG}from"node:fs";import{homedir as dG}from"node:os";import{join as FO}from"node:path";var mG={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},fG={existsSync:t=>lG(t),mkdirSync:(t,e)=>iG(t,e),chmodSync:(t,e)=>aG(t,e),openSync:(t,e,o)=>cG(t,e,o),closeSync:t=>uG(t)},Cp=class{spawn;fetchFn;timer;fs;uid;platform;children=new Map;constructor(e={}){this.spawn=e.spawn??nG,this.fetchFn=e.fetchFn??globalThis.fetch,this.timer=e.timer??mG,this.fs=e.fs??fG,this.uid=e.uid??(typeof process<"u"?process.getuid?.()??-1:-1),this.platform=e.platform??(typeof process<"u"?process.platform:"linux")}homeDir(){return process.env.HOME??process.env.USERPROFILE??"/home/unknown"}sidecarEnv(e){let o=process.env,n={HOME:o.HOME,PATH:o.PATH};if(this.platform==="win32")for(let r of["SystemRoot","windir","SystemDrive","ComSpec","PATHEXT","USERPROFILE","LOCALAPPDATA","APPDATA","ProgramData","ProgramFiles","ProgramFiles(x86)","TEMP","TMP","NUMBER_OF_PROCESSORS","PROCESSOR_ARCHITECTURE"])o[r]!==void 0&&(n[r]=o[r]);return e==="headroom"&&o.HEADROOM_REQUIRE_RUST_CORE===void 0&&(n.HEADROOM_REQUIRE_RUST_CORE="false"),e==="mem0"&&o.ALUY_MEM0_EMBEDDER!==void 0&&(n.ALUY_MEM0_EMBEDDER=o.ALUY_MEM0_EMBEDDER),n}async boot(e,o,n,r,s){if(!Du(e))return{profile:e,states:[],anyRunning:!1,allFailed:!1};let i=dp({homeDir:this.homeDir(),platform:this.platform,...n!==void 0?{headroomBinary:n}:{},...r!==void 0?{ollamaBaseDir:r}:{},...s!==void 0?{mem0VenvDir:s}:{}}),a=jk(o,n!==void 0),l=[];for(let m of a){let d=i[m],h=await this.ensureSidecar(m,d);l.push(h)}let c=l.some(m=>m.running),u=l.length>0&&l.every(m=>!m.running);return{profile:e,states:l,anyRunning:c,allFailed:u}}async checkState(e,o,n){let r=dp({homeDir:this.homeDir(),platform:this.platform,...e!==void 0?{headroomBinary:e}:{},...o!==void 0?{ollamaBaseDir:o}:{},...n!==void 0?{mem0VenvDir:n}:{}}),s=[],i=["headroom","ollama","mem0"];for(let a of i){let l=r[a],c=await this.healthCheck(l),u=this.children.get(a)?.pid,m={kind:a,running:c};u!==void 0&&(m.pid=u),s.push(m)}return s}async shutdown(){for(let[e,o]of this.children){try{o.kill("SIGTERM")}catch{}this.children.delete(e)}}async ensureSidecar(e,o){try{if(await this.healthCheck(o))return{kind:e,running:!0};if(this.uid===0)return{kind:e,running:!1,error:`recusa root (CA-G2-3): uid=0, sidecar "${e}" n\xE3o spawnado`};if(!(this.platform==="win32"?rG.isAbsolute:sG.isAbsolute)(o.binary))return{kind:e,running:!1,error:`caminho n\xE3o-absoluto recusado (CA-G2-1): "${o.binary}"`};if(!this.fs.existsSync(o.binary))return{kind:e,running:!1,error:`bin\xE1rio n\xE3o encontrado: "${o.binary}"`};let i;try{if(this.fs.openSync){let c=FO(dG(),".aluy","logs");this.fs.mkdirSync(c,{recursive:!0,mode:448}),i=this.fs.openSync(FO(c,`${e}.log`),"w",384)}}catch{i=void 0}let a=this.spawn(o.binary,[...o.args],{detached:!0,stdio:i!==void 0?["ignore",i,i]:"ignore",windowsHide:!0,env:this.sidecarEnv(e)});if(i!==void 0)try{this.fs.closeSync?.(i)}catch{}if(a.unref?.(),this.children.set(e,a),await this.waitForHandshake(o)){let c={kind:e,running:!0};return a.pid!==void 0&&(c.pid=a.pid),c}try{a.kill("SIGTERM")}catch{}return this.children.delete(e),{kind:e,running:!1,error:`handshake falhou (timeout ${o.handshakeTimeoutMs}ms) para ${e} em ${o.handshakeUrl}`}}catch(n){let r=n instanceof Error?n.message:String(n);return{kind:e,running:!1,error:`erro inesperado: ${r}`}}}async healthCheck(e){try{let o=new AbortController,n=this.timer.setTimeout(()=>o.abort(),e.handshakeTimeoutMs);try{let r=await this.fetchFn(e.handshakeUrl,{signal:o.signal});if(!r.ok)return!1;if(e.expectedIdentity!==void 0&&typeof r.text=="function")try{return(await r.text()).includes(e.expectedIdentity)}catch{return!1}return!0}finally{this.timer.clearTimeout(n)}}catch{return!1}}async waitForHandshake(e){for(let o=0;o<Uk;o++){if(await this.healthCheck(e))return!0;await this.sleep(500)}return!1}sleep(e){return new Promise(o=>{this.timer.setTimeout(o,e)})}};ko();P();ju();var $G=3e4;async function rM(t){let e=t?.targets??new Set(["mem0","ollama"]),o=t?.env??process.env,n=t?.services,r=t?.fetchFn??globalThis.fetch,s=t?.timeoutMs??$G,i=(l,c)=>{let u=new AbortController,m=setTimeout(()=>u.abort(),s);return r(l,{...c,signal:u.signal}).then(()=>{}).catch(()=>{}).finally(()=>clearTimeout(m))},a=[];if(e.has("mem0")){let l=Za(o,n).replace(/\/$/,"");a.push(i(`${l}/v1/memories/?user_id=__aluy_warmup__&query=warmup&limit=1`))}if(e.has("ollama")){let l=el(o,n).replace(/\/$/,"");a.push(i(`${l}/api/generate`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({model:Ln,prompt:"ok",stream:!1,keep_alive:"30m",options:{num_predict:1}})}))}await Promise.allSettled(a)}$x();function hM(t={}){let e=t.homeDir??process.env.HOME??process.env.USERPROFILE??"/home/unknown",o=t.aluyDir??ol(e,".aluy"),n=new Ue({baseDir:o}).load(),r=n.profile??"turbo";if(r==="leve")return;let s={};n.sidecarToggles?.ollama!==void 0&&(s.ollama=n.sidecarToggles.ollama),n.sidecarToggles?.mem0!==void 0&&(s.mem0=n.sidecarToggles.mem0),n.sidecarToggles?.headroom!==void 0&&(s.headroom=n.sidecarToggles.headroom);let i=Hr(s),a=process.platform==="win32",l=process.env.ALUY_OLLAMA_DIR??ol(e,".aluy","ollama"),c=process.env.ALUY_MEM0_VENV??ol(e,".aluy","mem-venv"),u=ol(e,".aluy","hr-venv"),m=process.env.ALUY_HEADROOM_BIN??(a?ol(u,"Scripts","headroom.exe"):ol(u,"bin","headroom"));if(i.has("mem0")&&(process.env.ALUY_MEM0_EMBEDDER=Np(n,process.env)),i.has("mem0"))try{fM(c)}catch{}let d=new Cp,h;try{h=d.boot(r,i,m,l,c).then(g=>{let b=g.states.filter(A=>A.running).length,y=g.states.length;y>0&&process.stderr.write(`aluy: boot-supervisor \u2014 ${b}/${y} sidecar(s) prontos`+(g.allFailed?" (todos falharam \u2014 seguindo sem sidecars)":"")+`
|
|
732
732
|
`);let w=new Set;for(let A of g.states)A.running&&(A.kind==="mem0"||A.kind==="ollama")&&w.add(A.kind);return w.size>0&&rM({targets:w,...n.services?{services:n.services}:{}}),g}).catch(g=>{let b=g instanceof Error?g.message:String(g);process.stderr.write(`aluy: boot-supervisor \u2014 erro inesperado: ${b}
|
|
733
733
|
`)})}catch(g){let b=g instanceof Error?g.message:String(g);process.stderr.write(`aluy: boot-supervisor \u2014 erro inesperado: ${b}
|
|
734
|
-
`);return}return h}Ux();P();P();var kM="ALUY_HEAP_LIMIT_APPLIED",S9="--max-old-space-size";function w9(t){if(t===void 0||t.trim()==="")return;let e=/--max-old-space-size=(\d+)/.exec(t);if(e===null)return;let o=Number(e[1]);return Number.isFinite(o)&&o>0?o:void 0}function E9(t,e){let o=t.NODE_OPTIONS??"",n=(t[kM]??"").trim()!=="",r=w9(o);if(n||r!==void 0)return{shouldReexec:!1,nodeOptions:o,heapLimitMb:Fa(t,r,e)};let s=Fa(t,void 0,e),i=`${S9}=${s}`;return{shouldReexec:!0,nodeOptions:o.trim()===""?i:`${o} ${i}`,heapLimitMb:s}}async function xM(t){let e=E9(t.env,t.totalMemMb);if(!e.shouldReexec)return{reexeced:!1,heapLimitMb:e.heapLimitMb};let o={...t.env,NODE_OPTIONS:e.nodeOptions,[kM]:"1"},n=[...t.execArgv??[],...t.argv.slice(1)];try{let r=await t.reexec(t.execPath,n,o);return r===void 0?{reexeced:!1,heapLimitMb:e.heapLimitMb}:(t.exit?.(r),{reexeced:!0,heapLimitMb:e.heapLimitMb})}catch{return{reexeced:!1,heapLimitMb:e.heapLimitMb}}}async function
|
|
735
|
-
`,{mode:384})}catch{}}async function
|
|
734
|
+
`);return}return h}Ux();P();P();var kM="ALUY_HEAP_LIMIT_APPLIED",S9="--max-old-space-size";function w9(t){if(t===void 0||t.trim()==="")return;let e=/--max-old-space-size=(\d+)/.exec(t);if(e===null)return;let o=Number(e[1]);return Number.isFinite(o)&&o>0?o:void 0}function E9(t,e){let o=t.NODE_OPTIONS??"",n=(t[kM]??"").trim()!=="",r=w9(o);if(n||r!==void 0)return{shouldReexec:!1,nodeOptions:o,heapLimitMb:Fa(t,r,e)};let s=Fa(t,void 0,e),i=`${S9}=${s}`;return{shouldReexec:!0,nodeOptions:o.trim()===""?i:`${o} ${i}`,heapLimitMb:s}}async function xM(t){let e=E9(t.env,t.totalMemMb);if(!e.shouldReexec)return{reexeced:!1,heapLimitMb:e.heapLimitMb};let o={...t.env,NODE_OPTIONS:e.nodeOptions,[kM]:"1"},n=[...t.execArgv??[],...t.argv.slice(1)];try{let r=await t.reexec(t.execPath,n,o);return r===void 0?{reexeced:!1,heapLimitMb:e.heapLimitMb}:(t.exit?.(r),{reexeced:!0,heapLimitMb:e.heapLimitMb})}catch{return{reexeced:!1,heapLimitMb:e.heapLimitMb}}}async function Ine(){let{reexeced:t}=await xM({env:process.env,execPath:process.execPath,argv:process.argv,execArgv:process.execArgv,totalMemMb:Mne()/1048576,reexec:(e,o,n)=>new Promise(r=>{let s;try{s=One(e,[...o],{stdio:"inherit",env:n})}catch{r(void 0);return}let i=u=>()=>{try{s.kill(u)}catch{}},a=i("SIGINT"),l=i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let c=()=>{process.off("SIGINT",a),process.off("SIGTERM",l)};s.on("error",()=>{c(),r(void 0)}),s.on("close",(u,m)=>{c(),r(u??(m!==null?128:0))})}),exit:e=>process.exit(e)});return t}function Nne(t){if(t!=="unsafe")return{mode:t};let e=process.stdin.isTTY===!0&&process.stdout.isTTY===!0,o=typeof process.geteuid=="function"&&process.geteuid()===0,n=rb({tty:e,root:o});return{mode:t,verdict:n,fatal:n.outcome==="refuse"}}function c8(t){try{let e=oc();Pne(e,{recursive:!0}),Lne(Fne(e,"audit.jsonl"),`${JSON.stringify(sb(t,Date.now()))}
|
|
735
|
+
`,{mode:384})}catch{}}async function $ne(){if(process.stdin.isTTY===!0)return"";let t=[];return await new Promise(e=>{process.stdin.on("data",o=>t.push(o)),process.stdin.on("end",()=>e(Buffer.concat(t).toString("utf8").trim())),process.stdin.on("error",()=>e(""))})}function Bne(){let t=process.env,e=process.stdout;if(t.NO_COLOR===void 0){if((!t.TERM||t.TERM==="dumb"||t.TERM==="cygwin")&&(t.TERM="xterm-256color"),!t.COLORTERM){let o=1;try{o=typeof e.getColorDepth=="function"?e.getColorDepth():1}catch{}o>=24?t.COLORTERM="truecolor":o>=8&&(t.COLORTERM="256color")}!t.COLORTERM&&(t.CONEMUDIR!==void 0||t.ConEmuANSI==="ON")&&(t.COLORTERM="truecolor",(!t.TERM||t.TERM==="cygwin")&&(t.TERM="xterm-256color"))}}async function Une(){if(Bne(),process.stdout.isTTY===!0){let e=()=>{try{process.stdout.write("\x1B[?1049l\x1B[?25h\x1B[?2004l")}catch{}if(process.platform==="win32"&&process.stdin.isTTY===!0)try{let o=process.stdin;if(typeof o.setRawMode=="function"){let n=()=>{};o.on("error",n);try{o.setRawMode(!0),o.setRawMode(!1)}finally{o.off("error",n)}}o.pause()}catch{}};process.on("exit",e)}let t=Bx(process.argv.slice(2));switch(t.kind){case"version":case"help":process.stdout.write(t.text+`
|
|
736
736
|
`);return;case"usage-error":process.stderr.write(t.message+`
|
|
737
737
|
`),process.exitCode=t.exitCode;return;case"login":{if(t.provider!==void 0){let{runLocalLogin:o}=await Promise.resolve().then(()=>(FM(),PM));process.exitCode=await o({provider:t.provider,...t.oauth?{oauth:!0}:{},...t.token!==void 0?{token:t.token}:{}});return}let{runLogin:e}=await Promise.resolve().then(()=>(jM(),UM));process.exitCode=await e({forceDeviceFlow:t.forceDeviceFlow,...t.token!==void 0?{token:t.token}:{},...t.org!==void 0?{org:t.org}:{}});return}case"logout":{let{runLogout:e}=await Promise.resolve().then(()=>(qM(),HM));process.exitCode=await e();return}case"telegram":{let{runTelegram:e}=await Promise.resolve().then(()=>(KM(),zM));process.exitCode=await e({sub:t.sub,...t.token!==void 0?{token:t.token}:{},...t.chatId!==void 0?{chatId:t.chatId}:{}});return}case"whoami":{let{runWhoami:e}=await Promise.resolve().then(()=>(VM(),YM));process.exitCode=await e();return}case"doctor":{let{runDoctor:e}=await Promise.resolve().then(()=>(QF(),JF));process.exitCode=await e({deep:t.deep,json:t.json});return}case"config":{let{runConfig:e}=await Promise.resolve().then(()=>(tI(),eI));process.exitCode=e({json:t.json});return}case"agents":{let{runAgents:e}=await Promise.resolve().then(()=>(rI(),nI));process.exitCode=e();return}case"skills":{let{runSkills:e}=await Promise.resolve().then(()=>(aI(),iI));process.exitCode=e();return}case"workflows":{let{runWorkflows:e}=await Promise.resolve().then(()=>(uI(),cI));process.exitCode=e();return}case"bootstrap":{let{runInit:e}=await Promise.resolve().then(()=>(pI(),fI));process.exitCode=await e({out:o=>process.stdout.write(o+`
|
|
738
738
|
`),err:o=>process.stderr.write(o+`
|
|
739
739
|
`),agent:t.agent}),process.exit(process.exitCode??0);break}case"uninstall":{let{runUninstall:e}=await Promise.resolve().then(()=>(gI(),hI));process.exitCode=e({agent:t.agent}),process.exit(process.exitCode??0);break}case"onboard":{let{runOnboard:e}=await Promise.resolve().then(()=>(LI(),MI));process.exitCode=await e();return}case"models":{let{runModels:e}=await Promise.resolve().then(()=>(FI(),PI));process.exitCode=await e({scope:t.scope,json:t.json,view:t.which});return}case"mcp-search":{let{createRegistryFetch:e,runMcpSearch:o}=await Promise.resolve().then(()=>(zh(),II)),{text:n,exitCode:r}=await o(t.query,e());process.stdout.write(n+`
|
|
740
740
|
`),process.exitCode=r;return}case"mcp":{let{runMcp:e}=await Promise.resolve().then(()=>(GI(),WI));process.exitCode=await e(t.argv);return}case"cron":{let{runCron:e}=await Promise.resolve().then(()=>(Cw(),ZI));process.exitCode=await e(t.argv);return}case"launch":{let{runSession:e}=await Promise.resolve().then(()=>(l8(),a8));if(t.unknownFlags&&t.unknownFlags.length>0){let{suggestFlag:i}=await Promise.resolve().then(()=>(Ux(),vM));for(let a of t.unknownFlags){let l=i(a.replace(/^--/,""));process.stderr.write(`aluy: aviso: flag desconhecida ${a} \u2014 IGNORADA`+(l?` (voc\xEA quis dizer \`--${l}\`?)`:" (veja `aluy --help`)")+`
|
|
741
|
-
`)}}t.unsafeAliasUsed&&process.stderr.write("aluy: aviso: `--unsafe` agora \xE9 `--yolo` (alias deprecado; comportamento id\xEAntico)\n");let o=
|
|
742
|
-
`),process.exitCode=1;return}if(!t.print&&await
|
|
743
|
-
`));let n=t.model,r=n!==void 0&&n.trim()!==""?"custom":t.tier,s=t.goal;if(t.print){let i=t.printArg?.trim(),a=t.goal?.trim();if(s=i!==void 0&&i!==""?i:a!==void 0&&a!==""?a:await
|
|
741
|
+
`)}}t.unsafeAliasUsed&&process.stderr.write("aluy: aviso: `--unsafe` agora \xE9 `--yolo` (alias deprecado; comportamento id\xEAntico)\n");let o=Nne(t.mode);if(o.fatal&&o.verdict?.outcome==="refuse"){c8(o.verdict),process.stderr.write(`${o.verdict.message}
|
|
742
|
+
`),process.exitCode=1;return}if(!t.print&&await Ine())return;t.print||hM(),o.verdict?.outcome==="allow"&&(c8(o.verdict),o.verdict.requiresConfirmation||process.stderr.write(`${o.verdict.warning}
|
|
743
|
+
`));let n=t.model,r=n!==void 0&&n.trim()!==""?"custom":t.tier,s=t.goal;if(t.print){let i=t.printArg?.trim(),a=t.goal?.trim();if(s=i!==void 0&&i!==""?i:a!==void 0&&a!==""?a:await $ne()||void 0,s===void 0||s.trim()===""){process.stderr.write(`aluy: -p sem prompt \u2014 passe via arg, posicional ou stdin.
|
|
744
744
|
`),process.exitCode=2;return}}await e({mode:o.mode,...o.verdict?.outcome==="allow"&&o.verdict.requiresConfirmation?{yoloEntryNotice:o.verdict.notice}:{},dense:t.dense,safeGlyphs:t.safeGlyphs,...t.split!==void 0?{split:t.split}:{},...t.fullscreen!==void 0?{fullscreen:t.fullscreen}:{},...t.budget!==void 0?{budget:t.budget}:{},subAgents:{enabled:t.subAgents},...t.telegram&&!t.print?{telegram:!0}:{},...s!==void 0?{goal:s}:{},...r!==void 0?{tier:r}:{},...t.backend!==void 0?{backend:t.backend}:{},...t.localProvider!==void 0?{localProvider:t.localProvider}:{},...t.localModel!==void 0?{localModel:t.localModel}:{},...t.localAuth!==void 0?{localAuth:t.localAuth}:{},...t.localBaseUrl!==void 0?{localBaseUrl:t.localBaseUrl}:{},...n!==void 0&&n.trim()!==""?{model:n.trim()}:{},...t.provider!==void 0&&t.provider.trim()!==""&&n!==void 0&&n.trim()!==""?{provider:t.provider.trim()}:{},...t.print?{headless:{print:!0,...t.outputFormat!==void 0?{outputFormat:t.outputFormat}:{},...t.quiet!==void 0?{quiet:t.quiet}:{},...t.cycle!==void 0?{cycle:t.cycle}:{},...t.cycles!==void 0?{cycles:t.cycles}:{},...t.cycleFor!==void 0?{cycleFor:t.cycleFor}:{}},onExitCode:i=>{process.exitCode=i}}:{},...t.lang!==void 0?{lang:t.lang}:{},...t.resume!==void 0?{resume:t.resume}:{},fresh:t.fresh,...t.maxTokens!==void 0?{maxTokens:t.maxTokens}:{},...t.maxIterations!==void 0?{maxIterations:t.maxIterations}:{},...t.maxOutputTokens!==void 0?{maxOutputTokens:t.maxOutputTokens}:{},...t.selfCheck!==void 0?{selfCheck:t.selfCheck}:{},...t.autoCompactAt!==void 0?{autoCompactAt:t.autoCompactAt}:{},onConfigWarn:i=>process.stderr.write(`${i}
|
|
745
|
-
`)}),t.print&&process.exit(process.exitCode??0);return}}}
|
|
745
|
+
`)}),t.print&&process.exit(process.exitCode??0);return}}}Une().catch(t=>{process.stderr.write(`aluy: erro fatal: ${String(t)}
|
|
746
746
|
`),process.exitCode=1});
|