Lines 1-36javascript
2function U(r="id"){let e=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2);return`${r}_${e}`}var nr=/<[^>]*?invoke\s+name="([^"]+)"[^>]*?>([\s\S]*?)<\/[^>]*?invoke[^>]*?>/gi,lo=/<[^>]*?parameter\s+name="([^"]+)"([^>]*?)>([\s\S]*?)<\/[^>]*?parameter[^>]*?>/gi;function ks(r){return typeof r=="string"&&/invoke\s+name="/i.test(r)&&/parameter\s+name="/i.test(r)}function Te(r,e){if(!ks(r))return{toolCalls:[],cleanedContent:r};let t=[],o;for(nr.lastIndex=0;(o=nr.exec(r))!==null;){let n=o[1],a=o[2]||"",s=As(n,e);if(!s)continue;let i={};lo.lastIndex=0;let c;for(;(c=lo.exec(a))!= ...
4`).trim()}var ar=class extends Error{constructor(e="Operation timed out"){super(e),this.name="TimeoutError"}},Se=class extends Error{constructor(e="Operacao cancelada"){super(e),this.name="AbortError"}};async function Me(r,e,t,o){if(o?.aborted)throw new Se("Operacao cancelada pelo usuario");let n=new AbortController,a,s,i=new Promise((c,l)=>{e&&e>0&&(a=setTimeout(()=>{l(new ar(t||`Operation exceeded ${e}ms`)),n.abort()},e)),o&&(s=()=>{l(new Se("Operacao cancelada pelo usuario")),n.abort()},o.addEventListener("abort",s,{once:!0}))});try{return await Promise.race([r(n.signal),i])}finally{clearTi ...
5`)}),e.push({role:"assistant",content:"Delegando a tarefa tecnica para um subagente especializado.",toolCalls:[A]});let O=await this.executeToolCalls([A],{state:t,conversationId:o,approvalHandler:i,stream:a,onToken:s,messages:e,allowedToolNames:m,signal:c,humanPrompt:l});h=h||O.some(po);for(let M
7`),context:"Delegacao automatica criada pelo Coordinator Mode porque o Supervisor nao deve implementar codigo diretamente.",expectedOutput:"Relatorio curto com arquivos criados/alterados, validacoes executadas e qualquer erro/limitacao."}}}function Os(r){let e=fo(r);return/(seguranca|security|vulnerab|permiss|auth|token|cript|crypto)/.test(e)?"security":/(test|teste|validar|verificar|playwright|browser|e2e)/.test(e)?"tester":/(review|revis|auditar|avaliar)/.test(e)?"reviewer":/(pesquis|documenta|docs|buscar|web|fonte)/.test(e)?"researcher":"coder"}function Ms(r){let e=fo(r);return/(\bcrie\b|\b ...
8 (id, conversation_id, content, status, owner, position, metadata_json, created_at, updated_at)
9 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[c.id||U("todo"),n,c.content,c.status,c.owner||null,l,"{}",a,a])});let i=Ie(r,n);return await e?.emit("todo:updated",{conversationId:n,previous:s,todos:i}),{previousCount:s.length,todos:i}}}}function yo({storage:r,eventBus:e}){return{name:"task_create",description:"Cria uma tarefa persistente da sessao com status pending. Use para trabalhos longos, delegados ou rastreaveis.",risk:"internal",requiresApproval:!1,shouldDefer:!0,inputSchema:{type:"object",required:["subject"],additionalProperties:!1,properties:{subject:{type:"string",minLength:1,maxLe ...
10 SET subject = ?, description = ?, active_form = ?, status = ?, owner = ?, metadata_json = ?, updated_at = ?
11 WHERE id = ?`,[n.subject,n.description,n.activeForm||null,n.status,n.owner||null,JSON.stringify(n.metadata||{}),new Date().toISOString(),n.id]);let a=sr(r,t.taskId);return await e?.emit("task:updated",{previous:o,task:a}),{task:a}}}}function vo({storage:r}){return{name:"task_list",description:"Lista tarefas persistentes da conversa atual.",risk:"read",isReadOnly:!0,requiresApproval:!1,shouldDefer:!0,inputSchema:{type:"object",additionalProperties:!1,properties:{status:{type:"string",enum:ho},limit:{type:"integer",minimum:1,maximum:100}}},async execute(e,t={}){return{tasks:js(r,{conver ...
12 (id, conversation_id, content, status, owner, position, metadata_json, created_at, updated_at)
13 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[U("todo"),n,String(c).slice(0,400),"pending","supervisor",l,"{}",s,s])});let i=Ie(r,n);return await e?.emit("todo:updated",{conversationId:n,previous:[],todos:i}),i}function Ds(r,{conversationId:e,subject:t,description:o,activeForm:n,status:a,owner:s,metadata:i}){let c=U("task"),l=new Date().toISOString();return r.run(`INSERT INTO tasks
14 (id, conversation_id, subject, description, active_form, status, owner, metadata_json, created_at, updated_at)
15 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[c,e,t,o,n||null,a,s||null,JSON.stringify(i||{}),l,l]),sr(r,c)}function sr(r,e){let t=r.query("SELECT * FROM tasks WHERE id = ? LIMIT 1",[e])[0];return t?xo(t):null}function js(r,{conversationId:e,status:t,limit:o}){let n=[e],a="SELECT * FROM tasks WHERE conversation_id = ?";return t&&(a+=" AND status = ?",n.push(t)),a+=" ORDER BY updated_at DESC LIMIT ?",n.push(o),r.query(a,n).map(xo)}function Ie(r,e){return r.query("SELECT * FROM todos WHERE conversation_id = ? ORDER BY position ASC",[e]).map(Us)}function xo(r){return{id:r.id,conversationId:r.conve ...
16`)}function o(n){return e(H.gray,n)}}function Fs(r){return String(r).replace(/\x1b\[[0-9;]*m/g,"")}function
17`)}function Eo(r){let e=String(r||"").trim().toLowerCase(),t=["s","sim","y","yes"].includes(e),o=["t","tool","ferramenta","sempre ferramenta"].includes(e),n=["a","all","always","sempre","sempre tudo"].includes(e),a=t||o||n;return{approved:a,scope:n?"all":o?"tool":t?"once":"none",reason:a?n?"approved_all_for_session":o?"approved_tool_for_session":"approved_once_by_user":"denied_by_user"}}function Gs(r,e){return r==="dangerous"?e.red(r):r==="browser"||r==="network"?e.yellow(r):e.cyan(r||"unknown")}function Vs(r={}){let e=Object.entries(r).map(([t,o])=>typeof o=="string"?`${t}=${ko(o,120)}`:`${t} ...
18`);te({tone:Z?"ok":"error",text:Z?`abrindo ${C} no editor`:`edite manualmente: ${C}`});return}return}if(y==="approval"&&g){let E=String(p||"").toLowerCase();E==="s"||E==="y"||T.return?S(!0,"once"):E==="t"?(Qr.current.add(g.request?.toolName),S(!0,"tool")):E==="a"?(Yr.current=!0,S(!0,"all")):(E==="n"||T.escape)&&S(!1,"none");return}if(T.escape&&l&&we.current){we.current.abort();return}function S(E,C){j({kind:"activity",text:E?`\u2713 ${C==="all"?"sempre":C==="tool"?"sempre esta":"aprovado"} \xB7 ${g.request?.toolName}`:`\u2717 negado \xB7 ${g.request?.toolName}`}),g.resolve({approved:E,scope:C} ...
19 <${v} flexDirection="column">
20 <${Ks} key=${ps} items=${a}>${p=>x`<${mi} key=${p.id} item=${p} />`}<//>
22 ${m?x`<${ci} text=${m} />`:null}
24 ${l&&y==="idle"&&!m?x`<${li} label=${h} elapsed=${q} />`:null}
26 ${y==="approval"&&g?x`<${di} request=${g.request} />`:null}
28 ${y==="config"?x`<${pi}
Long lines were clipped for display.