@jpkme/diff-review 0.1.14 → 0.1.16
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/bin/diff-review.mjs +141 -77
- package/lib/acp-policy.mjs +10 -2
- package/lib/acp-policy.test.mjs +27 -0
- package/lib/acp-shell.mjs +23 -1
- package/lib/acp-shell.test.mjs +7 -0
- package/lib/output-name.mjs +7 -0
- package/lib/prompt.mjs +3 -2
- package/lib/prompt.test.mjs +37 -0
- package/lib/review-dir.mjs +14 -1
- package/lib/review.mjs +36 -4
- package/lib/review.test.mjs +35 -0
- package/lib/validate.mjs +10 -0
- package/lib/validate.test.mjs +47 -0
- package/package.json +1 -1
- package/schema.json +16 -1
- package/web/build/client/_app/immutable/assets/3.DB-bJJq2.css +1 -0
- package/web/build/client/_app/immutable/assets/3.DB-bJJq2.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.DB-bJJq2.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/{storage.C8XGESwn.css → storage.BxR6930R.css} +1 -1
- package/web/build/client/_app/immutable/assets/storage.BxR6930R.css.br +0 -0
- package/web/build/client/_app/immutable/assets/{storage.C8XGESwn.css.gz → storage.BxR6930R.css.gz} +0 -0
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js +1 -0
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js.br +1 -0
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{D8WOD_eS.js → CXhIC34H.js} +1 -1
- package/web/build/client/_app/immutable/chunks/CXhIC34H.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/CXhIC34H.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{C0hrdiUt.js → DHO7NTh1.js} +2 -2
- package/web/build/client/_app/immutable/chunks/DHO7NTh1.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/DHO7NTh1.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/DpxY75GB.js +215 -0
- package/web/build/client/_app/immutable/chunks/DpxY75GB.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/DpxY75GB.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{FOc6rgIW.js → cYiFfRa3.js} +1 -1
- package/web/build/client/_app/immutable/chunks/cYiFfRa3.js.br +1 -0
- package/web/build/client/_app/immutable/chunks/cYiFfRa3.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/{app.DcAtSJ3n.js → app.CCv57mvp.js} +2 -2
- package/web/build/client/_app/immutable/entry/app.CCv57mvp.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.CCv57mvp.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.B012TSbW.js +1 -0
- package/web/build/client/_app/immutable/entry/start.B012TSbW.js.br +1 -0
- package/web/build/client/_app/immutable/entry/start.B012TSbW.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/0.slrnBioC.js +1 -0
- package/web/build/client/_app/immutable/nodes/0.slrnBioC.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/0.slrnBioC.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/1.Bs5JdO4l.js +1 -0
- package/web/build/client/_app/immutable/nodes/1.Bs5JdO4l.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/1.Bs5JdO4l.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.D5ULH3EX.js +10 -0
- package/web/build/client/_app/immutable/nodes/2.D5ULH3EX.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.D5ULH3EX.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.hjzQQgyj.js +173 -0
- package/web/build/client/_app/immutable/nodes/3.hjzQQgyj.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.hjzQQgyj.js.gz +0 -0
- package/web/build/client/_app/version.json +1 -1
- package/web/build/client/_app/version.json.br +0 -0
- package/web/build/client/_app/version.json.gz +0 -0
- package/web/build/handler.js +3 -3
- package/web/build/index.js +3 -3
- package/web/build/server/chunks/{0-DUStDOsr.js → 0-D7NSxn1-.js} +2 -2
- package/web/build/server/chunks/{0-DUStDOsr.js.map → 0-D7NSxn1-.js.map} +1 -1
- package/web/build/server/chunks/1-DboYz8Fw.js +7 -0
- package/web/build/server/chunks/{1-BFhhV5JB.js.map → 1-DboYz8Fw.js.map} +1 -1
- package/web/build/server/chunks/2-B7LX817Q.js +7 -0
- package/web/build/server/chunks/2-B7LX817Q.js.map +1 -0
- package/web/build/server/chunks/3-DgJ_LmTL.js +7 -0
- package/web/build/server/chunks/{3-BV-TIUp1.js.map → 3-DgJ_LmTL.js.map} +1 -1
- package/web/build/server/chunks/{_server.ts-CdFoXw36.js → _server.ts-CP5cRLhW.js} +4 -4
- package/web/build/server/chunks/{_server.ts-CdFoXw36.js.map → _server.ts-CP5cRLhW.js.map} +1 -1
- package/web/build/server/chunks/{agent-sessions-D0WwtWgR.js → agent-sessions-2XGojSJ_.js} +105 -16
- package/web/build/server/chunks/agent-sessions-2XGojSJ_.js.map +1 -0
- package/web/build/server/chunks/{git-review-CgcBIbvM.js → git-review-jZ_JJYfv.js} +36 -8
- package/web/build/server/chunks/git-review-jZ_JJYfv.js.map +1 -0
- package/web/build/server/chunks/{handler-DbxjtK9M.js → handler-B_8yUXji.js} +3 -3
- package/web/build/server/chunks/{handler-DbxjtK9M.js.map → handler-B_8yUXji.js.map} +1 -1
- package/web/build/server/chunks/{hooks.server-Dg6gYUqs.js → hooks.server-rF_eBCff.js} +3 -3
- package/web/build/server/chunks/{hooks.server-Dg6gYUqs.js.map → hooks.server-rF_eBCff.js.map} +1 -1
- package/web/build/server/chunks/{index.js-NNne-njN.js → index.js-CGw8_Q7V.js} +884 -881
- package/web/build/server/chunks/index.js-CGw8_Q7V.js.map +1 -0
- package/web/build/server/chunks/{manifest.js-V8ViI5bl.js → manifest.js-CImZFS6G.js} +9 -9
- package/web/build/server/chunks/{manifest.js-V8ViI5bl.js.map → manifest.js-CImZFS6G.js.map} +1 -1
- package/web/build/server/chunks/{remote-1g4ayag-CCsG2QXw.js → remote-1g4ayag-BMpjk8UD.js} +4 -4
- package/web/build/server/chunks/{remote-1g4ayag-CCsG2QXw.js.map → remote-1g4ayag-BMpjk8UD.js.map} +1 -1
- package/web/build/server/chunks/{remote-wh6t6j-BCvmX37z.js → remote-wh6t6j-dYLCg8ks.js} +19 -7
- package/web/build/server/chunks/remote-wh6t6j-dYLCg8ks.js.map +1 -0
- package/web/build/server/chunks/{validate-CAQ31C7k.js → validate-Da6e71V3.js} +34 -5
- package/web/build/server/chunks/validate-Da6e71V3.js.map +1 -0
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css +0 -1
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/storage.C8XGESwn.css.br +0 -0
- package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/CpeIO6nz.js +0 -210
- package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/D8WOD_eS.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/D8WOD_eS.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.br +0 -2
- package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/lUYXRDtZ.js +0 -1
- package/web/build/client/_app/immutable/chunks/lUYXRDtZ.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/lUYXRDtZ.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js +0 -1
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.br +0 -0
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/0.Dj97JW46.js +0 -1
- package/web/build/client/_app/immutable/nodes/0.Dj97JW46.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/0.Dj97JW46.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js +0 -1
- package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.br +0 -4
- package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js +0 -10
- package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js +0 -171
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.gz +0 -0
- package/web/build/server/chunks/1-BFhhV5JB.js +0 -7
- package/web/build/server/chunks/2-BZ_MVqj8.js +0 -7
- package/web/build/server/chunks/2-BZ_MVqj8.js.map +0 -1
- package/web/build/server/chunks/3-BV-TIUp1.js +0 -7
- package/web/build/server/chunks/agent-sessions-D0WwtWgR.js.map +0 -1
- package/web/build/server/chunks/git-review-CgcBIbvM.js.map +0 -1
- package/web/build/server/chunks/index.js-NNne-njN.js.map +0 -1
- package/web/build/server/chunks/remote-wh6t6j-BCvmX37z.js.map +0 -1
- package/web/build/server/chunks/validate-CAQ31C7k.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as e}from"./D8WOD_eS.js";typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`),e();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,y as t}from"../chunks/C0hrdiUt.js";export{t as load_css,e as start};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,E as n,G as r,I as i,Q as a,R as o,T as s,U as c,V as l,W as u,ft as d,g as f,k as p,lt as m,n as h,nt as g,rt as _,st as v,v as y,w as b}from"../chunks/D8WOD_eS.js";import"../chunks/lUYXRDtZ.js";import{n as x,t as S}from"../chunks/BZfQ9INH.js";var C=d({ssr:()=>!1}),w=n(`<div class="boot svelte-12qhfyh">Cargando…</div>`),T=n(`<div class="boot svelte-12qhfyh"><p> </p> <button type="button" class="svelte-12qhfyh">Reintentar</button></div>`);function E(n,d){_(d,!0),h(()=>{S(x())});var p=s();f(`12qhfyh`,e=>{i(()=>{l.title=`diff-review`})}),a(u(p),{pending:e=>{b(e,w())},failed:(n,i=m,a=m)=>{var s=T(),l=c(s),u=c(l,!0);v(l);var d=r(l,2);v(s),o(e=>t(u,e),[()=>i()instanceof Error?i().message:String(i())]),e(`click`,d,function(...e){a()?.apply(this,e)}),b(n,s)}},e=>{var t=s();y(u(t),()=>d.children),b(e,t)}),b(n,p),g()}p([`click`]);export{E as component,C as universal};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,E as t,G as n,R as r,U as i,W as a,nt as o,rt as s,st as c,w as l}from"../chunks/D8WOD_eS.js";import"../chunks/lUYXRDtZ.js";import{t as u}from"../chunks/FOc6rgIW.js";var d=t(`<h1> </h1> <p> </p>`,1);function f(t,f){s(f,!0);var p=d(),m=a(p),h=i(m,!0);c(m);var g=n(m,2),_=i(g,!0);c(g),r(()=>{e(h,u.status),e(_,u.error?.message)}),l(t,p),o()}export{f as component};
|
|
Binary file
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,C as n,E as r,F as i,G as a,H as o,J as s,K as c,M as l,O as u,R as d,S as f,U as p,W as m,Z as h,a as g,b as _,c as v,d as y,f as ee,i as b,j as x,k as S,l as C,n as w,nt as te,ot as ne,p as T,q as E,rt as re,s as ie,st as D,u as ae,w as O,z as k}from"../chunks/D8WOD_eS.js";import{n as oe,o as se,x as A}from"../chunks/C0hrdiUt.js";import{$ as ce,A as le,B as ue,C as j,D as de,E as fe,F as pe,G as me,H as he,I as ge,J as _e,K as M,M as ve,N,O as ye,Q as be,R as xe,S as P,T as Se,U as Ce,W as we,X as Te,Y as Ee,Z as De,a as Oe,at as ke,b as Ae,ct as je,f as Me,h as Ne,i as Pe,j as Fe,k as Ie,m as Le,n as Re,q as ze,rt as Be,s as Ve,st as F,v as He,vt as Ue,w as We,x as I,y as Ge,z as Ke}from"../chunks/CpeIO6nz.js";import"../chunks/lUYXRDtZ.js";import{t as qe}from"../chunks/FOc6rgIW.js";function L(e){let t=String(e||``).replace(/\\/g,`/`);t.includes(`/`)||(t=`**/${t}`);let n=``;for(let e=0;e<t.length;e++){let r=t[e];r===`*`&&t[e+1]===`*`?t[e+2]===`/`?(n+=`(?:.*/)?`,e+=2):(n+=`.*`,e+=1):r===`*`?n+=`[^/]*`:r===`?`?n+=`[^/]`:`+()[]{}|.^$`.includes(r)?n+=`\\${r}`:n+=r}return RegExp(`^${n}$`)}function Je(e){let t=e.files??[];if(!t.length)return[];let n=new Set((e.blocks??[]).map(e=>e.file)),r=(e.skipped??[]).map(e=>L(e.file));return t.map(e=>e.path).filter(e=>!n.has(e)&&!r.some(t=>t.test(e))).sort((e,t)=>e.localeCompare(t))}var Ye=r(`<div class="center svelte-18urbyr"><div class="spinner svelte-18urbyr" aria-hidden="true"></div> <p class="title svelte-18urbyr">Preparando el contexto</p> <p class="detail svelte-18urbyr"> </p> <p class="hint svelte-18urbyr">El diff se calcula acá y se le pasa al agente; no hace falta que lo arme él.</p></div>`),Xe=r(`<div class="center svelte-18urbyr"><div class="spinner svelte-18urbyr" aria-hidden="true"></div> <p class="title svelte-18urbyr">Abriendo el reporte…</p></div>`),Ze=r(`<div class="center fail svelte-18urbyr"><p class="title svelte-18urbyr">Cancelado</p> <p class="detail svelte-18urbyr">La review fue cancelada. Podés empezar una nueva.</p> <div class="auth-actions svelte-18urbyr"><button type="button" class="ghost svelte-18urbyr">Nueva review</button></div></div>`),Qe=r(`<p class="auth-note svelte-18urbyr"> </p>`),$e=r(`<p class="auth-err svelte-18urbyr"> </p>`),R=r(`<div class="auth-actions svelte-18urbyr"><button type="button" class="primary svelte-18urbyr"> </button> <button type="button" class="ghost svelte-18urbyr">Nueva review</button></div> <!> <!>`,1),et=r(`<div class="auth-actions svelte-18urbyr"><button type="button" class="ghost svelte-18urbyr">Nueva review</button></div>`),tt=r(`<div class="center fail svelte-18urbyr"><p class="title svelte-18urbyr"> </p> <p class="detail svelte-18urbyr"><!></p> <!></div>`),nt=r(`<small class="svelte-18urbyr"> </small>`),rt=r(`<p class="detail svelte-18urbyr"> </p>`),it=r(`<div class="launch-banner svelte-18urbyr"><div class="spinner sm svelte-18urbyr" aria-hidden="true"></div> <div><p class="title svelte-18urbyr"> </p> <!></div></div>`),at=r(`<footer class="stage-footer svelte-18urbyr"><!> <span class="footer-spacer svelte-18urbyr"></span> <!></footer>`),ot=r(`<header class="stage-header svelte-18urbyr"><!> <strong class="svelte-18urbyr"> </strong> <!></header> <div class="log-wrap svelte-18urbyr"><!> <!> <!></div>`,1),z=r(`<section class="live svelte-18urbyr" aria-label="Review en vivo"><header class="bar svelte-18urbyr"><div class="brand svelte-18urbyr"><span class="dot svelte-18urbyr" aria-hidden="true"></span> <strong>diff-review</strong> <span> </span></div> <div class="actions svelte-18urbyr"><button type="button" class="ghost svelte-18urbyr"> </button> <!></div></header> <div class="body svelte-18urbyr"><aside class="card svelte-18urbyr" aria-label="Contexto de la review"><dl class="fields svelte-18urbyr"><div><dt class="svelte-18urbyr">Repo</dt> <dd class="svelte-18urbyr"> </dd></div> <div><dt class="svelte-18urbyr">Branch → Base</dt> <dd class="svelte-18urbyr"><span class="branch svelte-18urbyr"> </span> <span class="arrow svelte-18urbyr">→</span> </dd></div> <div><dt class="svelte-18urbyr">Agente</dt> <dd class="svelte-18urbyr"> </dd></div> <div><dt class="svelte-18urbyr">Modelo</dt> <dd class="svelte-18urbyr"> </dd></div> <div><dt class="svelte-18urbyr">Salida</dt> <dd class="svelte-18urbyr"> </dd></div></dl> <p class="card-note svelte-18urbyr">Cuando el resultado esté listo, se abrirá el reporte.</p></aside> <div class="stage svelte-18urbyr" role="status" aria-live="polite"><!></div></div></section>`);function st(e,r){re(r,!0);let i=b(r,`busy`,3,!1),o=b(r,`gone`,3,!1),c=b(r,`error`,3,``),g=s(!1),_=s(``),y=s(``),ee=s(!1),x=h(()=>r.events.some(e=>e.type===`user`||e.type===`tool`||e.type===`text`||e.type===`plan`||e.type===`permission`)),S=h(()=>r.events.some(e=>e.type===`tool`||e.type===`text`||e.type===`plan`)),C=h(()=>{let e=`diff`,t=`Calculando el diff…`;for(let n of r.events)n.type===`phase`&&(e=n.phase,n.detail&&(t=n.detail));return e===`diff`&&l(x)&&(e=`agent`),{current:e,detail:t}}),w=h(()=>{for(let e=r.events.length-1;e>=0;e--){let t=r.events[e];if(t.type===`status`&&t.message)return t.message}return``}),ie=h(()=>{for(let e=r.events.length-1;e>=0;e--){let t=r.events[e];if(t.type===`status`)return t.status===`idle`&&/Cancelado/i.test(t.message||``)}return!1}),ae=h(()=>l(ee)||l(ie)),k=h(()=>{for(let e=r.events.length-1;e>=0;e--){let t=r.events[e];if(t.type===`status`&&t.status===`error`)return t.message||c()||`Error del agente.`}return r.info.status===`error`?c()||r.info.statusMessage||`Error del agente.`:c()&&!i()?c():``}),oe=h(()=>/autenticad|authentication|login|no está autenticado/i.test(l(k))),se=h(()=>l(oe)&&[`claude`,`copilot`,`codex`,`gemini`].includes(r.info.agentId)),A=h(()=>l(k)?`error`:o()?`gone`:l(ae)&&!i()?`cancelled`:r.events.some(e=>e.type===`review`&&e.ok)?`opening`:l(S)?`reviewing`:l(C).current===`agent`||/Lanzando/i.test(l(w))||l(x)&&!l(S)?`launching`:`diff`),ce=h(()=>l(k)?`error`:i()?`en curso`:o()?`sesión cerrada`:l(ae)?`cancelado`:`listo`),le=h(()=>l(k)?`error`:i()?`busy`:o()?`gone`:`idle`);async function ue(){E(g,!0),E(y,``),E(_,``);try{let e=await N({agentId:r.info.agentId});E(_,`Se abrió una terminal con ${e.display}. Cuando termines, cortá diff-review (Ctrl+C) y volvé a lanzar.`)}catch(e){E(y,e instanceof Error?e.message:String(e),!0)}finally{E(g,!1)}}let pe=h(()=>{let e=r.info.repo.replace(/\\/g,`/`),t=e.split(`/`);return t.length>2?`…/${t.slice(-2).join(`/`)}`:e}),me=h(()=>r.events.filter(e=>!(e.type===`phase`||e.type===`user`&&e.mode===`review`))),he=s(0),ge=h(()=>l(me).filter(e=>e.type===`permission`&&e.pending)),_e=h(()=>l(ge).length===0?0:Math.min(l(he),l(ge).length-1)),M=h(()=>l(ge)[l(_e)]??null),ve=h(()=>!!(r.info.id&&r.onsessiontrust)||!!(l(M)&&r.onrespondpermission));function ye(e){let t=l(ge).length;t<=1||(e.key===`ArrowLeft`?(e.preventDefault(),E(he,(l(_e)+t-1)%t)):e.key===`ArrowRight`&&(e.preventDefault(),E(he,(l(_e)+1)%t)))}function be(e){r.onrespondpermission?.(e)}let xe=h(()=>/Lanzando/i.test(l(w))||/revisando/i.test(l(w))?l(w):`Lanzando ${r.info.agentLabel}…`),Se=h(()=>l(C).detail&&l(C).current===`agent`&&l(C).detail!==l(xe)?l(C).detail:``),Ce=h(()=>!l(ae)&&(l(A)===`diff`||l(A)===`launching`||l(A)===`reviewing`||l(A)===`opening`||i()));function we(){if(l(Ce)){r.info.id?(E(ee,!0),r.oncancel()):r.onreset();return}r.onreset()}var Te=z(),Ee=p(Te),De=p(Ee),Oe=a(p(De),4);let ke;var Ae=p(Oe,!0);D(Oe),D(De);var je=a(De,2),Me=p(je),Ne=p(Me,!0);D(Me),We(a(Me,2),{}),D(je),D(Ee);var Pe=a(Ee,2),Fe=p(Pe),Ie=p(Fe),Le=p(Ie),Re=a(p(Le),2),ze=p(Re,!0);D(Re),D(Le);var Be=a(Le,2),Ve=a(p(Be),2),F=p(Ve),He=p(F,!0);D(F);var Ue=a(F,3);D(Ve),D(Be);var Ge=a(Be,2),Ke=a(p(Ge),2),qe=p(Ke,!0);D(Ke),D(Ge);var L=a(Ge,2),Je=a(p(L),2),st=p(Je,!0);D(Je),D(L);var ct=a(L,2),B=a(p(ct),2),lt=p(B,!0);D(B),D(ct),D(Ie),ne(2),D(Fe);var ut=a(Fe,2),dt=p(ut),ft=e=>{var t=Ye(),r=a(p(t),4),i=p(r,!0);D(r),ne(2),D(t),d(()=>n(i,l(C).detail)),O(e,t)},pt=e=>{O(e,Xe())},mt=e=>{var n=Ze(),i=a(p(n),4),o=p(i);D(i),D(n),t(`click`,o,function(...e){r.onreset?.apply(this,e)}),O(e,n)},ht=e=>{var i=tt(),o=p(i),s=p(o,!0);D(o);var c=a(o,2),h=p(c),v=e=>{var t=u();d(()=>n(t,l(k))),O(e,t)},ee=e=>{O(e,u(`La sesión del agente se cerró. Podés empezar una nueva review.`))};f(h,e=>{l(k)?e(v):e(ee,-1)}),D(c);var b=a(c,2),x=e=>{var i=R(),o=m(i),s=p(o),c=p(s,!0);D(s);var u=a(s,2);D(o);var h=a(o,2),v=e=>{var t=Qe(),r=p(t,!0);D(t),d(()=>n(r,l(_))),O(e,t)};f(h,e=>{l(_)&&e(v)});var ee=a(h,2),b=e=>{var t=$e(),r=p(t,!0);D(t),d(()=>n(r,l(y))),O(e,t)};f(ee,e=>{l(y)&&e(b)}),d(()=>{s.disabled=l(g),n(c,l(g)?`Abriendo…`:`Abrir login de ${r.info.agentLabel}`)}),t(`click`,s,()=>void ue()),t(`click`,u,function(...e){r.onreset?.apply(this,e)}),O(e,i)},S=e=>{var n=et(),i=p(n);D(n),t(`click`,i,function(...e){r.onreset?.apply(this,e)}),O(e,n)};f(b,e=>{l(se)?e(x):l(A)===`error`&&e(S,1)}),D(i),d(()=>n(s,l(A)===`gone`&&!l(k)?`Sesión cerrada`:l(oe)?`Autenticación requerida`:`Error`)),O(e,i)},gt=e=>{var t=ot(),o=m(t),s=p(o);fe(s,{get id(){return r.info.agentId},size:16});var c=a(s,2),u=p(c,!0);D(c);var g=a(c,2),_=e=>{var t=nt(),i=p(t,!0);D(t),d(()=>{v(t,`title`,r.info.model),n(i,r.info.model)}),O(e,t)};f(g,e=>{r.info.model&&e(_)}),D(o);var y=a(o,2),ee=p(y),b=e=>{var t=it(),r=a(p(t),2),i=p(r),o=p(i,!0);D(i);var s=a(i,2),c=e=>{var t=rt(),r=p(t,!0);D(t),d(()=>n(r,l(Se))),O(e,t)};f(s,e=>{l(Se)&&e(c)}),D(r),D(t),d(()=>n(o,l(xe))),O(e,t)};f(ee,e=>{l(A)===`launching`&&e(b)});var x=a(ee,2);P(x,{get events(){return l(me)},get busy(){return i()},get sessionId(){return r.info.id},get onrespondpermission(){return r.onrespondpermission},get onretry(){return r.onretry},actionsExternal:!0,get pendingCursor(){return l(he)},set pendingCursor(e){E(he,e,!0)}});var S=a(x,2),C=e=>{var t=at(),n=p(t),i=e=>{{let t=h(()=>!!r.info.sessionTrust);I(e,{get enabled(){return l(t)},get onchange(){return r.onsessiontrust}})}};f(n,e=>{r.info.id&&r.onsessiontrust&&e(i)});var o=a(n,4),s=e=>{j(e,{get currentPending(){return l(M)},get pendingCount(){return l(ge).length},onrespond:be,onkeydown:ye})};f(o,e=>{l(M)&&r.onrespondpermission&&e(s)}),D(t),O(e,t)};f(S,e=>{l(ve)&&e(C)}),D(y),d(e=>n(u,e),[()=>de(r.info.agentId,r.info.agentLabel)]),O(e,t)};f(dt,e=>{l(A)===`diff`?e(ft):l(A)===`opening`?e(pt,1):l(A)===`cancelled`?e(mt,2):l(A)===`error`||l(A)===`gone`?e(ht,3):e(gt,-1)}),D(ut),D(Pe),D(Te),d(()=>{ke=T(Oe,1,`pill svelte-18urbyr`,null,ke,{busy:l(le)===`busy`,error:l(le)===`error`,gone:l(le)===`gone`}),n(Ae,l(ce)),n(Ne,l(Ce)?`Cancelar`:`Nueva review`),v(Re,`title`,r.info.repo),n(ze,l(pe)),n(He,r.info.branch),n(Ue,` ${r.info.base??``}`),n(qe,r.info.agentLabel),n(st,r.info.model||`por defecto`),v(B,`title`,r.info.outputFilename),n(lt,r.info.outputFilename),v(ut,`aria-busy`,i())}),t(`click`,Me,we),O(e,Te),te()}S([`click`]);function ct(e){let t=[];if(!e||typeof e!=`object`)return[`El archivo no contiene un objeto JSON.`];let n=e;if((typeof n.intent!=`string`||!n.intent.trim())&&t.push(`Falta "intent" (string).`),Array.isArray(n.groups)?n.groups.forEach((e,n)=>{if(!e||typeof e!=`object`){t.push(`groups[${n}]: no es un objeto.`);return}for(let r of[`id`,`kind`,`title`,`intent`])(typeof e[r]!=`string`||!e[r])&&t.push(`groups[${n}]: falta "${r}".`)}):t.push(`Falta "groups" (array).`),Array.isArray(n.blocks)?n.blocks.forEach((e,n)=>{if(!e||typeof e!=`object`){t.push(`blocks[${n}]: no es un objeto.`);return}for(let r of[`id`,`group`,`file`,`op`,`what`,`why`])(typeof e[r]!=`string`||!e[r])&&t.push(`blocks[${n}]: falta "${r}".`)}):t.push(`Falta "blocks" (array).`),Array.isArray(n.findings)?n.findings.forEach((e,n)=>{if(!e||typeof e!=`object`){t.push(`findings[${n}]: no es un objeto.`);return}let r=e;for(let e of[`id`,`class`,`severity`,`kind`,`file`,`what`,`fix`])(typeof r[e]!=`string`||!r[e])&&t.push(`findings[${n}]: falta "${e}".`);typeof r.blocking!=`boolean`&&t.push(`findings[${n}]: "blocking" debe ser booleano.`)}):t.push(`Falta "findings" (array).`),n.files!=null&&!Array.isArray(n.files)&&t.push(`"files" debe ser un array.`),n.skipped!=null&&!Array.isArray(n.skipped)&&t.push(`"skipped" debe ser un array.`),n.notes!=null&&!Array.isArray(n.notes)&&t.push(`"notes" debe ser un array.`),n.meta==null||typeof n.meta!=`object`||Array.isArray(n.meta))t.push(`Falta "meta" (objeto con "agent" y "model").`);else{let e=n.meta;e.source!=null&&e.source!==`local`&&e.source!==`url`&&t.push(`meta.source debe ser "local" o "url".`);for(let n of[`agent`,`model`])(typeof e[n]!=`string`||!e[n].trim())&&t.push(`Falta meta.${n}.`);for(let n of[`repo`,`branch`,`base`,`remoteUrl`,`generatedAt`])e[n]!=null&&typeof e[n]!=`string`&&t.push(`meta.${n} debe ser string.`)}return t}var B=r(`<div class="toast svelte-1uha8ag" role="status">Prompt copiado al portapapeles.</div>`),lt=r(`<p class="cli-wait-detail svelte-1uha8ag"><code> </code></p>`),ut=r(`<div class="cli-wait svelte-1uha8ag" role="status" aria-live="polite" aria-busy="true"><div class="diff-spinner svelte-1uha8ag" aria-hidden="true"></div> <p class="cli-wait-title svelte-1uha8ag"> </p> <!> <button type="button" class="ghost svelte-1uha8ag">Volver al inicio</button></div>`),dt=r(`URL del remote (https / SSH). Al cargar se listan branches con <code class="svelte-1uha8ag">ls-remote</code>; al soltar el
|
|
2
|
-
JSON se hace un clone shallow temporal para armar el diff. Requiere que el branch esté en el remote.`,1),ft=r(`<p class="error-line svelte-1uha8ag"> </p>`),pt=r(`<p class="ok-line svelte-1uha8ag"> </p>`),mt=r(`<button type="button" class="svelte-1uha8ag"> </button>`),ht=r(`<option> </option>`),gt=r(`<select class="svelte-1uha8ag"></select>`),_t=r(`<input type="text" placeholder="feature/PCM-14839" class="svelte-1uha8ag"/>`),vt=r(`<input type="text" placeholder="develop" class="svelte-1uha8ag"/>`),yt=r(`<button type="button">Lanzar agente</button>`),bt=r(`<small class="loading-models svelte-1uha8ag">· consultando modelos (puede tardar)…</small>`),xt=r(`<p class="error-line models-error svelte-1uha8ag"> <button type="button" class="linkish svelte-1uha8ag">Reintentar</button></p>`),St=r(`<p class="hint-text models-error svelte-1uha8ag">El agente no listó modelos por ACP; usá el default o la lista fija. <button type="button" class="linkish svelte-1uha8ag">Reintentar</button></p>`),Ct=r(`<p class="hint-text svelte-1uha8ag">Elegí un repo local y un branch distinto de la base.</p>`),wt=r(`<p class="hint-text svelte-1uha8ag">diff-review lanza el agente en el repo, muestra lo que va haciendo y abre el reporte cuando llega a
|
|
3
|
-
un resultado válido. Solo puede leer el repo, correr comandos de solo lectura (git, grep, cat…) y
|
|
4
|
-
escribir <code class="svelte-1uha8ag"> </code>.</p> <div class="row svelte-1uha8ag"><label class="field svelte-1uha8ag"><span class="svelte-1uha8ag">Agente</span> <!></label> <label class="field svelte-1uha8ag"><span class="svelte-1uha8ag">Modelo<!></span> <!></label></div> <!> <div class="actions svelte-1uha8ag"><button type="button" class="primary svelte-1uha8ag"> </button></div> <!> <!>`,1),Tt=r(`<p class="hint-text svelte-1uha8ag">Copiá y pegalo en Claude, Cursor, Copilot u otro agente. El schema de salida va incluido.</p> <textarea class="svelte-1uha8ag"></textarea> <div class="actions svelte-1uha8ag"><button type="button" class="primary svelte-1uha8ag"> </button></div>`,1),Et=r(`Con repo local, si el archivo aparece en <code class="svelte-1uha8ag">.diff-review/</code> (o en la raíz, formato viejo) lo
|
|
5
|
-
abrimos solos.`,1),Dt=r(`Con repo local, si el archivo está en <code class="svelte-1uha8ag">.diff-review/</code> (o en la raíz) podés abrirlo desde
|
|
6
|
-
acá.`,1),Ot=r(`<span>abriendo…</span>`),kt=r(`<span>(se abre solo; podés hacer click si no)</span>`),At=r(`<span>(hacé click para abrirlo)</span>`),jt=r(`<p class="detect-banner svelte-1uha8ag">Listo: <button type="button" class="file-link svelte-1uha8ag"> </button> <!></p>`),Mt=r(`<p class="detect-banner svelte-1uha8ag">Encontré otro reporte: <button type="button" class="file-link svelte-1uha8ag"> </button></p>`),Nt=r(`<p class="detect-wait svelte-1uha8ag">Esperando <code> </code> en <code>.diff-review/</code>…</p>`),Pt=r(`<p class="detect-wait svelte-1uha8ag">Detecté el JSON — abriendo reporte…</p>`),Ft=r(`<li> </li>`),It=r(`<div class="coverage-box svelte-1uha8ag"><div class="coverage-head svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag">no aparecen ni en "blocks" ni en "skipped"</span></div> <details><summary class="svelte-1uha8ag">Ver los archivos</summary> <ul class="coverage-list svelte-1uha8ag"></ul></details> <p class="hint-text svelte-1uha8ag">Pedile al agente (chat del reporte, o este prompt pegado) que complete lo que falta: ya tiene el
|
|
7
|
-
diff en contexto. Después el JSON se reabre solo, o soltalo de nuevo.</p> <textarea readonly="" rows="7" class="svelte-1uha8ag"></textarea> <div class="coverage-actions svelte-1uha8ag"><button type="button" class="primary svelte-1uha8ag"> </button> <button type="button" class="svelte-1uha8ag">Abrir igual</button></div></div>`),Lt=r(`<div class="drop-errors svelte-1uha8ag"><strong class="svelte-1uha8ag">No se pudo abrir el reporte:</strong> <ul class="svelte-1uha8ag"></ul></div>`),Rt=r(`<span class="pill bad svelte-1uha8ag"> </span>`),zt=r(`<span class="pill svelte-1uha8ag"> </span>`),Bt=r(`<span class="prov-agent svelte-1uha8ag"> </span>`),Vt=r(`<span class="prov-sep svelte-1uha8ag">·</span>`),Ht=r(`<span class="prov-model svelte-1uha8ag"> </span>`),Ut=r(`<span class="report-prov svelte-1uha8ag"><!> <!> <!></span>`),Wt=r(`<p class="report-intent svelte-1uha8ag"> </p>`),Gt=r(`<div class="report-menu svelte-1uha8ag" role="menu" tabindex="-1"><button type="button" class="menu-item danger svelte-1uha8ag" role="menuitem">Eliminar…</button></div>`),Kt=r(`<li class="report-item svelte-1uha8ag"><a class="report-card svelte-1uha8ag"><span class="report-top svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="when svelte-1uha8ag"> </span></span> <span class="report-meta svelte-1uha8ag"><span class="report-base svelte-1uha8ag"><span class="base-arrow svelte-1uha8ag" aria-hidden="true">→</span> </span> <span class="report-counts svelte-1uha8ag"><span class="pill svelte-1uha8ag"> </span> <!> <!></span></span> <!> <!></a> <div class="report-actions svelte-1uha8ag"><button type="button" class="kebab svelte-1uha8ag" title="Más acciones" aria-haspopup="menu"><svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><circle cx="8" cy="3.5" r="1.25" fill="currentColor"></circle><circle cx="8" cy="8" r="1.25" fill="currentColor"></circle><circle cx="8" cy="12.5" r="1.25" fill="currentColor"></circle></svg></button> <!></div></li>`),qt=r(`<ul class="report-list svelte-1uha8ag"></ul>`),Jt=r(`<p class="hint-text svelte-1uha8ag">Todavía no hay reportes. Lanzá el agente o copiá el prompt y abrí el JSON acá.</p>`),Yt=r(`<header class="topbar svelte-1uha8ag"><a class="brand svelte-1uha8ag"><span class="brand-dot svelte-1uha8ag"></span> <span class="title-block svelte-1uha8ag"><span class="svelte-1uha8ag">diff-review</span> <small class="svelte-1uha8ag">lanzá el agente, abrí el reporte, triager hallazgos</small></span></a> <!></header> <div class="workspace svelte-1uha8ag"><section class="setup svelte-1uha8ag"><h2 class="svelte-1uha8ag">1. Contexto</h2> <div class="mode-toggle source-toggle svelte-1uha8ag"><button type="button">Carpeta local</button> <button type="button">URL remota</button></div> <p class="hint-text svelte-1uha8ag"><!></p> <!> <!> <div class="repo-setup svelte-1uha8ag"><label class="field repo-field svelte-1uha8ag"><span class="svelte-1uha8ag"> </span> <div class="repo-row svelte-1uha8ag"><input type="text" class="svelte-1uha8ag"/> <!> <button type="button" class="svelte-1uha8ag"> </button></div></label> <div class="row branches-row svelte-1uha8ag"><label class="field svelte-1uha8ag"><span class="svelte-1uha8ag">Branch a revisar</span> <!></label> <label class="field svelte-1uha8ag"><span class="svelte-1uha8ag">Base</span> <!></label></div></div> <div class="section-head svelte-1uha8ag"><h2 class="svelte-1uha8ag">2. Generar review</h2></div> <div class="mode-toggle svelte-1uha8ag"><!> <button type="button">Copiar prompt</button></div> <!> <h2 class="result-head svelte-1uha8ag">3. Resultado</h2> <p class="hint-text svelte-1uha8ag">Si lanzaste el agente desde acá o desde la CLI, el reporte se abre solo cuando hay un resultado válido.
|
|
8
|
-
También podés soltar o elegir el <code class="svelte-1uha8ag"> </code> a mano. Si trae <code class="svelte-1uha8ag">meta</code>, se
|
|
9
|
-
autocompletan repo y branches. <!></p> <!> <!> <div role="presentation"><p class="svelte-1uha8ag"><!></p> <button type="button" class="svelte-1uha8ag"> </button> <input type="file" accept="application/json,.json" class="visually-hidden svelte-1uha8ag"/></div> <!> <!></section> <aside class="reports-col svelte-1uha8ag"><h2 class="svelte-1uha8ag">Reportes recientes</h2> <!></aside></div>`,1),Xt=r(`<div><!> <!></div>`);function V(r,b){re(b,!0);function S(e){return{agentId:e.searchParams.get(`agent`)?.trim()||``,import:e.searchParams.get(`import`)===`1`,watch:e.searchParams.get(`watch`)===`1`,out:e.searchParams.get(`out`)?.trim()||``}}let j=S(qe.url),de=s(c(!!(j.agentId||j.import||j.watch))),fe=s(c(j.agentId)),N=s(c({source:`local`,repo:``,branch:``,base:`develop`})),P=s(c(j.out&&F(j.out)?j.out:je({}))),I=s(``),L=s(!1),Ye=s(!1),Xe=s(!1),Ze=s(`full`),Qe=s(!1),$e=s(!1),R=s(c([])),et=s(null),tt=s(null),nt=s(c([])),rt=s(!1),it=s(c([])),at=s(null),ot=s(null),z=s(c([])),V=s(``),Zt=s(!1),Qt=s(!1),H=s(!1),U=s(!1),W=s(c(j.import)),$t=s(c(j.watch)),en=!1,tn=s(``),nn=s(null),G=s(null),K=s(!1),rn=s(``),an=0,on=s(c([])),q=s(``),sn=s(``),cn=s(!1),J=s(``),Y=s(null),X=s(null),ln=h(()=>l(on).find(e=>e.id===l(q))??null),un=h(()=>!!(l(X)&&l(Y)||l(cn)&&l(ln)||l(fe))),dn=h(()=>l(de)&&!l(un)),Z=s(c({})),fn=s(c({})),pn=h(()=>{let e=l(Z)[l(q)],t={options:l(ln)?.models??[],initialValue:``},n=t.options.filter(e=>e.value!==``);return e&&e!==`loading`&&e.models.length?He({models:e.models,currentModel:e.currentModel},t).options:e===`loading`&&!n.length?[{value:``,label:`Cargando modelos…`,title:`Cargando modelos…`,badges:[]}]:Ge(t.options.map(e=>({value:e.value,label:e.label,title:e.label,badges:[],...e.hint?{hint:e.hint}:{}})))}),mn=h(()=>l(Z)[l(q)]),hn=h(()=>l(mn)&&l(mn)!==`loading`?l(mn).error:void 0),gn=h(()=>!!(l(mn)&&l(mn)!==`loading`&&!l(mn).error&&!l(mn).models.length));k(()=>{let e=l(q);if(l(Ze)!==`agent`||!e||e in i(()=>l(Z)))return;let t=!!i(()=>l(fn)[e]);E(Z,{...i(()=>l(Z)),[e]:`loading`},!0),Ie({agentId:e,repo:i(()=>l(N).repo),force:t}).then(n=>{E(Z,{...l(Z),[e]:n},!0),t&&E(fn,{...l(fn),[e]:!1},!0)})});function _n(){let e=l(q);if(!e||l(Z)[e]===`loading`)return;E(fn,{...l(fn),[e]:!0},!0);let t={...l(Z)};delete t[e],E(Z,t,!0)}let vn=h(()=>l(N).source===`local`&&$(l(N).repo)&&!!l(N).branch.trim()&&l(N).branch!==l(N).base),yn=h(()=>l(N).source===`local`&&$(l(N).repo));function bn(e){E(Qe,!0),E(Ze,e,!0)}w(()=>{let e=Oe();E(N,e,!0),E(tn,Pe()||(e.source===`local`&&$(e.repo)?e.repo.trim():``),!0);let t=new URL(window.location.href).searchParams,n=t.get(`import`)===`1`,r=t.get(`watch`)===`1`,i=t.get(`notify`)===`prompt`,a=t.get(`out`)?.trim(),o=t.get(`agent`)?.trim();E($t,r),n&&E(W,!0),a&&F(a)&&E(P,a,!0),E(I,ke(l(N),{outputFilename:l(P)}),!0),E(it,Ve(),!0),(n||r||i||a||o)&&En(),xn(),o&&Sn(o),Dn(e,{wantImport:n,wantWatch:r,wantNotify:i,keepOutName:!!(a&&F(a))});let s=setInterval(()=>{Wn({auto:!0})},1500);return()=>{clearInterval(s),l(X)?.close()}});async function xn(){try{E(on,await le(),!0),l(on).some(e=>e.id===l(q))||E(q,l(on)[0]?.id??``,!0),!l(Qe)&&l(on).length>0&&l(Ze)!==`agent`&&E(Ze,`agent`)}catch{E(on,[],!0)}}async function Sn(e,t){E(Ze,`agent`),E(J,``);let n=t??null;if(!n)for(let t=0;t<30&&(n=await Fe({id:e}).catch(()=>null),!n);t++)await new Promise(e=>setTimeout(e,100));if(!n){E(J,`La sesión del agente ya no existe (¿se reinició diff-review?).`),E(fe,``);return}n.status===`error`&&n.statusMessage&&E(J,n.statusMessage,!0),E(Y,n,!0),E(fe,``),l(X)?.close();let r=new ye(e,e=>void Cn(e));E(X,r,!0),r.connect()}async function Cn(e){if(e.type===`status`&&e.status===`error`){E(J,e.message||l(J)||`Error del agente.`,!0),l(Y)&&E(Y,{...l(Y),status:`error`,statusMessage:l(J)},!0);return}if(e.type===`status`&&e.status===`idle`&&/Cancelado/i.test(e.message||``)){l(Y)&&E(Y,{...l(Y),status:`idle`,statusMessage:e.message||`Cancelado.`,busy:!1},!0);return}if(!(e.type!==`review`||!e.ok||!l(Y)))try{let t=await we({repo:l(Y).repo,filename:e.filename});if(!t?.payload)return;E(P,e.filename,!0),await Jn(t.payload)}catch(e){E(R,[`No se pudo abrir el JSON del agente: ${Fn(e)}`],!0)}}async function wn(){if(!l(ln)||!l(vn)||l(cn))return;let e=l(sn);E(cn,!0),E(J,``);try{let t=await Ke({repo:l(N).repo.trim(),branch:l(N).branch.trim(),base:l(N).base.trim()||`develop`,agentId:l(ln).id,model:e});E(P,t.outputFilename,!0),await Sn(t.id,t)}catch(e){E(J,Fn(e),!0)}finally{E(cn,!1)}}function Tn(){if(l(Y)){let e=l(Y).repo?.trim();e&&(Q({source:`local`,repo:e,branch:l(Y).branch||l(N).branch,base:l(Y).base||l(N).base}),Ln(e,`local`)),l(Y).agentId&&E(q,l(Y).agentId,!0),l(Y).model&&E(sn,l(Y).model,!0)}l(X)?.close(),E(X,null),E(Y,null),E(J,``),E(de,!1),E(fe,``)}function En(){let e=new URL(window.location.href);e.search&&(e.search=``,se(e,{}))}async function Dn(e,t){try{let n=await Ce();if(n?.repo){let r=n.current&&n.current!==`HEAD`?n.current:n.branches[0]||``,i=n.branches.includes(e.base)?e.base:n.defaultBase;E(z,n.branches,!0),E(tn,n.repo,!0),Q({source:`local`,repo:n.repo,branch:r,base:i,remoteUrl:n.remoteUrl||void 0}),t.keepOutName||await On()}else e.repo.trim()&&(Ln(e.repo,e.source),!t.keepOutName&&e.source===`local`&&await On())}catch{e.repo.trim()&&Ln(e.repo,e.source)}if(t.wantNotify&&jn(l(I),e=>{E(Ye,e,!0),E(Xe,!0),setTimeout(()=>E(Xe,!1),2800)}),t.wantImport)try{let e=await ze();e?.payload?(e.filename&&E(P,e.filename,!0),await Jn(e.payload)):en||E(W,!1)}catch{E(R,[`No se pudo importar el JSON pendiente del CLI.`],!0),E(W,!1)}t.wantWatch&&Wn({auto:!0})}async function On(){if(l(N).source!==`local`||!$(l(N).repo)||!l(N).branch.trim()){E(P,je({}),!0),l(L)||E(I,ke(l(N),{outputFilename:l(P)}),!0);return}let e=++an;try{let t=await M({repo:l(N).repo.trim(),branch:l(N).branch.trim(),base:l(N).base.trim()||`develop`});if(e!==an)return;E(P,t.filename,!0),l(L)||E(I,ke(l(N),{outputFilename:l(P)}),!0)}catch{if(e!==an)return;E(P,je({}),!0),l(L)||E(I,ke(l(N),{outputFilename:l(P)}),!0)}}function Q(e){let t=l(N);E(N,{...l(N),...e},!0),l(N).source===`local`&&$(l(N).repo)&&E(tn,l(N).repo.trim(),!0),Le(l(N),l(tn)),l(L)||E(I,ke(l(N),{outputFilename:l(P)}),!0),(t.repo!==l(N).repo||t.branch!==l(N).branch||t.base!==l(N).base||t.source!==l(N).source)&&l(N).source===`local`&&On()}function kn(e){if(e===l(N).source)return;if(E(z,[],!0),E(V,``),e===`url`){$(l(N).repo)&&E(tn,l(N).repo.trim(),!0);let t=(l(N).remoteUrl||``).trim()||(Pn(l(N).repo)?l(N).repo.trim():``);Q({source:e,repo:t,...t?{remoteUrl:t}:{}});return}let t=l(tn)||($(l(N).repo)?l(N).repo.trim():``),n=(Pn(l(N).repo)?l(N).repo.trim():``)||(l(N).remoteUrl||``).trim();Q({source:e,repo:t,...n?{remoteUrl:n}:{}})}function An(e){E(I,e.currentTarget.value,!0),E(L,!0)}function jn(e,t){let n=()=>{t(!0),setTimeout(()=>t(!1),1600)};navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(n).catch(n):n()}function Mn(){jn(l(I),e=>E(Ye,e,!0))}function Nn(){jn(Be(l(N),l(nt),{outputFilename:l(P)}),e=>E(rt,e,!0))}function $(e){let t=e.trim();return!t||/^(https?:\/\/|git@|ssh:\/\/)/i.test(t)?!1:/[\\/]/.test(t)||/^[A-Za-z]:/.test(t)}function Pn(e){let t=e.trim();return t?!!(/^(https?:\/\/|git@|ssh:\/\/)/i.test(t)||/\.git$/i.test(t)&&!$(t)):!1}function Fn(e){if(!e)return`Error desconocido`;if(typeof e==`string`){try{let t=JSON.parse(e);if(typeof t?.message==`string`&&t.message.trim())return t.message}catch{}return e}if(typeof e==`object`){let t=e;if(typeof t.body?.message==`string`&&t.body.message.trim())return t.body.message;if(typeof t.message==`string`&&t.message.trim()){let e=t.message.trim();if(e.startsWith(`{`))try{let t=JSON.parse(e);if(typeof t?.message==`string`&&t.message.trim())return t.message}catch{}return e}}return String(e)}async function In(){if(!(l(Qt)||l(Zt))){E(Qt,!0),E(V,``);try{let e=await _e(null);if(!e)return;Q({source:`local`,repo:e}),await Ln(e,`local`)}catch(e){E(V,`No se pudo elegir la carpeta: `+Fn(e))}finally{E(Qt,!1)}}}async function Ln(e=l(N).repo,t=l(N).source){let n=e.trim();if(!n){E(V,t===`url`?`Indicá la URL del repo.`:`Indicá la ruta absoluta del repo.`,!0);return}if(!l(Zt)){E(Zt,!0),E(V,``);try{let e=await me({source:t,repo:n}),r=e.branches.includes(l(N).branch)?l(N).branch:e.current||e.branches[0]||``,i=e.branches.includes(l(N).base)?l(N).base:e.defaultBase;E(z,e.branches,!0),Q({source:e.source,repo:e.repo,branch:r,base:i,remoteUrl:e.remoteUrl||(e.source===`url`?e.repo:l(N).remoteUrl)})}catch(e){E(z,[],!0),E(V,`No se pudo leer el repo: `+Fn(e))}finally{E(Zt,!1)}}}function Rn(e){e.preventDefault(),l($e)||E($e,!0)}function zn(e){e.preventDefault(),E($e,!1)}function Bn(e){if(e.preventDefault(),E($e,!1),l(U)||l(H)||l(K))return;let t=e.dataTransfer?.files?.[0];t&&Kn(t)}async function Vn(){if(!(l(U)||l(H)||l(K))){if(l(yn)){E(H,!0),E(V,``);try{let e=await Ee({directory:l(N).repo.trim()});if(!e?.payload)return;e.filename&&E(P,e.filename,!0),await Jn(e.payload)}catch(e){E(R,[`No se pudo abrir el archivo: `+Fn(e)],!0),l(nn)?.click()}finally{E(H,!1)}return}l(nn)?.click()}}function Hn(e){let t=e.currentTarget,n=t.files?.[0];n&&Kn(n),t.value=``}function Un(e){return`${e.path}::${e.mtimeMs}`}async function Wn(e){if(!(!l(yn)||l(U)||l(H)))try{let t=await ue({repo:l(N).repo.trim(),preferredName:l(P)});if(E(G,t,!0),!e.auto||!l($t)||!t||l(K)||t.filename!==l(P)||Un(t)===l(rn))return;await Gn(t,{auto:!0})}catch{}}async function Gn(e,t){if(!(l(U)||l(K)||l(H))){E(K,!0),E(W,!0),E(R,[],!0);try{let n=await we({repo:l(N).repo.trim(),filename:e.filename});if(!n?.payload){t?.auto||E(R,[`No se pudo leer `+e.filename],!0),E(W,!1);return}E(P,e.filename,!0),await Jn(n.payload)&&(E(rn,Un(e),!0),t?.auto&&E($t,!1))}catch(t){E(R,[`No se pudo abrir `+e.filename+`: `+Fn(t)],!0),E(W,!1)}finally{E(K,!1)}}}function Kn(e){E(W,!0),E(R,[],!0);let t=new FileReader;t.onload=()=>{let e;try{e=JSON.parse(String(t.result))}catch(e){E(R,[`El archivo no es JSON válido: `+Fn(e)],!0),E(W,!1);return}Jn(e)},t.onerror=()=>{E(R,[`No se pudo leer el archivo.`],!0),E(W,!1)},t.readAsText(e)}function qn(e){return ce(e,l(N))}async function Jn(e){E(W,!0),en=!1;try{let t=await Yn(e);return en||E(W,!1),t}catch(e){throw E(W,!1),e}}async function Yn(e){let t=ct(e);if(t.length)return E(R,t,!0),!1;let n=De(e),r=qn(e);(r.repo||r.branch||r.base||r.remoteUrl)&&Q({source:r.source,repo:r.repo||l(N).repo,branch:r.branch||l(N).branch,base:r.base||l(N).base,remoteUrl:r.remoteUrl||l(N).remoteUrl});let i={intent:n.intent,groups:n.groups,blocks:n.blocks,findings:n.findings,skipped:n.skipped,notes:n.notes},a=[],o=(e,t)=>{let n=t.trim();n&&(a.some(t=>t.source===e&&t.repo===n)||a.push({source:e,repo:n}))};if(r.branch){r.source===`local`&&$(r.repo)?o(`local`,r.repo):r.source===`url`&&Pn(r.repo)||Pn(r.repo)?o(`url`,r.repo):$(r.repo)&&o(`local`,r.repo);let e=(r.remoteUrl||``).trim();e&&Pn(e)&&o(`url`,e)}if(a.length&&r.branch){E(U,!0),E(R,[],!0);let t=[],o=!1,s=r.remoteUrl;try{for(let e of a)try{if(n=await he({repo:e.repo,branch:r.branch,base:r.base||`develop`,source:e.source,payload:i,outputFilename:l(P)}),o=!0,e.source===`url`)s||=e.repo;else if(!s)try{let t=await me({source:`local`,repo:e.repo});t.remoteUrl&&(s=t.remoteUrl)}catch{}break}catch(n){t.push(`${e.source===`url`?`URL`:`local`}: ${Fn(n)}`)}if(!o){if(!be(n))return E(R,[`No se pudo calcular el diff con git.`,...t.map(e=>`· ${e}`)],!0),!1;n={...n,notes:[...n.notes,`No se pudo refrescar el diff con git: `+t.join(` | `)]}}}finally{E(U,!1)}s&&Q({remoteUrl:s});let c=await Zn(e,Xn(r,s)),u=Je(n);return u.length?(E(et,n,!0),E(tt,e,!0),E(nt,u,!0),E(R,[],!0),Q(c),!0):(Qn(n,c),!0)}else if(!be(n))return E(R,[`Indicá repo (ruta o URL) y branch, o incluí meta.remoteUrl en el JSON, para calcular el diff con git.`],!0),!1;let s=await Zn(e,Xn(r)),c=Je(n);return c.length?(E(et,n,!0),E(tt,e,!0),E(nt,c,!0),E(R,[],!0),Q(s),!0):(Qn(n,s),!0)}function Xn(e,t){let n=Me(e)||(F(l(P))?l(P):``)||Me(l(N));return{source:e.source,repo:e.repo||l(N).repo,branch:e.branch||l(N).branch,base:e.base||l(N).base,remoteUrl:t||e.remoteUrl||l(N).remoteUrl,...e.generatedAt?{generatedAt:e.generatedAt}:{},...e.agent?{agent:e.agent}:{},...e.model?{model:e.model}:{},...e.agentSession?{agentSession:e.agentSession}:{},...n?{outputFilename:n}:{}}}async function Zn(e,t){let n=Me(t);if(!n||t.source!==`local`||!$(t.repo))return t;let r={...t,outputFilename:n};try{return(await we({repo:r.repo,filename:n}))?.payload||await Te({repo:r.repo,filename:n,payload:e}),r}catch{let{outputFilename:e,...n}=t;return n}}function Qn(e,t=l(N)){E(R,[],!0),E(et,null),E(tt,null),E(nt,[],!0),en=!0,oe(A(`/report/${Ne(e,t).id}`))}async function $n(){if(!l(et))return;let e=await Zn(l(tt)??l(et),Xn(l(N)));Qn(l(et),e)}function er(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(`es-AR`,{day:`2-digit`,month:`2-digit`,hour:`2-digit`,minute:`2-digit`})}function tr(){E(at,null),E(ot,null)}function nr(e){let t=e.getBoundingClientRect(),n=t.bottom+4;n+42>window.innerHeight-8&&(n=t.top-4-42),n<8&&(n=8);let r=t.right-148;r<8&&(r=8),r+148>window.innerWidth-8&&(r=window.innerWidth-8-148),E(ot,{top:n,left:r},!0)}function rr(e,t){if(l(at)===e){tr();return}E(at,e,!0),nr(t)}function ir(e){let t=e.branch||`este reporte`;confirm(`¿Eliminar “${t}”? No se puede deshacer.`)&&(Re(e.id),E(it,Ve(),!0),tr())}var ar=Xt();x(`click`,o,()=>{l(at)&&tr()}),x(`keydown`,o,e=>{e.key===`Escape`&&tr()});let or;var sr=p(ar),cr=e=>{O(e,B())};f(sr,e=>{l(Xe)&&e(cr)});var lr=a(sr,2),ur=e=>{{let t=h(()=>l(J)||l(X).errorMessage||l(Y).status===`error`&&l(Y).statusMessage||``);st(e,{get info(){return l(Y)},get events(){return l(X).events},get busy(){return l(X).busy},get gone(){return l(X).gone},get error(){return l(t)},oncancel:()=>void ve({id:l(Y).id}),onreset:Tn,onrespondpermission:e=>void pe({id:l(Y).id,requestId:e.requestId,allow:e.allow,allowAll:e.allowAll,scope:e.scope}).then(e=>{E(Y,e,!0)}).catch(e=>{E(J,e instanceof Error?e.message:String(e),!0)}),onsessiontrust:e=>void xe({id:l(Y).id,enabled:e}).then(e=>{E(Y,e,!0)}).catch(e=>{E(J,e instanceof Error?e.message:String(e),!0)}),onretry:()=>{E(J,``),ge({id:l(Y).id}).then(e=>{E(Y,e,!0)}).catch(e=>{E(J,e instanceof Error?e.message:String(e),!0)})}})}},dr=e=>{{let t=h(()=>({id:``,agentId:l(ln).id,agentLabel:l(ln).label,model:l(sn)||``,repo:l(N).repo.trim(),branch:l(N).branch.trim(),base:l(N).base.trim()||`develop`,outputFilename:l(P),acpSessionId:``,status:`starting`,busy:!0}));st(e,{get info(){return l(t)},events:[],busy:!0,oncancel:()=>{},onreset:Tn})}},fr=e=>{{let t=h(()=>({id:``,agentId:``,agentLabel:`Agente`,model:``,repo:l(N).repo.trim(),branch:l(N).branch.trim(),base:l(N).base.trim()||`develop`,outputFilename:l(P),acpSessionId:``,status:`starting`,busy:!0}));st(e,{get info(){return l(t)},events:[],busy:!0,get error(){return l(J)},oncancel:()=>{},onreset:Tn})}},pr=e=>{var r=ut(),i=a(p(r),2),o=p(i,!0);D(i);var s=a(i,2),c=e=>{var t=lt(),r=p(t),i=p(r,!0);D(r),D(t),d(()=>n(i,l(P))),O(e,t)};f(s,e=>{l(P)&&e(c)});var u=a(s,2);D(r),d(()=>n(o,l(W)||en?`Abriendo el reporte…`:`Esperando el JSON de la review…`)),t(`click`,u,Tn),O(e,r)},mr=r=>{var i=Yt(),o=m(i),s=p(o);We(a(s,2),{}),D(o);var c=a(o,2),b=p(c),S=a(p(b),2),w=p(S);let te;var re=a(w,2);let k;D(S);var oe=a(S,2),se=p(oe),ce=e=>{var t=dt();ne(2),O(e,t)},le=e=>{O(e,u(`Carpeta local del repo. Podés pegar la ruta o elegirla con el diálogo del sistema. Git corre ahí
|
|
10
|
-
mismo (sirve para branches no pusheados).`))};f(se,e=>{l(N).source===`url`?e(ce):e(le,-1)}),D(oe);var ue=a(oe,2),j=e=>{var t=ft(),r=p(t,!0);D(t),d(()=>n(r,l(V))),O(e,t)};f(ue,e=>{l(V)&&e(j)});var de=a(ue,2),fe=e=>{var t=pt(),r=p(t);D(t),d(e=>n(r,`${e??``}.`),[()=>Ue(l(z).length,`branch encontrado`,`branches encontrados`)]),O(e,t)};f(de,e=>{l(z).length&&e(fe)});var pe=a(de,2),me=p(pe),he=p(me),ge=p(he,!0);D(he);var _e=a(he,2),M=p(_e);ie(M);var ve=a(M,2),ye=e=>{var r=mt(),i=p(r,!0);D(r),d(()=>{r.disabled=l(Qt)||l(Zt),n(i,l(Qt)?`Eligiendo…`:`Elegir…`)}),t(`click`,r,()=>void In()),O(e,r)};f(ve,e=>{l(N).source===`local`&&e(ye)});var be=a(ve,2),xe=p(be,!0);D(be),D(_e),D(me);var Ce=a(me,2),we=p(Ce),Te=a(p(we),2),Ee=e=>{var r=gt();_(r,20,()=>l(z),e=>e,(e,t)=>{var r=ht(),i=p(r,!0);D(r);var a={};d(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),O(e,r)}),D(r);var i;ae(r),d(()=>{i!==(i=l(N).branch)&&(r.value=(r.__value=l(N).branch)??``,y(r,l(N).branch))}),t(`change`,r,e=>Q({branch:e.currentTarget.value})),O(e,r)},De=e=>{var n=_t();ie(n),d(()=>C(n,l(N).branch)),t(`input`,n,e=>Q({branch:e.currentTarget.value})),O(e,n)};f(Te,e=>{l(z).length?e(Ee):e(De,-1)}),D(we);var Oe=a(we,2),ke=a(p(Oe),2),je=e=>{var r=gt();_(r,20,()=>l(z),e=>e,(e,t)=>{var r=ht(),i=p(r,!0);D(r);var a={};d(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),O(e,r)}),D(r);var i;ae(r),d(()=>{i!==(i=l(N).base)&&(r.value=(r.__value=l(N).base)??``,y(r,l(N).base))}),t(`change`,r,e=>Q({base:e.currentTarget.value})),O(e,r)},Me=e=>{var n=vt();ie(n),d(()=>C(n,l(N).base)),t(`input`,n,e=>Q({base:e.currentTarget.value})),O(e,n)};f(ke,e=>{l(z).length?e(je):e(Me,-1)}),D(Oe),D(Ce),D(pe);var Ne=a(pe,4),Pe=p(Ne),Fe=e=>{var n=yt();let r;d(()=>r=T(n,1,`svelte-1uha8ag`,null,r,{on:l(Ze)===`agent`})),t(`click`,n,()=>bn(`agent`)),O(e,n)};f(Pe,e=>{(l(on).length||l(X))&&e(Fe)});var Ie=a(Pe,2);let Le;D(Ne);var Re=a(Ne,2),ze=e=>{var r=wt(),i=m(r),o=a(p(i)),s=p(o,!0);D(o),ne(),D(i);var c=a(i,2),u=p(c);Se(a(p(u),2),{get options(){return l(on)},onchange:()=>E(sn,``),get value(){return l(q)},set value(e){E(q,e,!0)}}),D(u);var g=a(u,2),_=p(g),v=a(p(_)),y=e=>{O(e,bt())};f(v,e=>{l(mn)===`loading`&&e(y)}),D(_);var ee=a(_,2);{let e=h(()=>l(mn)===`loading`&&!l(ln)?.models.length);Ae(ee,{get options(){return l(pn)},get disabled(){return l(e)},get value(){return l(sn)},set value(e){E(sn,e,!0)}})}D(g),D(c);var b=a(c,2),x=e=>{var r=xt(),i=p(r),o=a(i);D(r),d(()=>n(i,`${l(hn)??``} `)),t(`click`,o,_n),O(e,r)},S=e=>{var n=St(),r=a(p(n));D(n),t(`click`,r,_n),O(e,n)};f(b,e=>{l(hn)?e(x):l(gn)&&e(S,1)});var C=a(b,2),w=p(C),te=p(w,!0);D(w),D(C);var T=a(C,2),re=e=>{O(e,Ct())};f(T,e=>{l(vn)||e(re)});var ie=a(T,2),ae=e=>{var t=ft(),r=p(t,!0);D(t),d(()=>n(r,l(J))),O(e,t)};f(ie,e=>{l(J)&&e(ae)}),d(()=>{n(s,l(P)),w.disabled=!l(vn)||l(cn)||!l(ln),n(te,l(cn)?`Lanzando…`:`Lanzar review`)}),t(`click`,w,()=>void wn()),O(e,r)},Ve=r=>{var i=Tt(),o=a(m(i),2);e(o);var s=a(o,2),c=p(s),u=p(c,!0);D(c),D(s),d(()=>{C(o,l(I)),n(u,l(Ye)?`Copiado ✓`:`Copiar prompt`)}),t(`input`,o,An),t(`click`,c,Mn),O(r,i)};f(Re,e=>{l(Ze)===`agent`&&(l(on).length||l(X))?e(ze):e(Ve,-1)});var F=a(Re,4),He=a(p(F)),Ge=p(He,!0);D(He);var Ke=a(He,4),qe=e=>{var t=Et();ne(2),O(e,t)},L=e=>{var t=Dt();ne(2),O(e,t)};f(Ke,e=>{l(yn)&&l($t)?e(qe):l(yn)&&e(L,1)}),D(F);var Je=a(F,2),Xe=e=>{var r=jt(),i=a(p(r)),o=p(i,!0);D(i);var s=a(i,2),c=e=>{O(e,Ot())},u=e=>{O(e,kt())},m=e=>{O(e,At())};f(s,e=>{l(K)?e(c):l($t)?e(u,1):e(m,-1)}),D(r),d(()=>n(o,l(G).filename)),t(`click`,i,()=>void Gn(l(G))),O(e,r)},Qe=e=>{var r=Mt(),i=a(p(r)),o=p(i,!0);D(i),D(r),d(()=>n(o,l(G).filename)),t(`click`,i,()=>void Gn(l(G))),O(e,r)},tt=e=>{var t=Nt(),r=a(p(t)),i=p(r,!0);D(r),ne(3),D(t),d(()=>n(i,l(P))),O(e,t)};f(Je,e=>{l(yn)&&l(G)&&l(G).filename===l(P)&&!l(U)&&!l(K)?e(Xe):l(yn)&&l(G)&&l(G).filename!==l(P)&&!l(U)?e(Qe,1):l(yn)&&!l(G)&&!l(U)&&!l(K)&&e(tt,2)});var st=a(Je,2),ct=e=>{O(e,Pt())};f(st,e=>{l(K)&&e(ct)});var B=a(st,2);let lt;var ut=p(B),Xt=p(ut),W=e=>{O(e,u(`Abriendo el reporte…`))},en=e=>{O(e,u(`Eligiendo archivo…`))},tn=e=>{O(e,u(`Importando JSON…`))},rn=e=>{O(e,u(`Arrastrá el archivo .json acá`))};f(Xt,e=>{l(U)?e(W):l(H)?e(en,1):l(K)?e(tn,2):e(rn,-1)}),D(ut);var an=a(ut,2),Y=p(an,!0);D(an);var un=a(an,2);g(un,e=>E(nn,e),()=>l(nn)),D(B);var dn=a(B,2),Z=r=>{var i=It(),o=p(i),s=p(o),c=p(s);D(s),ne(2),D(o);var u=a(o,2),f=a(p(u),2);_(f,20,()=>l(nt),e=>e,(e,t)=>{var r=Ft(),i=p(r,!0);D(r),d(()=>n(i,t)),O(e,r)}),D(f),D(u);var m=a(u,4);e(m);var h=a(m,2),g=p(h),v=p(g,!0);D(g);var y=a(g,2);D(h),D(i),d((e,t)=>{n(c,`El modelo dejó ${e??``} sin explicar`),C(m,t),n(v,l(rt)?`Copiado ✓`:`Copiar prompt de corrección`)},[()=>Ue(l(nt).length,`archivo`,`archivos`),()=>Be(l(N),l(nt),{outputFilename:l(P)})]),t(`click`,g,Nn),t(`click`,y,()=>void $n()),O(r,i)};f(dn,e=>{l(et)&&e(Z)});var fn=a(dn,2),xn=e=>{var t=Lt(),r=a(p(t),2);_(r,20,()=>l(R),e=>e,(e,t)=>{var r=Ft(),i=p(r,!0);D(r),d(()=>n(i,t)),O(e,r)}),D(r),D(t),O(e,t)};f(fn,e=>{l(R).length&&e(xn)}),D(b);var Sn=a(b,2),Cn=a(p(Sn),2),Tn=e=>{var r=qt();_(r,21,()=>l(it),e=>e.id,(e,r)=>{var i=Kt(),o=p(i),s=p(o),c=p(s),u=p(c,!0);D(c);var m=a(c,2),h=p(m,!0);D(m),D(s);var g=a(s,2),_=p(g),y=a(p(_));D(_);var b=a(_,2),x=p(b),S=p(x,!0);D(x);var C=a(x,2),w=e=>{var t=Rt(),i=p(t,!0);D(t),d(e=>n(i,e),[()=>Ue(l(r).blockerCount,`blocker`,`blockers`)]),O(e,t)};f(C,e=>{l(r).blockerCount&&e(w)});var te=a(C,2),ne=e=>{var t=zt(),i=p(t,!0);D(t),d(e=>n(i,e),[()=>Ue(l(r).qualityCount,`calidad`,`calidad`)]),O(e,t)};f(te,e=>{l(r).qualityCount&&e(ne)}),D(b),D(g);var T=a(g,2),E=e=>{var t=Ut(),i=p(t),o=e=>{var t=Bt(),i=p(t,!0);D(t),d(()=>n(i,l(r).agent)),O(e,t)};f(i,e=>{l(r).agent&&e(o)});var s=a(i,2),c=e=>{O(e,Vt())};f(s,e=>{l(r).agent&&l(r).model&&e(c)});var u=a(s,2),m=e=>{var t=Ht(),i=p(t,!0);D(t),d(()=>n(i,l(r).model)),O(e,t)};f(u,e=>{l(r).model&&e(m)}),D(t),d(e=>v(t,`title`,e),[()=>[l(r).agent,l(r).model].filter(Boolean).join(` · `)]),O(e,t)};f(T,e=>{(l(r).agent||l(r).model)&&e(E)});var re=a(T,2),ie=e=>{var t=Wt(),i=p(t,!0);D(t),d(()=>n(i,l(r).intent)),O(e,t)};f(re,e=>{l(r).intent&&e(ie)}),D(o);var ae=a(o,2),k=p(ae),oe=a(k,2),se=e=>{var n=Gt();let i;var a=p(n);D(n),d(()=>i=ee(n,``,i,{top:`${l(ot).top??``}px`,left:`${l(ot).left??``}px`})),t(`click`,a,e=>{e.stopPropagation(),ir(l(r))}),O(e,n)};f(oe,e=>{l(at)===l(r).id&&l(ot)&&e(se)}),D(ae),D(i),d((e,t,i)=>{v(o,`href`,e),n(u,l(r).branch||`—`),n(h,t),n(y,` ${(l(r).base||`develop`)??``}`),n(S,i),v(k,`aria-label`,`Más acciones para ${(l(r).branch||`reporte`)??``}`),v(k,`aria-expanded`,l(at)===l(r).id)},[()=>A(`/report/${l(r).id}`),()=>er(l(r).savedAt),()=>Ue(l(r).groupCount,`tema`,`temas`)]),t(`click`,k,e=>{e.preventDefault(),e.stopPropagation(),rr(l(r).id,e.currentTarget)}),O(e,i)}),D(r),O(e,r)},En=e=>{O(e,Jt())};f(Cn,e=>{l(it).length?e(Tn):e(En,-1)}),D(Sn),D(c),d(e=>{v(s,`href`,e),te=T(w,1,`svelte-1uha8ag`,null,te,{on:l(N).source===`local`}),k=T(re,1,`svelte-1uha8ag`,null,k,{on:l(N).source===`url`}),n(ge,l(N).source===`url`?`URL del repo`:`Repo`),v(M,`placeholder`,l(N).source===`url`?`https://github.com/org/repo.git`:`C:\\path\\to\\repo`),C(M,l(N).repo),be.disabled=l(Zt)||l(Qt),n(xe,l(Zt)?`Cargando…`:`Cargar`),Le=T(Ie,1,`svelte-1uha8ag`,null,Le,{on:l(Ze)===`full`}),n(Ge,l(P)),lt=T(B,1,`dropzone svelte-1uha8ag`,null,lt,{drag:l($e),busy:l(U)||l(H)||l(K)}),an.disabled=l(U)||l(H)||l(K),n(Y,l(H)?`Abriendo…`:`Elegir archivo`)},[()=>A(`/`)]),t(`click`,w,()=>kn(`local`)),t(`click`,re,()=>kn(`url`)),t(`input`,M,e=>Q({repo:e.currentTarget.value})),t(`keydown`,M,e=>{e.key===`Enter`&&(e.preventDefault(),Ln())}),t(`click`,be,()=>void Ln()),t(`click`,Ie,()=>bn(`full`)),x(`dragover`,B,Rn),x(`dragleave`,B,zn),x(`drop`,B,Bn),t(`click`,an,()=>void Vn()),t(`change`,un,Hn),x(`scroll`,Sn,()=>l(at)&&tr()),O(r,i)};f(lr,e=>{l(X)&&l(Y)?e(ur):l(cn)&&l(ln)?e(dr,1):l(fe)?e(fr,2):l(dn)?e(pr,3):e(mr,-1)}),D(ar),d(()=>or=T(ar,1,`page svelte-1uha8ag`,null,or,{live:l(un)||l(dn)})),O(r,ar),te()}S([`click`,`input`,`keydown`,`change`]);export{V as component};
|
|
Binary file
|
|
Binary file
|