@jpkme/diff-review 0.1.16 → 0.1.17
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/README.md +22 -14
- package/bin/diff-review.mjs +192 -21
- package/lib/acp.mjs +86 -10
- package/lib/agent-login.mjs +848 -36
- package/lib/agent-login.test.mjs +538 -0
- package/lib/agents.mjs +0 -39
- package/lib/agents.test.mjs +17 -24
- package/lib/extract-cache.test.mjs +162 -162
- package/lib/git.mjs +25 -9
- package/lib/model-label.mjs +20 -4
- package/lib/model-label.test.mjs +15 -2
- package/lib/prompt.mjs +12 -10
- package/lib/prompt.test.mjs +12 -0
- package/lib/review-meta.mjs +11 -3
- package/lib/review-meta.test.mjs +19 -2
- package/lib/review-prep.mjs +63 -63
- package/lib/validate.mjs +1 -1
- package/lib/wait-output.test.mjs +1 -1
- package/package.json +2 -2
- package/web/build/client/_app/immutable/assets/0.B04dzd8P.css +1 -0
- package/web/build/client/_app/immutable/assets/0.B04dzd8P.css.br +0 -0
- package/web/build/client/_app/immutable/assets/0.B04dzd8P.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/2.CQmxVXnC.css +1 -0
- package/web/build/client/_app/immutable/assets/2.CQmxVXnC.css.br +0 -0
- package/web/build/client/_app/immutable/assets/2.CQmxVXnC.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/3.BVJgADrM.css +1 -0
- package/web/build/client/_app/immutable/assets/3.BVJgADrM.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.BVJgADrM.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/storage.Ztmr3s84.css +1 -0
- package/web/build/client/_app/immutable/assets/storage.Ztmr3s84.css.br +0 -0
- package/web/build/client/_app/immutable/assets/storage.Ztmr3s84.css.gz +0 -0
- package/web/build/client/_app/immutable/chunks/B-2kfLeA.js +1 -0
- package/web/build/client/_app/immutable/chunks/B-2kfLeA.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/B-2kfLeA.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{DHO7NTh1.js → B4SiKXUO.js} +2 -2
- package/web/build/client/_app/immutable/chunks/B4SiKXUO.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/B4SiKXUO.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{CXhIC34H.js → DA0YnpGR.js} +3 -3
- package/web/build/client/_app/immutable/chunks/DA0YnpGR.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/DA0YnpGR.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{cYiFfRa3.js → Dv85Hz5p.js} +1 -1
- package/web/build/client/_app/immutable/chunks/Dv85Hz5p.js.br +2 -0
- package/web/build/client/_app/immutable/chunks/Dv85Hz5p.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/b-BaDYIc.js +215 -0
- package/web/build/client/_app/immutable/chunks/b-BaDYIc.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/b-BaDYIc.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/app.DPUME9Z_.js +2 -0
- package/web/build/client/_app/immutable/entry/app.DPUME9Z_.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.DPUME9Z_.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.hH87UZsD.js +1 -0
- package/web/build/client/_app/immutable/entry/start.hH87UZsD.js.br +0 -0
- package/web/build/client/_app/immutable/entry/start.hH87UZsD.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/0.BhHA-Ohy.js +1 -0
- package/web/build/client/_app/immutable/nodes/0.BhHA-Ohy.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/0.BhHA-Ohy.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/1.jjvGFUxu.js +1 -0
- package/web/build/client/_app/immutable/nodes/1.jjvGFUxu.js.br +2 -0
- package/web/build/client/_app/immutable/nodes/1.jjvGFUxu.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.CJTh6CGA.js +12 -0
- package/web/build/client/_app/immutable/nodes/2.CJTh6CGA.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.CJTh6CGA.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.DYAPRc_2.js +340 -0
- package/web/build/client/_app/immutable/nodes/3.DYAPRc_2.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.DYAPRc_2.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-8NUeB9cB.js +11 -0
- package/web/build/server/chunks/{0-D7NSxn1-.js.map → 0-8NUeB9cB.js.map} +1 -1
- package/web/build/server/chunks/1-BApN-ILJ.js +7 -0
- package/web/build/server/chunks/{1-DboYz8Fw.js.map → 1-BApN-ILJ.js.map} +1 -1
- package/web/build/server/chunks/2-Bq7iMeQx.js +7 -0
- package/web/build/server/chunks/2-Bq7iMeQx.js.map +1 -0
- package/web/build/server/chunks/3-W0cqofyE.js +7 -0
- package/web/build/server/chunks/{3-DgJ_LmTL.js.map → 3-W0cqofyE.js.map} +1 -1
- package/web/build/server/chunks/_server.ts-Bu1fdGSB.js +123 -0
- package/web/build/server/chunks/_server.ts-Bu1fdGSB.js.map +1 -0
- package/web/build/server/chunks/{_server.ts-CP5cRLhW.js → _server.ts-BuUNechu.js} +5 -4
- package/web/build/server/chunks/_server.ts-BuUNechu.js.map +1 -0
- package/web/build/server/chunks/{agent-sessions-2XGojSJ_.js → agent-sessions-BArYLTW6.js} +1023 -135
- package/web/build/server/chunks/agent-sessions-BArYLTW6.js.map +1 -0
- package/web/build/server/chunks/{git-review-jZ_JJYfv.js → git-review-BJ_JrFNP.js} +54 -21
- package/web/build/server/chunks/{git-review-jZ_JJYfv.js.map → git-review-BJ_JrFNP.js.map} +1 -1
- package/web/build/server/chunks/{handler-B_8yUXji.js → handler-Df_bJiCq.js} +3 -3
- package/web/build/server/chunks/{handler-B_8yUXji.js.map → handler-Df_bJiCq.js.map} +1 -1
- package/web/build/server/chunks/{hooks.server-rF_eBCff.js → hooks.server-BEl7rVad.js} +4 -3
- package/web/build/server/chunks/{hooks.server-rF_eBCff.js.map → hooks.server-BEl7rVad.js.map} +1 -1
- package/web/build/server/chunks/{index.js-CGw8_Q7V.js → index.js-Bb0CZLZ_.js} +4 -4
- package/web/build/server/chunks/index.js-Bb0CZLZ_.js.map +1 -0
- package/web/build/server/chunks/manifest.js-j442duM7.js +65 -0
- package/web/build/server/chunks/manifest.js-j442duM7.js.map +1 -0
- package/web/build/server/chunks/{remote-1g4ayag-BMpjk8UD.js → remote-1g4ayag-BxKnZQPn.js} +6 -6
- package/web/build/server/chunks/remote-1g4ayag-BxKnZQPn.js.map +1 -0
- package/web/build/server/chunks/{remote-wh6t6j-dYLCg8ks.js → remote-wh6t6j-B-AHrGaN.js} +44 -10
- package/web/build/server/chunks/remote-wh6t6j-B-AHrGaN.js.map +1 -0
- package/web/build/server/chunks/{validate-Da6e71V3.js → validate-CXjTRGnR.js} +34 -17
- package/web/build/server/chunks/validate-CXjTRGnR.js.map +1 -0
- package/web/build/client/_app/immutable/assets/0.BKRG1f36.css +0 -1
- package/web/build/client/_app/immutable/assets/0.BKRG1f36.css.br +0 -0
- package/web/build/client/_app/immutable/assets/0.BKRG1f36.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/2.C4whE4xz.css +0 -1
- package/web/build/client/_app/immutable/assets/2.C4whE4xz.css.br +0 -0
- package/web/build/client/_app/immutable/assets/2.C4whE4xz.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/3.DB-bJJq2.css +0 -1
- 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.BxR6930R.css +0 -1
- package/web/build/client/_app/immutable/assets/storage.BxR6930R.css.br +0 -0
- package/web/build/client/_app/immutable/assets/storage.BxR6930R.css.gz +0 -0
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js +0 -1
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js.br +0 -1
- package/web/build/client/_app/immutable/chunks/BLMWhW3J.js.gz +0 -0
- 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/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 +0 -215
- 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/cYiFfRa3.js.br +0 -1
- package/web/build/client/_app/immutable/chunks/cYiFfRa3.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/app.CCv57mvp.js +0 -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 +0 -1
- package/web/build/client/_app/immutable/entry/start.B012TSbW.js.br +0 -1
- package/web/build/client/_app/immutable/entry/start.B012TSbW.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/0.slrnBioC.js +0 -1
- 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 +0 -1
- 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 +0 -10
- 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 +0 -173
- 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/server/chunks/0-D7NSxn1-.js +0 -11
- package/web/build/server/chunks/1-DboYz8Fw.js +0 -7
- package/web/build/server/chunks/2-B7LX817Q.js +0 -7
- package/web/build/server/chunks/2-B7LX817Q.js.map +0 -1
- package/web/build/server/chunks/3-DgJ_LmTL.js +0 -7
- package/web/build/server/chunks/_server.ts-CP5cRLhW.js.map +0 -1
- package/web/build/server/chunks/agent-sessions-2XGojSJ_.js.map +0 -1
- package/web/build/server/chunks/index.js-CGw8_Q7V.js.map +0 -1
- package/web/build/server/chunks/manifest.js-CImZFS6G.js +0 -58
- package/web/build/server/chunks/manifest.js-CImZFS6G.js.map +0 -1
- package/web/build/server/chunks/remote-1g4ayag-BMpjk8UD.js.map +0 -1
- package/web/build/server/chunks/remote-wh6t6j-dYLCg8ks.js.map +0 -1
- package/web/build/server/chunks/validate-Da6e71V3.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BhHA-Ohy.js","../chunks/DA0YnpGR.js","../chunks/B-2kfLeA.js","../chunks/BZfQ9INH.js","../assets/0.B04dzd8P.css","../nodes/1.jjvGFUxu.js","../chunks/Dv85Hz5p.js","../chunks/B4SiKXUO.js","../nodes/2.CJTh6CGA.js","../chunks/b-BaDYIc.js","../assets/storage.Ztmr3s84.css","../assets/2.CQmxVXnC.css","../nodes/3.DYAPRc_2.js","../assets/3.BVJgADrM.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,O as s,Q as c,R as l,U as u,W as d,Y as f,Z as p,a as m,dt as h,i as g,k as _,n as v,ot as y,q as b,r as x,st as S,tt as C,x as w}from"../chunks/DA0YnpGR.js";import"../chunks/B-2kfLeA.js";var T=`modulepreload`,E=function(e,t){return new URL(e,t).href},D={},O=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=E(t,n),t=s(t),t in D)return;D[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:T,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},k={},A=e(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),j=e(`<!> <!>`,1);function M(e,x){S(x,!0);let T=g(x,`components`,23,()=>[]),E=g(x,`data_0`,3,null),D=g(x,`data_1`,3,null);d(()=>x.stores.page.set(x.page)),u(()=>{x.stores,x.page,x.constructors,T(),x.form,E(),D(),x.stores.page.notify()});let O=c(!1),k=c(!1),M=c(null);v(()=>{let e=x.stores.page.subscribe(()=>{i(O)&&(p(k,!0),l().then(()=>{p(M,document.title||`untitled page`,!0)}))});return p(O,!0),e});let N=C(()=>x.constructors[1]);var P=j(),F=a(P),I=e=>{let t=C(()=>x.constructors[0]);var n=_();w(a(n),()=>i(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return x.form},get params(){return x.page.params},children:(e,t)=>{var n=_();w(a(n),()=>i(N),(e,t)=>{m(t(e,{get data(){return D()},get form(){return x.form},get params(){return x.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)},L=e=>{let t=C(()=>x.constructors[0]);var n=_();w(a(n),()=>i(t),(e,t)=>{m(t(e,{get data(){return E()},get form(){return x.form},get params(){return x.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)};n(F,e=>{x.constructors[1]?e(I):e(L,-1)});var R=f(F,2),z=e=>{var a=A(),c=b(a),l=e=>{var n=o();r(()=>t(n,i(M))),s(e,n)};n(c,e=>{i(k)&&e(l)}),h(a),s(e,a)};n(R,e=>{i(O)&&e(z)}),s(e,P),y()}var N=x(M),P=[()=>O(()=>import(`../nodes/0.BhHA-Ohy.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>O(()=>import(`../nodes/1.jjvGFUxu.js`),__vite__mapDeps([5,1,2,6,7]),import.meta.url),()=>O(()=>import(`../nodes/2.CJTh6CGA.js`),__vite__mapDeps([8,1,7,9,2,3,10,6,11]),import.meta.url),()=>O(()=>import(`../nodes/3.DYAPRc_2.js`),__vite__mapDeps([12,1,7,9,2,3,10,13]),import.meta.url)],F=[],I={"/":[2],"/report/[id]":[3]},L={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},R=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.decode])),z=Object.fromEntries(Object.entries(L.transport).map(([e,t])=>[e,t.encode])),B=!1,V=(e,t)=>R[e](t),H=()=>O(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{V as decode,R as decoders,I as dictionary,z as encoders,H as get_error_template,B as hash,L as hooks,k as matchers,P as nodes,N as root,F as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,y as t}from"../chunks/B4SiKXUO.js";export{t as load_css,e as start};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,D as n,G as r,H as i,J as a,N as o,O as s,P as c,S as l,Y as u,b as d,dt as f,gt as p,k as m,n as h,nt as g,ot as _,pt as v,q as y,st as b}from"../chunks/DA0YnpGR.js";import"../chunks/B-2kfLeA.js";import{n as x,t as S}from"../chunks/BZfQ9INH.js";var C=p({ssr:()=>!1}),w=e(`<div class="boot svelte-12qhfyh">Cargando…</div>`),T=e(`<div class="boot svelte-12qhfyh"><p> </p> <button type="button" class="svelte-12qhfyh">Reintentar</button></div>`);function E(e,o){b(o,!0),h(()=>{S(x())});var p=m();d(`12qhfyh`,e=>{t(()=>{r.title=`diff-review`})}),g(a(p),{pending:e=>{s(e,w())},failed:(e,t=v,r=v)=>{var a=T(),o=y(a),l=y(o,!0);f(o);var d=u(o,2);f(a),i(e=>n(l,e),[()=>t()instanceof Error?t().message:String(t())]),c(`click`,d,function(...e){r()?.apply(this,e)}),s(e,a)}},e=>{var t=m();l(a(t),()=>o.children),s(e,t)}),s(e,p),_()}o([`click`]);export{E as component,C as universal};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,D as t,H as n,J as r,O as i,Y as a,dt as o,ot as s,q as c,st as l}from"../chunks/DA0YnpGR.js";import"../chunks/B-2kfLeA.js";import{t as u}from"../chunks/Dv85Hz5p.js";var d=e(`<h1> </h1> <p> </p>`,1);function f(e,f){l(f,!0);var p=d(),m=r(p),h=c(m,!0);o(m);var g=a(m,2),_=c(g,!0);o(g),n(()=>{t(h,u.status),t(_,u.error?.message)}),i(e,p),s()}export{f as component};
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,F as r,H as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,U as p,X as m,Y as h,Z as g,a as _,c as v,d as y,dt as b,g as x,h as S,i as C,l as w,m as T,n as E,ot as ee,p as D,q as O,rt as te,s as k,st as ne,tt as A,ut as j,w as M,z as N}from"../chunks/DA0YnpGR.js";import{n as re,o as ie,x as ae}from"../chunks/B4SiKXUO.js";import{A as oe,B as se,D as ce,E as P,F,Ft as le,G as I,H as ue,I as de,J as fe,N as pe,O as me,P as L,Q as he,R as ge,T as _e,Tt as ve,V as ye,W as be,X as xe,Z as Se,_t as Ce,a as we,at as Te,c as Ee,ct as De,dt as Oe,et as ke,g as Ae,h as je,it as Me,j as Ne,k as Pe,lt as Fe,nt as Ie,o as Le,ot as Re,p as ze,q as Be,r as Ve,rt as He,st as Ue,tt as We,ut as Ge,w as Ke,wt as qe,yt as Je,z as Ye}from"../chunks/b-BaDYIc.js";import"../chunks/B-2kfLeA.js";import{t as Xe}from"../chunks/Dv85Hz5p.js";function R(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 Ze(e){let t=e.files??[];if(!t.length)return[];let n=new Set((e.blocks??[]).map(e=>e.file)),r=(e.skipped??[]).map(e=>R(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 Qe=e(`<div><dt class="svelte-18urbyr">Cuenta</dt> <dd class="account-dd svelte-18urbyr"><!></dd></div>`),$e=e(`<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>`),z=e(`<div class="center svelte-18urbyr"><div class="spinner svelte-18urbyr" aria-hidden="true"></div> <p class="title svelte-18urbyr">Abriendo el reporte…</p></div>`),et=e(`<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>`),tt=e(`<div class="copilot-host-pick svelte-18urbyr"><p class="auth-note svelte-18urbyr">¿Con qué cuenta de GitHub?</p> <div class="auth-actions svelte-18urbyr"><button type="button" class="primary svelte-18urbyr">GitHub.com</button> <button type="button" class="ghost svelte-18urbyr">Volver</button></div> <label class="copilot-host-field svelte-18urbyr"><span>Enterprise (hostname)</span> <input type="text" placeholder="empresa.ghe.com" autocomplete="off" class="svelte-18urbyr"/></label> <div class="auth-actions svelte-18urbyr"><button type="button" class="primary svelte-18urbyr">Continuar con Enterprise</button></div> <p class="auth-note svelte-18urbyr">En github.com, si tenés varias cuentas, elegí la corporativa en el browser del OAuth.</p></div>`),nt=e(`<button type="button" class="ghost svelte-18urbyr" title="Cierra la sesión actual (incluye GitHub CLI si es Copilot) y permite elegir otra cuenta">Cambiar cuenta</button>`),rt=e(`<button type="button" class="ghost svelte-18urbyr">Reintentar</button>`),it=e(`<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>`),at=e(`<p class="auth-note svelte-18urbyr"> </p>`),ot=e(`<p class="auth-err svelte-18urbyr"> </p>`),B=e(`<!> <!> <!>`,1),V=e(`<button type="button" class="primary svelte-18urbyr">Reintentar</button>`),st=e(`<div class="auth-actions svelte-18urbyr"><!> <button type="button" class="ghost svelte-18urbyr">Nueva review</button></div>`),ct=e(`<div class="center fail svelte-18urbyr"><p class="title svelte-18urbyr"> </p> <p class="detail svelte-18urbyr"><!></p> <!></div>`),H=e(`<small class="svelte-18urbyr"> </small>`),U=e(`<p class="detail svelte-18urbyr"> </p>`),W=e(`<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>`),lt=e(`<footer class="stage-footer svelte-18urbyr"><!> <span class="footer-spacer svelte-18urbyr"></span> <!></footer>`),G=e(`<header class="stage-header svelte-18urbyr"><!> <strong class="svelte-18urbyr"> </strong> <!></header> <div class="log-wrap svelte-18urbyr"><!> <!> <!></div>`,1),ut=e(`<section class="live svelte-18urbyr" aria-label="Review en vivo"><header class="app-header bar svelte-18urbyr"><div class="brand svelte-18urbyr"><span class="app-brand"><!> <span>diff-review</span></span> <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="branch-base svelte-18urbyr"><span class="branch svelte-18urbyr"> </span> <span class="arrow svelte-18urbyr">→</span> <span class="base 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 dt(e,r){ne(r,!0);let s=C(r,`busy`,3,!1),l=C(r,`gone`,3,!1),p=C(r,`error`,3,``),m=f(!1),_=f(``),y=f(``),S=f(!1),T=f(0),E=f(!1),D=f(``),te=f(!1),M=A(()=>r.events.some(e=>e.type===`user`||e.type===`tool`||e.type===`text`||e.type===`plan`||e.type===`permission`)),N=A(()=>r.events.some(e=>e.type===`tool`||e.type===`text`||e.type===`plan`)),re=A(()=>{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`&&a(M)&&(e=`agent`),{current:e,detail:t}}),ie=A(()=>{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``}),ae=A(()=>{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}),se=A(()=>a(te)||a(ae)),P=A(()=>{for(let e=r.events.length-1;e>=0;e--){let t=r.events[e];if(t.type===`status`){if(t.status===`error`||t.status===`needs_auth`)return t.message||p()||`Error del agente.`;if(t.status===`starting`||t.status===`working`||t.status===`idle`)break}}return r.info.status===`error`||r.info.status===`needs_auth`?p()||r.info.statusMessage||`Error del agente.`:p()&&!s()?p():``}),le=A(()=>{if(r.info.status===`needs_auth`)return!0;for(let e=r.events.length-1;e>=0;e--){let t=r.events[e];if(t.type===`status`){if(t.status===`needs_auth`)return!0;if(t.status===`starting`||t.status===`working`||t.status===`idle`||t.status===`error`)return!1}}return!1}),ue=A(()=>a(le)||/autenticad|authentication|login|iniciar sesi[oó]n|inicio de sesi[oó]n/i.test(a(P))),fe=A(()=>a(ue)&&[`claude`,`copilot`,`cursor`].includes(r.info.agentId)),L=A(()=>a(P)?`error`:l()?`gone`:a(se)&&!s()?`cancelled`:r.events.some(e=>e.type===`review`&&e.ok)?`opening`:a(N)?`reviewing`:a(re).current===`agent`||/Lanzando/i.test(a(ie))||a(M)&&!a(N)?`launching`:`diff`),he=A(()=>a(P)?`error`:s()?`en curso`:l()?`sesión cerrada`:a(se)?`cancelado`:`listo`),ge=A(()=>a(P)?`error`:s()?`busy`:l()?`gone`:`idle`);function _e(e){if(e&&typeof e==`object`){let t=e.body;if(t&&typeof t.message==`string`&&t.message.trim())return t.message.trim()}let t=(e instanceof Error?e.message:String(e??``)).trim();if(t.startsWith(`{`))try{let e=JSON.parse(t);if(typeof e?.message==`string`&&e.message.trim())return e.message.trim()}catch{}return t}let ve=A(()=>a(S)&&(r.info.agentId===`copilot`||r.info.agentId===`claude`));function ye(){if(g(y,``),g(_,``),r.info.agentId===`copilot`){g(E,!0);return}Se()}async function xe(){g(m,!0),g(y,``),g(_,``);try{let e=await I({agentId:r.info.agentId,...r.info.id?{id:r.info.id}:{}});g(_,e.hint,!0),e.warnings?.length&&g(y,e.warnings.join(` `),!0),e.ok&&g(S,!1),g(T,a(T)+1),r.info.agentId===`copilot`?g(E,!0):Se()}catch(e){let t=_e(e);t&&g(y,t,!0)}finally{g(m,!1)}}async function Se(e){g(E,!1),g(m,!0),g(y,``),g(_,``);try{let t=await be({agentId:r.info.agentId,...r.info.id?{id:r.info.id}:{},...r.info.agentId===`copilot`?{host:e??``}:{}});t.resumed?g(_,`Inicio de sesión ok. Reintentando…`):(g(_,t.hint||`Esperando que completes el inicio de sesión…`,!0),r.onretry?.())}catch(e){let t=_e(e);t&&t!==a(P)&&g(y,t,!0)}finally{g(m,!1),g(T,a(T)+1)}}let Ce=A(()=>{let e=r.info.repo.replace(/\\/g,`/`),t=e.split(`/`);return t.length>2?`…/${t.slice(-2).join(`/`)}`:e}),we=A(()=>r.events.filter(e=>!(e.type===`phase`||e.type===`user`&&e.mode===`review`))),Te=f(0),Ee=A(()=>a(we).filter(e=>e.type===`permission`&&e.pending)),De=A(()=>a(Ee).length===0?0:Math.min(a(Te),a(Ee).length-1)),Oe=A(()=>a(Ee)[a(De)]??null),ke=A(()=>!!(r.info.id&&r.onsessiontrust)||!!(a(Oe)&&r.onrespondpermission));function Ae(e){let t=a(Ee).length;t<=1||(e.key===`ArrowLeft`?(e.preventDefault(),g(Te,(a(De)+t-1)%t)):e.key===`ArrowRight`&&(e.preventDefault(),g(Te,(a(De)+1)%t)))}function je(e){r.onrespondpermission?.(e)}let Me=A(()=>/Lanzando/i.test(a(ie))||/revisando/i.test(a(ie))?a(ie):`Lanzando ${r.info.agentLabel}…`),Fe=A(()=>a(re).detail&&a(re).current===`agent`&&a(re).detail!==a(Me)?a(re).detail:``),Ie=A(()=>!a(se)&&(a(L)===`diff`||a(L)===`launching`||a(L)===`reviewing`||a(L)===`opening`||s()));function Le(){if(a(Ie)){r.info.id?(g(te,!0),r.oncancel()):r.onreset();return}r.onreset()}var Re=ut(),ze=O(Re),Be=O(ze),Ve=O(Be);pe(O(Ve),{size:16}),j(2),b(Ve);var He=h(Ve,2);let Ue;var We=O(He,!0);b(He),b(Be);var Ge=h(Be,2),Ke=O(Ge),qe=O(Ke,!0);b(Ke),Ne(h(Ke,2),{}),b(Ge),b(ze);var Je=h(ze,2),Ye=O(Je),Xe=O(Ye),R=O(Xe),Ze=h(O(R),2),dt=O(Ze,!0);b(Ze),b(R);var ft=h(R,2),pt=h(O(ft),2),mt=O(pt),ht=O(mt,!0);b(mt);var gt=h(mt,4),_t=O(gt,!0);b(gt),b(pt),b(ft);var vt=h(ft,2),yt=h(O(vt),2),bt=O(yt,!0);b(yt),b(vt);var xt=h(vt,2),St=e=>{var t=Qe(),n=h(O(t),2),i=O(n);{let e=A(()=>!a(fe));oe(i,{get agentId(){return r.info.agentId},get agentLabel(){return r.info.agentLabel},get sessionId(){return r.info.id},get showActions(){return a(e)},get refreshToken(){return a(T)},onaccount:e=>g(S,e,!0),onafterauth:()=>r.onretry?.()})}b(n),b(t),u(e,t)};n(xt,e=>{r.info.agentId&&e(St)});var Ct=h(xt,2),wt=h(O(Ct),2),Tt=O(wt,!0);b(wt),b(Ct);var Et=h(Ct,2),Dt=h(O(Et),2),Ot=O(Dt,!0);b(Dt),b(Et),b(Xe),j(2),b(Ye);var kt=h(Ye,2),At=O(kt),jt=e=>{var n=$e(),r=h(O(n),4),o=O(r,!0);b(r),j(2),b(n),i(()=>t(o,a(re).detail)),u(e,n)},Mt=e=>{u(e,z())},Nt=e=>{var t=et(),n=h(O(t),4),i=O(n);b(n),b(t),d(`click`,i,function(...e){r.onreset?.apply(this,e)}),u(e,t)},Pt=e=>{var l=ct(),f=O(l),p=O(f,!0);b(f);var x=h(f,2),S=O(x),C=e=>{var n=c();i(()=>t(n,`Necesitás iniciar sesión en ${r.info.agentLabel??``}.`)),u(e,n)},T=e=>{var n=c();i(()=>t(n,a(P))),u(e,n)},ee=e=>{u(e,c(`La sesión del agente se cerró. Podés empezar una nueva review.`))};n(S,e=>{a(ue)&&!a(P)?e(C):a(P)?e(T,1):e(ee,-1)}),b(x);var te=h(x,2),ne=e=>{var c=B(),l=o(c),f=e=>{var t=tt(),n=h(O(t),2),r=O(n),o=h(r,2);b(n);var s=h(n,2),c=h(O(s),2);v(c),b(s);var l=h(s,2),f=O(l);b(l),j(2),b(t),i(e=>f.disabled=e,[()=>!a(D).trim()]),d(`click`,r,()=>void Se(``)),d(`click`,o,()=>g(E,!1)),k(c,()=>a(D),e=>g(D,e)),d(`click`,f,()=>void Se(a(D).trim())),u(e,t)},p=e=>{var o=it(),c=O(o),l=O(c,!0);b(c);var f=h(c,2),p=e=>{var t=nt();i(()=>t.disabled=a(m)||s()),d(`click`,t,()=>void xe()),u(e,t)};n(f,e=>{a(ve)&&e(p)});var g=h(f,2),_=e=>{var t=rt();i(()=>t.disabled=s()||a(m)),d(`click`,t,()=>r.onretry?.()),u(e,t)};n(g,e=>{r.info.id&&r.onretry&&e(_)});var v=h(g,2);b(o),i(()=>{c.disabled=a(m)||s(),w(c,`title`,r.info.agentLabel?`Iniciar sesión en ${r.info.agentLabel}`:void 0),t(l,a(m)?`Esperando que completes el inicio de sesión…`:`Iniciar sesión en ${r.info.agentLabel||`el agente`}`)}),d(`click`,c,()=>ye()),d(`click`,v,function(...e){r.onreset?.apply(this,e)}),u(e,o)};n(l,e=>{a(E)&&!a(m)?e(f):e(p,-1)});var x=h(l,2),S=e=>{var n=at(),r=O(n,!0);b(n),i(()=>t(r,a(_))),u(e,n)};n(x,e=>{a(_)&&e(S)});var C=h(x,2),T=e=>{var n=ot(),r=O(n,!0);b(n),i(()=>t(r,a(y))),u(e,n)};n(C,e=>{a(y)&&a(y)!==a(P)&&e(T)}),u(e,c)},A=e=>{var t=st(),o=O(t),c=e=>{var t=V();i(()=>t.disabled=s()),d(`click`,t,()=>r.onretry?.()),u(e,t)};n(o,e=>{r.info.id&&r.onretry&&a(ue)&&e(c)});var l=h(o,2);b(t),d(`click`,l,function(...e){r.onreset?.apply(this,e)}),u(e,t)};n(te,e=>{a(fe)?e(ne):a(L)===`error`&&e(A,1)}),b(l),i(()=>t(p,a(L)===`gone`&&!a(P)?`Sesión cerrada`:a(ue)?`Autenticación requerida`:`Error`)),u(e,l)},Ft=e=>{var c=G(),l=o(c),d=O(l);F(d,{get id(){return r.info.agentId},size:16});var f=h(d,2),p=O(f,!0);b(f);var m=h(f,2),_=e=>{var n=H(),a=O(n,!0);b(n),i(()=>{w(n,`title`,r.info.model),t(a,r.info.model)}),u(e,n)};n(m,e=>{r.info.model&&e(_)}),b(l);var v=h(l,2),y=O(v),x=e=>{var r=W(),o=h(O(r),2),s=O(o),c=O(s,!0);b(s);var l=h(s,2),d=e=>{var n=U(),r=O(n,!0);b(n),i(()=>t(r,a(Fe))),u(e,n)};n(l,e=>{a(Fe)&&e(d)}),b(o),b(r),i(()=>t(c,a(Me))),u(e,r)};n(y,e=>{a(L)===`launching`&&e(x)});var S=h(y,2);me(S,{get events(){return a(we)},get busy(){return s()},get sessionId(){return r.info.id},get onrespondpermission(){return r.onrespondpermission},get onretry(){return r.onretry},actionsExternal:!0,get pendingCursor(){return a(Te)},set pendingCursor(e){g(Te,e,!0)}});var C=h(S,2),T=e=>{var t=lt(),i=O(t),o=e=>{{let t=A(()=>!!r.info.sessionTrust);ce(e,{get enabled(){return a(t)},get onchange(){return r.onsessiontrust}})}};n(i,e=>{r.info.id&&r.onsessiontrust&&e(o)});var s=h(i,4),c=e=>{Pe(e,{get currentPending(){return a(Oe)},get pendingCount(){return a(Ee).length},onrespond:je,onkeydown:Ae})};n(s,e=>{a(Oe)&&r.onrespondpermission&&e(c)}),b(t),u(e,t)};n(C,e=>{a(ke)&&e(T)}),b(v),i(e=>t(p,e),[()=>de(r.info.agentId,r.info.agentLabel)]),u(e,c)};n(At,e=>{a(L)===`diff`?e(jt):a(L)===`opening`?e(Mt,1):a(L)===`cancelled`?e(Nt,2):a(L)===`error`||a(L)===`gone`?e(Pt,3):e(Ft,-1)}),b(kt),b(Je),b(Re),i(()=>{Ue=x(He,1,`pill svelte-18urbyr`,null,Ue,{busy:a(ge)===`busy`,error:a(ge)===`error`,gone:a(ge)===`gone`}),t(We,a(he)),t(qe,a(Ie)?`Cancelar`:`Nueva review`),w(Ze,`title`,r.info.repo),t(dt,a(Ce)),w(pt,`title`,`${r.info.branch} → ${r.info.base}`),t(ht,r.info.branch),t(_t,r.info.base),t(bt,r.info.agentLabel),t(Tt,r.info.model||`por defecto`),w(Dt,`title`,r.info.outputFilename),t(Ot,r.info.outputFilename),w(kt,`aria-busy`,s())}),d(`click`,Ke,Le),u(e,Re),ee()}l([`click`]);function ft(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 pt=e(`<div class="toast svelte-1uha8ag" role="status">Prompt copiado al portapapeles.</div>`),mt=e(`<div class="diff-backdrop svelte-1uha8ag" role="presentation"></div> <div class="confirm-dialog svelte-1uha8ag" role="alertdialog" aria-modal="true" tabindex="-1" aria-labelledby="relaunch-title" aria-describedby="relaunch-desc"><h2 id="relaunch-title" class="svelte-1uha8ag">¿Relanzar la misma review?</h2> <p id="relaunch-desc" class="svelte-1uha8ag">Ya hay un reporte para estos commits con ese agente y modelo
|
|
2
|
+
(<code class="svelte-1uha8ag"> </code><!>). Relanzar va a
|
|
3
|
+
volver a ejecutarlo y puede sobrescribir el resultado.</p> <div class="confirm-actions svelte-1uha8ag"><button type="button" class="svelte-1uha8ag">Cancelar</button> <button type="button" class="primary svelte-1uha8ag">Relanzar</button></div></div>`,1),ht=e(`<code class="diff-modal-file svelte-1uha8ag"> </code>`),gt=e(`<div class="diff-backdrop svelte-1uha8ag" role="presentation"><div class="diff-modal svelte-1uha8ag" role="alertdialog" aria-modal="true" aria-busy="true" aria-labelledby="diff-modal-title"><div class="diff-spinner svelte-1uha8ag" aria-hidden="true"></div> <p id="diff-modal-title" class="svelte-1uha8ag">Abriendo el reporte…</p> <!></div></div>`),_t=e(`<p class="cli-wait-detail svelte-1uha8ag"><code> </code></p>`),vt=e(`<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>`),yt=e(`URL del remote (https / SSH). Al cargar se listan branches con <code class="svelte-1uha8ag">ls-remote</code>; al soltar el
|
|
4
|
+
JSON se hace un clone shallow temporal para armar el diff. Requiere que el branch esté en el remote.`,1),bt=e(`<p class="error-line svelte-1uha8ag"> </p>`),xt=e(`<p class="ok-line svelte-1uha8ag"> </p>`),St=e(`<button type="button" class="svelte-1uha8ag"> </button>`),Ct=e(`<option> </option>`),wt=e(`<select class="svelte-1uha8ag"></select>`),Tt=e(`<input type="text" placeholder="feature/PCM-14839" class="svelte-1uha8ag"/>`),Et=e(`<input type="text" placeholder="develop" class="svelte-1uha8ag"/>`),Dt=e(`<button type="button">Lanzar agente</button>`),Ot=e(`<small class="loading-models svelte-1uha8ag">· consultando modelos (puede tardar)…</small>`),kt=e(`<p class="error-line models-error svelte-1uha8ag"> <button type="button" class="linkish svelte-1uha8ag">Reintentar</button></p>`),At=e(`<p class="hint-text models-error svelte-1uha8ag">El agente no devolvió modelos; usá el default o la lista fija. <button type="button" class="linkish svelte-1uha8ag">Reintentar</button></p>`),jt=e(`<span class="btn-spinner svelte-1uha8ag" aria-hidden="true"></span> Lanzando…`,1),Mt=e(`<p class="hint-text svelte-1uha8ag">Elegí un repo local y un branch distinto de la base.</p>`),Nt=e(`<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
|
|
5
|
+
un resultado válido. Solo puede leer el repo, correr comandos de solo lectura (git, grep, cat…) y
|
|
6
|
+
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),Pt=e(`<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),Ft=e(`Con repo local, si el archivo aparece en <code class="svelte-1uha8ag">.diff-review/</code> (o en la raíz, formato viejo) lo
|
|
7
|
+
abrimos solos.`,1),It=e(`Con repo local, si el archivo está en <code class="svelte-1uha8ag">.diff-review/</code> (o en la raíz) podés abrirlo desde
|
|
8
|
+
acá.`,1),Lt=e(`<small class="svelte-1uha8ag">· se abre solo</small>`),Rt=e(`<span class="detect-open-meta svelte-1uha8ag"> </span>`),zt=e(`<button type="button"><span class="detect-open-text svelte-1uha8ag"><span class="detect-open-label svelte-1uha8ag"> <!></span> <code class="svelte-1uha8ag"> </code> <!></span> <span class="detect-open-cta svelte-1uha8ag">Abrir</span> <svg class="detect-open-chevron svelte-1uha8ag" viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path d="M6 3.5 10.5 8 6 12.5" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"></path></svg></button>`),Bt=e(`<p class="detect-wait svelte-1uha8ag">Esperando <code> </code> en <code>.diff-review/</code>…</p>`),Vt=e(`<p class="detect-wait svelte-1uha8ag">Detecté el JSON — abriendo reporte…</p>`),Ht=e(`<li> </li>`),Ut=e(`<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
|
|
9
|
+
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>`),Wt=e(`<div class="drop-errors svelte-1uha8ag"><strong class="svelte-1uha8ag">No se pudo abrir el reporte:</strong> <ul class="svelte-1uha8ag"></ul></div>`),Gt=e(`<span class="pill bad svelte-1uha8ag"> </span>`),Kt=e(`<span class="pill svelte-1uha8ag"> </span>`),qt=e(`<span class="prov-agent svelte-1uha8ag"> </span>`),Jt=e(`<span class="prov-sep svelte-1uha8ag">·</span>`),Yt=e(`<span class="prov-model svelte-1uha8ag"> </span>`),Xt=e(`<span class="report-prov svelte-1uha8ag"><!> <!> <!></span>`),Zt=e(`<p class="report-intent svelte-1uha8ag"> </p>`),Qt=e(`<div class="report-menu svelte-1uha8ag" role="menu" tabindex="-1"><button type="button" class="menu-item danger svelte-1uha8ag" role="menuitem">Eliminar…</button></div>`),$t=e(`<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>`),en=e(`<ul class="report-list svelte-1uha8ag"></ul>`),tn=e(`<p class="hint-text svelte-1uha8ag">Todavía no hay reportes. Lanzá el agente o copiá el prompt y abrí el JSON acá.</p>`),nn=e(`<header class="app-header topbar svelte-1uha8ag"><a class="app-brand"><!> <span>diff-review</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.
|
|
10
|
+
También podés soltar o elegir el <code class="svelte-1uha8ag"> </code> a mano. Si trae <code class="svelte-1uha8ag">meta</code>, se
|
|
11
|
+
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),rn=e(`<div><!> <!> <!> <!></div>`);function an(e,l){ne(l,!0);function C(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 k=C(Xe.url),oe=f(m(!!(k.agentId||k.import||k.watch))),ce=f(m(k.agentId)),F=f(m({source:`local`,repo:``,branch:``,base:`develop`})),I=f(m(k.out&&qe(k.out)?k.out:ve({}))),de=f(``),me=f(!1),be=f(!1),Pe=f(!1),R=f(`full`),Qe=f(!1),$e=f(!1),z=f(m([])),et=f(null),tt=f(null),nt=f(m([])),rt=f(!1),it=f(m([])),at=f(null),ot=f(null),B=f(m([])),V=f(``),st=f(!1),ct=f(!1),H=f(!1),U=f(!1),W=f(m(k.import)),lt=f(m(k.watch)),G=f(!1),ut=f(``),an=f(null),K=f(null),on=f(!1),q=f(!1),sn=f(``),cn=0,ln=f(m([])),un=f(``),dn=f(``),fn=f(!1),J=f(``),Y=f(null),X=f(null),pn=A(()=>a(ln).find(e=>e.id===a(un))??null),mn=A(()=>!!(a(X)&&a(Y)||a(fn)&&a(pn)||a(ce))),hn=A(()=>a(oe)&&!a(mn)),Z=f(m({})),gn=f(m({})),_n=A(()=>{let e=a(Z)[a(un)],t={options:a(pn)?.models??[],initialValue:``};return e===`loading`||e===void 0?[{value:``,label:`Cargando modelos…`,title:`Cargando modelos…`,badges:[]}]:e.models.length?Ke({models:e.models,currentModel:e.currentModel},t).options:_e(t.options.map(e=>({value:e.value,label:e.label,title:e.label,badges:[],...e.hint?{hint:e.hint}:{}})))}),vn=A(()=>a(Z)[a(un)]),yn=A(()=>a(vn)&&a(vn)!==`loading`?a(vn).error:void 0),bn=A(()=>!!(a(vn)&&a(vn)!==`loading`&&!a(vn).error&&!a(vn).models.length));p(()=>{let e=a(un);if(a(R)!==`agent`||!e||e in N(()=>a(Z)))return;let t=!!N(()=>a(gn)[e]);g(Z,{...N(()=>a(Z)),[e]:`loading`},!0),Ye({agentId:e,repo:N(()=>a(F).repo),force:t}).then(n=>{g(Z,{...a(Z),[e]:n},!0),t&&g(gn,{...a(gn),[e]:!1},!0)})});function xn(){let e=a(un);if(!e||a(Z)[e]===`loading`)return;g(gn,{...a(gn),[e]:!0},!0);let t={...a(Z)};delete t[e],g(Z,t,!0)}let Sn=A(()=>a(F).source===`local`&&$(a(F).repo)&&!!a(F).branch.trim()&&a(F).branch!==a(F).base),Cn=A(()=>a(F).source===`local`&&$(a(F).repo));function wn(e){g(Qe,!0),g(R,e,!0)}E(()=>{let e=Le();g(F,e,!0),g(ut,we()||(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`,o=t.get(`out`)?.trim(),s=t.get(`agent`)?.trim();g(lt,r),n&&g(W,!0),o&&qe(o)&&g(I,o,!0),g(de,Je(a(F),{outputFilename:a(I)}),!0),g(it,Ee(),!0),(n||r||i||o||s)&&Ln(),Tn(),s&&En(s),Rn(e,{wantImport:n,wantWatch:r,wantNotify:i,keepOutName:!!(o&&qe(o))});let c=setInterval(()=>{tr({auto:!0})},1500);return()=>{clearInterval(c),a(X)?.close()}});async function Tn(){try{g(ln,await se(),!0),a(ln).some(e=>e.id===a(un))||g(un,a(ln)[0]?.id??``,!0),!a(Qe)&&a(ln).length>0&&a(R)!==`agent`&&g(R,`agent`)}catch{g(ln,[],!0)}}async function En(e,t){g(R,`agent`),g(J,``);let n=t??null;if(!n)for(let t=0;t<30&&(n=await ye({id:e}).catch(()=>null),!n);t++)await new Promise(e=>setTimeout(e,100));if(!n){g(J,`La sesión del agente ya no existe (¿se reinició diff-review?).`),g(ce,``);return}(n.status===`error`||n.status===`needs_auth`)&&n.statusMessage&&g(J,n.statusMessage,!0),g(Y,n,!0),g(ce,``),a(X)?.close();let r=new ge(e,e=>void Dn(e));g(X,r,!0),r.connect()}async function Dn(e){if(e.type===`status`&&(e.status===`error`||e.status===`needs_auth`)){g(J,e.message||a(J)||`Error del agente.`,!0),a(Y)&&g(Y,{...a(Y),status:e.status,statusMessage:a(J)},!0);return}if(e.type===`status`&&(e.status===`starting`||e.status===`working`||e.status===`idle`)){if(g(J,``),a(Y)){let t={...a(Y),status:e.status,busy:e.status===`starting`||e.status===`working`};e.message?t.statusMessage=e.message:delete t.statusMessage,g(Y,t,!0)}return}if(!(e.type!==`review`||!e.ok||!a(Y)))try{let t=await Ie({repo:a(Y).repo,filename:e.filename});if(!t?.payload)return;g(I,e.filename,!0),await ar(t.payload)}catch(e){g(z,[`No se pudo abrir el JSON del agente: ${Kn(e)}`],!0)}}function On(e){return String(e||``).toLowerCase().trim().replace(/\s+/g,` `)}function kn(e,t){if(e.agentId&&e.agentId===t.id)return!0;let n=On(e.agent||``),r=On(t.label);if(!n||!r)return!1;let i=e=>e.replace(/\s+cli$/,``),a=i(n),o=i(r);return a===o||a.includes(o)||o.includes(a)}function An(e,t){let n=On(e),r=On(t||``);return n?r?n===r||n.includes(r)||r.includes(n):!1:!0}function jn(e,t,n){return e.filename===a(I)&&kn(e,t)&&An(n,e.model)}async function Mn(e){if(!(!a(pn)||!a(Sn)||a(fn))){if(!e?.force&&a(K)&&jn(a(K),a(pn),a(dn))){g(on,!0);return}await Nn()}}async function Nn(){if(!a(pn)||!a(Sn)||a(fn))return;let e=a(dn);g(fn,!0),g(J,``);try{let t=await Se({repo:a(F).repo.trim(),branch:a(F).branch.trim(),base:a(F).base.trim()||`develop`,agentId:a(pn).id,model:e});g(I,t.outputFilename,!0),await En(t.id,t)}catch(e){g(J,Kn(e),!0)}finally{g(fn,!1)}}function Pn(){g(on,!1)}function Fn(){g(on,!1),Mn({force:!0})}function In(){if(a(Y)){let e=a(Y).repo?.trim();e&&(Q({source:`local`,repo:e,branch:a(Y).branch||a(F).branch,base:a(Y).base||a(F).base}),Jn(e,`local`)),a(Y).agentId&&g(un,a(Y).agentId,!0),a(Y).model&&g(dn,a(Y).model,!0)}a(X)?.close(),g(X,null),g(Y,null),g(J,``),g(oe,!1),g(ce,``)}function Ln(){let e=new URL(window.location.href);e.search&&(e.search=``,ie(e,{}))}async function Rn(e,t){try{let n=await We();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;g(B,n.branches,!0),g(ut,n.repo,!0),Q({source:`local`,repo:n.repo,branch:r,base:i,remoteUrl:n.remoteUrl||void 0}),t.keepOutName||await zn()}else e.repo.trim()&&(Jn(e.repo,e.source),!t.keepOutName&&e.source===`local`&&await zn())}catch{e.repo.trim()&&Jn(e.repo,e.source)}if(t.wantNotify&&Hn(a(de),e=>{g(be,e,!0),g(Pe,!0),setTimeout(()=>g(Pe,!1),2800)}),t.wantImport)try{let e=await Te();e?.payload?(e.filename&&g(I,e.filename,!0),await ar(e.payload)):a(G)||g(W,!1)}catch{g(z,[`No se pudo importar el JSON pendiente del CLI.`],!0),g(W,!1)}t.wantWatch&&tr({auto:!0})}async function zn(){if(a(F).source!==`local`||!$(a(F).repo)||!a(F).branch.trim()){g(I,ve({}),!0),a(me)||g(de,Je(a(F),{outputFilename:a(I)}),!0);return}let e=++cn;try{let t=await Me({repo:a(F).repo.trim(),branch:a(F).branch.trim(),base:a(F).base.trim()||`develop`});if(e!==cn)return;g(I,t.filename,!0),a(me)||g(de,Je(a(F),{outputFilename:a(I)}),!0)}catch{if(e!==cn)return;g(I,ve({}),!0),a(me)||g(de,Je(a(F),{outputFilename:a(I)}),!0)}}function Q(e){let t=a(F);g(F,{...a(F),...e},!0),a(F).source===`local`&&$(a(F).repo)&&g(ut,a(F).repo.trim(),!0),je(a(F),a(ut)),a(me)||g(de,Je(a(F),{outputFilename:a(I)}),!0),(t.repo!==a(F).repo||t.branch!==a(F).branch||t.base!==a(F).base||t.source!==a(F).source)&&a(F).source===`local`&&zn()}function Bn(e){if(e===a(F).source)return;if(g(B,[],!0),g(V,``),e===`url`){$(a(F).repo)&&g(ut,a(F).repo.trim(),!0);let t=(a(F).remoteUrl||``).trim()||(Gn(a(F).repo)?a(F).repo.trim():``);Q({source:e,repo:t,...t?{remoteUrl:t}:{}});return}let t=a(ut)||($(a(F).repo)?a(F).repo.trim():``),n=(Gn(a(F).repo)?a(F).repo.trim():``)||(a(F).remoteUrl||``).trim();Q({source:e,repo:t,...n?{remoteUrl:n}:{}})}function Vn(e){g(de,e.currentTarget.value,!0),g(me,!0)}function Hn(e,t){let n=()=>{t(!0),setTimeout(()=>t(!1),1600)};navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(n).catch(n):n()}function Un(){Hn(a(de),e=>g(be,e,!0))}function Wn(){Hn(Ce(a(F),a(nt),{outputFilename:a(I)}),e=>g(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 Gn(e){let t=e.trim();return t?!!(/^(https?:\/\/|git@|ssh:\/\/)/i.test(t)||/\.git$/i.test(t)&&!$(t)):!1}function Kn(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 qn(){if(!(a(ct)||a(st))){g(ct,!0),g(V,``);try{let e=await Re(null);if(!e)return;Q({source:`local`,repo:e}),await Jn(e,`local`)}catch(e){g(V,`No se pudo elegir la carpeta: `+Kn(e))}finally{g(ct,!1)}}}async function Jn(e=a(F).repo,t=a(F).source){let n=e.trim();if(!n){g(V,t===`url`?`Indicá la URL del repo.`:`Indicá la ruta absoluta del repo.`,!0);return}if(!a(st)){g(st,!0),g(V,``);try{let e=await He({source:t,repo:n}),r=e.branches.includes(a(F).branch)?a(F).branch:e.current||e.branches[0]||``,i=e.branches.includes(a(F).base)?a(F).base:e.defaultBase;g(B,e.branches,!0),Q({source:e.source,repo:e.repo,branch:r,base:i,remoteUrl:e.remoteUrl||(e.source===`url`?e.repo:a(F).remoteUrl)})}catch(e){g(B,[],!0),g(V,`No se pudo leer el repo: `+Kn(e))}finally{g(st,!1)}}}function Yn(e){e.preventDefault(),a($e)||g($e,!0)}function Xn(e){e.preventDefault(),g($e,!1)}function Zn(e){if(e.preventDefault(),g($e,!1),a(U)||a(H)||a(q))return;let t=e.dataTransfer?.files?.[0];t&&rr(t)}async function Qn(){if(!(a(U)||a(H)||a(q))){if(a(Cn)){g(H,!0),g(V,``);try{let e=await Ue({directory:a(F).repo.trim()});if(!e?.payload)return;e.filename&&g(I,e.filename,!0),await ar(e.payload)}catch(e){g(z,[`No se pudo abrir el archivo: `+Kn(e)],!0),a(an)?.click()}finally{g(H,!1)}return}a(an)?.click()}}function $n(e){let t=e.currentTarget,n=t.files?.[0];n&&rr(n),t.value=``}function er(e){return`${e.path}::${e.mtimeMs}`}async function tr(e){if(!(!a(Cn)||a(U)||a(H)))try{let t=await he({repo:a(F).repo.trim(),preferredName:a(I)});if(g(K,t,!0),!e.auto||!a(lt)||!t||a(q)||t.filename!==a(I)||er(t)===a(sn))return;await nr(t,{auto:!0})}catch{}}async function nr(e,t){if(!(a(U)||a(q)||a(H))){g(q,!0),g(W,!0),g(z,[],!0);try{let n=await Ie({repo:a(F).repo.trim(),filename:e.filename});if(!n?.payload){t?.auto||g(z,[`No se pudo leer `+e.filename],!0),g(W,!1);return}g(I,e.filename,!0),await ar(n.payload)&&(g(sn,er(e),!0),t?.auto&&g(lt,!1))}catch(t){g(z,[`No se pudo abrir `+e.filename+`: `+Kn(t)],!0),g(W,!1)}finally{g(q,!1)}}}function rr(e){g(W,!0),g(z,[],!0);let t=new FileReader;t.onload=()=>{let e;try{e=JSON.parse(String(t.result))}catch(e){g(z,[`El archivo no es JSON válido: `+Kn(e)],!0),g(W,!1);return}ar(e)},t.onerror=()=>{g(z,[`No se pudo leer el archivo.`],!0),g(W,!1)},t.readAsText(e)}function ir(e){return Oe(e,a(F))}async function ar(e){g(W,!0),g(G,!1);try{let t=await or(e);return a(G)||g(W,!1),t}catch(e){throw g(W,!1),e}}async function or(e){let t=ft(e);if(t.length)return g(z,t,!0),!1;let n=Fe(e),r=ir(e);(r.repo||r.branch||r.base||r.remoteUrl)&&Q({source:r.source,repo:r.repo||a(F).repo,branch:r.branch||a(F).branch,base:r.base||a(F).base,remoteUrl:r.remoteUrl||a(F).remoteUrl});let i={intent:n.intent,groups:n.groups,blocks:n.blocks,findings:n.findings,skipped:n.skipped,notes:n.notes},o=[],s=(e,t)=>{let n=t.trim();n&&(o.some(t=>t.source===e&&t.repo===n)||o.push({source:e,repo:n}))};if(r.branch){r.source===`local`&&$(r.repo)?s(`local`,r.repo):r.source===`url`&&Gn(r.repo)||Gn(r.repo)?s(`url`,r.repo):$(r.repo)&&s(`local`,r.repo);let e=(r.remoteUrl||``).trim();e&&Gn(e)&&s(`url`,e)}if(o.length&&r.branch){g(U,!0),g(z,[],!0);let t=[],s=!1,c=r.remoteUrl;try{for(let e of o)try{if(n=await ke({repo:e.repo,branch:r.branch,base:r.base||`develop`,source:e.source,payload:i,outputFilename:a(I)}),s=!0,e.source===`url`)c||=e.repo;else if(!c)try{let t=await He({source:`local`,repo:e.repo});t.remoteUrl&&(c=t.remoteUrl)}catch{}break}catch(n){t.push(`${e.source===`url`?`URL`:`local`}: ${Kn(n)}`)}if(!s){if(!Ge(n))return g(z,[`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{g(U,!1)}c&&Q({remoteUrl:c});let l=await cr(e,sr(r,c)),u=Ze(n);return u.length?(g(et,n,!0),g(tt,e,!0),g(nt,u,!0),g(z,[],!0),Q(l),!0):(lr(n,l),!0)}else if(!Ge(n))return g(z,[`Indicá repo (ruta o URL) y branch, o incluí meta.remoteUrl en el JSON, para calcular el diff con git.`],!0),!1;let c=await cr(e,sr(r)),l=Ze(n);return l.length?(g(et,n,!0),g(tt,e,!0),g(nt,l,!0),g(z,[],!0),Q(c),!0):(lr(n,c),!0)}function sr(e,t){let n=ze(e)||(qe(a(I))?a(I):``)||ze(a(F));return{source:e.source,repo:e.repo||a(F).repo,branch:e.branch||a(F).branch,base:e.base||a(F).base,remoteUrl:t||e.remoteUrl||a(F).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 cr(e,t){let n=ze(t);if(!n||t.source!==`local`||!$(t.repo))return t;let r={...t,outputFilename:n};try{return(await Ie({repo:r.repo,filename:n}))?.payload||await De({repo:r.repo,filename:n,payload:e}),r}catch{let{outputFilename:e,...n}=t;return n}}function lr(e,t=a(F)){g(z,[],!0),g(et,null),g(tt,null),g(nt,[],!0),g(G,!0),re(ae(`/report/${Ae(e,t).id}`))}async function ur(){if(!a(et))return;let e=await cr(a(tt)??a(et),sr(a(F)));lr(a(et),e)}function dr(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 fr(e){return e.generatedAt?dr(e.generatedAt):e.mtimeMs?dr(new Date(e.mtimeMs).toISOString()):``}function pr(e){return[e.agent,e.model,fr(e)].filter(Boolean).join(` · `)}function mr(){g(at,null),g(ot,null)}function hr(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),g(ot,{top:n,left:r},!0)}function gr(e,t){if(a(at)===e){mr();return}g(at,e,!0),hr(t)}function _r(e){let t=e.branch||`este reporte`;confirm(`¿Eliminar “${t}”? No se puede deshacer.`)&&(Ve(e.id),g(it,Ee(),!0),mr())}var vr=rn();r(`click`,s,()=>{a(at)&&mr()}),r(`keydown`,s,e=>{if(e.key===`Escape`){if(a(on)){Pn();return}mr()}});let yr;var br=O(vr),xr=e=>{u(e,pt())};n(br,e=>{a(Pe)&&e(xr)});var Sr=h(br,2),Cr=e=>{let r=A(()=>pr(a(K)));var s=mt(),l=o(s),f=h(l,2),p=h(O(f),2),m=h(O(p)),g=O(m,!0);b(m);var _=h(m),v=e=>{var n=c();i(()=>t(n,`· ${a(r)??``}`)),u(e,n)};n(_,e=>{a(r)&&e(v)}),j(),b(p);var y=h(p,2),x=O(y),S=h(x,2);b(y),b(f),i(()=>t(g,a(K).filename)),d(`click`,l,Pn),d(`keydown`,l,e=>{e.key===`Escape`&&Pn()}),d(`click`,x,Pn),d(`click`,S,Fn),u(e,s)};n(Sr,e=>{a(on)&&a(K)&&e(Cr)});var wr=h(Sr,2),Tr=e=>{var r=gt(),o=O(r),s=h(O(o),4),c=e=>{var n=ht(),r=O(n,!0);b(n),i(()=>t(r,a(I))),u(e,n)};n(s,e=>{a(I)&&e(c)}),b(o),b(r),u(e,r)};n(wr,e=>{a(W)&&!a(hn)&&e(Tr)});var Er=h(wr,2),Dr=e=>{{let t=A(()=>a(J)||a(X).errorMessage||a(Y).status===`error`&&a(Y).statusMessage||``);dt(e,{get info(){return a(Y)},get events(){return a(X).events},get busy(){return a(X).busy},get gone(){return a(X).gone},get error(){return a(t)},oncancel:()=>void ue({id:a(Y).id}),onreset:In,onrespondpermission:e=>void Be({id:a(Y).id,requestId:e.requestId,allow:e.allow,allowAll:e.allowAll,scope:e.scope}).then(e=>{g(Y,e,!0)}).catch(e=>{g(J,e instanceof Error?e.message:String(e),!0)}),onsessiontrust:e=>void xe({id:a(Y).id,enabled:e}).then(e=>{g(Y,e,!0)}).catch(e=>{g(J,e instanceof Error?e.message:String(e),!0)}),onretry:()=>{g(J,``),fe({id:a(Y).id}).then(e=>{g(Y,e,!0)}).catch(e=>{g(J,e instanceof Error?e.message:String(e),!0)})}})}},Or=e=>{{let t=A(()=>({id:``,agentId:a(pn).id,agentLabel:a(pn).label,model:a(dn)||``,repo:a(F).repo.trim(),branch:a(F).branch.trim(),base:a(F).base.trim()||`develop`,outputFilename:a(I),acpSessionId:``,status:`starting`,busy:!0}));dt(e,{get info(){return a(t)},events:[],busy:!0,oncancel:()=>{},onreset:In})}},kr=e=>{{let t=A(()=>({id:``,agentId:``,agentLabel:`Agente`,model:``,repo:a(F).repo.trim(),branch:a(F).branch.trim(),base:a(F).base.trim()||`develop`,outputFilename:a(I),acpSessionId:``,status:`starting`,busy:!0}));dt(e,{get info(){return a(t)},events:[],busy:!0,get error(){return a(J)},oncancel:()=>{},onreset:In})}},Ar=e=>{var r=vt(),o=h(O(r),2),s=O(o,!0);b(o);var c=h(o,2),l=e=>{var n=_t(),r=O(n),o=O(r,!0);b(r),b(n),i(()=>t(o,a(I))),u(e,n)};n(c,e=>{a(I)&&e(l)});var f=h(c,2);b(r),i(()=>t(s,a(W)||a(G)?`Abriendo el reporte…`:`Esperando el JSON de la review…`)),d(`click`,f,In),u(e,r)},jr=e=>{var s=nn(),l=o(s),f=O(l);pe(O(f),{size:16}),j(2),b(f),Ne(h(f,2),{}),b(l);var p=h(l,2),m=O(p),C=h(O(m),2),E=O(C);let ee;var k=h(E,2);let ne;b(C);var N=h(C,2),re=O(N),ie=e=>{var t=yt();j(2),u(e,t)},oe=e=>{u(e,c(`Carpeta local del repo. Podés pegar la ruta o elegirla con el diálogo del sistema. Git corre ahí
|
|
12
|
+
mismo (sirve para branches no pusheados).`))};n(re,e=>{a(F).source===`url`?e(ie):e(oe,-1)}),b(N);var se=h(N,2),ce=e=>{var n=bt(),r=O(n,!0);b(n),i(()=>t(r,a(V))),u(e,n)};n(se,e=>{a(V)&&e(ce)});var ue=h(se,2),fe=e=>{var n=xt(),r=O(n);b(n),i(e=>t(r,`${e??``}.`),[()=>le(a(B).length,`branch encontrado`,`branches encontrados`)]),u(e,n)};n(ue,e=>{a(B).length&&e(fe)});var me=h(ue,2),he=O(me),ge=O(he),_e=O(ge,!0);b(ge);var ve=h(ge,2),ye=O(ve);v(ye);var xe=h(ye,2),Se=e=>{var n=St(),r=O(n,!0);b(n),i(()=>{n.disabled=a(ct)||a(st),t(r,a(ct)?`Eligiendo…`:`Elegir…`)}),d(`click`,n,()=>void qn()),u(e,n)};n(xe,e=>{a(F).source===`local`&&e(Se)});var we=h(xe,2),Te=O(we,!0);b(we),b(ve),b(he);var Ee=h(he,2),De=O(Ee),Oe=h(O(De),2),ke=e=>{var n=wt();M(n,20,()=>a(B),e=>e,(e,n)=>{var r=Ct(),a=O(r,!0);b(r);var o={};i(()=>{t(a,n),o!==(o=n)&&(r.value=(r.__value=n)??``)}),u(e,r)}),b(n);var r;D(n),i(()=>{r!==(r=a(F).branch)&&(n.value=(n.__value=a(F).branch)??``,T(n,a(F).branch))}),d(`change`,n,e=>Q({branch:e.currentTarget.value})),u(e,n)},Ae=e=>{var t=Tt();v(t),i(()=>y(t,a(F).branch)),d(`input`,t,e=>Q({branch:e.currentTarget.value})),u(e,t)};n(Oe,e=>{a(B).length?e(ke):e(Ae,-1)}),b(De);var je=h(De,2),Me=h(O(je),2),Pe=e=>{var n=wt();M(n,20,()=>a(B),e=>e,(e,n)=>{var r=Ct(),a=O(r,!0);b(r);var o={};i(()=>{t(a,n),o!==(o=n)&&(r.value=(r.__value=n)??``)}),u(e,r)}),b(n);var r;D(n),i(()=>{r!==(r=a(F).base)&&(n.value=(n.__value=a(F).base)??``,T(n,a(F).base))}),d(`change`,n,e=>Q({base:e.currentTarget.value})),u(e,n)},Fe=e=>{var t=Et();v(t),i(()=>y(t,a(F).base)),d(`input`,t,e=>Q({base:e.currentTarget.value})),u(e,t)};n(Me,e=>{a(B).length?e(Pe):e(Fe,-1)}),b(je),b(Ee),b(me);var Ie=h(me,4),Le=O(Ie),Re=e=>{var t=Dt();let n;i(()=>n=x(t,1,`svelte-1uha8ag`,null,n,{on:a(R)===`agent`})),d(`click`,t,()=>wn(`agent`)),u(e,t)};n(Le,e=>{(a(ln).length||a(X))&&e(Re)});var ze=h(Le,2);let Be;b(Ie);var Ve=h(Ie,2),He=e=>{var r=Nt(),s=o(r),l=h(O(s)),f=O(l,!0);b(l),j(),b(s);var p=h(s,2),m=O(p);L(h(O(m),2),{get options(){return a(ln)},onchange:()=>g(dn,``),get value(){return a(un)},set value(e){g(un,e,!0)}}),b(m);var _=h(m,2),v=O(_),y=h(O(v)),x=e=>{u(e,Ot())};n(y,e=>{a(vn)===`loading`&&e(x)}),b(v);var S=h(v,2);{let e=A(()=>a(vn)===`loading`||a(vn)===void 0);P(S,{get options(){return a(_n)},get disabled(){return a(e)},get value(){return a(dn)},set value(e){g(dn,e,!0)}})}b(_),b(p);var C=h(p,2),T=e=>{var n=kt(),r=O(n),o=h(r);b(n),i(()=>t(r,`${a(yn)??``} `)),d(`click`,o,xn),u(e,n)},E=e=>{var t=At(),n=h(O(t));b(t),d(`click`,n,xn),u(e,t)};n(C,e=>{a(yn)?e(T):a(bn)&&e(E,1)});var ee=h(C,2),D=O(ee),te=O(D),k=e=>{var t=jt();j(),u(e,t)},ne=e=>{u(e,c(`Lanzar review`))};n(te,e=>{a(fn)?e(k):e(ne,-1)}),b(D),b(ee);var M=h(ee,2),N=e=>{u(e,Mt())};n(M,e=>{a(Sn)||e(N)});var re=h(M,2),ie=e=>{var n=bt(),r=O(n,!0);b(n),i(()=>t(r,a(J))),u(e,n)};n(re,e=>{a(J)&&e(ie)}),i(()=>{t(f,a(I)),D.disabled=!a(Sn)||a(fn)||!a(pn),w(D,`aria-busy`,a(fn))}),d(`click`,D,()=>void Mn()),u(e,r)},Ue=e=>{var n=Pt(),r=h(o(n),2);te(r);var s=h(r,2),c=O(s),l=O(c,!0);b(c),b(s),i(()=>{y(r,a(de)),t(l,a(be)?`Copiado ✓`:`Copiar prompt`)}),d(`input`,r,Vn),d(`click`,c,Un),u(e,n)};n(Ve,e=>{a(R)===`agent`&&(a(ln).length||a(X))?e(He):e(Ue,-1)});var We=h(Ve,4),Ge=h(O(We)),Ke=O(Ge,!0);b(Ge);var qe=h(Ge,4),Je=e=>{var t=Ft();j(2),u(e,t)},Ye=e=>{var t=It();j(2),u(e,t)};n(qe,e=>{a(Cn)&&a(lt)?e(Je):a(Cn)&&e(Ye,1)}),b(We);var Xe=h(We,2),Ze=e=>{let r=A(()=>a(K).filename===a(I)),o=A(()=>pr(a(K)));var s=zt();let c;var l=O(s),f=O(l),p=O(f),m=h(p),g=e=>{u(e,Lt())};n(m,e=>{a(r)&&a(lt)&&e(g)}),b(f);var _=h(f,2),v=O(_,!0);b(_);var y=h(_,2),S=e=>{var n=Rt(),r=O(n,!0);b(n),i(()=>{w(n,`title`,a(o)),t(r,a(o))}),u(e,n)};n(y,e=>{a(o)&&e(S)}),b(l),j(4),b(s),i(()=>{c=x(s,1,`detect-open svelte-1uha8ag`,null,c,{ready:a(r)}),t(p,`${a(r)?`Reporte listo`:`Encontré otro reporte`} `),t(v,a(K).filename)}),d(`click`,s,()=>void nr(a(K))),u(e,s)},Qe=e=>{var n=Bt(),r=h(O(n)),o=O(r,!0);b(r),j(3),b(n),i(()=>t(o,a(I))),u(e,n)};n(Xe,e=>{a(Cn)&&a(K)&&!a(U)&&!a(q)?e(Ze):a(Cn)&&!a(K)&&!a(U)&&!a(q)&&e(Qe,1)});var tt=h(Xe,2),W=e=>{u(e,Vt())};n(tt,e=>{a(q)&&e(W)});var G=h(tt,2);let ut;var dt=O(G),ft=O(dt),pt=e=>{u(e,c(`Abriendo el reporte…`))},mt=e=>{u(e,c(`Eligiendo archivo…`))},ht=e=>{u(e,c(`Importando JSON…`))},gt=e=>{u(e,c(`Arrastrá el archivo .json acá`))};n(ft,e=>{a(U)?e(pt):a(H)?e(mt,1):a(q)?e(ht,2):e(gt,-1)}),b(dt);var _t=h(dt,2),vt=O(_t,!0);b(_t);var rn=h(_t,2);_(rn,e=>g(an,e),()=>a(an)),b(G);var on=h(G,2),sn=e=>{var n=Ut(),r=O(n),o=O(r),s=O(o);b(o),j(2),b(r);var c=h(r,2),l=h(O(c),2);M(l,20,()=>a(nt),e=>e,(e,n)=>{var r=Ht(),a=O(r,!0);b(r),i(()=>t(a,n)),u(e,r)}),b(l),b(c);var f=h(c,4);te(f);var p=h(f,2),m=O(p),g=O(m,!0);b(m);var _=h(m,2);b(p),b(n),i((e,n)=>{t(s,`El modelo dejó ${e??``} sin explicar`),y(f,n),t(g,a(rt)?`Copiado ✓`:`Copiar prompt de corrección`)},[()=>le(a(nt).length,`archivo`,`archivos`),()=>Ce(a(F),a(nt),{outputFilename:a(I)})]),d(`click`,m,Wn),d(`click`,_,()=>void ur()),u(e,n)};n(on,e=>{a(et)&&e(sn)});var cn=h(on,2),Y=e=>{var n=Wt(),r=h(O(n),2);M(r,20,()=>a(z),e=>e,(e,n)=>{var r=Ht(),a=O(r,!0);b(r),i(()=>t(a,n)),u(e,r)}),b(r),b(n),u(e,n)};n(cn,e=>{a(z).length&&e(Y)}),b(m);var mn=h(m,2),hn=h(O(mn),2),Z=e=>{var r=en();M(r,21,()=>a(it),e=>e.id,(e,r)=>{var o=$t(),s=O(o),c=O(s),l=O(c),f=O(l,!0);b(l);var p=h(l,2),m=O(p,!0);b(p),b(c);var g=h(c,2),_=O(g),v=h(O(_));b(_);var y=h(_,2),x=O(y),C=O(x,!0);b(x);var T=h(x,2),E=e=>{var n=Gt(),o=O(n,!0);b(n),i(e=>t(o,e),[()=>le(a(r).blockerCount,`blocker`,`blockers`)]),u(e,n)};n(T,e=>{a(r).blockerCount&&e(E)});var ee=h(T,2),D=e=>{var n=Kt(),o=O(n,!0);b(n),i(e=>t(o,e),[()=>le(a(r).qualityCount,`calidad`,`calidad`)]),u(e,n)};n(ee,e=>{a(r).qualityCount&&e(D)}),b(y),b(g);var te=h(g,2),k=e=>{var o=Xt(),s=O(o),c=e=>{var n=qt(),o=O(n,!0);b(n),i(()=>t(o,a(r).agent)),u(e,n)};n(s,e=>{a(r).agent&&e(c)});var l=h(s,2),d=e=>{u(e,Jt())};n(l,e=>{a(r).agent&&a(r).model&&e(d)});var f=h(l,2),p=e=>{var n=Yt(),o=O(n,!0);b(n),i(()=>t(o,a(r).model)),u(e,n)};n(f,e=>{a(r).model&&e(p)}),b(o),i(e=>w(o,`title`,e),[()=>[a(r).agent,a(r).model].filter(Boolean).join(` · `)]),u(e,o)};n(te,e=>{(a(r).agent||a(r).model)&&e(k)});var ne=h(te,2),A=e=>{var n=Zt(),o=O(n,!0);b(n),i(()=>t(o,a(r).intent)),u(e,n)};n(ne,e=>{a(r).intent&&e(A)}),b(s);var j=h(s,2),M=O(j),N=h(M,2),re=e=>{var t=Qt();let n;var o=O(t);b(t),i(()=>n=S(t,``,n,{top:`${a(ot).top??``}px`,left:`${a(ot).left??``}px`})),d(`click`,o,e=>{e.stopPropagation(),_r(a(r))}),u(e,t)};n(N,e=>{a(at)===a(r).id&&a(ot)&&e(re)}),b(j),b(o),i((e,n,i)=>{w(s,`href`,e),t(f,a(r).branch||`—`),t(m,n),t(v,` ${(a(r).base||`develop`)??``}`),t(C,i),w(M,`aria-label`,`Más acciones para ${(a(r).branch||`reporte`)??``}`),w(M,`aria-expanded`,a(at)===a(r).id)},[()=>ae(`/report/${a(r).id}`),()=>dr(a(r).savedAt),()=>le(a(r).groupCount,`tema`,`temas`)]),d(`click`,M,e=>{e.preventDefault(),e.stopPropagation(),gr(a(r).id,e.currentTarget)}),u(e,o)}),b(r),u(e,r)},gn=e=>{u(e,tn())};n(hn,e=>{a(it).length?e(Z):e(gn,-1)}),b(mn),b(p),i(e=>{w(f,`href`,e),ee=x(E,1,`svelte-1uha8ag`,null,ee,{on:a(F).source===`local`}),ne=x(k,1,`svelte-1uha8ag`,null,ne,{on:a(F).source===`url`}),t(_e,a(F).source===`url`?`URL del repo`:`Repo`),w(ye,`placeholder`,a(F).source===`url`?`https://github.com/org/repo.git`:`C:\\path\\to\\repo`),y(ye,a(F).repo),we.disabled=a(st)||a(ct),t(Te,a(st)?`Cargando…`:`Cargar`),Be=x(ze,1,`svelte-1uha8ag`,null,Be,{on:a(R)===`full`}),t(Ke,a(I)),ut=x(G,1,`dropzone svelte-1uha8ag`,null,ut,{drag:a($e),busy:a(U)||a(H)||a(q)}),_t.disabled=a(U)||a(H)||a(q),t(vt,a(H)?`Abriendo…`:`Elegir archivo`)},[()=>ae(`/`)]),d(`click`,E,()=>Bn(`local`)),d(`click`,k,()=>Bn(`url`)),d(`input`,ye,e=>Q({repo:e.currentTarget.value})),d(`keydown`,ye,e=>{e.key===`Enter`&&(e.preventDefault(),Jn())}),d(`click`,we,()=>void Jn()),d(`click`,ze,()=>wn(`full`)),r(`dragover`,G,Yn),r(`dragleave`,G,Xn),r(`drop`,G,Zn),d(`click`,_t,()=>void Qn()),d(`change`,rn,$n),r(`scroll`,mn,()=>a(at)&&mr()),u(e,s)};n(Er,e=>{a(X)&&a(Y)?e(Dr):a(fn)&&a(pn)?e(Or,1):a(ce)?e(kr,2):a(hn)?e(Ar,3):e(jr,-1)}),b(vr),i(()=>yr=x(vr,1,`page svelte-1uha8ag`,null,yr,{live:a(mn)||a(hn)})),u(e,vr),ee()}l([`click`,`keydown`,`input`,`change`]);export{an as component};
|
|
Binary file
|
|
Binary file
|