@jpkme/diff-review 0.1.15 → 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-policy.mjs +10 -2
- package/lib/acp-policy.test.mjs +27 -0
- 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/output-name.mjs +7 -0
- package/lib/prompt.mjs +14 -11
- package/lib/prompt.test.mjs +49 -0
- package/lib/review-dir.mjs +14 -1
- package/lib/review-meta.mjs +11 -3
- package/lib/review-meta.test.mjs +19 -2
- package/lib/review-prep.mjs +63 -63
- package/lib/review.mjs +36 -4
- package/lib/review.test.mjs +35 -0
- package/lib/validate.mjs +11 -1
- package/lib/validate.test.mjs +47 -0
- package/lib/wait-output.test.mjs +1 -1
- package/package.json +2 -2
- package/schema.json +16 -1
- 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/B4SiKXUO.js +2 -0
- 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/{D8WOD_eS.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/{BpVtXA-T.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-DUStDOsr.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-DUj63QTT.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-C7UD6rei.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-4RcoUd0l.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-C_hlZJKN.js → agent-sessions-BArYLTW6.js} +1103 -146
- package/web/build/server/chunks/agent-sessions-BArYLTW6.js.map +1 -0
- package/web/build/server/chunks/{git-review-Bh1w0gak.js → git-review-BJ_JrFNP.js} +87 -26
- package/web/build/server/chunks/git-review-BJ_JrFNP.js.map +1 -0
- package/web/build/server/chunks/{handler-e2lEvjVT.js → handler-Df_bJiCq.js} +3 -3
- package/web/build/server/chunks/{handler-e2lEvjVT.js.map → handler-Df_bJiCq.js.map} +1 -1
- package/web/build/server/chunks/{hooks.server-Um1Sknmz.js → hooks.server-BEl7rVad.js} +4 -3
- package/web/build/server/chunks/{hooks.server-Um1Sknmz.js.map → hooks.server-BEl7rVad.js.map} +1 -1
- package/web/build/server/chunks/{index.js-C3-YX8SA.js → index.js-Bb0CZLZ_.js} +884 -881
- 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-DMiPy1mT.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-RlIVOUe-.js → remote-wh6t6j-B-AHrGaN.js} +58 -12
- package/web/build/server/chunks/remote-wh6t6j-B-AHrGaN.js.map +1 -0
- package/web/build/server/chunks/{validate-CAQ31C7k.js → validate-CXjTRGnR.js} +67 -21
- 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.Cw1J6YTM.css +0 -1
- package/web/build/client/_app/immutable/assets/3.Cw1J6YTM.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.Cw1J6YTM.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/storage.TlsiS-AP.css +0 -1
- package/web/build/client/_app/immutable/assets/storage.TlsiS-AP.css.br +0 -0
- package/web/build/client/_app/immutable/assets/storage.TlsiS-AP.css.gz +0 -0
- package/web/build/client/_app/immutable/chunks/BpVtXA-T.js.br +0 -2
- package/web/build/client/_app/immutable/chunks/BpVtXA-T.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/CUhrLa7d.js +0 -210
- package/web/build/client/_app/immutable/chunks/CUhrLa7d.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/CUhrLa7d.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/QvO6K-HK.js +0 -2
- package/web/build/client/_app/immutable/chunks/QvO6K-HK.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/QvO6K-HK.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.BjJsHui4.js +0 -2
- package/web/build/client/_app/immutable/entry/app.BjJsHui4.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.BjJsHui4.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.D4unRHC4.js +0 -1
- package/web/build/client/_app/immutable/entry/start.D4unRHC4.js.br +0 -0
- package/web/build/client/_app/immutable/entry/start.D4unRHC4.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.C8JJYlWG.js +0 -1
- package/web/build/client/_app/immutable/nodes/1.C8JJYlWG.js.br +0 -1
- package/web/build/client/_app/immutable/nodes/1.C8JJYlWG.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.CDI0Ipi4.js +0 -10
- package/web/build/client/_app/immutable/nodes/2.CDI0Ipi4.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.CDI0Ipi4.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.DVC22CDg.js +0 -171
- package/web/build/client/_app/immutable/nodes/3.DVC22CDg.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.DVC22CDg.js.gz +0 -0
- package/web/build/server/chunks/0-DUStDOsr.js +0 -11
- package/web/build/server/chunks/1-DUj63QTT.js +0 -7
- package/web/build/server/chunks/2-B4PSKe5P.js +0 -7
- package/web/build/server/chunks/2-B4PSKe5P.js.map +0 -1
- package/web/build/server/chunks/3-C7UD6rei.js +0 -7
- package/web/build/server/chunks/_server.ts-4RcoUd0l.js.map +0 -1
- package/web/build/server/chunks/agent-sessions-C_hlZJKN.js.map +0 -1
- package/web/build/server/chunks/git-review-Bh1w0gak.js.map +0 -1
- package/web/build/server/chunks/index.js-C3-YX8SA.js.map +0 -1
- package/web/build/server/chunks/manifest.js-CmbRPv0j.js +0 -58
- package/web/build/server/chunks/manifest.js-CmbRPv0j.js.map +0 -1
- package/web/build/server/chunks/remote-1g4ayag-DMiPy1mT.js.map +0 -1
- package/web/build/server/chunks/remote-wh6t6j-RlIVOUe-.js.map +0 -1
- package/web/build/server/chunks/validate-CAQ31C7k.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1794340569110"}
|
|
Binary file
|
|
Binary file
|
package/web/build/handler.js
CHANGED
|
@@ -2,9 +2,9 @@ import './shims.js';
|
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:path';
|
|
4
4
|
import 'node:process';
|
|
5
|
-
export { h as handler } from './server/chunks/handler-
|
|
6
|
-
import './server/chunks/index.js-
|
|
7
|
-
import './server/chunks/manifest.js-
|
|
5
|
+
export { h as handler } from './server/chunks/handler-Df_bJiCq.js';
|
|
6
|
+
import './server/chunks/index.js-Bb0CZLZ_.js';
|
|
7
|
+
import './server/chunks/manifest.js-j442duM7.js';
|
|
8
8
|
import './env.js';
|
|
9
9
|
import 'node:buffer';
|
|
10
10
|
import 'node:crypto';
|
package/web/build/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import fs__default from 'node:fs';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
-
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-
|
|
4
|
+
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-Df_bJiCq.js';
|
|
5
5
|
import { env, timeout_env } from './env.js';
|
|
6
6
|
import { rm } from 'node:fs/promises';
|
|
7
7
|
import './shims.js';
|
|
@@ -11,8 +11,8 @@ import 'node:path';
|
|
|
11
11
|
import 'node:timers';
|
|
12
12
|
import 'node:querystring';
|
|
13
13
|
import 'node:stream';
|
|
14
|
-
import './server/chunks/index.js-
|
|
15
|
-
import './server/chunks/manifest.js-
|
|
14
|
+
import './server/chunks/index.js-Bb0CZLZ_.js';
|
|
15
|
+
import './server/chunks/manifest.js-j442duM7.js';
|
|
16
16
|
import 'node:url';
|
|
17
17
|
|
|
18
18
|
const path = env('SOCKET_PATH', false);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const index = 0;
|
|
2
|
+
const universal = {
|
|
3
|
+
"ssr": false
|
|
4
|
+
};
|
|
5
|
+
const universal_id = "src/routes/+layout.ts";
|
|
6
|
+
const imports = ["_app/immutable/nodes/0.BhHA-Ohy.js","_app/immutable/chunks/DA0YnpGR.js","_app/immutable/chunks/B-2kfLeA.js","_app/immutable/chunks/BZfQ9INH.js"];
|
|
7
|
+
const stylesheets = ["_app/immutable/assets/0.B04dzd8P.css"];
|
|
8
|
+
const fonts = [];
|
|
9
|
+
|
|
10
|
+
export { fonts, imports, index, stylesheets, universal, universal_id };
|
|
11
|
+
//# sourceMappingURL=0-8NUeB9cB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0-
|
|
1
|
+
{"version":3,"file":"0-8NUeB9cB.js","sources":["../../../.svelte-kit/output/server/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nexport const universal = {\n \"ssr\": false\n};\nexport const universal_id = \"src/routes/+layout.ts\";\nexport const imports = [\"_app/immutable/nodes/0.BhHA-Ohy.js\",\"_app/immutable/chunks/DA0YnpGR.js\",\"_app/immutable/chunks/B-2kfLeA.js\",\"_app/immutable/chunks/BZfQ9INH.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.B04dzd8P.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,SAAS,GAAG;AACzB,EAAE,KAAK,EAAE;AACT;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5J,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
const imports = ["_app/immutable/nodes/1.jjvGFUxu.js","_app/immutable/chunks/DA0YnpGR.js","_app/immutable/chunks/B-2kfLeA.js","_app/immutable/chunks/Dv85Hz5p.js","_app/immutable/chunks/B4SiKXUO.js"];
|
|
3
|
+
const stylesheets = [];
|
|
4
|
+
const fonts = [];
|
|
5
|
+
|
|
6
|
+
export { fonts, imports, index, stylesheets };
|
|
7
|
+
//# sourceMappingURL=1-BApN-ILJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1-
|
|
1
|
+
{"version":3,"file":"1-BApN-ILJ.js","sources":["../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nexport const imports = [\"_app/immutable/nodes/1.jjvGFUxu.js\",\"_app/immutable/chunks/DA0YnpGR.js\",\"_app/immutable/chunks/B-2kfLeA.js\",\"_app/immutable/chunks/Dv85Hz5p.js\",\"_app/immutable/chunks/B4SiKXUO.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const index = 2;
|
|
2
|
+
const imports = ["_app/immutable/nodes/2.CJTh6CGA.js","_app/immutable/chunks/DA0YnpGR.js","_app/immutable/chunks/B4SiKXUO.js","_app/immutable/chunks/b-BaDYIc.js","_app/immutable/chunks/B-2kfLeA.js","_app/immutable/chunks/BZfQ9INH.js","_app/immutable/chunks/Dv85Hz5p.js"];
|
|
3
|
+
const stylesheets = ["_app/immutable/assets/storage.Ztmr3s84.css","_app/immutable/assets/2.CQmxVXnC.css"];
|
|
4
|
+
const fonts = [];
|
|
5
|
+
|
|
6
|
+
export { fonts, imports, index, stylesheets };
|
|
7
|
+
//# sourceMappingURL=2-Bq7iMeQx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2-Bq7iMeQx.js","sources":["../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nexport const imports = [\"_app/immutable/nodes/2.CJTh6CGA.js\",\"_app/immutable/chunks/DA0YnpGR.js\",\"_app/immutable/chunks/B4SiKXUO.js\",\"_app/immutable/chunks/b-BaDYIc.js\",\"_app/immutable/chunks/B-2kfLeA.js\",\"_app/immutable/chunks/BZfQ9INH.js\",\"_app/immutable/chunks/Dv85Hz5p.js\"];\nexport const stylesheets = [\"_app/immutable/assets/storage.Ztmr3s84.css\",\"_app/immutable/assets/2.CQmxVXnC.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,sCAAsC;AACnG,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const index = 3;
|
|
2
|
+
const imports = ["_app/immutable/nodes/3.DYAPRc_2.js","_app/immutable/chunks/DA0YnpGR.js","_app/immutable/chunks/B4SiKXUO.js","_app/immutable/chunks/b-BaDYIc.js","_app/immutable/chunks/B-2kfLeA.js","_app/immutable/chunks/BZfQ9INH.js"];
|
|
3
|
+
const stylesheets = ["_app/immutable/assets/storage.Ztmr3s84.css","_app/immutable/assets/3.BVJgADrM.css"];
|
|
4
|
+
const fonts = [];
|
|
5
|
+
|
|
6
|
+
export { fonts, imports, index, stylesheets };
|
|
7
|
+
//# sourceMappingURL=3-W0cqofyE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3-
|
|
1
|
+
{"version":3,"file":"3-W0cqofyE.js","sources":["../../../.svelte-kit/output/server/nodes/3.js"],"sourcesContent":["\n\nexport const index = 3;\nexport const imports = [\"_app/immutable/nodes/3.DYAPRc_2.js\",\"_app/immutable/chunks/DA0YnpGR.js\",\"_app/immutable/chunks/B4SiKXUO.js\",\"_app/immutable/chunks/b-BaDYIc.js\",\"_app/immutable/chunks/B-2kfLeA.js\",\"_app/immutable/chunks/BZfQ9INH.js\"];\nexport const stylesheets = [\"_app/immutable/assets/storage.Ztmr3s84.css\",\"_app/immutable/assets/3.BVJgADrM.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,sCAAsC;AACnG,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { e as error } from './index.js-Bb0CZLZ_.js';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join, delimiter } from 'node:path';
|
|
6
|
+
import { mkdtemp, writeFile, readFile, rm } from 'node:fs/promises';
|
|
7
|
+
import { pathToFileURL } from 'node:url';
|
|
8
|
+
|
|
9
|
+
//#region src/lib/server/pdf.ts
|
|
10
|
+
/** Tiempo máximo para que el navegador imprima el PDF. */
|
|
11
|
+
var TIMEOUT_MS = 6e4;
|
|
12
|
+
function candidates() {
|
|
13
|
+
const env = process.env.DIFF_REVIEW_CHROME;
|
|
14
|
+
const list = env ? [env] : [];
|
|
15
|
+
if (process.platform === "win32") {
|
|
16
|
+
const roots = [
|
|
17
|
+
process.env["PROGRAMFILES"],
|
|
18
|
+
process.env["PROGRAMFILES(X86)"],
|
|
19
|
+
process.env["LOCALAPPDATA"]
|
|
20
|
+
].filter(Boolean);
|
|
21
|
+
for (const root of roots) {
|
|
22
|
+
list.push(join(root, "Google/Chrome/Application/chrome.exe"));
|
|
23
|
+
list.push(join(root, "Chromium/Application/chrome.exe"));
|
|
24
|
+
list.push(join(root, "BraveSoftware/Brave-Browser/Application/brave.exe"));
|
|
25
|
+
list.push(join(root, "Microsoft/Edge/Application/msedge.exe"));
|
|
26
|
+
}
|
|
27
|
+
} else if (process.platform === "darwin") list.push("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", "/Applications/Chromium.app/Contents/MacOS/Chromium", "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge");
|
|
28
|
+
else {
|
|
29
|
+
const names = [
|
|
30
|
+
"google-chrome",
|
|
31
|
+
"google-chrome-stable",
|
|
32
|
+
"chromium",
|
|
33
|
+
"chromium-browser",
|
|
34
|
+
"brave-browser",
|
|
35
|
+
"microsoft-edge"
|
|
36
|
+
];
|
|
37
|
+
for (const dir of (process.env.PATH ?? "").split(delimiter).filter(Boolean)) for (const name of names) list.push(join(dir, name));
|
|
38
|
+
}
|
|
39
|
+
return list;
|
|
40
|
+
}
|
|
41
|
+
var cached;
|
|
42
|
+
/** Primer navegador basado en Chromium instalado (o `DIFF_REVIEW_CHROME`). */
|
|
43
|
+
function findBrowser() {
|
|
44
|
+
if (cached !== void 0) return cached;
|
|
45
|
+
cached = candidates().find((p) => existsSync(p)) ?? null;
|
|
46
|
+
return cached;
|
|
47
|
+
}
|
|
48
|
+
/** Imprime el HTML a PDF con el navegador en modo headless; los títulos h1–h3 quedan como marcadores. */
|
|
49
|
+
async function renderPdf(html) {
|
|
50
|
+
const browser = findBrowser();
|
|
51
|
+
if (!browser) throw new Error("No se encontró Chrome, Edge ni Chromium instalado.");
|
|
52
|
+
const dir = await mkdtemp(join(tmpdir(), "diff-review-pdf-"));
|
|
53
|
+
const input = join(dir, "report.html");
|
|
54
|
+
const output = join(dir, "report.pdf");
|
|
55
|
+
try {
|
|
56
|
+
await writeFile(input, html, "utf8");
|
|
57
|
+
await new Promise((resolve, reject) => {
|
|
58
|
+
const child = spawn(browser, [
|
|
59
|
+
"--headless",
|
|
60
|
+
"--disable-gpu",
|
|
61
|
+
"--no-first-run",
|
|
62
|
+
"--no-default-browser-check",
|
|
63
|
+
"--disable-extensions",
|
|
64
|
+
`--user-data-dir=${join(dir, "profile")}`,
|
|
65
|
+
"--no-pdf-header-footer",
|
|
66
|
+
"--generate-pdf-document-outline",
|
|
67
|
+
`--print-to-pdf=${output}`,
|
|
68
|
+
pathToFileURL(input).href
|
|
69
|
+
], {
|
|
70
|
+
stdio: [
|
|
71
|
+
"ignore",
|
|
72
|
+
"ignore",
|
|
73
|
+
"pipe"
|
|
74
|
+
],
|
|
75
|
+
windowsHide: true
|
|
76
|
+
});
|
|
77
|
+
let stderr = "";
|
|
78
|
+
child.stderr?.on("data", (d) => stderr = (stderr + d).slice(-2e3));
|
|
79
|
+
const timer = setTimeout(() => {
|
|
80
|
+
child.kill();
|
|
81
|
+
reject(/* @__PURE__ */ new Error("El navegador tardó demasiado en generar el PDF."));
|
|
82
|
+
}, TIMEOUT_MS);
|
|
83
|
+
child.on("error", (e) => {
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
reject(e);
|
|
86
|
+
});
|
|
87
|
+
child.on("exit", () => {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
if (existsSync(output)) resolve();
|
|
90
|
+
else reject(new Error(`El navegador no generó el PDF. ${stderr.trim()}`.trim()));
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
return await readFile(output);
|
|
94
|
+
} finally {
|
|
95
|
+
await rm(dir, {
|
|
96
|
+
recursive: true,
|
|
97
|
+
force: true
|
|
98
|
+
}).catch(() => {});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region src/routes/api/pdf/+server.ts
|
|
103
|
+
/** Límite del HTML recibido (los reportes rondan los cientos de KB). */
|
|
104
|
+
var MAX_BYTES = 20 * 1024 * 1024;
|
|
105
|
+
/** Recibe el HTML del export y devuelve el PDF impreso por Chrome/Edge headless. */
|
|
106
|
+
var POST = async ({ request }) => {
|
|
107
|
+
if (!findBrowser()) error(501, "No hay un navegador compatible para generar el PDF.");
|
|
108
|
+
const html = await request.text();
|
|
109
|
+
if (!html.trim()) error(400, "Falta el HTML.");
|
|
110
|
+
if (html.length > MAX_BYTES) error(413, "El reporte es demasiado grande.");
|
|
111
|
+
try {
|
|
112
|
+
const pdf = await renderPdf(html);
|
|
113
|
+
return new Response(new Uint8Array(pdf), { headers: {
|
|
114
|
+
"content-type": "application/pdf",
|
|
115
|
+
"cache-control": "no-store"
|
|
116
|
+
} });
|
|
117
|
+
} catch (e) {
|
|
118
|
+
error(500, e instanceof Error ? e.message : "No se pudo generar el PDF.");
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { POST };
|
|
123
|
+
//# sourceMappingURL=_server.ts-Bu1fdGSB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-Bu1fdGSB.js","sources":["../../../.svelte-kit/output/server/entries/endpoints/api/pdf/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { existsSync } from \"node:fs\";\nimport { spawn } from \"node:child_process\";\nimport { tmpdir } from \"node:os\";\nimport { delimiter, join } from \"node:path\";\nimport { mkdtemp, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { pathToFileURL } from \"node:url\";\n//#region src/lib/server/pdf.ts\n/** Tiempo máximo para que el navegador imprima el PDF. */\nvar TIMEOUT_MS = 6e4;\nfunction candidates() {\n\tconst env = process.env.DIFF_REVIEW_CHROME;\n\tconst list = env ? [env] : [];\n\tif (process.platform === \"win32\") {\n\t\tconst roots = [\n\t\t\tprocess.env[\"PROGRAMFILES\"],\n\t\t\tprocess.env[\"PROGRAMFILES(X86)\"],\n\t\t\tprocess.env[\"LOCALAPPDATA\"]\n\t\t].filter(Boolean);\n\t\tfor (const root of roots) {\n\t\t\tlist.push(join(root, \"Google/Chrome/Application/chrome.exe\"));\n\t\t\tlist.push(join(root, \"Chromium/Application/chrome.exe\"));\n\t\t\tlist.push(join(root, \"BraveSoftware/Brave-Browser/Application/brave.exe\"));\n\t\t\tlist.push(join(root, \"Microsoft/Edge/Application/msedge.exe\"));\n\t\t}\n\t} else if (process.platform === \"darwin\") list.push(\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\", \"/Applications/Chromium.app/Contents/MacOS/Chromium\", \"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser\", \"/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge\");\n\telse {\n\t\tconst names = [\n\t\t\t\"google-chrome\",\n\t\t\t\"google-chrome-stable\",\n\t\t\t\"chromium\",\n\t\t\t\"chromium-browser\",\n\t\t\t\"brave-browser\",\n\t\t\t\"microsoft-edge\"\n\t\t];\n\t\tfor (const dir of (process.env.PATH ?? \"\").split(delimiter).filter(Boolean)) for (const name of names) list.push(join(dir, name));\n\t}\n\treturn list;\n}\nvar cached;\n/** Primer navegador basado en Chromium instalado (o `DIFF_REVIEW_CHROME`). */\nfunction findBrowser() {\n\tif (cached !== void 0) return cached;\n\tcached = candidates().find((p) => existsSync(p)) ?? null;\n\treturn cached;\n}\n/** Imprime el HTML a PDF con el navegador en modo headless; los títulos h1–h3 quedan como marcadores. */\nasync function renderPdf(html) {\n\tconst browser = findBrowser();\n\tif (!browser) throw new Error(\"No se encontró Chrome, Edge ni Chromium instalado.\");\n\tconst dir = await mkdtemp(join(tmpdir(), \"diff-review-pdf-\"));\n\tconst input = join(dir, \"report.html\");\n\tconst output = join(dir, \"report.pdf\");\n\ttry {\n\t\tawait writeFile(input, html, \"utf8\");\n\t\tawait new Promise((resolve, reject) => {\n\t\t\tconst child = spawn(browser, [\n\t\t\t\t\"--headless\",\n\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\"--no-first-run\",\n\t\t\t\t\"--no-default-browser-check\",\n\t\t\t\t\"--disable-extensions\",\n\t\t\t\t`--user-data-dir=${join(dir, \"profile\")}`,\n\t\t\t\t\"--no-pdf-header-footer\",\n\t\t\t\t\"--generate-pdf-document-outline\",\n\t\t\t\t`--print-to-pdf=${output}`,\n\t\t\t\tpathToFileURL(input).href\n\t\t\t], {\n\t\t\t\tstdio: [\n\t\t\t\t\t\"ignore\",\n\t\t\t\t\t\"ignore\",\n\t\t\t\t\t\"pipe\"\n\t\t\t\t],\n\t\t\t\twindowsHide: true\n\t\t\t});\n\t\t\tlet stderr = \"\";\n\t\t\tchild.stderr?.on(\"data\", (d) => stderr = (stderr + d).slice(-2e3));\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tchild.kill();\n\t\t\t\treject(/* @__PURE__ */ new Error(\"El navegador tardó demasiado en generar el PDF.\"));\n\t\t\t}, TIMEOUT_MS);\n\t\t\tchild.on(\"error\", (e) => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(e);\n\t\t\t});\n\t\t\tchild.on(\"exit\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tif (existsSync(output)) resolve();\n\t\t\t\telse reject(new Error(`El navegador no generó el PDF. ${stderr.trim()}`.trim()));\n\t\t\t});\n\t\t});\n\t\treturn await readFile(output);\n\t} finally {\n\t\tawait rm(dir, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t}).catch(() => {});\n\t}\n}\n//#endregion\n//#region src/routes/api/pdf/+server.ts\n/** Límite del HTML recibido (los reportes rondan los cientos de KB). */\nvar MAX_BYTES = 20 * 1024 * 1024;\n/** Recibe el HTML del export y devuelve el PDF impreso por Chrome/Edge headless. */\nvar POST = async ({ request }) => {\n\tif (!findBrowser()) error(501, \"No hay un navegador compatible para generar el PDF.\");\n\tconst html = await request.text();\n\tif (!html.trim()) error(400, \"Falta el HTML.\");\n\tif (html.length > MAX_BYTES) error(413, \"El reporte es demasiado grande.\");\n\ttry {\n\t\tconst pdf = await renderPdf(html);\n\t\treturn new Response(new Uint8Array(pdf), { headers: {\n\t\t\t\"content-type\": \"application/pdf\",\n\t\t\t\"cache-control\": \"no-store\"\n\t\t} });\n\t} catch (e) {\n\t\terror(500, e instanceof Error ? e.message : \"No se pudo generar el PDF.\");\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { s as sessionInfo,
|
|
2
|
-
import { e as error } from './index.js-
|
|
3
|
-
import './validate-
|
|
1
|
+
import { s as sessionInfo, k as subscribe } from './agent-sessions-BArYLTW6.js';
|
|
2
|
+
import { e as error } from './index.js-Bb0CZLZ_.js';
|
|
3
|
+
import './validate-CXjTRGnR.js';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'node:child_process';
|
|
6
6
|
import 'node:path';
|
|
7
7
|
import 'node:os';
|
|
8
8
|
import 'node:stream';
|
|
9
9
|
import '@agentclientprotocol/sdk';
|
|
10
|
+
import 'node:crypto';
|
|
10
11
|
|
|
11
12
|
//#region src/routes/api/agent/[id]/events/+server.ts
|
|
12
13
|
/** Eventos de una sesión con el agente (SSE). Al conectar manda `reset` y todo lo acumulado; después, lo nuevo. */
|
|
@@ -59,4 +60,4 @@ var GET = ({ params, request }) => {
|
|
|
59
60
|
};
|
|
60
61
|
|
|
61
62
|
export { GET };
|
|
62
|
-
//# sourceMappingURL=_server.ts-
|
|
63
|
+
//# sourceMappingURL=_server.ts-BuUNechu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-BuUNechu.js","sources":["../../../.svelte-kit/output/server/entries/endpoints/api/agent/_id_/events/_server.ts.js"],"sourcesContent":["import { d as sessionInfo, h as subscribe } from \"../../../../../../chunks/agent-sessions.js\";\nimport { error } from \"@sveltejs/kit\";\n//#region src/routes/api/agent/[id]/events/+server.ts\n/** Eventos de una sesión con el agente (SSE). Al conectar manda `reset` y todo lo acumulado; después, lo nuevo. */\nvar GET = ({ params, request }) => {\n\tif (!sessionInfo(params.id)) error(404, \"La sesión del agente ya no existe.\");\n\tlet unsubscribe = null;\n\tlet ping = null;\n\tconst encoder = new TextEncoder();\n\tconst cleanup = () => {\n\t\tunsubscribe?.();\n\t\tunsubscribe = null;\n\t\tif (ping) clearInterval(ping);\n\t\tping = null;\n\t};\n\tconst stream = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tconst send = (data) => {\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\\n\\n`));\n\t\t\t\t} catch {\n\t\t\t\t\tcleanup();\n\t\t\t\t}\n\t\t\t};\n\t\t\tunsubscribe = subscribe(params.id, send);\n\t\t\tif (!unsubscribe) {\n\t\t\t\tcontroller.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tping = setInterval(() => {\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.enqueue(encoder.encode(\": ping\\n\\n\"));\n\t\t\t\t} catch {\n\t\t\t\t\tcleanup();\n\t\t\t\t}\n\t\t\t}, 2e4);\n\t\t\trequest.signal.addEventListener(\"abort\", () => {\n\t\t\t\tcleanup();\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} catch {}\n\t\t\t});\n\t\t},\n\t\tcancel: cleanup\n\t});\n\treturn new Response(stream, { headers: {\n\t\t\"content-type\": \"text/event-stream\",\n\t\t\"cache-control\": \"no-cache\",\n\t\tconnection: \"keep-alive\"\n\t} });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;AAEA;AACA;AACG,IAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACnC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC9E,CAAC,IAAI,WAAW,GAAG,IAAI;AACvB,CAAC,IAAI,IAAI,GAAG,IAAI;AAChB,CAAC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AAClC,CAAC,MAAM,OAAO,GAAG,MAAM;AACvB,EAAE,WAAW,IAAI;AACjB,EAAE,WAAW,GAAG,IAAI;AACpB,EAAE,IAAI,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,GAAG,IAAI;AACb,CAAC,CAAC;AACF,CAAC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AACnC,EAAE,KAAK,CAAC,UAAU,EAAE;AACpB,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK;AAC1B,IAAI,IAAI;AACR,KAAK,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,IAAI,CAAC,CAAC,MAAM;AACZ,KAAK,OAAO,EAAE;AACd,IAAI;AACJ,GAAG,CAAC;AACJ,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;AAC3C,GAAG,IAAI,CAAC,WAAW,EAAE;AACrB,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,IAAI;AACJ,GAAG;AACH,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM;AAC5B,IAAI,IAAI;AACR,KAAK,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrD,IAAI,CAAC,CAAC,MAAM;AACZ,KAAK,OAAO,EAAE;AACd,IAAI;AACJ,GAAG,CAAC,EAAE,GAAG,CAAC;AACV,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAClD,IAAI,OAAO,EAAE;AACb,IAAI,IAAI;AACR,KAAK,UAAU,CAAC,KAAK,EAAE;AACvB,IAAI,CAAC,CAAC,MAAM,CAAC;AACb,GAAG,CAAC,CAAC;AACL,EAAE,CAAC;AACH,EAAE,MAAM,EAAE;AACV,EAAE,CAAC;AACH,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE;AACxC,EAAE,cAAc,EAAE,mBAAmB;AACrC,EAAE,eAAe,EAAE,UAAU;AAC7B,EAAE,UAAU,EAAE;AACd,EAAE,EAAE,CAAC;AACL;;"}
|