@jpkme/diff-review 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/diff-review.mjs +141 -77
- package/lib/acp-shell.mjs +23 -1
- package/lib/acp-shell.test.mjs +7 -0
- package/package.json +1 -1
- package/web/build/client/_app/immutable/assets/3.Cw1J6YTM.css +1 -0
- 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.C8XGESwn.css → storage.TlsiS-AP.css} +1 -1
- package/web/build/client/_app/immutable/assets/storage.TlsiS-AP.css.br +0 -0
- package/web/build/client/_app/immutable/assets/{storage.C8XGESwn.css.gz → storage.TlsiS-AP.css.gz} +0 -0
- package/web/build/client/_app/immutable/chunks/{FOc6rgIW.js → BpVtXA-T.js} +1 -1
- package/web/build/client/_app/immutable/chunks/BpVtXA-T.js.br +2 -0
- package/web/build/client/_app/immutable/chunks/BpVtXA-T.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/{CpeIO6nz.js → CUhrLa7d.js} +7 -7
- 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/QvO6K-HK.js +2 -0
- 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/entry/{app.DcAtSJ3n.js → app.BjJsHui4.js} +2 -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 +1 -0
- 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/{1.E-Hs7ura.js → 1.C8JJYlWG.js} +1 -1
- package/web/build/client/_app/immutable/nodes/1.C8JJYlWG.js.br +1 -0
- package/web/build/client/_app/immutable/nodes/1.C8JJYlWG.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/{2.s1_irV1Q.js → 2.CDI0Ipi4.js} +1 -1
- 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 +171 -0
- 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/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/1-DUj63QTT.js +7 -0
- package/web/build/server/chunks/{1-BFhhV5JB.js.map → 1-DUj63QTT.js.map} +1 -1
- package/web/build/server/chunks/2-B4PSKe5P.js +7 -0
- package/web/build/server/chunks/{2-BZ_MVqj8.js.map → 2-B4PSKe5P.js.map} +1 -1
- package/web/build/server/chunks/3-C7UD6rei.js +7 -0
- package/web/build/server/chunks/{3-BV-TIUp1.js.map → 3-C7UD6rei.js.map} +1 -1
- package/web/build/server/chunks/{_server.ts-CdFoXw36.js → _server.ts-4RcoUd0l.js} +3 -3
- package/web/build/server/chunks/{_server.ts-CdFoXw36.js.map → _server.ts-4RcoUd0l.js.map} +1 -1
- package/web/build/server/chunks/{agent-sessions-D0WwtWgR.js → agent-sessions-C_hlZJKN.js} +22 -2
- package/web/build/server/chunks/agent-sessions-C_hlZJKN.js.map +1 -0
- package/web/build/server/chunks/{git-review-CgcBIbvM.js → git-review-Bh1w0gak.js} +2 -2
- package/web/build/server/chunks/{git-review-CgcBIbvM.js.map → git-review-Bh1w0gak.js.map} +1 -1
- package/web/build/server/chunks/{handler-DbxjtK9M.js → handler-e2lEvjVT.js} +3 -3
- package/web/build/server/chunks/{handler-DbxjtK9M.js.map → handler-e2lEvjVT.js.map} +1 -1
- package/web/build/server/chunks/{hooks.server-Dg6gYUqs.js → hooks.server-Um1Sknmz.js} +2 -2
- package/web/build/server/chunks/{hooks.server-Dg6gYUqs.js.map → hooks.server-Um1Sknmz.js.map} +1 -1
- package/web/build/server/chunks/{index.js-NNne-njN.js → index.js-C3-YX8SA.js} +3 -3
- package/web/build/server/chunks/{index.js-NNne-njN.js.map → index.js-C3-YX8SA.js.map} +1 -1
- package/web/build/server/chunks/{manifest.js-V8ViI5bl.js → manifest.js-CmbRPv0j.js} +8 -8
- package/web/build/server/chunks/{manifest.js-V8ViI5bl.js.map → manifest.js-CmbRPv0j.js.map} +1 -1
- package/web/build/server/chunks/{remote-1g4ayag-CCsG2QXw.js → remote-1g4ayag-DMiPy1mT.js} +3 -3
- package/web/build/server/chunks/{remote-1g4ayag-CCsG2QXw.js.map → remote-1g4ayag-DMiPy1mT.js.map} +1 -1
- package/web/build/server/chunks/{remote-wh6t6j-BCvmX37z.js → remote-wh6t6j-RlIVOUe-.js} +4 -4
- package/web/build/server/chunks/{remote-wh6t6j-BCvmX37z.js.map → remote-wh6t6j-RlIVOUe-.js.map} +1 -1
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css +0 -1
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css.br +0 -0
- package/web/build/client/_app/immutable/assets/3.BT54aVKb.css.gz +0 -0
- package/web/build/client/_app/immutable/assets/storage.C8XGESwn.css.br +0 -0
- package/web/build/client/_app/immutable/chunks/C0hrdiUt.js +0 -2
- package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.br +0 -0
- package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.gz +0 -0
- package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.br +0 -2
- package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.br +0 -0
- package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.gz +0 -0
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js +0 -1
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.br +0 -0
- package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.br +0 -4
- package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.gz +0 -0
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js +0 -171
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.br +0 -0
- package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.gz +0 -0
- package/web/build/server/chunks/1-BFhhV5JB.js +0 -7
- package/web/build/server/chunks/2-BZ_MVqj8.js +0 -7
- package/web/build/server/chunks/3-BV-TIUp1.js +0 -7
- package/web/build/server/chunks/agent-sessions-D0WwtWgR.js.map +0 -1
package/bin/diff-review.mjs
CHANGED
|
@@ -233,8 +233,9 @@ function ensureValue(value, label) {
|
|
|
233
233
|
* Selects interactivos salvo que --branch y --base vengan juntos.
|
|
234
234
|
* @param {{ listed: { branches: string[], current: string, defaultBase: string }, repo: string }} launch
|
|
235
235
|
* @param {{ branch: string, base: string }} opts
|
|
236
|
+
* @param {{ skipIntro?: boolean }} [pickOpts]
|
|
236
237
|
*/
|
|
237
|
-
async function resolveBranchBase(launch, opts) {
|
|
238
|
+
async function resolveBranchBase(launch, opts, pickOpts = {}) {
|
|
238
239
|
const flagBranch = String(opts.branch || '').trim();
|
|
239
240
|
const flagBase = String(opts.base || '').trim();
|
|
240
241
|
const bothFlags = Boolean(flagBranch && flagBase);
|
|
@@ -255,61 +256,86 @@ async function resolveBranchBase(launch, opts) {
|
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
const options = branchOptions(launch.listed);
|
|
258
|
-
|
|
259
|
-
|
|
259
|
+
if (!pickOpts.skipIntro) {
|
|
260
|
+
p.intro('diff-review');
|
|
261
|
+
p.log.info(launch.repo);
|
|
262
|
+
}
|
|
260
263
|
|
|
264
|
+
/** @type {string} */
|
|
261
265
|
let branch = flagBranch;
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
message: 'Branch a revisar',
|
|
266
|
-
options,
|
|
267
|
-
initialValue: defaultBranch(launch.listed) || undefined,
|
|
268
|
-
maxItems: 12
|
|
269
|
-
}),
|
|
270
|
-
'branch'
|
|
271
|
-
);
|
|
272
|
-
} else {
|
|
273
|
-
p.log.step(`Branch: ${branch}`);
|
|
274
|
-
}
|
|
266
|
+
/** @type {string} */
|
|
267
|
+
let base = flagBase;
|
|
268
|
+
let first = true;
|
|
275
269
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
270
|
+
for (;;) {
|
|
271
|
+
if (!first) {
|
|
272
|
+
// Diff vacío / tips iguales: volver a preguntar branch y base (no solo la base).
|
|
273
|
+
branch = '';
|
|
274
|
+
base = '';
|
|
275
|
+
}
|
|
276
|
+
first = false;
|
|
277
|
+
|
|
278
|
+
if (!branch) {
|
|
279
|
+
branch = ensureValue(
|
|
280
|
+
await autocompleteEs({
|
|
281
|
+
message: 'Branch a revisar',
|
|
282
|
+
options,
|
|
283
|
+
initialValue: defaultBranch(launch.listed) || undefined,
|
|
284
|
+
maxItems: 12
|
|
285
|
+
}),
|
|
286
|
+
'branch'
|
|
287
|
+
);
|
|
288
|
+
} else {
|
|
289
|
+
p.log.step(`Branch: ${branch}`);
|
|
290
|
+
}
|
|
281
291
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
options: baseOptions,
|
|
288
|
-
initialValue: defaultBase(launch.listed, branch) || undefined,
|
|
289
|
-
maxItems: 12
|
|
290
|
-
}),
|
|
291
|
-
'base'
|
|
292
|
-
);
|
|
293
|
-
} else {
|
|
294
|
-
p.log.step(`Base: ${base}`);
|
|
295
|
-
}
|
|
292
|
+
const baseOptions = branchOptions(launch.listed, branch);
|
|
293
|
+
if (!baseOptions.length) {
|
|
294
|
+
p.cancel(`No hay otra base disponible distinta de \`${branch}\`.`);
|
|
295
|
+
process.exit(1);
|
|
296
|
+
}
|
|
296
297
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
298
|
+
if (!base) {
|
|
299
|
+
base = ensureValue(
|
|
300
|
+
await autocompleteEs({
|
|
301
|
+
message: 'Base (merge-base)',
|
|
302
|
+
options: baseOptions,
|
|
303
|
+
initialValue: defaultBase(launch.listed, branch) || undefined,
|
|
304
|
+
maxItems: 12
|
|
305
|
+
}),
|
|
306
|
+
'base'
|
|
307
|
+
);
|
|
308
|
+
} else {
|
|
309
|
+
p.log.step(`Base: ${base}`);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
if (branch === base || sameCommitTips(launch.repo, branch, base)) {
|
|
313
|
+
p.log.warn(emptyDiffPickMessage(branch, base));
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
308
317
|
}
|
|
309
318
|
|
|
310
319
|
return { branch, base, prompted: true };
|
|
311
320
|
}
|
|
312
321
|
|
|
322
|
+
/** ¿Branch y base resuelven al mismo SHA? (diff committed vacío aunque los nombres difieran). */
|
|
323
|
+
function sameCommitTips(repo, branch, base) {
|
|
324
|
+
try {
|
|
325
|
+
const { branchSha, baseSha } = branchTips(repo, branch, base);
|
|
326
|
+
return Boolean(branchSha && baseSha && branchSha === baseSha);
|
|
327
|
+
} catch {
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
function emptyDiffPickMessage(branch, base) {
|
|
333
|
+
if (branch === base) {
|
|
334
|
+
return `Branch y base son iguales (${branch}): no hay diff que revisar.`;
|
|
335
|
+
}
|
|
336
|
+
return `\`${branch}\` y \`${base}\` apuntan al mismo commit: no hay diff que revisar.`;
|
|
337
|
+
}
|
|
338
|
+
|
|
313
339
|
function buildOutputFilename(repo, branch, base) {
|
|
314
340
|
try {
|
|
315
341
|
const tips = branchTips(repo, branch, base);
|
|
@@ -327,10 +353,10 @@ function buildOutputFilename(repo, branch, base) {
|
|
|
327
353
|
}
|
|
328
354
|
|
|
329
355
|
/**
|
|
330
|
-
* Precomputa el diff en CLI (spinner si hay Clack).
|
|
331
|
-
* @returns {ReturnType<typeof prepareReviewPromptOpts>}
|
|
356
|
+
* Precomputa el diff en CLI (spinner si hay Clack).
|
|
357
|
+
* @returns {{ empty: true, message: string } | { empty: false, promptOpts: ReturnType<typeof prepareReviewPromptOpts> }}
|
|
332
358
|
*/
|
|
333
|
-
function
|
|
359
|
+
function prepareContext(launch, branch, base, outputFilename, { useClack }) {
|
|
334
360
|
const spin = useClack ? p.spinner() : null;
|
|
335
361
|
if (!useClack) console.log('Preparando el contexto…');
|
|
336
362
|
spin?.start('Preparando el contexto…');
|
|
@@ -351,22 +377,22 @@ function prepareContextOrFail(launch, branch, base, outputFilename, { useClack }
|
|
|
351
377
|
else console.warn('No pude precomputar el diff:', msg);
|
|
352
378
|
ensureReviewDir(launch.repo);
|
|
353
379
|
writeDiffCache(launch.repo, outputFilename, { branch, base });
|
|
354
|
-
return promptOpts;
|
|
380
|
+
return { empty: false, promptOpts };
|
|
355
381
|
}
|
|
356
382
|
|
|
357
383
|
const n = Array.isArray(promptOpts.files) ? promptOpts.files.length : 0;
|
|
358
384
|
if (n === 0) {
|
|
359
385
|
spin?.stop('Diff vacío');
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
386
|
+
return {
|
|
387
|
+
empty: true,
|
|
388
|
+
message: `El diff entre \`${branch}\` y \`${base}\` está vacío: no hay nada que revisar.`
|
|
389
|
+
};
|
|
364
390
|
}
|
|
365
391
|
|
|
366
392
|
const done = `Contexto listo · ${n} archivo${n === 1 ? '' : 's'}`;
|
|
367
393
|
spin?.stop(done);
|
|
368
394
|
if (!useClack) console.log(done);
|
|
369
|
-
return promptOpts;
|
|
395
|
+
return { empty: false, promptOpts };
|
|
370
396
|
}
|
|
371
397
|
|
|
372
398
|
function copyPromptOrWarn(prompt) {
|
|
@@ -674,9 +700,15 @@ async function runUiMode(opts, launch, launchCwd) {
|
|
|
674
700
|
if (launch) {
|
|
675
701
|
console.log(`Repo: ${launch.repo}`);
|
|
676
702
|
console.log(`Branch: ${branch} (base: ${base})`);
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
703
|
+
if (branch === base || sameCommitTips(launch.repo, branch, base)) {
|
|
704
|
+
console.error(emptyDiffPickMessage(branch, base));
|
|
705
|
+
process.exit(1);
|
|
706
|
+
}
|
|
707
|
+
const prep = prepareContext(launch, branch, base, outputFilename, { useClack: false });
|
|
708
|
+
if (prep.empty) {
|
|
709
|
+
console.error(prep.message);
|
|
710
|
+
process.exit(1);
|
|
711
|
+
}
|
|
680
712
|
const prompt = buildPrompt(
|
|
681
713
|
{
|
|
682
714
|
source: 'local',
|
|
@@ -685,7 +717,7 @@ async function runUiMode(opts, launch, launchCwd) {
|
|
|
685
717
|
base,
|
|
686
718
|
remoteUrl: launch.remoteUrl
|
|
687
719
|
},
|
|
688
|
-
promptOpts
|
|
720
|
+
prep.promptOpts
|
|
689
721
|
);
|
|
690
722
|
if (copyTextToClipboard(prompt)) {
|
|
691
723
|
console.log('Prompt copiado al portapapeles.');
|
|
@@ -734,27 +766,59 @@ async function main() {
|
|
|
734
766
|
process.exit(1);
|
|
735
767
|
}
|
|
736
768
|
|
|
737
|
-
|
|
769
|
+
/** @type {{ branch: string, base: string }} */
|
|
770
|
+
let pick = { branch: opts.branch, base: opts.base };
|
|
771
|
+
let skipIntro = false;
|
|
772
|
+
/** @type {string} */
|
|
773
|
+
let branch;
|
|
774
|
+
/** @type {string} */
|
|
775
|
+
let base;
|
|
776
|
+
/** @type {boolean} */
|
|
777
|
+
let prompted;
|
|
778
|
+
/** @type {string} */
|
|
779
|
+
let outputFilename;
|
|
780
|
+
/** @type {ReturnType<typeof prepareReviewPromptOpts>} */
|
|
781
|
+
let promptOpts;
|
|
738
782
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
if (prompted)
|
|
742
|
-
else console.error(msg);
|
|
743
|
-
process.exit(1);
|
|
744
|
-
}
|
|
783
|
+
for (;;) {
|
|
784
|
+
({ branch, base, prompted } = await resolveBranchBase(launch, pick, { skipIntro }));
|
|
785
|
+
if (prompted) skipIntro = true;
|
|
745
786
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
787
|
+
if (branch === base || sameCommitTips(launch.repo, branch, base)) {
|
|
788
|
+
const msg = emptyDiffPickMessage(branch, base);
|
|
789
|
+
if (prompted || isInteractive()) {
|
|
790
|
+
p.log.warn(msg);
|
|
791
|
+
pick = { branch: '', base: '' };
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
794
|
+
console.error(msg);
|
|
795
|
+
process.exit(1);
|
|
796
|
+
}
|
|
753
797
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
798
|
+
outputFilename = buildOutputFilename(launch.repo, branch, base);
|
|
799
|
+
if (!prompted) {
|
|
800
|
+
console.log(`Repo: ${launch.repo}`);
|
|
801
|
+
console.log(`Branch: ${branch} (base: ${base})`);
|
|
802
|
+
} else {
|
|
803
|
+
p.note(`${branch} → ${base}\n${outputRelPath(outputFilename)}`, 'Review');
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
// El agente escribe en .diff-review/ (que se ignora sola) y lee de ahí el diff ya calculado.
|
|
807
|
+
const prep = prepareContext(launch, branch, base, outputFilename, {
|
|
808
|
+
useClack: prompted || isInteractive()
|
|
809
|
+
});
|
|
810
|
+
if (prep.empty) {
|
|
811
|
+
if (prompted || isInteractive()) {
|
|
812
|
+
p.log.warn(prep.message);
|
|
813
|
+
pick = { branch: '', base: '' };
|
|
814
|
+
continue;
|
|
815
|
+
}
|
|
816
|
+
console.error(prep.message);
|
|
817
|
+
process.exit(1);
|
|
818
|
+
}
|
|
819
|
+
promptOpts = prep.promptOpts;
|
|
820
|
+
break;
|
|
821
|
+
}
|
|
758
822
|
|
|
759
823
|
const prompt = buildPrompt(
|
|
760
824
|
{
|
package/lib/acp-shell.mjs
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* El comando se tokeniza respetando comillas (un `grep "a\|b"` no es un pipe). Se aceptan `|`, `&&`, `||`, `;` y
|
|
7
7
|
* descartar salida a /dev/null; cualquier otra redirección, `$(…)`, backticks o `&` lo rechazan.
|
|
8
|
+
*
|
|
9
|
+
* En PowerShell, `(Get-Content f).Count` llega como `(Get-Content` + `f).Count`: se quitan paréntesis de
|
|
10
|
+
* agrupación y el `.Miembro` colgado al path/flag antes de evaluar la allowlist.
|
|
8
11
|
*/
|
|
9
12
|
import { realpathSync } from "node:fs";
|
|
10
13
|
import { basename, dirname, isAbsolute, normalize, resolve } from "node:path";
|
|
@@ -376,6 +379,23 @@ function checkReviewDirMkdir(argv, ctx) {
|
|
|
376
379
|
return null;
|
|
377
380
|
}
|
|
378
381
|
|
|
382
|
+
/**
|
|
383
|
+
* Quita agrupación PowerShell pegada al token: `(Get-Content` → `Get-Content`,
|
|
384
|
+
* `file.diff).Count` → `file.diff`, `-Line).Lines` → `-Line`.
|
|
385
|
+
* @param {string} token
|
|
386
|
+
*/
|
|
387
|
+
function stripPsGrouping(token) {
|
|
388
|
+
let t = String(token ?? "");
|
|
389
|
+
t = t.replace(/^\(+/, "");
|
|
390
|
+
t = t.replace(/\)+(?:\.[A-Za-z_][\w]*(?:\(\)?)?)*$/, "");
|
|
391
|
+
return t;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/** @param {string[]} argv */
|
|
395
|
+
function normalizePsArgv(argv) {
|
|
396
|
+
return argv.map(stripPsGrouping).filter((w) => w.length > 0);
|
|
397
|
+
}
|
|
398
|
+
|
|
379
399
|
/**
|
|
380
400
|
* @param {string} command
|
|
381
401
|
* @param {{ repo?: string, platform?: NodeJS.Platform }} [opts]
|
|
@@ -387,7 +407,9 @@ export function checkShell(command, { repo, platform = process.platform } = {})
|
|
|
387
407
|
if (!parsed.pipelines.length) return { ok: false, reason: "comando vacío" };
|
|
388
408
|
const ctx = { repo: repo || process.cwd(), platform };
|
|
389
409
|
for (const pipeline of parsed.pipelines) {
|
|
390
|
-
for (const
|
|
410
|
+
for (const rawArgv of pipeline) {
|
|
411
|
+
const argv = normalizePsArgv(rawArgv);
|
|
412
|
+
if (!argv.length) continue;
|
|
391
413
|
const name = argv[0].toLowerCase();
|
|
392
414
|
if (argv[0].includes("=")) return { ok: false, reason: `variables de entorno en el comando: ${argv[0]}` };
|
|
393
415
|
/** @type {ShellCheck} */
|
package/lib/acp-shell.test.mjs
CHANGED
|
@@ -64,6 +64,10 @@ test("checkShell deja git de lectura, el validate y comandos que solo leen", ()
|
|
|
64
64
|
"git diff a...b -- lib 2>/dev/null || true",
|
|
65
65
|
"Get-Content lib/agents.mjs | Select-Object -First 40",
|
|
66
66
|
"Select-String -Path lib/*.mjs -Pattern 'export'",
|
|
67
|
+
// Agrupación PowerShell: `(cmd).Property` (Copilot/Opus suele contar líneas así).
|
|
68
|
+
"(Get-Content lib/agents.mjs).Count",
|
|
69
|
+
"(Get-Content .diff-review/diff-rev_x.diff).Count",
|
|
70
|
+
"(Get-Content lib/a.mjs | Measure-Object -Line).Lines",
|
|
67
71
|
]) {
|
|
68
72
|
assert.equal(ok(cmd), true, cmd);
|
|
69
73
|
}
|
|
@@ -73,6 +77,9 @@ test("checkShell rechaza escrituras, ejecución y paths fuera del repo", () => {
|
|
|
73
77
|
const home = win ? "C:\\Users\\me\\.ssh\\id_rsa" : "/home/me/.ssh/id_rsa";
|
|
74
78
|
for (const cmd of [
|
|
75
79
|
"",
|
|
80
|
+
// Agrupar no habilita comandos fuera de la allowlist.
|
|
81
|
+
"(Remove-Item lib/a.mjs)",
|
|
82
|
+
"(Invoke-WebRequest https://example.com).Content",
|
|
76
83
|
"git checkout main",
|
|
77
84
|
"git branch -D feat",
|
|
78
85
|
"git push",
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.resize-handle.svelte-ywcz8g{cursor:col-resize;z-index:2;touch-action:none;background:0 0;flex-shrink:0;width:6px;position:relative}.resize-handle.svelte-ywcz8g:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:2px}.resize-handle.svelte-ywcz8g:hover:after,.resize-handle.dragging.svelte-ywcz8g:after{background:var(--accent)}.chat-shell.svelte-1nylsi{flex-shrink:0;align-self:stretch;min-width:0;min-height:0;display:flex}.chat.svelte-1nylsi{border-left:1px solid var(--border);background:var(--bg-elev);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}header.svelte-1nylsi{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.title.svelte-1nylsi{align-items:center;gap:8px;min-width:0;display:flex}.title.svelte-1nylsi strong:where(.svelte-1nylsi){font-size:13.5px;font-weight:650}.title.svelte-1nylsi small:where(.svelte-1nylsi){font-family:var(--mono);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11.5px;overflow:hidden}.close.svelte-1nylsi{color:var(--text-dim);cursor:pointer;background:0 0;border:0;font-size:13px}.log-area.svelte-1nylsi{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px;display:flex}.log.svelte-1nylsi{flex:1;min-height:0;display:flex}.log.svelte-1nylsi .log{flex:1;min-height:0}.picker.svelte-1nylsi{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex}.field.svelte-1nylsi{color:var(--text-dim);flex-direction:column;gap:4px;font-size:12px;display:flex}.field.svelte-1nylsi .agent-select .trigger{padding:6px 8px;font-size:13px}.field.svelte-1nylsi small:where(.svelte-1nylsi){color:var(--text-faint)}.start.svelte-1nylsi{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);color:var(--btn-primary-text);align-self:flex-start;padding:8px 14px;font-size:13px}.start.svelte-1nylsi:disabled{opacity:.5}.hint.svelte-1nylsi,.note.svelte-1nylsi,.err.svelte-1nylsi{color:var(--text-faint);margin:0;padding:8px 14px;font-size:12.5px}.picker.svelte-1nylsi .hint:where(.svelte-1nylsi){padding:0}.err.svelte-1nylsi{color:var(--danger)}.models-error.svelte-1nylsi{flex-wrap:wrap;align-items:baseline;gap:8px;padding-inline:0;display:flex}button.linkish.svelte-1nylsi{color:var(--accent,#3b82f6);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.connecting.svelte-1nylsi{text-align:center;flex-direction:column;flex:1;justify-content:center;gap:6px;padding:18px 8px;display:flex}.connecting-title.svelte-1nylsi{color:var(--text);margin:0;font-size:13.5px;font-weight:650}.connecting-detail.svelte-1nylsi{font-size:12px;font-family:var(--mono);color:var(--text-dim);word-break:break-all;margin:0}.connecting-hint.svelte-1nylsi{color:var(--text-faint);margin:4px 0 0;font-size:12px}.composer.svelte-1nylsi{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 14px 14px;display:flex}.composer-top.svelte-1nylsi{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.model-field.svelte-1nylsi{flex:0 auto;min-width:0;max-width:min(220px,42%);margin-left:auto}.mode-toggle.svelte-1nylsi{border:1px solid var(--border);flex-shrink:0;align-self:flex-start;display:flex}.mode-toggle.svelte-1nylsi button:where(.svelte-1nylsi){color:var(--text);background:0 0;border:0;padding:5px 10px;font-size:12px}.mode-toggle.svelte-1nylsi button:where(.svelte-1nylsi)+button:where(.svelte-1nylsi){border-left:1px solid var(--border)}.mode-toggle.svelte-1nylsi button.on:where(.svelte-1nylsi){background:var(--accent-soft)}textarea.svelte-1nylsi{resize:vertical;min-height:60px;font:inherit;background:var(--bg-card);color:var(--text);border:1px solid var(--border);padding:8px;font-size:13px}.actions.svelte-1nylsi{align-items:center;gap:8px;display:flex}.actions-spacer.svelte-1nylsi{flex:1;min-width:0}.actions.svelte-1nylsi button:where(.svelte-1nylsi){background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:6px 12px;font-size:12.5px}.actions.svelte-1nylsi button.primary:where(.svelte-1nylsi){background:var(--btn-primary-bg);border-color:var(--btn-primary-border);color:var(--btn-primary-text)}.actions.svelte-1nylsi button:where(.svelte-1nylsi):disabled{opacity:.5}.ask-agent.svelte-1dix5z0{border:1px solid var(--border);background:var(--bg-card);width:28px;height:28px;color:var(--text-dim);cursor:pointer;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.ask-agent.svelte-1dix5z0:hover{border-color:var(--border-strong,var(--border));color:var(--text);background:var(--bg-elev,var(--bg-card))}.diff-wrap.svelte-13r6alg{background:var(--bg);--ln-w:calc(var(--diff-font-size,11.5px) * 3.1);--sign-w:calc(var(--diff-font-size,11.5px) * 1.05);--divider-w:5px}.collapse-bar.svelte-13r6alg{background:var(--diff-hunk-bg);border-bottom:1px solid var(--border-soft);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;font-size:10.5px;display:flex}.link.svelte-13r6alg{color:var(--accent);background:0 0;border:0;padding:0;font-size:10.5px;text-decoration:underline}.gap-bar.svelte-13r6alg{background:var(--diff-hunk-bg);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;padding:3px 10px;display:flex}.gap-actions.svelte-13r6alg{border:1px solid var(--border);flex-shrink:0;display:flex;overflow:hidden}.gap-actions.svelte-13r6alg button:where(.svelte-13r6alg){background:var(--bg-card);font-family:var(--mono);font-size:calc(var(--diff-font-size,11.5px) * .87);color:var(--text-dim);border:0;padding:1px 8px;line-height:1.5}.gap-actions.svelte-13r6alg button:where(.svelte-13r6alg)+button:where(.svelte-13r6alg){border-left:1px solid var(--border)}.gap-actions.svelte-13r6alg button:where(.svelte-13r6alg):hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.gap-actions.svelte-13r6alg button:where(.svelte-13r6alg):disabled{opacity:.4;cursor:not-allowed}.gap-info.svelte-13r6alg{font-family:var(--mono);font-size:calc(var(--diff-font-size,11.5px) * .87);color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.empty.svelte-13r6alg{color:var(--text-faint);margin:0;padding:12px;font-size:11.5px}.diff.svelte-13r6alg,.hunk-header.svelte-13r6alg{font-family:var(--mono)}.diff.svelte-13r6alg{max-height:55vh;font-size:var(--diff-font-size,11.5px);overflow:auto}.diff.wrap.svelte-13r6alg{overflow-x:hidden}.diff.wrap.svelte-13r6alg .row:where(.svelte-13r6alg){width:auto;min-width:0}.diff.wrap.svelte-13r6alg .code:where(.svelte-13r6alg){white-space:pre-wrap;overflow-wrap:anywhere}.hunk-header.svelte-13r6alg{background:var(--diff-hunk-bg);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);font-size:calc(var(--diff-font-size,11.5px) * .913);color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;padding:3px 10px;overflow:hidden}.row.svelte-13r6alg{grid-template-columns:var(--ln-w) var(--ln-w) var(--sign-w) auto;border-left:2px solid #0000;width:max-content;min-width:100%;display:grid}.split-grid.svelte-13r6alg{align-items:stretch;display:grid}.srow.svelte-13r6alg{display:contents}.divider.svelte-13r6alg{background:var(--border-soft);cursor:col-resize;touch-action:none}.divider.svelte-13r6alg:hover,.divider.svelte-13r6alg:active{background:var(--accent)}.split-grid.svelte-13r6alg .code:where(.svelte-13r6alg){white-space:pre-wrap;overflow-wrap:anywhere}.ln.svelte-13r6alg{text-align:right;color:var(--diff-gutter);font-size:calc(var(--diff-font-size,11.5px) * .87);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;border-left:2px solid #0000;padding-right:6px;overflow:hidden}.row.svelte-13r6alg .ln:where(.svelte-13r6alg){border-left:0}.sign.svelte-13r6alg{text-align:center;-webkit-user-select:none;user-select:none;color:var(--text-faint)}.sign.add.svelte-13r6alg{color:var(--diff-add-fg)}.sign.del.svelte-13r6alg{color:var(--diff-del-fg)}.code.svelte-13r6alg{white-space:pre;padding-right:10px}.row.add.svelte-13r6alg{background:var(--diff-add-bg)}.row.add.svelte-13r6alg .sign:where(.svelte-13r6alg){color:var(--diff-add-fg)}.row.del.svelte-13r6alg{background:var(--diff-del-bg)}.row.del.svelte-13r6alg .sign:where(.svelte-13r6alg){color:var(--diff-del-fg)}.file-icon.svelte-1dshc1f{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.file-icon.svelte-1dshc1f svg{width:100%;height:100%}.file-icon.branded.svelte-1dshc1f svg{width:78%;height:78%}.file-icon.svelte-1dshc1f:not(.branded) svg{fill:currentColor}.explore.svelte-1k3qopq{display:contents}.blocker-bar.svelte-1k3qopq{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);margin:0;padding:10px 14px;font-size:13px;font-weight:600}h2.svelte-1k3qopq{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px;font-size:12px;font-weight:650}.intent.svelte-1k3qopq{border-bottom:1px solid var(--border);padding:0 0 16px}.intent-text.svelte-1k3qopq{color:var(--text);max-width:80ch;margin:0;font-size:14px;line-height:1.6}.note.svelte-1k3qopq{color:var(--text-faint);max-width:80ch;margin:8px 0 0;font-size:11.5px;line-height:1.5}.group.svelte-1k3qopq{flex-direction:column;gap:12px;padding:18px 0 6px;display:flex}.group-sticky.svelte-1k3qopq{z-index:4;background:var(--bg);border-bottom:1px solid var(--border-soft);flex-direction:column;gap:6px;margin:0 -20px;padding:14px 20px 12px;display:flex;position:sticky;top:-14px}.group-head.svelte-1k3qopq{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.group-ask.svelte-1k3qopq{margin-left:auto}.group-head.svelte-1k3qopq .number:where(.svelte-1k3qopq){color:var(--text-faint);flex-shrink:0;font-size:12px;font-weight:700}.group-head.svelte-1k3qopq h2:where(.svelte-1k3qopq){color:var(--text);text-transform:none;letter-spacing:normal;margin:0;font-size:15px;font-weight:650;line-height:1.3}.kind-chip.svelte-1k3qopq{border:1px solid var(--border);background:var(--bg-card);flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.group-intent.svelte-1k3qopq{color:var(--text-dim);max-width:80ch;margin:0;font-size:12.5px;line-height:1.45}.loose.svelte-1k3qopq .kind-chip:where(.svelte-1k3qopq){color:var(--text-faint)}.file-section.svelte-1k3qopq{border-top:1px solid var(--border)}.file-head.svelte-1k3qopq{border-bottom:1px solid var(--border-soft);align-items:center;display:grid}.file-section.collapsed.svelte-1k3qopq .file-head:where(.svelte-1k3qopq){border-bottom:0}.file-head-main.svelte-1k3qopq{align-items:center;gap:8px;min-width:0;padding:6px 0;display:flex}.file-toggle.svelte-1k3qopq{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:4px 0;display:flex}.file-toggle.svelte-1k3qopq:hover .path:where(.svelte-1k3qopq){color:var(--accent)}.caret.svelte-1k3qopq{width:10px;color:var(--text-faint);flex-shrink:0;font-size:10px}.file-head-gutter.svelte-1k3qopq{flex-shrink:0}.file-head-explain.svelte-1k3qopq{align-items:center;padding:10px 0 10px 14px;display:flex}.path.svelte-1k3qopq{font-family:var(--mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12.5px;overflow:hidden}.change-label.svelte-1k3qopq{color:var(--text-faint);flex:1;font-size:11px}.findings-control.svelte-1k3qopq{color:var(--text);background:0 0;border:0;flex-shrink:0;align-items:center;gap:6px;padding:0;display:flex}.count-badge.svelte-1k3qopq{justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10.5px;font-weight:700;display:flex}.count-badge.done.svelte-1k3qopq{border:1px solid var(--fix-border);color:var(--ok)}.count-badge.open.svelte-1k3qopq{background:color-mix(in srgb, var(--finding-sev) 22%, transparent);color:var(--finding-sev)}.count-label.svelte-1k3qopq{color:var(--text-faint);font-size:11.5px}.count-label.open.svelte-1k3qopq{color:var(--text-dim)}.arrow.svelte-1k3qopq{color:var(--finding-sev,var(--accent));font-size:14px}.file-grid.svelte-1k3qopq{grid-template-columns:minmax(0,1fr) minmax(260px,320px);display:grid}.file-grid.no-explanations.svelte-1k3qopq{grid-template-columns:minmax(0,1fr)}.diff-col.svelte-1k3qopq{min-width:0}.explain-col.svelte-1k3qopq{border-left:1px solid var(--border-soft);background:var(--bg-elev);flex-direction:column;display:flex;overflow:auto}.explain-row.svelte-1k3qopq{border-bottom:1px solid var(--border-soft);padding:10px 14px}.explain-top.svelte-1k3qopq{align-items:center;gap:8px;margin-bottom:4px;display:flex}.explain-ask.svelte-1k3qopq{margin-left:auto}.lines.svelte-1k3qopq{color:var(--text-faint);font-size:10.5px;font-family:var(--mono)}.op.svelte-1k3qopq{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.what.svelte-1k3qopq{color:var(--text);max-width:80ch;margin:0 0 3px;font-size:13px;line-height:1.4}.why.svelte-1k3qopq{color:var(--text-dim);max-width:80ch;margin:0;font-size:11.5px;line-height:1.4}.orphans.svelte-1k3qopq,.skipped.svelte-1k3qopq{border-top:1px solid var(--border-soft);padding-top:12px}.orphan-list.svelte-1k3qopq{flex-direction:column;gap:6px;display:flex}.orphan-row.svelte-1k3qopq{background:var(--bg-elev);border-left:2px solid #0000;align-items:baseline;gap:10px;padding:6px 10px;display:flex}.orphan-row.svelte-1k3qopq .badge:where(.svelte-1k3qopq){flex-shrink:0;font-size:10px;font-weight:700}.orphan-row.svelte-1k3qopq .what:where(.svelte-1k3qopq){flex:1;margin:0;font-size:12.5px}.orphan-row.svelte-1k3qopq .where:where(.svelte-1k3qopq){font-family:var(--mono);color:var(--text-faint);font-size:10.5px}.skipped-list.svelte-1k3qopq{flex-wrap:wrap;gap:6px;display:flex}.skipped-chip.svelte-1k3qopq{font-size:11px;font-family:var(--mono);color:var(--text-faint);border:1px solid var(--border);padding:4px 8px}.prompt-box.svelte-1dm34m1{border:1px solid var(--fix-border);background:var(--fix-bg);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.prompt-box.publish.svelte-1dm34m1{border-color:var(--publish-border);background:var(--publish-bg)}.prompt-head.svelte-1dm34m1{justify-content:space-between;align-items:center;display:flex}.fix-title.svelte-1dm34m1{letter-spacing:.07em;text-transform:uppercase;color:var(--fix-text);margin:0;font-size:12px;font-weight:650}.publish-title.svelte-1dm34m1{letter-spacing:.07em;text-transform:uppercase;color:var(--publish-text);margin:0;font-size:12px;font-weight:650}.close.svelte-1dm34m1{color:var(--text-faint);background:0 0;border:0;padding:0;font-size:12px}.mode-toggle.svelte-1dm34m1{border:1px solid var(--border);width:fit-content;display:flex;overflow:hidden}.mode-toggle.svelte-1dm34m1 button:where(.svelte-1dm34m1){color:var(--text);background:0 0;border:0;padding:6px 12px;font-size:12px}.mode-toggle.svelte-1dm34m1 button:where(.svelte-1dm34m1)+button:where(.svelte-1dm34m1){border-left:1px solid var(--border)}.mode-toggle.svelte-1dm34m1 button.on:where(.svelte-1dm34m1){background:var(--accent-soft)}textarea.svelte-1dm34m1{resize:vertical;background:var(--bg);border:1px solid var(--border);width:100%;height:220px;font-family:var(--mono);color:var(--text);padding:12px;font-size:12px;line-height:1.5}.hint.svelte-1dm34m1{color:var(--text-faint);margin:0;font-size:11.5px}.copy.svelte-1dm34m1{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);color:var(--btn-primary-text);padding:9px 14px;font-size:13px;font-weight:600}.detail-panel.svelte-1dm34m1{border:1px solid var(--border);background:var(--bg-card);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.detail-head.svelte-1dm34m1{border-bottom:1px solid var(--border-soft);background:var(--bg-elev);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.detail-head-left.svelte-1dm34m1{align-items:center;gap:8px;display:flex}.number.svelte-1dm34m1{color:var(--text);font-size:12px;font-weight:700}.badge.svelte-1dm34m1{font-size:10px;font-weight:700}.file-line.svelte-1dm34m1{min-width:0;font-family:var(--mono);align-items:baseline;gap:8px;display:flex}.file-name.svelte-1dm34m1{color:var(--text);flex-shrink:0;font-size:12px;font-weight:600}.file-dir.svelte-1dm34m1{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.head-actions.svelte-1dm34m1{flex-shrink:0;align-items:center;gap:8px;display:flex}.decision-group.svelte-1dm34m1{border:1px solid var(--border);flex-shrink:0;display:flex;overflow:hidden}.decision-group.svelte-1dm34m1 button:where(.svelte-1dm34m1){color:var(--text-dim);background:0 0;border:0;padding:6px 14px;font-size:12px;font-weight:600}.decision-group.svelte-1dm34m1 button:first-child.on:where(.svelte-1dm34m1){background:var(--danger-bg);color:var(--danger)}.decision-group.svelte-1dm34m1 button:nth-child(2).on:where(.svelte-1dm34m1){background:var(--fix-bg);color:var(--ok)}.decision-group.svelte-1dm34m1 button:where(.svelte-1dm34m1)+button:where(.svelte-1dm34m1){border-left:1px solid var(--border)}.decision-group.svelte-1dm34m1 .clear:where(.svelte-1dm34m1){color:var(--text-faint);padding:6px 10px}.detail-grid.svelte-1dm34m1{flex:1;grid-template-columns:minmax(0,1fr) minmax(260px,320px);min-height:0;display:grid}.detail-grid.no-explanations.svelte-1dm34m1{grid-template-columns:minmax(0,1fr)}.diff-col.svelte-1dm34m1{flex-direction:column;min-width:0;display:flex;overflow:hidden auto}.file-path-bar.svelte-1dm34m1{border-bottom:1px solid var(--border-soft);background:var(--bg-elev);flex-shrink:0;align-items:center;gap:8px;min-width:0;padding:8px 14px;display:flex}.file-path-text.svelte-1dm34m1{font-family:var(--mono);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.explain-col.svelte-1dm34m1{border-left:1px solid var(--border-soft);background:var(--bg-elev);flex-direction:column;gap:16px;padding:14px 16px;display:flex;overflow:auto}.explain-counter.svelte-1dm34m1{color:var(--text-dim);border:1px solid var(--border);background:var(--bg-card);align-self:flex-start;padding:3px 8px;font-size:10.5px;font-weight:650}.explain-col.svelte-1dm34m1 h3:where(.svelte-1dm34m1){letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0 0 4px;font-size:10.5px;font-weight:650}.explain-col.svelte-1dm34m1 .what:where(.svelte-1dm34m1){color:var(--text);margin:0;font-size:13px;line-height:1.45}.explain-col.svelte-1dm34m1 .fix:where(.svelte-1dm34m1){color:var(--text-dim);margin:0;font-size:13px;line-height:1.45}.backdrop.svelte-lfje9j{z-index:9;background:#00000059;position:fixed;inset:0}.drawer.svelte-lfje9j{background:var(--bg-card);border-left:1px solid var(--border);z-index:10;flex-direction:column;width:420px;transition:transform .2s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.drawer.open.svelte-lfje9j{transform:translate(0)}.drawer-head.svelte-lfje9j{border-bottom:1px solid var(--border-soft);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:12px 14px;display:flex}.drawer-title.svelte-lfje9j{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.file-ref.svelte-lfje9j{align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.name.svelte-lfje9j{color:var(--text);font-size:13px;font-weight:600;font-family:var(--mono);flex-shrink:0}.dir.svelte-lfje9j{color:var(--text-faint);font-size:11px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.close.svelte-lfje9j{color:var(--text-faint);background:0 0;border:0;flex-shrink:0;padding:0;font-size:14px}.list.svelte-lfje9j{flex-direction:column;display:flex;overflow:auto}.item.svelte-lfje9j{border-bottom:1px solid var(--border-soft)}.item-head.svelte-lfje9j{text-align:left;background:0 0;border:0;border-left:2px solid #0000;align-items:center;gap:8px;width:100%;padding:10px 14px;display:flex}.status.svelte-lfje9j{border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;line-height:1;display:flex}.badge.svelte-lfje9j{flex-shrink:0;font-size:10px;font-weight:700}.what.svelte-lfje9j{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.chevron.svelte-lfje9j{color:var(--text-faint);flex-shrink:0;font-size:11px}.item-body.svelte-lfje9j{flex-direction:column;gap:14px;padding:0 14px 14px 20px;display:flex}.item-body.svelte-lfje9j h4:where(.svelte-lfje9j){letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0 0 4px;font-size:10px;font-weight:650}.item-body.svelte-lfje9j p:where(.svelte-lfje9j){color:var(--text);margin:0;font-size:13px;line-height:1.5}.item-body.svelte-lfje9j p.fix:where(.svelte-lfje9j){color:var(--text-dim)}.item-actions.svelte-lfje9j{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.decision-group.svelte-lfje9j{border:1px solid var(--border);width:fit-content;display:flex;overflow:hidden}.decision-group.svelte-lfje9j button:where(.svelte-lfje9j){color:var(--text-dim);background:0 0;border:0;padding:7px 14px;font-size:12px;font-weight:600}.decision-group.svelte-lfje9j button:first-child.on:where(.svelte-lfje9j){background:var(--danger-bg);color:var(--danger)}.decision-group.svelte-lfje9j button:nth-child(2).on:where(.svelte-lfje9j){background:var(--fix-bg);color:var(--ok)}.decision-group.svelte-lfje9j button:where(.svelte-lfje9j)+button:where(.svelte-lfje9j){border-left:1px solid var(--border)}.decision-group.svelte-lfje9j .clear:where(.svelte-lfje9j){color:var(--text-faint);padding:7px 10px}.footer.svelte-67e2dl{border-top:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:33px;padding:6px 16px;display:flex}.right.svelte-67e2dl{align-items:center;gap:12px;display:flex}.reviewed.svelte-67e2dl{color:var(--text-faint);font-size:11px}.fix.svelte-67e2dl,.publish.svelte-67e2dl{border:1px solid;padding:6px 12px;font-size:11.5px;font-weight:600}.fix.svelte-67e2dl{background:var(--fix-bg);border-color:var(--fix-border);color:var(--ok)}.publish.svelte-67e2dl{background:var(--publish-bg);border-color:var(--publish-border);color:var(--publish-text)}.sidebar.svelte-xengl2{border-right:1px solid var(--border);background:var(--bg-elev);flex-direction:column;height:100%;min-height:0;padding:14px 0;display:flex;overflow:hidden}.sidebar.collapsed.svelte-xengl2{border-right:0}.mode-toggle.svelte-xengl2{border:1px solid var(--border);flex-shrink:0;margin:0 14px 12px;display:flex;overflow:hidden}.mode-toggle.svelte-xengl2 button:where(.svelte-xengl2){color:var(--text);background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-size:12px;display:flex}.mode-toggle.svelte-xengl2 button:where(.svelte-xengl2)+button:where(.svelte-xengl2){border-left:1px solid var(--border)}.mode-toggle.svelte-xengl2 button.on:where(.svelte-xengl2){background:var(--accent-soft)}.mode-label.svelte-xengl2{align-items:center;gap:6px;line-height:1;display:inline-flex}.count-badge.svelte-xengl2{font-family:var(--mono);border:1px solid color-mix(in srgb, var(--finding-sev,var(--border)) 45%, transparent);background:color-mix(in srgb, var(--finding-sev,var(--bg-card)) 18%, transparent);color:var(--finding-sev,var(--text-dim));justify-content:center;align-items:center;padding:2px 6px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.panel.svelte-xengl2{padding:0 14px 10px}.explore-panel.svelte-xengl2{flex-direction:column;flex:1;min-height:0;padding:0 0 10px;display:flex;overflow:hidden}.panel-chrome.svelte-xengl2{flex-shrink:0;padding:0 14px}.panel-scroll.svelte-xengl2{flex:1;min-height:0;padding:0 14px;overflow:hidden auto}h3.svelte-xengl2{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px;font-size:11.5px;font-weight:650}.index-tabs.svelte-xengl2{border-bottom:1px solid var(--border-soft);gap:12px;margin-bottom:8px;display:flex}.index-tabs.svelte-xengl2 button:where(.svelte-xengl2){letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);background:0 0;border:0;border-bottom:2px solid #0000;padding:0 0 6px;font-size:11.5px;font-weight:650}.index-tabs.svelte-xengl2 button.on:where(.svelte-xengl2){color:var(--text);border-bottom-color:var(--accent)}.files-toolbar.svelte-xengl2{justify-content:space-between;align-items:center;gap:6px;margin:-2px 0 8px;display:flex}.files-toolbar.svelte-xengl2 .tool:where(.svelte-xengl2){border:1px solid var(--border);background:var(--bg-card);width:26px;height:26px;color:var(--text-dim);justify-content:center;align-items:center;padding:0;display:inline-flex}.files-toolbar.svelte-xengl2 .tool:where(.svelte-xengl2):hover:not(:disabled){color:var(--text);border-color:var(--text-faint)}.files-toolbar.svelte-xengl2 .tool.on:where(.svelte-xengl2){background:var(--accent-soft);border-color:var(--border);color:var(--text)}.files-toolbar.svelte-xengl2 .tool:where(.svelte-xengl2):disabled{opacity:.35;cursor:default}.files-toolbar.svelte-xengl2 .tool-icon:where(.svelte-xengl2){width:14px;height:14px;display:block}.files-toolbar.svelte-xengl2 .seg:where(.svelte-xengl2){border:1px solid var(--border);display:flex;overflow:hidden}.files-toolbar.svelte-xengl2 .seg:where(.svelte-xengl2) .tool:where(.svelte-xengl2){background:0 0;border:0;border-radius:0}.files-toolbar.svelte-xengl2 .seg:where(.svelte-xengl2) .tool:where(.svelte-xengl2)+.tool:where(.svelte-xengl2){border-left:1px solid var(--border)}.files-toolbar.svelte-xengl2 .seg:where(.svelte-xengl2) .tool.on:where(.svelte-xengl2){background:var(--accent-soft)}.nav-list.svelte-xengl2{flex-direction:column;gap:2px;display:flex}.tree.svelte-xengl2{flex-direction:column;display:flex}.tree-row.svelte-xengl2{text-align:left;width:100%;color:var(--text);background:0 0;border:0;align-items:center;gap:4px;min-width:0;padding:2px 6px 2px 0;font-size:12px;display:flex;position:relative}.tree-row.svelte-xengl2:hover:not(:disabled){background:var(--bg-card)}.tree-row.dir.svelte-xengl2{color:var(--text-dim)}.tree-row.muted.svelte-xengl2{color:var(--text-faint);cursor:default}.tree-row.skipped.svelte-xengl2 .name:where(.svelte-xengl2){text-decoration:line-through;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint)}.tree-guides.svelte-xengl2{pointer-events:none;width:0;position:absolute;inset:0 auto 0 0}.tree-guide.svelte-xengl2{background:var(--border-soft);opacity:.9;width:1px;position:absolute;top:0;bottom:0}.tree-slot.svelte-xengl2{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.caret.svelte-xengl2{color:var(--text-faint);font-size:10px;line-height:1}.mark.svelte-xengl2{width:9px;font-family:var(--mono);color:var(--text-faint);flex-shrink:0;font-size:9.5px;font-weight:700}.mark.add.svelte-xengl2{color:var(--diff-add-fg)}.mark.del.svelte-xengl2{color:var(--diff-del-fg)}.tree-row.svelte-xengl2 .name:where(.svelte-xengl2){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);flex:1;font-size:11.5px;overflow:hidden}.tree-row.svelte-xengl2 .name-line:where(.svelte-xengl2){flex:1;align-items:baseline;gap:6px;min-width:0;display:flex;overflow:hidden}.tree-row.svelte-xengl2 .name-line:where(.svelte-xengl2) .name:where(.svelte-xengl2){text-overflow:ellipsis;flex:0 auto;overflow:hidden}.tree-row.svelte-xengl2 .name-line:where(.svelte-xengl2) .dir:where(.svelte-xengl2){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);color:var(--text-faint);flex:1;font-size:10.5px;overflow:hidden}.tree-row.svelte-xengl2 .count:where(.svelte-xengl2),.group-link.svelte-xengl2 .count:where(.svelte-xengl2){color:var(--finding-sev,var(--danger));border:1px solid color-mix(in srgb, var(--finding-sev,var(--danger-border)) 55%, transparent);flex-shrink:0;padding:2px 5px;font-size:9.5px;font-weight:700;line-height:1}.tree-row.svelte-xengl2 .count.done:where(.svelte-xengl2),.group-link.svelte-xengl2 .count.done:where(.svelte-xengl2){color:var(--ok);border-color:var(--border)}.group-link.svelte-xengl2{min-width:0;color:var(--text);flex-direction:column;flex:1;gap:2px;padding:6px 8px 6px 0;font-size:12.5px;text-decoration:none;display:flex}.group-link.svelte-xengl2:hover{background:0 0}.group-item.svelte-xengl2{border-radius:0}.group-item.open.svelte-xengl2>.group-head-row:where(.svelte-xengl2){background:var(--bg-card)}.group-head-row.svelte-xengl2{align-items:flex-start;gap:0;display:flex}.group-head-row.svelte-xengl2:hover{background:var(--bg-card)}.group-caret.svelte-xengl2{width:20px;color:var(--text-faint);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:8px 0 0;display:inline-flex}.group-caret.svelte-xengl2:hover{color:var(--text)}.group-files.svelte-xengl2{flex-direction:column;padding:0 0 4px 8px;display:flex}.row.svelte-xengl2{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.group-link.svelte-xengl2 .number:where(.svelte-xengl2){color:var(--text-faint);flex-shrink:0;font-size:10px;font-weight:700}.kind-chip.svelte-xengl2{border:1px solid var(--border);background:var(--bg-card);flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.group-link.svelte-xengl2 .title:where(.svelte-xengl2){white-space:normal;overflow-wrap:anywhere;line-height:1.35;display:block}.group-link.svelte-xengl2 .row:where(.svelte-xengl2)>.count:where(.svelte-xengl2){margin-left:auto}.meta.svelte-xengl2{color:var(--text-faint);padding-left:0;font-size:11px}.group-files.svelte-xengl2 .tree-row.file.active:where(.svelte-xengl2){background:var(--accent-soft)}.findings-panel.svelte-xengl2{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.findings-head.svelte-xengl2{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.findings-head.svelte-xengl2 h3:where(.svelte-xengl2){margin:0}.reviewed.svelte-xengl2{color:var(--text-faint);font-size:10.5px}.progress.svelte-xengl2{background:var(--border-soft);flex-shrink:0;height:3px;margin-bottom:10px;overflow:hidden}.progress-bar.svelte-xengl2{background:var(--accent);height:100%}.findings-list.svelte-xengl2{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex;overflow:hidden auto}.finding-row.svelte-xengl2{text-align:left;border:0;border-bottom:1px solid var(--border-soft);background:var(--bg-elev);border-left:2px solid #0000;flex-direction:column;width:100%;min-width:0;padding:8px 10px;display:flex}.finding-row.active.svelte-xengl2{background:var(--accent-soft)}.finding-row.svelte-xengl2 .top:where(.svelte-xengl2){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 6px;margin-bottom:3px;display:flex}.finding-row.svelte-xengl2 .left:where(.svelte-xengl2){flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;display:flex}.status.svelte-xengl2{border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;line-height:1;display:flex}.number.svelte-xengl2{color:var(--text-faint);font-size:9.5px;font-weight:650}.badge.svelte-xengl2{font-size:9.5px;font-weight:700}.decision.svelte-xengl2{font-size:9.5px;font-weight:650}.what.svelte-xengl2{color:var(--text);overflow-wrap:anywhere;font-size:12.5px;line-height:1.35;display:block}.file-line.svelte-xengl2{color:var(--text-faint);font-size:10.5px;font-family:var(--mono);overflow-wrap:anywhere;margin-top:3px;display:block}.report-shell.svelte-1ipe5j3{flex-direction:column;flex:1;min-height:0;display:flex}.report.svelte-1ipe5j3{flex:1;min-height:0;display:grid}.content.svelte-1ipe5j3{flex-direction:column;gap:18px;min-height:0;padding:14px 20px 24px;display:flex;overflow:auto}.page.svelte-67dwv3{background:var(--bg);flex-direction:column;height:100vh;min-height:0;display:flex}.body.svelte-67dwv3{flex:1;min-height:0;display:flex}.body.svelte-67dwv3>.report-shell{flex:1;min-width:0}.ghost.on.svelte-67dwv3{background:var(--accent-soft);border-color:var(--accent)}.chrome.svelte-67dwv3{border-bottom:1px solid var(--border);background:var(--header-bg);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 28px;display:grid}.chrome-left.svelte-67dwv3{justify-self:start;align-items:center;gap:12px;min-width:0;display:flex}.chrome-center.svelte-67dwv3{justify-self:center;align-items:center;gap:10px;display:flex}.chrome-right.svelte-67dwv3{justify-self:end;align-items:center;gap:10px;display:flex}.brand.svelte-67dwv3{color:var(--text);flex-shrink:0;align-items:center;gap:10px;font-size:15px;font-weight:700;text-decoration:none;display:flex}.brand-dot.svelte-67dwv3{background:linear-gradient(135deg,#6ea8fe,#c9a5ff);border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 12px #6ea8fe88}.chrome-divider.svelte-67dwv3{background:var(--border);flex-shrink:0;width:1px;height:18px}.breadcrumb.svelte-67dwv3{font-family:var(--mono);align-items:center;gap:6px;min-width:0;font-size:12.5px;display:flex}.crumb-branch.svelte-67dwv3{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.crumb-sep.svelte-67dwv3{color:var(--text-faint)}.crumb-base.svelte-67dwv3{color:var(--text-faint);white-space:nowrap}.provenance.svelte-67dwv3{min-width:0;color:var(--text-dim);align-items:center;gap:6px;font-size:12px;display:flex}.prov-agent.svelte-67dwv3{white-space:nowrap}.prov-sep.svelte-67dwv3{color:var(--text-faint)}.prov-model.svelte-67dwv3{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.menu-wrap.svelte-67dwv3{flex-shrink:0;position:relative}.menu.svelte-67dwv3{z-index:40;border:1px solid var(--border);background:var(--bg-card);min-width:180px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000002e}.download-menu.svelte-67dwv3{flex-direction:column;gap:0;min-width:220px;padding:4px;display:flex;left:auto;right:0}.menu-item.svelte-67dwv3{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:0;padding:4px 8px;font-size:12px;line-height:1.25;display:flex}.download-menu.svelte-67dwv3 button.menu-item:where(.svelte-67dwv3){box-sizing:border-box;z-index:0;height:44px;min-height:44px;color:var(--text);font:inherit;letter-spacing:normal;text-align:left;cursor:pointer;appearance:none;background:0 0;border:0;border-radius:2px;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:0 10px;font-size:12px;font-weight:400;line-height:1.2;display:flex;position:relative;overflow:hidden}.download-menu.svelte-67dwv3 button.menu-item:where(.svelte-67dwv3):hover{z-index:1;background:var(--accent-soft)}.menu-item.svelte-67dwv3:hover{background:var(--accent-soft)}.menu-item.danger.svelte-67dwv3{color:var(--danger)}.menu-item.svelte-67dwv3 .fmt:where(.svelte-67dwv3){flex-shrink:0;font-weight:600;line-height:1.2}.menu-item.svelte-67dwv3 .hint:where(.svelte-67dwv3){color:var(--text-faint);font-size:10.5px;line-height:1.2}.download-menu.svelte-67dwv3 .menu-item:where(.svelte-67dwv3) .fmt:where(.svelte-67dwv3),.download-menu.svelte-67dwv3 .menu-item:where(.svelte-67dwv3) .hint:where(.svelte-67dwv3){pointer-events:none}.download-menu.svelte-67dwv3 .menu-item:where(.svelte-67dwv3) .hint:where(.svelte-67dwv3){text-align:right;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:10px;overflow:hidden}.mode-toggle.svelte-67dwv3{border:1px solid var(--border);display:flex;overflow:hidden}.mode-toggle.svelte-67dwv3 button:where(.svelte-67dwv3){white-space:nowrap;color:var(--text);background:0 0;border:0;padding:6px 12px;font-size:12px}.mode-toggle.svelte-67dwv3 button:where(.svelte-67dwv3)+button:where(.svelte-67dwv3){border-left:1px solid var(--border)}.mode-toggle.svelte-67dwv3 button.on:where(.svelte-67dwv3){background:var(--accent-soft)}.zoom.svelte-67dwv3{align-items:center;gap:4px;display:flex}.icon-btn.svelte-67dwv3{background:var(--bg-card);border:1px solid var(--border);width:26px;height:26px;color:var(--text-dim);justify-content:center;align-items:center;padding:0;font-size:13px;display:flex}.icon-btn.svelte-67dwv3:hover{border-color:var(--accent);color:var(--text)}.icon-btn.on.svelte-67dwv3{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.icon-btn.kebab.svelte-67dwv3{background:0 0;border-color:#0000;width:24px;height:24px}.icon-btn.kebab.svelte-67dwv3:hover{border-color:var(--border);background:var(--bg-card)}.icon-btn.panel.svelte-67dwv3{font-size:15px}.icon-btn.svelte-67dwv3:disabled{opacity:.4;cursor:not-allowed}.zoom-label.svelte-67dwv3{font-family:var(--mono);color:var(--text-faint);text-align:center;width:30px;font-size:10.5px}.ghost.svelte-67dwv3{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:7px 12px;font-size:12.5px}.agent-btn.svelte-67dwv3,.download-btn.svelte-67dwv3{align-items:center;gap:6px;display:inline-flex}.download-btn.svelte-67dwv3 .caret:where(.svelte-67dwv3){opacity:.7}.hint.svelte-67dwv3{color:var(--text-faint);padding:40px 28px;font-size:13px}
|
|
Binary file
|
|
Binary file
|
package/web/build/client/_app/immutable/assets/{storage.C8XGESwn.css → storage.TlsiS-AP.css}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
.agent-icon.svelte-1o6iyhy{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.agent-icon.svelte-1o6iyhy svg:where(.svelte-1o6iyhy){width:100%;height:100%;display:block}.agent-select.svelte-grhxa3{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-grhxa3{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.trigger.svelte-grhxa3:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-grhxa3:disabled{opacity:.5;cursor:not-allowed}.label.svelte-grhxa3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.label.muted.svelte-grhxa3{color:var(--text-faint)}.caret.svelte-grhxa3{opacity:.7;color:var(--text-dim);flex-shrink:0}.agent-select.open.svelte-grhxa3 .caret:where(.svelte-grhxa3){transform:rotate(180deg)}.menu.svelte-grhxa3{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;gap:0;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0000002e}.option.svelte-grhxa3{width:100%;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:8px;padding:8px 10px;display:flex}.option.svelte-grhxa3:hover,.option.selected.svelte-grhxa3{background:var(--accent-soft)}.theme-toggle.svelte-lu0t34{background:var(--bg-card);border:1px solid var(--border);width:30px;height:30px;color:var(--text-dim);flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex}.theme-toggle.svelte-lu0t34:hover{border-color:var(--accent);color:var(--text)}.md.svelte-cxb0dt{color:var(--text);overflow-wrap:anywhere}.md.svelte-cxb0dt>:first-child{margin-top:0}.md.svelte-cxb0dt>:last-child{margin-bottom:0}.md.svelte-cxb0dt p,.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol,.md.svelte-cxb0dt pre,.md.svelte-cxb0dt blockquote{margin:.45em 0}.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol{padding-left:1.35em}.md.svelte-cxb0dt li{margin:.15em 0}.md.svelte-cxb0dt h1,.md.svelte-cxb0dt h2,.md.svelte-cxb0dt h3,.md.svelte-cxb0dt h4{margin:.7em 0 .35em;font-size:1em;font-weight:650;line-height:1.35}.md.svelte-cxb0dt h1{font-size:1.15em}.md.svelte-cxb0dt h2{font-size:1.08em}.md.svelte-cxb0dt a{color:var(--accent)}.md.svelte-cxb0dt code{font-family:var(--mono);background:var(--bg-card);border:1px solid var(--border-soft,var(--border));border-radius:4px;padding:.1em .35em;font-size:.92em}.md.svelte-cxb0dt pre{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:8px 10px;overflow-x:auto}.md.svelte-cxb0dt pre code{background:0 0;border:none;padding:0;font-size:12px;line-height:1.45}.md.svelte-cxb0dt blockquote{border-left:3px solid var(--border);color:var(--text-dim);padding-left:10px}.md.svelte-cxb0dt hr{border:none;border-top:1px solid var(--border);margin:.75em 0}.md.svelte-cxb0dt table{border-collapse:collapse;width:100%;font-size:12.5px}.md.svelte-cxb0dt th,.md.svelte-cxb0dt td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md.svelte-cxb0dt th{background:var(--bg-card);font-weight:600}.perm-actions.svelte-1l4yk48{flex-wrap:wrap;gap:8px;display:flex}.perm-actions.svelte-1l4yk48 button:where(.svelte-1l4yk48){border:1px solid var(--border);background:var(--bg-elev);color:var(--text);border-radius:0;padding:5px 10px;font-size:12px}.perm-actions.svelte-1l4yk48 .allow:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .allow-all:where(.svelte-1l4yk48){background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.perm-actions.svelte-1l4yk48 .deny:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .deny-all:where(.svelte-1l4yk48){background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.log.svelte-18syxl5{flex-direction:column;gap:6px;min-height:0;font-size:13px;line-height:1.45;display:flex;overflow-y:auto}p.svelte-18syxl5{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.user.svelte-18syxl5{background:var(--accent-soft);border:1px solid var(--btn-primary-border);border-radius:0;align-self:flex-end;max-width:90%;padding:6px 10px}.tag.svelte-18syxl5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px;display:block}.message.svelte-18syxl5{color:var(--text);max-width:100%}.thought.svelte-18syxl5{color:var(--text-faint);font-size:12px}.thought.svelte-18syxl5 summary:where(.svelte-18syxl5){cursor:pointer;font-style:italic}.thought.svelte-18syxl5 p:where(.svelte-18syxl5){max-height:200px;margin-top:4px;overflow-y:auto}.tool.svelte-18syxl5{font-family:var(--mono);color:var(--text-dim);gap:6px;font-size:12px;display:flex}.tool.svelte-18syxl5 .mark:where(.svelte-18syxl5){width:12px;color:var(--ok);flex:none}.tool.failed.svelte-18syxl5 .mark:where(.svelte-18syxl5),.tool.failed.svelte-18syxl5 .title:where(.svelte-18syxl5){color:var(--danger)}.tool.svelte-18syxl5 .title:where(.svelte-18syxl5){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.permission.svelte-18syxl5{color:var(--warn);font-size:12px}.permission.allowed.svelte-18syxl5{color:var(--ok)}.permission.pending.svelte-18syxl5{border:1px solid var(--warn);background:var(--bg-card);color:var(--text);border-radius:0;padding:8px 10px}.perm-head.svelte-18syxl5{text-transform:uppercase;letter-spacing:.05em;color:var(--warn);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.perm-head.svelte-18syxl5 .kind:where(.svelte-18syxl5){color:var(--text-faint);font-family:var(--mono);text-transform:none;letter-spacing:0}.perm-head.svelte-18syxl5 .counter:where(.svelte-18syxl5){font-variant-numeric:tabular-nums;color:var(--text-dim);text-transform:none;letter-spacing:0;font-family:var(--mono);margin-left:auto}.perm-head.svelte-18syxl5 .nav:where(.svelte-18syxl5){gap:2px;display:flex}.nav-btn.svelte-18syxl5{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);border-radius:0;padding:2px 6px;font-size:11px;line-height:1.2}.perm-subtitle.svelte-18syxl5{color:var(--text-faint);margin:4px 0 0;font-size:11.5px}.perm-title.svelte-18syxl5{font-family:var(--mono);margin:4px 0 0;font-size:12px}.perm-command.svelte-18syxl5{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--bg-elev);border:1px solid var(--border);border-radius:0;max-width:100%;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.4}.perm-command.collapsed.svelte-18syxl5{max-height:10.5em;overflow:hidden}.perm-expand.svelte-18syxl5{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;margin:4px 0 0;padding:0;font-size:11.5px;text-decoration:underline}.perm-expand.svelte-18syxl5:hover{color:var(--text)}.perm-reason.svelte-18syxl5{color:var(--text-faint);margin:2px 0 0;font-size:11.5px}.permission.pending.svelte-18syxl5 .perm-actions{margin-top:8px}.permission.svelte-18syxl5 span:where(.svelte-18syxl5){color:var(--text-faint)}.plan.svelte-18syxl5{color:var(--text-dim);margin:0;padding-left:18px;font-size:12px}.plan.svelte-18syxl5 li.done:where(.svelte-18syxl5){color:var(--text-faint);text-decoration:line-through}.review.svelte-18syxl5{border-radius:0;padding:6px 10px;font-size:12px}.review.ok.svelte-18syxl5{background:var(--ok-bg);color:var(--ok)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5){border:1px solid var(--danger-border);background:var(--bg-elev);color:var(--text);cursor:pointer;border-radius:0;margin-top:8px;padding:5px 12px;font-size:12px}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):hover:not(:disabled){border-color:var(--accent)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):disabled{opacity:.55;cursor:default}.review.bad.svelte-18syxl5,.error.svelte-18syxl5{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:0;padding:6px 10px;font-size:12px}.review.svelte-18syxl5 ul:where(.svelte-18syxl5){margin:4px 0 0;padding-left:16px}.note.svelte-18syxl5{color:var(--text-faint);font-size:12px}.working.svelte-18syxl5{gap:4px;padding:4px 0;display:flex}.working.svelte-18syxl5 span:where(.svelte-18syxl5){background:var(--text-faint);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite svelte-18syxl5-blink}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(2){animation-delay:.2s}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(3){animation-delay:.4s}@keyframes svelte-18syxl5-blink{0%,80%,to{opacity:.2}40%{opacity:1}}.trust.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-card);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;font:inherit;border-radius:0;flex:none;align-items:center;gap:8px;padding:5px 8px;display:flex}.trust.inline.svelte-3jjxns{width:auto;max-width:100%;padding:4px 8px}.trust.on.svelte-3jjxns{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));background:var(--ok-bg)}.trust.svelte-3jjxns:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-elev);border-radius:999px;flex:none;width:30px;height:16px;transition:background .15s,border-color .15s;position:relative}.trust.on.svelte-3jjxns .switch:where(.svelte-3jjxns){background:var(--ok);border-color:var(--ok)}.knob.svelte-3jjxns{background:var(--text);opacity:.55;border-radius:50%;width:12px;height:12px;transition:transform .15s,background .15s,opacity .15s;position:absolute;top:1px;left:1px}.trust.on.svelte-3jjxns .knob:where(.svelte-3jjxns){background:var(--bg-card);opacity:1;transform:translate(14px)}.trust-text.svelte-3jjxns{flex-wrap:wrap;align-items:baseline;gap:4px;min-width:0;line-height:1.2;display:flex}.trust-text.svelte-3jjxns strong:where(.svelte-3jjxns){color:var(--text);font-size:12px;font-weight:600}.trust-text.svelte-3jjxns small:where(.svelte-3jjxns){color:var(--text-faint);font-size:11px}.model-select.svelte-9wkprr{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-9wkprr{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.trigger.svelte-9wkprr:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-9wkprr:disabled{opacity:.5;cursor:not-allowed}.title.svelte-9wkprr{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.title.muted.svelte-9wkprr{color:var(--text-faint)}.badges.svelte-9wkprr{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:4px;max-width:45%;display:flex}.badge.svelte-9wkprr{border:1px solid var(--border);background:var(--bg-elev,var(--bg-card));color:var(--text-dim,var(--text-faint));font-size:10px;line-height:1.35;font-family:var(--mono,ui-monospace, monospace);white-space:nowrap;border-radius:0;padding:0 5px}.hint.svelte-9wkprr{color:var(--text-faint);font-size:10px;font-family:var(--mono,ui-monospace, monospace);flex-shrink:0}.caret.svelte-9wkprr{opacity:.7;color:var(--text-dim);flex-shrink:0}.model-select.open.svelte-9wkprr .caret:where(.svelte-9wkprr){transform:rotate(180deg)}.menu.svelte-9wkprr{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;max-height:min(360px,50vh);padding:4px;display:flex;position:absolute;inset:calc(100% + 4px) 0 auto;overflow:auto;box-shadow:0 8px 24px #0000002e}.model-select.drop-up.svelte-9wkprr .menu:where(.svelte-9wkprr){top:auto;bottom:calc(100% + 4px);box-shadow:0 -8px 24px #0000002e}.option.svelte-9wkprr{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.option.svelte-9wkprr:hover,.option.selected.svelte-9wkprr{background:var(--accent-soft)}
|
|
1
|
+
.agent-icon.svelte-1o6iyhy{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.agent-icon.svelte-1o6iyhy svg:where(.svelte-1o6iyhy){width:100%;height:100%;display:block}.agent-select.svelte-grhxa3{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-grhxa3{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.trigger.svelte-grhxa3:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-grhxa3:disabled{opacity:.5;cursor:not-allowed}.label.svelte-grhxa3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.label.muted.svelte-grhxa3{color:var(--text-faint)}.caret.svelte-grhxa3{opacity:.7;color:var(--text-dim);flex-shrink:0}.agent-select.open.svelte-grhxa3 .caret:where(.svelte-grhxa3){transform:rotate(180deg)}.menu.svelte-grhxa3{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;gap:0;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0000002e}.option.svelte-grhxa3{width:100%;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:8px;padding:8px 10px;display:flex}.option.svelte-grhxa3:hover,.option.selected.svelte-grhxa3{background:var(--accent-soft)}.theme-toggle.svelte-lu0t34{background:var(--bg-card);border:1px solid var(--border);width:30px;height:30px;color:var(--text-dim);flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex}.theme-toggle.svelte-lu0t34:hover{border-color:var(--accent);color:var(--text)}.md.svelte-cxb0dt{color:var(--text);overflow-wrap:anywhere}.md.svelte-cxb0dt>:first-child{margin-top:0}.md.svelte-cxb0dt>:last-child{margin-bottom:0}.md.svelte-cxb0dt p,.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol,.md.svelte-cxb0dt pre,.md.svelte-cxb0dt blockquote{margin:.45em 0}.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol{padding-left:1.35em}.md.svelte-cxb0dt li{margin:.15em 0}.md.svelte-cxb0dt h1,.md.svelte-cxb0dt h2,.md.svelte-cxb0dt h3,.md.svelte-cxb0dt h4{margin:.7em 0 .35em;font-size:1em;font-weight:650;line-height:1.35}.md.svelte-cxb0dt h1{font-size:1.15em}.md.svelte-cxb0dt h2{font-size:1.08em}.md.svelte-cxb0dt a{color:var(--accent)}.md.svelte-cxb0dt code{font-family:var(--mono);background:var(--bg-card);border:1px solid var(--border-soft,var(--border));border-radius:4px;padding:.1em .35em;font-size:.92em}.md.svelte-cxb0dt pre{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:8px 10px;overflow-x:auto}.md.svelte-cxb0dt pre code{background:0 0;border:none;padding:0;font-size:12px;line-height:1.45}.md.svelte-cxb0dt blockquote{border-left:3px solid var(--border);color:var(--text-dim);padding-left:10px}.md.svelte-cxb0dt hr{border:none;border-top:1px solid var(--border);margin:.75em 0}.md.svelte-cxb0dt table{border-collapse:collapse;width:100%;font-size:12.5px}.md.svelte-cxb0dt th,.md.svelte-cxb0dt td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md.svelte-cxb0dt th{background:var(--bg-card);font-weight:600}.perm-actions.svelte-1l4yk48{flex-wrap:wrap;gap:8px;display:flex}.perm-actions.svelte-1l4yk48 button:where(.svelte-1l4yk48){border:1px solid var(--border);background:var(--bg-elev);color:var(--text);border-radius:0;padding:5px 10px;font-size:12px}.perm-actions.svelte-1l4yk48 .allow:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .allow-all:where(.svelte-1l4yk48){background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.perm-actions.svelte-1l4yk48 .deny:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .deny-all:where(.svelte-1l4yk48){background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.log.svelte-18syxl5{flex-direction:column;gap:6px;min-height:0;font-size:13px;line-height:1.45;display:flex;overflow-y:auto}p.svelte-18syxl5{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.user.svelte-18syxl5{background:var(--accent-soft);border:1px solid var(--btn-primary-border);border-radius:0;align-self:flex-end;max-width:90%;padding:6px 10px}.tag.svelte-18syxl5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px;display:block}.message.svelte-18syxl5{color:var(--text);max-width:100%}.thought.svelte-18syxl5{color:var(--text-faint);font-size:12px}.thought.svelte-18syxl5 summary:where(.svelte-18syxl5){cursor:pointer;font-style:italic}.thought.svelte-18syxl5 p:where(.svelte-18syxl5){max-height:200px;margin-top:4px;overflow-y:auto}.tool.svelte-18syxl5{font-family:var(--mono);color:var(--text-dim);gap:6px;font-size:12px;display:flex}.tool.svelte-18syxl5 .mark:where(.svelte-18syxl5){width:12px;color:var(--ok);flex:none}.tool.failed.svelte-18syxl5 .mark:where(.svelte-18syxl5),.tool.failed.svelte-18syxl5 .title:where(.svelte-18syxl5){color:var(--danger)}.tool.svelte-18syxl5 .title:where(.svelte-18syxl5){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.permission.svelte-18syxl5{color:var(--warn);font-size:12px}.permission.allowed.svelte-18syxl5{color:var(--ok)}.permission.pending.svelte-18syxl5{border:1px solid var(--warn);background:var(--bg-card);color:var(--text);border-radius:0;padding:8px 10px}.perm-head.svelte-18syxl5{text-transform:uppercase;letter-spacing:.05em;color:var(--warn);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.perm-head.svelte-18syxl5 .kind:where(.svelte-18syxl5){color:var(--text-faint);font-family:var(--mono);text-transform:none;letter-spacing:0}.perm-head.svelte-18syxl5 .counter:where(.svelte-18syxl5){font-variant-numeric:tabular-nums;color:var(--text-dim);text-transform:none;letter-spacing:0;font-family:var(--mono);margin-left:auto}.perm-head.svelte-18syxl5 .nav:where(.svelte-18syxl5){gap:2px;display:flex}.nav-btn.svelte-18syxl5{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);border-radius:0;padding:2px 6px;font-size:11px;line-height:1.2}.perm-subtitle.svelte-18syxl5{color:var(--text-faint);margin:4px 0 0;font-size:11.5px}.perm-title.svelte-18syxl5{font-family:var(--mono);margin:4px 0 0;font-size:12px}.perm-command.svelte-18syxl5{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--bg-elev);border:1px solid var(--border);border-radius:0;max-width:100%;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.4}.perm-command.collapsed.svelte-18syxl5{max-height:10.5em;overflow:hidden}.perm-expand.svelte-18syxl5{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;margin:4px 0 0;padding:0;font-size:11.5px;text-decoration:underline}.perm-expand.svelte-18syxl5:hover{color:var(--text)}.perm-reason.svelte-18syxl5{color:var(--text-faint);margin:2px 0 0;font-size:11.5px}.permission.pending.svelte-18syxl5 .perm-actions{margin-top:8px}.permission.svelte-18syxl5 span:where(.svelte-18syxl5){color:var(--text-faint)}.plan.svelte-18syxl5{color:var(--text-dim);margin:0;padding-left:18px;font-size:12px}.plan.svelte-18syxl5 li.done:where(.svelte-18syxl5){color:var(--text-faint);text-decoration:line-through}.review.svelte-18syxl5{border-radius:0;padding:6px 10px;font-size:12px}.review.ok.svelte-18syxl5{background:var(--ok-bg);color:var(--ok)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5){border:1px solid var(--danger-border);background:var(--bg-elev);color:var(--text);cursor:pointer;border-radius:0;margin-top:8px;padding:5px 12px;font-size:12px}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):hover:not(:disabled){border-color:var(--accent)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):disabled{opacity:.55;cursor:default}.review.bad.svelte-18syxl5,.error.svelte-18syxl5{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:0;padding:6px 10px;font-size:12px}.review.svelte-18syxl5 ul:where(.svelte-18syxl5){margin:4px 0 0;padding-left:16px}.note.svelte-18syxl5{color:var(--text-faint);font-size:12px}.working.svelte-18syxl5{gap:4px;padding:4px 0;display:flex}.working.svelte-18syxl5 span:where(.svelte-18syxl5){background:var(--text-faint);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite svelte-18syxl5-blink}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(2){animation-delay:.2s}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(3){animation-delay:.4s}@keyframes svelte-18syxl5-blink{0%,80%,to{opacity:.2}40%{opacity:1}}.trust.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-card);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;font:inherit;border-radius:0;flex:none;align-items:center;gap:8px;padding:5px 8px;display:flex}.trust.inline.svelte-3jjxns{width:auto;max-width:100%;padding:4px 8px}.trust.on.svelte-3jjxns{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));background:var(--ok-bg)}.trust.svelte-3jjxns:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-elev);border-radius:999px;flex:none;width:30px;height:16px;transition:background .15s,border-color .15s;position:relative}.trust.on.svelte-3jjxns .switch:where(.svelte-3jjxns){background:var(--ok);border-color:var(--ok)}.knob.svelte-3jjxns{background:var(--text);opacity:.55;border-radius:50%;width:12px;height:12px;transition:transform .15s,background .15s,opacity .15s;position:absolute;top:1px;left:1px}.trust.on.svelte-3jjxns .knob:where(.svelte-3jjxns){background:var(--bg-card);opacity:1;transform:translate(14px)}.trust-text.svelte-3jjxns{flex-wrap:wrap;align-items:baseline;gap:4px;min-width:0;line-height:1.2;display:flex}.trust-text.svelte-3jjxns strong:where(.svelte-3jjxns){color:var(--text);font-size:12px;font-weight:600}.trust-text.svelte-3jjxns small:where(.svelte-3jjxns){color:var(--text-faint);font-size:11px}.model-select.svelte-9wkprr{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-9wkprr{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.model-select.compact.svelte-9wkprr .trigger:where(.svelte-9wkprr){gap:6px;min-height:30px;padding:5px 10px;font-size:12px}.trigger.svelte-9wkprr:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-9wkprr:disabled{opacity:.5;cursor:not-allowed}.title.svelte-9wkprr{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.title.muted.svelte-9wkprr{color:var(--text-faint)}.badges.svelte-9wkprr{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:4px;max-width:45%;display:flex}.badge.svelte-9wkprr{border:1px solid var(--border);background:var(--bg-elev,var(--bg-card));color:var(--text-dim,var(--text-faint));font-size:10px;line-height:1.35;font-family:var(--mono,ui-monospace, monospace);white-space:nowrap;border-radius:0;padding:0 5px}.hint.svelte-9wkprr{color:var(--text-faint);font-size:10px;font-family:var(--mono,ui-monospace, monospace);flex-shrink:0}.caret.svelte-9wkprr{opacity:.7;color:var(--text-dim);flex-shrink:0}.model-select.open.svelte-9wkprr .caret:where(.svelte-9wkprr){transform:rotate(180deg)}.menu.svelte-9wkprr{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;max-height:min(360px,50vh);padding:4px;display:flex;position:absolute;inset:calc(100% + 4px) 0 auto;overflow:auto;box-shadow:0 8px 24px #0000002e}.model-select.drop-up.svelte-9wkprr .menu:where(.svelte-9wkprr){top:auto;bottom:calc(100% + 4px);box-shadow:0 -8px 24px #0000002e}.option.svelte-9wkprr{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.option.svelte-9wkprr:hover,.option.selected.svelte-9wkprr{background:var(--accent-soft)}
|
|
Binary file
|
package/web/build/client/_app/immutable/assets/{storage.C8XGESwn.css.gz → storage.TlsiS-AP.css.gz}
RENAMED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./D8WOD_eS.js";import{l as e}from"./
|
|
1
|
+
import"./D8WOD_eS.js";import{l as e}from"./QvO6K-HK.js";var t={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};export{t};
|
|
Binary file
|