codebay 0.12.1 → 0.14.0
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/.mochi/manifest.json +127 -111
- package/.mochi/svelte-client/HydratableIsland-zrdsrsmg.js +1 -0
- package/.mochi/svelte-client/{_hydrate-AppShell_2rtnxn6pgp2rh-5kb6kh2d.js → _hydrate-AppShell_2rtnxn6pgp2rh-v7y7dh53.js} +2 -2
- package/.mochi/svelte-client/{_hydrate-AvatarsView_257s9yq1wwr4f-c51gt15m.js → _hydrate-AvatarsView_257s9yq1wwr4f-tmwd6fpb.js} +1 -1
- package/.mochi/svelte-client/{_hydrate-InstanceView_2ma45l9bybfhl-d256bw54.js → _hydrate-InstanceView_2ma45l9bybfhl-m7t64dbh.js} +1 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-4a7ann1f.js +40 -0
- package/.mochi/svelte-client/{chunk-2eaagsfc.js → chunk-0mc09cyb.js} +1 -1
- package/.mochi/svelte-client/{chunk-a5e8vytv.js → chunk-5jwfs4p9.js} +2 -2
- package/.mochi/svelte-client/chunk-6qg4q98a.js +2 -0
- package/.mochi/svelte-client/{chunk-d8rdrqsh.js → chunk-ccfh8hxz.js} +1 -1
- package/.mochi/svelte-client/{chunk-d9bszcp8.js → chunk-phf7v5jj.js} +1 -1
- package/.mochi/svelte-client/{chunk-y1xjps59.js → chunk-spk1b2r4.js} +1 -1
- package/.mochi/svelte-client/chunk-tmeh70wg.js +2 -0
- package/.mochi/svelte-client/{chunk-6v5d7dex.js → chunk-vs1yjbqt.js} +1 -1
- package/.mochi/svelte-client/{chunk-1ttqgrz7.js → chunk-x0m3k0rn.js} +1 -1
- package/.mochi/svelte-client/{chunk-s70rry6z.js → chunk-y7f4jbdm.js} +1 -1
- package/.mochi/svelte-compile/{App-dn3kh0xn.server.js → App-94xsdn0w.server.js} +2 -2
- package/.mochi/svelte-compile/{Avatars-7k5055m8.server.js → Avatars-fnccw47h.server.js} +1 -1
- package/.mochi/svelte-compile/{Instance-hj76qnha.server.js → Instance-knnkcn2p.server.js} +1 -1
- package/.mochi/svelte-compile/{Settings-m2bfa4k4.server.js → Settings-a7b11v90.server.js} +274 -142
- package/.mochi/svelte-compile/{chunk-qc0f73f3.js → chunk-apdte4nh.js} +7 -8
- package/.mochi/svelte-compile/{chunk-zd49axkf.js → chunk-w0hca7va.js} +2 -1
- package/package.json +1 -1
- package/public/favicon.svg +9 -0
- package/src/avatars/bee.ts +7 -8
- package/src/components/SettingsView.svelte +148 -0
- package/src/container-injections/claude-code-credentials.ts +2 -3
- package/src/container-injections/claude-code-install.ts +12 -7
- package/src/container-injections/claude-code-skills.ts +125 -0
- package/src/container-injections/claude-code-update.ts +45 -10
- package/src/container-injections/claude-output-style.ts +83 -0
- package/src/container-injections/claude-statusline.ts +5 -16
- package/src/lib/container-files.server.ts +22 -0
- package/src/lib/host-claude.server.ts +31 -0
- package/src/lib/injections.server.ts +7 -1
- package/src/pages/Settings.svelte +12 -1
- package/src/routes.ts +19 -0
- package/src/shell.html +1 -0
- package/src/types.ts +16 -0
- package/.mochi/svelte-client/HydratableIsland-4j3bazeq.js +0 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-rw5z89pa.js +0 -39
- package/.mochi/svelte-client/chunk-pz6dq0v3.js +0 -2
- package/.mochi/svelte-client/chunk-wcfbjj3x.js +0 -2
|
@@ -12,12 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-pqb403fh.js";
|
|
13
13
|
import {
|
|
14
14
|
CLAUDE_EFFORT_LEVELS,
|
|
15
|
+
CLAUDE_OUTPUT_STYLES,
|
|
15
16
|
CLAUDE_PERMISSION_MODES,
|
|
16
17
|
apiPost,
|
|
17
18
|
applyTheme,
|
|
18
19
|
getTheme,
|
|
19
20
|
setTheme
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-w0hca7va.js";
|
|
21
22
|
import {
|
|
22
23
|
Rotate_ccw
|
|
23
24
|
} from "./chunk-jx6h1xzp.js";
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
Toaster,
|
|
30
31
|
avatars,
|
|
31
32
|
findAvatar
|
|
32
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-apdte4nh.js";
|
|
33
34
|
import {
|
|
34
35
|
HydratableBoundary,
|
|
35
36
|
Icon,
|
|
@@ -40,11 +41,11 @@ import"./chunk-xpt1a7jm.js";
|
|
|
40
41
|
|
|
41
42
|
// src/pages/Settings.svelte
|
|
42
43
|
import"svelte/internal/flags/async";
|
|
43
|
-
import * as $
|
|
44
|
+
import * as $30 from "svelte/internal/server";
|
|
44
45
|
|
|
45
46
|
// src/components/SettingsView.svelte
|
|
46
47
|
import"svelte/internal/flags/async";
|
|
47
|
-
import * as $
|
|
48
|
+
import * as $29 from "svelte/internal/server";
|
|
48
49
|
|
|
49
50
|
// node_modules/@lucide/svelte/dist/icons/container.svelte
|
|
50
51
|
import"svelte/internal/flags/async";
|
|
@@ -306,9 +307,33 @@ function Folder_minus($$renderer, $$props) {
|
|
|
306
307
|
];
|
|
307
308
|
Icon($$renderer, $12.spread_props([{ name: "folder-minus" }, props, { iconNode }]));
|
|
308
309
|
}
|
|
309
|
-
// node_modules/@lucide/svelte/dist/icons/
|
|
310
|
+
// node_modules/@lucide/svelte/dist/icons/folder-cog.svelte
|
|
310
311
|
import"svelte/internal/flags/async";
|
|
311
312
|
import * as $13 from "svelte/internal/server";
|
|
313
|
+
function Folder_cog($$renderer, $$props) {
|
|
314
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
315
|
+
const iconNode = [
|
|
316
|
+
[
|
|
317
|
+
"path",
|
|
318
|
+
{
|
|
319
|
+
d: "M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3"
|
|
320
|
+
}
|
|
321
|
+
],
|
|
322
|
+
["path", { d: "m14.305 19.53.923-.382" }],
|
|
323
|
+
["path", { d: "m15.228 16.852-.923-.383" }],
|
|
324
|
+
["path", { d: "m16.852 15.228-.383-.923" }],
|
|
325
|
+
["path", { d: "m16.852 20.772-.383.924" }],
|
|
326
|
+
["path", { d: "m19.148 15.228.383-.923" }],
|
|
327
|
+
["path", { d: "m19.53 21.696-.382-.924" }],
|
|
328
|
+
["path", { d: "m20.772 16.852.924-.383" }],
|
|
329
|
+
["path", { d: "m20.772 19.148.924.383" }],
|
|
330
|
+
["circle", { cx: "18", cy: "18", r: "3" }]
|
|
331
|
+
];
|
|
332
|
+
Icon($$renderer, $13.spread_props([{ name: "folder-cog" }, props, { iconNode }]));
|
|
333
|
+
}
|
|
334
|
+
// node_modules/@lucide/svelte/dist/icons/trash-2.svelte
|
|
335
|
+
import"svelte/internal/flags/async";
|
|
336
|
+
import * as $14 from "svelte/internal/server";
|
|
312
337
|
function Trash_2($$renderer, $$props) {
|
|
313
338
|
let { $$slots, $$events, ...props } = $$props;
|
|
314
339
|
const iconNode = [
|
|
@@ -318,11 +343,11 @@ function Trash_2($$renderer, $$props) {
|
|
|
318
343
|
["path", { d: "M3 6h18" }],
|
|
319
344
|
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
|
|
320
345
|
];
|
|
321
|
-
Icon($$renderer, $
|
|
346
|
+
Icon($$renderer, $14.spread_props([{ name: "trash-2" }, props, { iconNode }]));
|
|
322
347
|
}
|
|
323
348
|
// node_modules/@lucide/svelte/dist/icons/hammer.svelte
|
|
324
349
|
import"svelte/internal/flags/async";
|
|
325
|
-
import * as $
|
|
350
|
+
import * as $15 from "svelte/internal/server";
|
|
326
351
|
function Hammer($$renderer, $$props) {
|
|
327
352
|
let { $$slots, $$events, ...props } = $$props;
|
|
328
353
|
const iconNode = [
|
|
@@ -335,11 +360,11 @@ function Hammer($$renderer, $$props) {
|
|
|
335
360
|
}
|
|
336
361
|
]
|
|
337
362
|
];
|
|
338
|
-
Icon($$renderer, $
|
|
363
|
+
Icon($$renderer, $15.spread_props([{ name: "hammer" }, props, { iconNode }]));
|
|
339
364
|
}
|
|
340
365
|
// node_modules/@lucide/svelte/dist/icons/key-round.svelte
|
|
341
366
|
import"svelte/internal/flags/async";
|
|
342
|
-
import * as $
|
|
367
|
+
import * as $16 from "svelte/internal/server";
|
|
343
368
|
function Key_round($$renderer, $$props) {
|
|
344
369
|
let { $$slots, $$events, ...props } = $$props;
|
|
345
370
|
const iconNode = [
|
|
@@ -354,11 +379,11 @@ function Key_round($$renderer, $$props) {
|
|
|
354
379
|
{ cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" }
|
|
355
380
|
]
|
|
356
381
|
];
|
|
357
|
-
Icon($$renderer, $
|
|
382
|
+
Icon($$renderer, $16.spread_props([{ name: "key-round" }, props, { iconNode }]));
|
|
358
383
|
}
|
|
359
384
|
// node_modules/@lucide/svelte/dist/icons/user-cog.svelte
|
|
360
385
|
import"svelte/internal/flags/async";
|
|
361
|
-
import * as $
|
|
386
|
+
import * as $17 from "svelte/internal/server";
|
|
362
387
|
function User_cog($$renderer, $$props) {
|
|
363
388
|
let { $$slots, $$events, ...props } = $$props;
|
|
364
389
|
const iconNode = [
|
|
@@ -374,11 +399,11 @@ function User_cog($$renderer, $$props) {
|
|
|
374
399
|
["circle", { cx: "18", cy: "15", r: "3" }],
|
|
375
400
|
["circle", { cx: "9", cy: "7", r: "4" }]
|
|
376
401
|
];
|
|
377
|
-
Icon($$renderer, $
|
|
402
|
+
Icon($$renderer, $17.spread_props([{ name: "user-cog" }, props, { iconNode }]));
|
|
378
403
|
}
|
|
379
404
|
// node_modules/@lucide/svelte/dist/icons/cpu.svelte
|
|
380
405
|
import"svelte/internal/flags/async";
|
|
381
|
-
import * as $
|
|
406
|
+
import * as $18 from "svelte/internal/server";
|
|
382
407
|
function Cpu($$renderer, $$props) {
|
|
383
408
|
let { $$slots, $$events, ...props } = $$props;
|
|
384
409
|
const iconNode = [
|
|
@@ -400,11 +425,11 @@ function Cpu($$renderer, $$props) {
|
|
|
400
425
|
],
|
|
401
426
|
["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1" }]
|
|
402
427
|
];
|
|
403
|
-
Icon($$renderer, $
|
|
428
|
+
Icon($$renderer, $18.spread_props([{ name: "cpu" }, props, { iconNode }]));
|
|
404
429
|
}
|
|
405
430
|
// node_modules/@lucide/svelte/dist/icons/variable.svelte
|
|
406
431
|
import"svelte/internal/flags/async";
|
|
407
|
-
import * as $
|
|
432
|
+
import * as $19 from "svelte/internal/server";
|
|
408
433
|
function Variable($$renderer, $$props) {
|
|
409
434
|
let { $$slots, $$events, ...props } = $$props;
|
|
410
435
|
const iconNode = [
|
|
@@ -413,11 +438,11 @@ function Variable($$renderer, $$props) {
|
|
|
413
438
|
["line", { x1: "15", x2: "9", y1: "9", y2: "15" }],
|
|
414
439
|
["line", { x1: "9", x2: "15", y1: "9", y2: "15" }]
|
|
415
440
|
];
|
|
416
|
-
Icon($$renderer, $
|
|
441
|
+
Icon($$renderer, $19.spread_props([{ name: "variable" }, props, { iconNode }]));
|
|
417
442
|
}
|
|
418
443
|
// node_modules/@lucide/svelte/dist/icons/key-square.svelte
|
|
419
444
|
import"svelte/internal/flags/async";
|
|
420
|
-
import * as $
|
|
445
|
+
import * as $20 from "svelte/internal/server";
|
|
421
446
|
function Key_square($$renderer, $$props) {
|
|
422
447
|
let { $$slots, $$events, ...props } = $$props;
|
|
423
448
|
const iconNode = [
|
|
@@ -435,11 +460,11 @@ function Key_square($$renderer, $$props) {
|
|
|
435
460
|
}
|
|
436
461
|
]
|
|
437
462
|
];
|
|
438
|
-
Icon($$renderer, $
|
|
463
|
+
Icon($$renderer, $20.spread_props([{ name: "key-square" }, props, { iconNode }]));
|
|
439
464
|
}
|
|
440
465
|
// node_modules/@lucide/svelte/dist/icons/sliders-horizontal.svelte
|
|
441
466
|
import"svelte/internal/flags/async";
|
|
442
|
-
import * as $
|
|
467
|
+
import * as $21 from "svelte/internal/server";
|
|
443
468
|
function Sliders_horizontal($$renderer, $$props) {
|
|
444
469
|
let { $$slots, $$events, ...props } = $$props;
|
|
445
470
|
const iconNode = [
|
|
@@ -453,11 +478,11 @@ function Sliders_horizontal($$renderer, $$props) {
|
|
|
453
478
|
["path", { d: "M8 10v4" }],
|
|
454
479
|
["path", { d: "M8 12H3" }]
|
|
455
480
|
];
|
|
456
|
-
Icon($$renderer, $
|
|
481
|
+
Icon($$renderer, $21.spread_props([{ name: "sliders-horizontal" }, props, { iconNode }]));
|
|
457
482
|
}
|
|
458
483
|
// node_modules/@lucide/svelte/dist/icons/list-ordered.svelte
|
|
459
484
|
import"svelte/internal/flags/async";
|
|
460
|
-
import * as $
|
|
485
|
+
import * as $22 from "svelte/internal/server";
|
|
461
486
|
function List_ordered($$renderer, $$props) {
|
|
462
487
|
let { $$slots, $$events, ...props } = $$props;
|
|
463
488
|
const iconNode = [
|
|
@@ -473,11 +498,11 @@ function List_ordered($$renderer, $$props) {
|
|
|
473
498
|
}
|
|
474
499
|
]
|
|
475
500
|
];
|
|
476
|
-
Icon($$renderer, $
|
|
501
|
+
Icon($$renderer, $22.spread_props([{ name: "list-ordered" }, props, { iconNode }]));
|
|
477
502
|
}
|
|
478
503
|
// node_modules/@lucide/svelte/dist/icons/boxes.svelte
|
|
479
504
|
import"svelte/internal/flags/async";
|
|
480
|
-
import * as $
|
|
505
|
+
import * as $23 from "svelte/internal/server";
|
|
481
506
|
function Boxes($$renderer, $$props) {
|
|
482
507
|
let { $$slots, $$events, ...props } = $$props;
|
|
483
508
|
const iconNode = [
|
|
@@ -509,11 +534,11 @@ function Boxes($$renderer, $$props) {
|
|
|
509
534
|
["path", { d: "m12 8 4.74-2.85" }],
|
|
510
535
|
["path", { d: "M12 13.5V8" }]
|
|
511
536
|
];
|
|
512
|
-
Icon($$renderer, $
|
|
537
|
+
Icon($$renderer, $23.spread_props([{ name: "boxes" }, props, { iconNode }]));
|
|
513
538
|
}
|
|
514
539
|
// node_modules/@lucide/svelte/dist/icons/puzzle.svelte
|
|
515
540
|
import"svelte/internal/flags/async";
|
|
516
|
-
import * as $
|
|
541
|
+
import * as $24 from "svelte/internal/server";
|
|
517
542
|
function Puzzle($$renderer, $$props) {
|
|
518
543
|
let { $$slots, $$events, ...props } = $$props;
|
|
519
544
|
const iconNode = [
|
|
@@ -524,14 +549,14 @@ function Puzzle($$renderer, $$props) {
|
|
|
524
549
|
}
|
|
525
550
|
]
|
|
526
551
|
];
|
|
527
|
-
Icon($$renderer, $
|
|
552
|
+
Icon($$renderer, $24.spread_props([{ name: "puzzle" }, props, { iconNode }]));
|
|
528
553
|
}
|
|
529
554
|
// src/components/SettingsView.svelte
|
|
530
555
|
import { flushSync } from "svelte";
|
|
531
556
|
|
|
532
557
|
// src/components/CoinButton.svelte
|
|
533
558
|
import"svelte/internal/flags/async";
|
|
534
|
-
import * as $
|
|
559
|
+
import * as $25 from "svelte/internal/server";
|
|
535
560
|
function CoinButton($$renderer, $$props) {
|
|
536
561
|
let { href = "/avatars" } = $$props;
|
|
537
562
|
const coinArt = {
|
|
@@ -547,14 +572,14 @@ function CoinButton($$renderer, $$props) {
|
|
|
547
572
|
"..####.."
|
|
548
573
|
]
|
|
549
574
|
};
|
|
550
|
-
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$
|
|
575
|
+
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$25.attr("href", href)} aria-label="Draw your own avatar" title="Draw your own avatar"><span class="new svelte-1ioj7vz" aria-hidden="true">New</span> <span class="coin svelte-1ioj7vz" aria-hidden="true">`);
|
|
551
576
|
Avatar($$renderer, { art: coinArt, name: "coin", scale: 3 });
|
|
552
577
|
$$renderer.push(`<!----></span></a> <span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span></div>`);
|
|
553
578
|
}
|
|
554
579
|
|
|
555
580
|
// node_modules/@lucide/svelte/dist/icons/shield-check.svelte
|
|
556
581
|
import"svelte/internal/flags/async";
|
|
557
|
-
import * as $
|
|
582
|
+
import * as $26 from "svelte/internal/server";
|
|
558
583
|
function Shield_check($$renderer, $$props) {
|
|
559
584
|
let { $$slots, $$events, ...props } = $$props;
|
|
560
585
|
const iconNode = [
|
|
@@ -566,18 +591,33 @@ function Shield_check($$renderer, $$props) {
|
|
|
566
591
|
],
|
|
567
592
|
["path", { d: "m9 12 2 2 4-4" }]
|
|
568
593
|
];
|
|
569
|
-
Icon($$renderer, $
|
|
594
|
+
Icon($$renderer, $26.spread_props([{ name: "shield-check" }, props, { iconNode }]));
|
|
570
595
|
}
|
|
571
596
|
// node_modules/@lucide/svelte/dist/icons/gauge.svelte
|
|
572
597
|
import"svelte/internal/flags/async";
|
|
573
|
-
import * as $
|
|
598
|
+
import * as $27 from "svelte/internal/server";
|
|
574
599
|
function Gauge($$renderer, $$props) {
|
|
575
600
|
let { $$slots, $$events, ...props } = $$props;
|
|
576
601
|
const iconNode = [
|
|
577
602
|
["path", { d: "m12 14 4-4" }],
|
|
578
603
|
["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]
|
|
579
604
|
];
|
|
580
|
-
Icon($$renderer, $
|
|
605
|
+
Icon($$renderer, $27.spread_props([{ name: "gauge" }, props, { iconNode }]));
|
|
606
|
+
}
|
|
607
|
+
// node_modules/@lucide/svelte/dist/icons/message-square.svelte
|
|
608
|
+
import"svelte/internal/flags/async";
|
|
609
|
+
import * as $28 from "svelte/internal/server";
|
|
610
|
+
function Message_square($$renderer, $$props) {
|
|
611
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
612
|
+
const iconNode = [
|
|
613
|
+
[
|
|
614
|
+
"path",
|
|
615
|
+
{
|
|
616
|
+
d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"
|
|
617
|
+
}
|
|
618
|
+
]
|
|
619
|
+
];
|
|
620
|
+
Icon($$renderer, $28.spread_props([{ name: "message-square" }, props, { iconNode }]));
|
|
581
621
|
}
|
|
582
622
|
// src/components/SettingsView.svelte
|
|
583
623
|
function SettingsView($$renderer, $$props) {
|
|
@@ -587,11 +627,13 @@ function SettingsView($$renderer, $$props) {
|
|
|
587
627
|
defaultMode,
|
|
588
628
|
claudePermissionMode,
|
|
589
629
|
claudeEffortLevel,
|
|
630
|
+
claudeOutputStyle,
|
|
590
631
|
defaultImage,
|
|
591
632
|
builtinImage,
|
|
592
633
|
disableBuildCache,
|
|
593
634
|
copyIgnorePatterns,
|
|
594
635
|
builtinCopyIgnore,
|
|
636
|
+
claudeConfigDir,
|
|
595
637
|
gitIdentityEnabled,
|
|
596
638
|
gitIdentityName,
|
|
597
639
|
gitIdentityEmail,
|
|
@@ -738,6 +780,26 @@ function SettingsView($$renderer, $$props) {
|
|
|
738
780
|
flushSync(() => effortChoice = next);
|
|
739
781
|
effortFormEl?.requestSubmit();
|
|
740
782
|
}
|
|
783
|
+
let outputStyleChoice = claudeOutputStyle;
|
|
784
|
+
let savingOutputStyle = false;
|
|
785
|
+
let outputStyleError = null;
|
|
786
|
+
let outputStyleFormEl;
|
|
787
|
+
const outputStyleOpts = saveOpts({
|
|
788
|
+
setSaving: (v) => savingOutputStyle = v,
|
|
789
|
+
setError: (v) => outputStyleError = v,
|
|
790
|
+
setMsg: () => {},
|
|
791
|
+
onSuccess: (data) => {
|
|
792
|
+
if (data?.style)
|
|
793
|
+
outputStyleChoice = data.style;
|
|
794
|
+
}
|
|
795
|
+
});
|
|
796
|
+
const OUTPUT_STYLE_LABELS = { default: "Default", none: "None", Concise: "Concise" };
|
|
797
|
+
function chooseOutputStyle(next) {
|
|
798
|
+
if (next === outputStyleChoice)
|
|
799
|
+
return;
|
|
800
|
+
flushSync(() => outputStyleChoice = next);
|
|
801
|
+
outputStyleFormEl?.requestSubmit();
|
|
802
|
+
}
|
|
741
803
|
let image = defaultImage;
|
|
742
804
|
let savingImage = false;
|
|
743
805
|
let imageError = null;
|
|
@@ -774,6 +836,24 @@ function SettingsView($$renderer, $$props) {
|
|
|
774
836
|
flushSync(() => copyIgnore = builtinCopyIgnore);
|
|
775
837
|
copyIgnoreFormEl?.requestSubmit();
|
|
776
838
|
}
|
|
839
|
+
let claudeDir = claudeConfigDir;
|
|
840
|
+
let savingClaudeDir = false;
|
|
841
|
+
let claudeDirError = null;
|
|
842
|
+
let claudeDirSaved = false;
|
|
843
|
+
let claudeDirFormEl;
|
|
844
|
+
const claudeDirOpts = saveOpts({
|
|
845
|
+
setSaving: (v) => savingClaudeDir = v,
|
|
846
|
+
setError: (v) => claudeDirError = v,
|
|
847
|
+
setMsg: (v) => claudeDirSaved = !!v,
|
|
848
|
+
onSuccess: (data) => {
|
|
849
|
+
claudeDir = data?.dir ?? claudeDir;
|
|
850
|
+
claudeDirSaved = true;
|
|
851
|
+
}
|
|
852
|
+
});
|
|
853
|
+
function resetClaudeDir() {
|
|
854
|
+
flushSync(() => claudeDir = "");
|
|
855
|
+
claudeDirFormEl?.requestSubmit();
|
|
856
|
+
}
|
|
777
857
|
let gitIdentity = gitIdentityEnabled;
|
|
778
858
|
let savingGitToggle = false;
|
|
779
859
|
let gitToggleError = null;
|
|
@@ -992,7 +1072,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
992
1072
|
manualModelsMsg = "Saved.";
|
|
993
1073
|
}
|
|
994
1074
|
});
|
|
995
|
-
let litellmBlocker = $
|
|
1075
|
+
let litellmBlocker = $29.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
|
|
996
1076
|
let hostEnvVars = hostEnvVarsEnabled;
|
|
997
1077
|
let savingHostEnvToggle = false;
|
|
998
1078
|
let hostEnvToggleError = null;
|
|
@@ -1168,30 +1248,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1168
1248
|
$$renderer2.push(`<!----> <main class="content svelte-1n6ht58"><section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/defaultMode"><div class="label svelte-1n6ht58">`);
|
|
1169
1249
|
Terminal($$renderer2, { size: 20 });
|
|
1170
1250
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default editor</div> <div class="desc svelte-1n6ht58">What new instances start in. <strong>Full IDE</strong> serves browser VS Code; <strong>Terminal</strong> is lighter \u2014 just Claude Code in a terminal, no code-server. You
|
|
1171
|
-
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$
|
|
1251
|
+
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$29.attr("value", modeChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Default editor mode"><button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "ide" })}${$29.attr("aria-pressed", modeChoice === "ide")}${$29.attr("disabled", savingMode, true)}>`);
|
|
1172
1252
|
Layout_template($$renderer2, { size: 15 });
|
|
1173
|
-
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$
|
|
1253
|
+
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "terminal" })}${$29.attr("aria-pressed", modeChoice === "terminal")}${$29.attr("disabled", savingMode, true)}>`);
|
|
1174
1254
|
Terminal($$renderer2, { size: 15 });
|
|
1175
1255
|
$$renderer2.push(`<!----> Terminal</button></div></form> `);
|
|
1176
1256
|
if (modeError) {
|
|
1177
1257
|
$$renderer2.push("<!--[0-->");
|
|
1178
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1258
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(modeError)}</div></div>`);
|
|
1179
1259
|
} else {
|
|
1180
1260
|
$$renderer2.push("<!--[-1-->");
|
|
1181
1261
|
}
|
|
1182
1262
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudePermissionMode"><div class="label svelte-1n6ht58">`);
|
|
1183
1263
|
Shield_check($$renderer2, { size: 20 });
|
|
1184
1264
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude permission mode</div> <div class="desc svelte-1n6ht58">The mode Claude Code starts in inside new instances. <strong>Default</strong> runs <code class="svelte-1n6ht58">--dangerously-skip-permissions</code>, which never prompts; the other three pass <code class="svelte-1n6ht58">--permission-mode</code> instead, because the skip flag overrides them. Applies on
|
|
1185
|
-
create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$
|
|
1186
|
-
const each_array = $
|
|
1265
|
+
create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$29.attr("value", permissionChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude permission mode"><!--[-->`);
|
|
1266
|
+
const each_array = $29.ensure_array_like(CLAUDE_PERMISSION_MODES);
|
|
1187
1267
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
1188
1268
|
let option = each_array[$$index];
|
|
1189
|
-
$$renderer2.push(`<button type="button"${$
|
|
1269
|
+
$$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: permissionChoice === option })}${$29.attr("aria-pressed", permissionChoice === option)}${$29.attr("disabled", savingPermission, true)}>${$29.escape(PERMISSION_LABELS[option])}</button>`);
|
|
1190
1270
|
}
|
|
1191
1271
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1192
1272
|
if (permissionError) {
|
|
1193
1273
|
$$renderer2.push("<!--[0-->");
|
|
1194
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1274
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(permissionError)}</div></div>`);
|
|
1195
1275
|
} else {
|
|
1196
1276
|
$$renderer2.push("<!--[-1-->");
|
|
1197
1277
|
}
|
|
@@ -1199,16 +1279,31 @@ function SettingsView($$renderer, $$props) {
|
|
|
1199
1279
|
Gauge($$renderer2, { size: 20 });
|
|
1200
1280
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude effort level</div> <div class="desc svelte-1n6ht58">The default reasoning effort Claude Code starts new sessions at inside instances,
|
|
1201
1281
|
written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. Applies on create and rebuild, not to
|
|
1202
|
-
already-running instances.</div></div></div> <input type="hidden" name="level"${$
|
|
1203
|
-
const each_array_1 = $
|
|
1282
|
+
already-running instances.</div></div></div> <input type="hidden" name="level"${$29.attr("value", effortChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude effort level"><!--[-->`);
|
|
1283
|
+
const each_array_1 = $29.ensure_array_like(CLAUDE_EFFORT_LEVELS);
|
|
1204
1284
|
for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
|
|
1205
1285
|
let option = each_array_1[$$index_1];
|
|
1206
|
-
$$renderer2.push(`<button type="button"${$
|
|
1286
|
+
$$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: effortChoice === option })}${$29.attr("aria-pressed", effortChoice === option)}${$29.attr("disabled", savingEffort, true)}>${$29.escape(EFFORT_LABELS[option])}</button>`);
|
|
1207
1287
|
}
|
|
1208
1288
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1209
1289
|
if (effortError) {
|
|
1210
1290
|
$$renderer2.push("<!--[0-->");
|
|
1211
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1291
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(effortError)}</div></div>`);
|
|
1292
|
+
} else {
|
|
1293
|
+
$$renderer2.push("<!--[-1-->");
|
|
1294
|
+
}
|
|
1295
|
+
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudeOutputStyle"><div class="label svelte-1n6ht58">`);
|
|
1296
|
+
Message_square($$renderer2, { size: 20 });
|
|
1297
|
+
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude output style</div> <div class="desc svelte-1n6ht58">The output style Claude Code starts new sessions in, written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. <strong>Default</strong> inherits your host <code class="svelte-1n6ht58">~/.claude/settings.json</code> (including any custom styles); <strong>None</strong> forces it off. Applies on create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="style"${$29.attr("value", outputStyleChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude output style"><!--[-->`);
|
|
1298
|
+
const each_array_2 = $29.ensure_array_like(CLAUDE_OUTPUT_STYLES);
|
|
1299
|
+
for (let $$index_2 = 0, $$length = each_array_2.length;$$index_2 < $$length; $$index_2++) {
|
|
1300
|
+
let option = each_array_2[$$index_2];
|
|
1301
|
+
$$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: outputStyleChoice === option })}${$29.attr("aria-pressed", outputStyleChoice === option)}${$29.attr("disabled", savingOutputStyle, true)}>${$29.escape(OUTPUT_STYLE_LABELS[option])}</button>`);
|
|
1302
|
+
}
|
|
1303
|
+
$$renderer2.push(`<!--]--></div></form> `);
|
|
1304
|
+
if (outputStyleError) {
|
|
1305
|
+
$$renderer2.push("<!--[0-->");
|
|
1306
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(outputStyleError)}</div></div>`);
|
|
1212
1307
|
} else {
|
|
1213
1308
|
$$renderer2.push("<!--[-1-->");
|
|
1214
1309
|
}
|
|
@@ -1217,12 +1312,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1217
1312
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image `);
|
|
1218
1313
|
if (dockerArch) {
|
|
1219
1314
|
$$renderer2.push("<!--[0-->");
|
|
1220
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$
|
|
1315
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$29.escape(dockerArch)}</span>`);
|
|
1221
1316
|
} else {
|
|
1222
1317
|
$$renderer2.push("<!--[-1-->");
|
|
1223
1318
|
}
|
|
1224
1319
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
|
|
1225
|
-
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$
|
|
1320
|
+
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$29.attr("value", image)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> `);
|
|
1226
1321
|
Button($$renderer2, {
|
|
1227
1322
|
type: "submit",
|
|
1228
1323
|
disabled: savingImage,
|
|
@@ -1237,14 +1332,14 @@ function SettingsView($$renderer, $$props) {
|
|
|
1237
1332
|
icon: Rotate_ccw,
|
|
1238
1333
|
disabled: savingImage,
|
|
1239
1334
|
onclick: resetImage,
|
|
1240
|
-
title: `Reset to default (${$
|
|
1335
|
+
title: `Reset to default (${$29.stringify(builtinImage)})`,
|
|
1241
1336
|
"aria-label": "Reset to default image"
|
|
1242
1337
|
});
|
|
1243
1338
|
$$renderer2.push(`<!----></div> <div class="desc tip svelte-1n6ht58">`);
|
|
1244
1339
|
if (dockerArch) {
|
|
1245
1340
|
$$renderer2.push("<!--[0-->");
|
|
1246
|
-
$$renderer2.push(`Your Docker daemon runs on <strong>${$
|
|
1247
|
-
an <strong>${$
|
|
1341
|
+
$$renderer2.push(`Your Docker daemon runs on <strong>${$29.escape(dockerArch)}</strong> \u2014 pick an image that publishes
|
|
1342
|
+
an <strong>${$29.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
|
|
1248
1343
|
} else {
|
|
1249
1344
|
$$renderer2.push("<!--[-1-->");
|
|
1250
1345
|
$$renderer2.push(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
|
|
@@ -1253,7 +1348,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1253
1348
|
$$renderer2.push(`<!--]--></div> `);
|
|
1254
1349
|
if (imageError) {
|
|
1255
1350
|
$$renderer2.push("<!--[0-->");
|
|
1256
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1351
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(imageError)}</div>`);
|
|
1257
1352
|
} else if (imageSaved) {
|
|
1258
1353
|
$$renderer2.push("<!--[1-->");
|
|
1259
1354
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1264,7 +1359,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1264
1359
|
Folder_minus($$renderer2, { size: 20 });
|
|
1265
1360
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Skip when copying a local folder</div> <div class="desc svelte-1n6ht58">Comma-separated folder/file names excluded when copying a local source folder into a
|
|
1266
1361
|
new instance's workspace. Leave blank to copy everything. Only applies to local
|
|
1267
|
-
folders \u2014 cloning a Git repo URL is unaffected.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="patterns" class="image-input svelte-1n6ht58"${$
|
|
1362
|
+
folders \u2014 cloning a Git repo URL is unaffected.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="patterns" class="image-input svelte-1n6ht58"${$29.attr("value", copyIgnore)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> `);
|
|
1268
1363
|
Button($$renderer2, {
|
|
1269
1364
|
type: "submit",
|
|
1270
1365
|
disabled: savingCopyIgnore,
|
|
@@ -1279,27 +1374,58 @@ function SettingsView($$renderer, $$props) {
|
|
|
1279
1374
|
icon: Rotate_ccw,
|
|
1280
1375
|
disabled: savingCopyIgnore,
|
|
1281
1376
|
onclick: resetCopyIgnore,
|
|
1282
|
-
title: `Reset to default (${$
|
|
1377
|
+
title: `Reset to default (${$29.stringify(builtinCopyIgnore)})`,
|
|
1283
1378
|
"aria-label": "Reset to default copy-ignore patterns"
|
|
1284
1379
|
});
|
|
1285
1380
|
$$renderer2.push(`<!----></div> `);
|
|
1286
1381
|
if (copyIgnoreError) {
|
|
1287
1382
|
$$renderer2.push("<!--[0-->");
|
|
1288
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1383
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(copyIgnoreError)}</div>`);
|
|
1289
1384
|
} else if (copyIgnoreSaved) {
|
|
1290
1385
|
$$renderer2.push("<!--[1-->");
|
|
1291
1386
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
1292
1387
|
} else {
|
|
1293
1388
|
$$renderer2.push("<!--[-1-->");
|
|
1294
1389
|
}
|
|
1390
|
+
$$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/claudeConfigDir"><div class="label svelte-1n6ht58">`);
|
|
1391
|
+
Folder_cog($$renderer2, { size: 20 });
|
|
1392
|
+
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude config directory</div> <div class="desc svelte-1n6ht58">Host directory the Claude Code injections read from \u2014 credentials, statusLine, output
|
|
1393
|
+
styles, and global skills / <code class="svelte-1n6ht58">CLAUDE.md</code>. Leave blank to use <code class="svelte-1n6ht58">~/.claude</code>. Takes effect for instances created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="dir" class="image-input svelte-1n6ht58"${$29.attr("value", claudeDir)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="~/.claude"/> `);
|
|
1394
|
+
Button($$renderer2, {
|
|
1395
|
+
type: "submit",
|
|
1396
|
+
disabled: savingClaudeDir,
|
|
1397
|
+
children: ($$renderer3) => {
|
|
1398
|
+
$$renderer3.push(`<!---->Save`);
|
|
1399
|
+
},
|
|
1400
|
+
$$slots: { default: true }
|
|
1401
|
+
});
|
|
1402
|
+
$$renderer2.push(`<!----> `);
|
|
1403
|
+
Button($$renderer2, {
|
|
1404
|
+
type: "button",
|
|
1405
|
+
icon: Rotate_ccw,
|
|
1406
|
+
disabled: savingClaudeDir,
|
|
1407
|
+
onclick: resetClaudeDir,
|
|
1408
|
+
title: "Reset to default (~/.claude)",
|
|
1409
|
+
"aria-label": "Reset to default Claude config directory"
|
|
1410
|
+
});
|
|
1411
|
+
$$renderer2.push(`<!----></div> `);
|
|
1412
|
+
if (claudeDirError) {
|
|
1413
|
+
$$renderer2.push("<!--[0-->");
|
|
1414
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeDirError)}</div>`);
|
|
1415
|
+
} else if (claudeDirSaved) {
|
|
1416
|
+
$$renderer2.push("<!--[1-->");
|
|
1417
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
1418
|
+
} else {
|
|
1419
|
+
$$renderer2.push("<!--[-1-->");
|
|
1420
|
+
}
|
|
1295
1421
|
$$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/gitIdentityToggle"><div class="label svelte-1n6ht58">`);
|
|
1296
1422
|
User_cog($$renderer2, { size: 20 });
|
|
1297
1423
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override git identity</div> <div class="desc svelte-1n6ht58">Inject a name and email as <code class="svelte-1n6ht58">git config --global user.name/user.email</code> in every
|
|
1298
1424
|
new container, taking precedence over the host's own git config. When off, each container
|
|
1299
|
-
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1425
|
+
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", gitIdentity, true)}${$29.attr("disabled", savingGitToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1300
1426
|
if (gitToggleError) {
|
|
1301
1427
|
$$renderer2.push("<!--[0-->");
|
|
1302
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1428
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(gitToggleError)}</div></div>`);
|
|
1303
1429
|
} else {
|
|
1304
1430
|
$$renderer2.push("<!--[-1-->");
|
|
1305
1431
|
}
|
|
@@ -1307,7 +1433,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1307
1433
|
if (gitIdentity) {
|
|
1308
1434
|
$$renderer2.push("<!--[0-->");
|
|
1309
1435
|
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/gitIdentityOverride"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Identity</div> <div class="desc svelte-1n6ht58">Both fields are required \u2014 leave either blank and the container falls back to the
|
|
1310
|
-
host's identity.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Name</span> <input type="text" name="name" class="image-input svelte-1n6ht58"${$
|
|
1436
|
+
host's identity.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Name</span> <input type="text" name="name" class="image-input svelte-1n6ht58"${$29.attr("value", gitName)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="Jane Doe"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Email</span> <input type="text" name="email" class="image-input svelte-1n6ht58"${$29.attr("value", gitEmail)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="jane@example.com"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1311
1437
|
Button($$renderer2, {
|
|
1312
1438
|
type: "submit",
|
|
1313
1439
|
disabled: savingGitIdentity,
|
|
@@ -1319,7 +1445,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1319
1445
|
$$renderer2.push(`<!----></div></div> `);
|
|
1320
1446
|
if (gitIdentityError) {
|
|
1321
1447
|
$$renderer2.push("<!--[0-->");
|
|
1322
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1448
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(gitIdentityError)}</div>`);
|
|
1323
1449
|
} else if (gitIdentitySaved) {
|
|
1324
1450
|
$$renderer2.push("<!--[1-->");
|
|
1325
1451
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1333,10 +1459,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1333
1459
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58">`);
|
|
1334
1460
|
Layers($$renderer2, { size: 20 });
|
|
1335
1461
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Disable build cache</div> <div class="desc svelte-1n6ht58">Build every new container with <code class="svelte-1n6ht58">--build-no-cache</code>. Applies to first boot
|
|
1336
|
-
and rebuilds \u2014 slower, but always picks up upstream image/layer changes.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1462
|
+
and rebuilds \u2014 slower, but always picks up upstream image/layer changes.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", noCache, true)}${$29.attr("disabled", savingCache, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1337
1463
|
if (cacheError) {
|
|
1338
1464
|
$$renderer2.push("<!--[0-->");
|
|
1339
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1465
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(cacheError)}</div></div>`);
|
|
1340
1466
|
} else {
|
|
1341
1467
|
$$renderer2.push("<!--[-1-->");
|
|
1342
1468
|
}
|
|
@@ -1346,10 +1472,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1346
1472
|
remove pulled images.</div> `);
|
|
1347
1473
|
if (clearError) {
|
|
1348
1474
|
$$renderer2.push("<!--[0-->");
|
|
1349
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1475
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(clearError)}</div>`);
|
|
1350
1476
|
} else if (clearMsg) {
|
|
1351
1477
|
$$renderer2.push("<!--[1-->");
|
|
1352
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1478
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(clearMsg)}</div>`);
|
|
1353
1479
|
} else {
|
|
1354
1480
|
$$renderer2.push("<!--[-1-->");
|
|
1355
1481
|
}
|
|
@@ -1359,7 +1485,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1359
1485
|
icon: Trash_2,
|
|
1360
1486
|
disabled: clearing,
|
|
1361
1487
|
children: ($$renderer3) => {
|
|
1362
|
-
$$renderer3.push(`<!---->${$
|
|
1488
|
+
$$renderer3.push(`<!---->${$29.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
|
|
1363
1489
|
},
|
|
1364
1490
|
$$slots: { default: true }
|
|
1365
1491
|
});
|
|
@@ -1369,10 +1495,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1369
1495
|
layers. In-container edits are kept; stopped instances are left alone.</div> `);
|
|
1370
1496
|
if (rebuildError) {
|
|
1371
1497
|
$$renderer2.push("<!--[0-->");
|
|
1372
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1498
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(rebuildError)}</div>`);
|
|
1373
1499
|
} else if (rebuildMsg) {
|
|
1374
1500
|
$$renderer2.push("<!--[1-->");
|
|
1375
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1501
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(rebuildMsg)}</div>`);
|
|
1376
1502
|
} else {
|
|
1377
1503
|
$$renderer2.push("<!--[-1-->");
|
|
1378
1504
|
}
|
|
@@ -1382,11 +1508,11 @@ function SettingsView($$renderer, $$props) {
|
|
|
1382
1508
|
icon: Hammer,
|
|
1383
1509
|
disabled: rebuilding,
|
|
1384
1510
|
children: ($$renderer3) => {
|
|
1385
|
-
$$renderer3.push(`<!---->${$
|
|
1511
|
+
$$renderer3.push(`<!---->${$29.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
|
|
1386
1512
|
},
|
|
1387
1513
|
$$slots: { default: true }
|
|
1388
1514
|
});
|
|
1389
|
-
$$renderer2.push(`<!----></form></section> <section${$
|
|
1515
|
+
$$renderer2.push(`<!----></form></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58">`);
|
|
1390
1516
|
Key_round($$renderer2, { size: 20 });
|
|
1391
1517
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually `);
|
|
1392
1518
|
if (customEndpoint) {
|
|
@@ -1407,10 +1533,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1407
1533
|
token set here is injected into every new container and overrides host credential
|
|
1408
1534
|
discovery.`);
|
|
1409
1535
|
}
|
|
1410
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1536
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", manualTokens, true)}${$29.attr("disabled", savingManualToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1411
1537
|
if (manualToggleError) {
|
|
1412
1538
|
$$renderer2.push("<!--[0-->");
|
|
1413
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1539
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualToggleError)}</div></div>`);
|
|
1414
1540
|
} else {
|
|
1415
1541
|
$$renderer2.push("<!--[-1-->");
|
|
1416
1542
|
}
|
|
@@ -1418,7 +1544,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1418
1544
|
if (manualTokens && !customEndpoint) {
|
|
1419
1545
|
$$renderer2.push("<!--[0-->");
|
|
1420
1546
|
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/githubToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">GitHub token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">gh auth token</code> to print your GitHub CLI token, or
|
|
1421
|
-
create a Personal Access Token at <code class="svelte-1n6ht58">github.com/settings/tokens</code> (scopes: <code class="svelte-1n6ht58">repo</code>, <code class="svelte-1n6ht58">read:org</code>). Leave blank and Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="githubToken" class="image-input svelte-1n6ht58"${$
|
|
1547
|
+
create a Personal Access Token at <code class="svelte-1n6ht58">github.com/settings/tokens</code> (scopes: <code class="svelte-1n6ht58">repo</code>, <code class="svelte-1n6ht58">read:org</code>). Leave blank and Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="githubToken" class="image-input svelte-1n6ht58"${$29.attr("value", githubToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", ghSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "ghp_\u2026 / gho_\u2026")}/> `);
|
|
1422
1548
|
Button($$renderer2, {
|
|
1423
1549
|
type: "submit",
|
|
1424
1550
|
disabled: savingGithub,
|
|
@@ -1430,17 +1556,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1430
1556
|
$$renderer2.push(`<!----></div> `);
|
|
1431
1557
|
if (githubError) {
|
|
1432
1558
|
$$renderer2.push("<!--[0-->");
|
|
1433
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1559
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(githubError)}</div>`);
|
|
1434
1560
|
} else if (githubMsg) {
|
|
1435
1561
|
$$renderer2.push("<!--[1-->");
|
|
1436
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1562
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(githubMsg)}</div>`);
|
|
1437
1563
|
} else {
|
|
1438
1564
|
$$renderer2.push("<!--[-1-->");
|
|
1439
1565
|
}
|
|
1440
1566
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/claudeToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude Code token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">claude setup-token</code> to mint a long-lived token and
|
|
1441
1567
|
paste it here. Copying a live login out of the keychain or <code class="svelte-1n6ht58">~/.claude/.credentials.json</code> works too, but that credential rotates \u2014
|
|
1442
1568
|
the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
|
|
1443
|
-
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$
|
|
1569
|
+
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$29.attr("value", claudeToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", claudeSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-ant-oat\u2026")}/> `);
|
|
1444
1570
|
Button($$renderer2, {
|
|
1445
1571
|
type: "submit",
|
|
1446
1572
|
disabled: savingClaude,
|
|
@@ -1452,10 +1578,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1452
1578
|
$$renderer2.push(`<!----></div> `);
|
|
1453
1579
|
if (claudeError) {
|
|
1454
1580
|
$$renderer2.push("<!--[0-->");
|
|
1455
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1581
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeError)}</div>`);
|
|
1456
1582
|
} else if (claudeMsg) {
|
|
1457
1583
|
$$renderer2.push("<!--[1-->");
|
|
1458
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1584
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(claudeMsg)}</div>`);
|
|
1459
1585
|
} else {
|
|
1460
1586
|
$$renderer2.push("<!--[-1-->");
|
|
1461
1587
|
}
|
|
@@ -1463,19 +1589,19 @@ function SettingsView($$renderer, $$props) {
|
|
|
1463
1589
|
} else {
|
|
1464
1590
|
$$renderer2.push("<!--[-1-->");
|
|
1465
1591
|
}
|
|
1466
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1592
|
+
$$renderer2.push(`<!--]--></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": litellmBlocker() })}><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58">`);
|
|
1467
1593
|
Key_round($$renderer2, { size: 20 });
|
|
1468
1594
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock `);
|
|
1469
1595
|
if (litellmBlocker()) {
|
|
1470
1596
|
$$renderer2.push("<!--[0-->");
|
|
1471
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$
|
|
1597
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$29.attr("title", `Disabled while ${$29.stringify(litellmBlocker())} is on`)}>disabled</span>`);
|
|
1472
1598
|
} else {
|
|
1473
1599
|
$$renderer2.push("<!--[-1-->");
|
|
1474
1600
|
}
|
|
1475
1601
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
|
|
1476
1602
|
if (litellmBlocker()) {
|
|
1477
1603
|
$$renderer2.push("<!--[0-->");
|
|
1478
|
-
$$renderer2.push(`Not available while "${$
|
|
1604
|
+
$$renderer2.push(`Not available while "${$29.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
|
|
1479
1605
|
incompatible.`);
|
|
1480
1606
|
} else {
|
|
1481
1607
|
$$renderer2.push("<!--[-1-->");
|
|
@@ -1483,17 +1609,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1483
1609
|
default API. When enabled, the Bedrock endpoint variables are injected into every new
|
|
1484
1610
|
container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`);
|
|
1485
1611
|
}
|
|
1486
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1612
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", customEndpoint, true)}${$29.attr("disabled", savingCustomToggle || !!litellmBlocker(), true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1487
1613
|
if (customToggleError) {
|
|
1488
1614
|
$$renderer2.push("<!--[0-->");
|
|
1489
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1615
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customToggleError)}</div></div>`);
|
|
1490
1616
|
} else {
|
|
1491
1617
|
$$renderer2.push("<!--[-1-->");
|
|
1492
1618
|
}
|
|
1493
1619
|
$$renderer2.push(`<!--]--> `);
|
|
1494
1620
|
if (customEndpoint) {
|
|
1495
1621
|
$$renderer2.push("<!--[0-->");
|
|
1496
|
-
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customBaseUrl"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Base URL</div> <div class="desc svelte-1n6ht58">The LiteLLM proxy endpoint, e.g. <code class="svelte-1n6ht58">https://litellm.example.com/bedrock</code>. Passed as <code class="svelte-1n6ht58">ANTHROPIC_BEDROCK_BASE_URL</code>.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="baseUrl" class="image-input svelte-1n6ht58"${$
|
|
1622
|
+
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customBaseUrl"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Base URL</div> <div class="desc svelte-1n6ht58">The LiteLLM proxy endpoint, e.g. <code class="svelte-1n6ht58">https://litellm.example.com/bedrock</code>. Passed as <code class="svelte-1n6ht58">ANTHROPIC_BEDROCK_BASE_URL</code>.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="baseUrl" class="image-input svelte-1n6ht58"${$29.attr("value", customBaseUrl)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> `);
|
|
1497
1623
|
Button($$renderer2, {
|
|
1498
1624
|
type: "submit",
|
|
1499
1625
|
disabled: savingCustomBaseUrl,
|
|
@@ -1505,15 +1631,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1505
1631
|
$$renderer2.push(`<!----></div> `);
|
|
1506
1632
|
if (customBaseUrlError) {
|
|
1507
1633
|
$$renderer2.push("<!--[0-->");
|
|
1508
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1634
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customBaseUrlError)}</div>`);
|
|
1509
1635
|
} else if (customBaseUrlMsg) {
|
|
1510
1636
|
$$renderer2.push("<!--[1-->");
|
|
1511
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1637
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customBaseUrlMsg)}</div>`);
|
|
1512
1638
|
} else {
|
|
1513
1639
|
$$renderer2.push("<!--[-1-->");
|
|
1514
1640
|
}
|
|
1515
1641
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Auth token</div> <div class="desc svelte-1n6ht58">Your LiteLLM API key. Passed as <code class="svelte-1n6ht58">ANTHROPIC_AUTH_TOKEN</code>. Leave blank and
|
|
1516
|
-
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$
|
|
1642
|
+
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$29.attr("value", customToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", customTokenSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-\u2026")}/> `);
|
|
1517
1643
|
Button($$renderer2, {
|
|
1518
1644
|
type: "submit",
|
|
1519
1645
|
disabled: savingCustomToken,
|
|
@@ -1525,15 +1651,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1525
1651
|
$$renderer2.push(`<!----></div> `);
|
|
1526
1652
|
if (customTokenError) {
|
|
1527
1653
|
$$renderer2.push("<!--[0-->");
|
|
1528
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1654
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customTokenError)}</div>`);
|
|
1529
1655
|
} else if (customTokenMsg) {
|
|
1530
1656
|
$$renderer2.push("<!--[1-->");
|
|
1531
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1657
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customTokenMsg)}</div>`);
|
|
1532
1658
|
} else {
|
|
1533
1659
|
$$renderer2.push("<!--[-1-->");
|
|
1534
1660
|
}
|
|
1535
1661
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">Model aliases to use for each tier. Prefilled with defaults from the reference
|
|
1536
|
-
launcher script. Leave a field as-is to keep its current value.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$
|
|
1662
|
+
launcher script. Leave a field as-is to keep its current value.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$29.attr("value", customOpusModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Sonnet</span> <input type="text" name="sonnetModel" class="image-input svelte-1n6ht58"${$29.attr("value", customSonnetModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Haiku</span> <input type="text" name="haikuModel" class="image-input svelte-1n6ht58"${$29.attr("value", customHaikuModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Small/fast</span> <input type="text" name="smallFastModel" class="image-input svelte-1n6ht58"${$29.attr("value", customSmallFastModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Default</span> <input type="text" name="defaultModel" class="image-input svelte-1n6ht58"${$29.attr("value", customDefaultModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1537
1663
|
Button($$renderer2, {
|
|
1538
1664
|
type: "submit",
|
|
1539
1665
|
disabled: savingCustomModels,
|
|
@@ -1545,10 +1671,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1545
1671
|
$$renderer2.push(`<!----></div></div> `);
|
|
1546
1672
|
if (customModelsError) {
|
|
1547
1673
|
$$renderer2.push("<!--[0-->");
|
|
1548
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1674
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customModelsError)}</div>`);
|
|
1549
1675
|
} else if (customModelsMsg) {
|
|
1550
1676
|
$$renderer2.push("<!--[1-->");
|
|
1551
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1677
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customModelsMsg)}</div>`);
|
|
1552
1678
|
} else {
|
|
1553
1679
|
$$renderer2.push("<!--[-1-->");
|
|
1554
1680
|
}
|
|
@@ -1556,7 +1682,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1556
1682
|
} else {
|
|
1557
1683
|
$$renderer2.push("<!--[-1-->");
|
|
1558
1684
|
}
|
|
1559
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1685
|
+
$$renderer2.push(`<!--]--></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualModelToggle"><div class="label svelte-1n6ht58">`);
|
|
1560
1686
|
Cpu($$renderer2, { size: 18 });
|
|
1561
1687
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override models manually `);
|
|
1562
1688
|
if (customEndpoint) {
|
|
@@ -1575,17 +1701,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1575
1701
|
$$renderer2.push(`Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
|
|
1576
1702
|
the fields you fill are injected into new containers as <code class="svelte-1n6ht58">ANTHROPIC_*_MODEL</code> variables; blanks fall through to Claude Code's own defaults.`);
|
|
1577
1703
|
}
|
|
1578
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1704
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", manualModelOverride, true)}${$29.attr("disabled", savingManualModelToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1579
1705
|
if (manualModelToggleError) {
|
|
1580
1706
|
$$renderer2.push("<!--[0-->");
|
|
1581
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1707
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualModelToggleError)}</div></div>`);
|
|
1582
1708
|
} else {
|
|
1583
1709
|
$$renderer2.push("<!--[-1-->");
|
|
1584
1710
|
}
|
|
1585
1711
|
$$renderer2.push(`<!--]--> `);
|
|
1586
1712
|
if (manualModelOverride) {
|
|
1587
1713
|
$$renderer2.push("<!--[0-->");
|
|
1588
|
-
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/manualModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">A model name or alias per tier, e.g. <code class="svelte-1n6ht58">opusplan</code>, <code class="svelte-1n6ht58">opus</code>, <code class="svelte-1n6ht58">sonnet</code>, or a full <code class="svelte-1n6ht58">claude-\u2026</code> id. Leave a field blank to skip it.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$
|
|
1714
|
+
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/manualModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">A model name or alias per tier, e.g. <code class="svelte-1n6ht58">opusplan</code>, <code class="svelte-1n6ht58">opus</code>, <code class="svelte-1n6ht58">sonnet</code>, or a full <code class="svelte-1n6ht58">claude-\u2026</code> id. Leave a field blank to skip it.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualOpus)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Sonnet</span> <input type="text" name="sonnetModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualSonnet)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Haiku</span> <input type="text" name="haikuModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualHaiku)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Small/fast</span> <input type="text" name="smallFastModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualSmallFast)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Default</span> <input type="text" name="defaultModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualDefault)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1589
1715
|
Button($$renderer2, {
|
|
1590
1716
|
type: "submit",
|
|
1591
1717
|
disabled: savingManualModels,
|
|
@@ -1597,10 +1723,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1597
1723
|
$$renderer2.push(`<!----></div></div> `);
|
|
1598
1724
|
if (manualModelsError) {
|
|
1599
1725
|
$$renderer2.push("<!--[0-->");
|
|
1600
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1726
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(manualModelsError)}</div>`);
|
|
1601
1727
|
} else if (manualModelsMsg) {
|
|
1602
1728
|
$$renderer2.push("<!--[1-->");
|
|
1603
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1729
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(manualModelsMsg)}</div>`);
|
|
1604
1730
|
} else {
|
|
1605
1731
|
$$renderer2.push("<!--[-1-->");
|
|
1606
1732
|
}
|
|
@@ -1612,10 +1738,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1612
1738
|
Variable($$renderer2, { size: 20 });
|
|
1613
1739
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Host environment variables</div> <div class="desc svelte-1n6ht58">Forward selected environment variables from this machine into every new container's
|
|
1614
1740
|
interactive shells. Values are read from this process's own environment at container
|
|
1615
|
-
start and are never shown here or stored \u2014 only the variable names are saved.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1741
|
+
start and are never shown here or stored \u2014 only the variable names are saved.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", hostEnvVars, true)}${$29.attr("disabled", savingHostEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1616
1742
|
if (hostEnvToggleError) {
|
|
1617
1743
|
$$renderer2.push("<!--[0-->");
|
|
1618
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1744
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(hostEnvToggleError)}</div></div>`);
|
|
1619
1745
|
} else {
|
|
1620
1746
|
$$renderer2.push("<!--[-1-->");
|
|
1621
1747
|
}
|
|
@@ -1623,18 +1749,18 @@ function SettingsView($$renderer, $$props) {
|
|
|
1623
1749
|
if (hostEnvVars) {
|
|
1624
1750
|
$$renderer2.push("<!--[0-->");
|
|
1625
1751
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1626
|
-
const
|
|
1627
|
-
if (
|
|
1752
|
+
const each_array_3 = $29.ensure_array_like(hostEnvNames);
|
|
1753
|
+
if (each_array_3.length !== 0) {
|
|
1628
1754
|
$$renderer2.push("<!--[-->");
|
|
1629
|
-
for (let $$
|
|
1630
|
-
let name =
|
|
1755
|
+
for (let $$index_4 = 0, $$length = each_array_3.length;$$index_4 < $$length; $$index_4++) {
|
|
1756
|
+
let name = each_array_3[$$index_4];
|
|
1631
1757
|
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1632
|
-
const
|
|
1633
|
-
for (let $$
|
|
1634
|
-
let other =
|
|
1635
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1758
|
+
const each_array_4 = $29.ensure_array_like(hostEnvNames.filter((n) => n !== name));
|
|
1759
|
+
for (let $$index_3 = 0, $$length2 = each_array_4.length;$$index_3 < $$length2; $$index_3++) {
|
|
1760
|
+
let other = each_array_4[$$index_3];
|
|
1761
|
+
$$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", other)}/>`);
|
|
1636
1762
|
}
|
|
1637
|
-
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$
|
|
1763
|
+
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$29.escape(name)}</span> <span${$29.attr_class("var-status svelte-1n6ht58", undefined, { present: hostEnvPresence[name] })}${$29.attr("title", hostEnvPresence[name] ? "Set on this host \u2014 will be injected" : "Not set on this host \u2014 will be skipped")}>${$29.escape(hostEnvPresence[name] ? "set" : "missing")}</span> <button type="submit" class="var-remove svelte-1n6ht58"${$29.attr("disabled", savingHostEnvNames, true)}${$29.attr("aria-label", `Remove ${name}`)}>`);
|
|
1638
1764
|
X($$renderer2, { size: 13 });
|
|
1639
1765
|
$$renderer2.push(`<!----></button></form>`);
|
|
1640
1766
|
}
|
|
@@ -1643,12 +1769,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1643
1769
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1644
1770
|
}
|
|
1645
1771
|
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1646
|
-
const
|
|
1647
|
-
for (let $$
|
|
1648
|
-
let name =
|
|
1649
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1772
|
+
const each_array_5 = $29.ensure_array_like(hostEnvNames);
|
|
1773
|
+
for (let $$index_5 = 0, $$length = each_array_5.length;$$index_5 < $$length; $$index_5++) {
|
|
1774
|
+
let name = each_array_5[$$index_5];
|
|
1775
|
+
$$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", name)}/>`);
|
|
1650
1776
|
}
|
|
1651
|
-
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$
|
|
1777
|
+
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$29.attr("value", newHostEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> `);
|
|
1652
1778
|
Button($$renderer2, {
|
|
1653
1779
|
type: "submit",
|
|
1654
1780
|
icon: Plus,
|
|
@@ -1661,10 +1787,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1661
1787
|
$$renderer2.push(`<!----></form> `);
|
|
1662
1788
|
if (hostEnvNamesError) {
|
|
1663
1789
|
$$renderer2.push("<!--[0-->");
|
|
1664
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1790
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(hostEnvNamesError)}</div>`);
|
|
1665
1791
|
} else if (hostEnvNamesMsg) {
|
|
1666
1792
|
$$renderer2.push("<!--[1-->");
|
|
1667
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1793
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(hostEnvNamesMsg)}</div>`);
|
|
1668
1794
|
} else {
|
|
1669
1795
|
$$renderer2.push("<!--[-1-->");
|
|
1670
1796
|
}
|
|
@@ -1676,10 +1802,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1676
1802
|
Key_square($$renderer2, { size: 20 });
|
|
1677
1803
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Custom environment variables</div> <div class="desc svelte-1n6ht58">Inject your own <code class="svelte-1n6ht58">NAME=value</code> pairs into every new container as <code class="svelte-1n6ht58">containerEnv</code>, available to all processes. Values are secret \u2014 stored
|
|
1678
1804
|
locally, masked in the build log, and never shown here after saving. Re-add a name to
|
|
1679
|
-
update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1805
|
+
update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", customEnvEnabled, true)}${$29.attr("disabled", savingCustomEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1680
1806
|
if (customEnvToggleError) {
|
|
1681
1807
|
$$renderer2.push("<!--[0-->");
|
|
1682
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1808
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customEnvToggleError)}</div></div>`);
|
|
1683
1809
|
} else {
|
|
1684
1810
|
$$renderer2.push("<!--[-1-->");
|
|
1685
1811
|
}
|
|
@@ -1687,12 +1813,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1687
1813
|
if (customEnvEnabled) {
|
|
1688
1814
|
$$renderer2.push("<!--[0-->");
|
|
1689
1815
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1690
|
-
const
|
|
1691
|
-
if (
|
|
1816
|
+
const each_array_6 = $29.ensure_array_like(customEnvNames);
|
|
1817
|
+
if (each_array_6.length !== 0) {
|
|
1692
1818
|
$$renderer2.push("<!--[-->");
|
|
1693
|
-
for (let $$
|
|
1694
|
-
let name =
|
|
1695
|
-
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$
|
|
1819
|
+
for (let $$index_6 = 0, $$length = each_array_6.length;$$index_6 < $$length; $$index_6++) {
|
|
1820
|
+
let name = each_array_6[$$index_6];
|
|
1821
|
+
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$29.attr("value", name)}/> <span class="var-name svelte-1n6ht58">${$29.escape(name)}</span> <span class="var-status present svelte-1n6ht58" title="Set \u2014 injected into every new container">\u2022\u2022\u2022\u2022 saved</span> <button type="submit" class="var-remove svelte-1n6ht58"${$29.attr("disabled", savingCustomEnv, true)}${$29.attr("aria-label", `Remove ${name}`)}>`);
|
|
1696
1822
|
X($$renderer2, { size: 13 });
|
|
1697
1823
|
$$renderer2.push(`<!----></button></form>`);
|
|
1698
1824
|
}
|
|
@@ -1700,7 +1826,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1700
1826
|
$$renderer2.push("<!--[!-->");
|
|
1701
1827
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1702
1828
|
}
|
|
1703
|
-
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$
|
|
1829
|
+
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$29.attr("value", newCustomEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="MY_SECRET"/> <input type="password" name="value" class="image-input svelte-1n6ht58"${$29.attr("value", newCustomEnvValue)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="value"/> `);
|
|
1704
1830
|
Button($$renderer2, {
|
|
1705
1831
|
type: "submit",
|
|
1706
1832
|
icon: Plus,
|
|
@@ -1713,10 +1839,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1713
1839
|
$$renderer2.push(`<!----></form> `);
|
|
1714
1840
|
if (customEnvError) {
|
|
1715
1841
|
$$renderer2.push("<!--[0-->");
|
|
1716
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1842
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customEnvError)}</div>`);
|
|
1717
1843
|
} else if (customEnvMsg) {
|
|
1718
1844
|
$$renderer2.push("<!--[1-->");
|
|
1719
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1845
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customEnvMsg)}</div>`);
|
|
1720
1846
|
} else {
|
|
1721
1847
|
$$renderer2.push("<!--[-1-->");
|
|
1722
1848
|
}
|
|
@@ -1730,15 +1856,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1730
1856
|
ThemePicker($$renderer2, {});
|
|
1731
1857
|
$$renderer2.push(`<!----></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1732
1858
|
Volume_2($$renderer2, { size: 20 });
|
|
1733
|
-
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Attention sound</div> <div class="desc svelte-1n6ht58">Play a chime when an instance finishes a task or needs your input.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$
|
|
1859
|
+
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Attention sound</div> <div class="desc svelte-1n6ht58">Play a chime when an instance finishes a task or needs your input.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$29.attr("checked", sound, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1734
1860
|
Keyboard($$renderer2, { size: 20 });
|
|
1735
1861
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Tab keyboard shortcuts</div> <div class="desc svelte-1n6ht58">Jump between open instance tabs with <code class="svelte-1n6ht58">Alt</code>+<code class="svelte-1n6ht58">1</code>\u2013<code class="svelte-1n6ht58">9</code> (9 is
|
|
1736
|
-
always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$
|
|
1862
|
+
always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$29.attr("checked", tabShortcuts, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/petToggle"><div class="label svelte-1n6ht58">`);
|
|
1737
1863
|
Paw_print($$renderer2, { size: 18 });
|
|
1738
|
-
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Pet logo</div> <div class="desc svelte-1n6ht58">Swap the box in the header for a pixel pet.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1864
|
+
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Pet logo</div> <div class="desc svelte-1n6ht58">Swap the box in the header for a pixel pet.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", !!petArt, true)}${$29.attr("disabled", savingPet, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1739
1865
|
if (petError) {
|
|
1740
1866
|
$$renderer2.push("<!--[0-->");
|
|
1741
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1867
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(petError)}</div></div>`);
|
|
1742
1868
|
} else {
|
|
1743
1869
|
$$renderer2.push("<!--[-1-->");
|
|
1744
1870
|
}
|
|
@@ -1746,10 +1872,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1746
1872
|
if (petArt) {
|
|
1747
1873
|
$$renderer2.push("<!--[0-->");
|
|
1748
1874
|
$$renderer2.push(`<div class="sub pets svelte-1n6ht58"><!--[-->`);
|
|
1749
|
-
const
|
|
1750
|
-
for (let $$
|
|
1751
|
-
let art =
|
|
1752
|
-
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$
|
|
1875
|
+
const each_array_7 = $29.ensure_array_like(avatars);
|
|
1876
|
+
for (let $$index_7 = 0, $$length = each_array_7.length;$$index_7 < $$length; $$index_7++) {
|
|
1877
|
+
let art = each_array_7[$$index_7];
|
|
1878
|
+
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$29.attr("value", art.name)}/> <button type="submit"${$29.attr_class("pet svelte-1n6ht58", undefined, { selected: art.name === petArt.name })}${$29.attr("disabled", savingPet, true)}${$29.attr("title", art.name)}${$29.attr("aria-label", art.name)}${$29.attr("aria-pressed", art.name === petArt.name)}>`);
|
|
1753
1879
|
Avatar($$renderer2, { art, name: art.name, scale: 4 });
|
|
1754
1880
|
$$renderer2.push(`<!----></button></form>`);
|
|
1755
1881
|
}
|
|
@@ -1762,30 +1888,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1762
1888
|
$$renderer2.push(`<!----> <span class="name svelte-1n6ht58">Advanced</span> <span class="hint svelte-1n6ht58">escape hatches \u2014 defaults are right for almost everyone</span></summary> <form class="row divided svelte-1n6ht58" method="POST" action="?/serialInjectionsToggle"><div class="label svelte-1n6ht58">`);
|
|
1763
1889
|
List_ordered($$renderer2, { size: 20 });
|
|
1764
1890
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Serial boot injections</div> <div class="desc svelte-1n6ht58">Run boot injections one at a time instead of in parallel stages. Slower boot; useful
|
|
1765
|
-
when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1891
|
+
when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", serialInjections, true)}${$29.attr("disabled", savingSerial, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1766
1892
|
if (serialError) {
|
|
1767
1893
|
$$renderer2.push("<!--[0-->");
|
|
1768
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1894
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(serialError)}</div></div>`);
|
|
1769
1895
|
} else {
|
|
1770
1896
|
$$renderer2.push("<!--[-1-->");
|
|
1771
1897
|
}
|
|
1772
1898
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/noBuildkitToggle"><div class="label svelte-1n6ht58">`);
|
|
1773
1899
|
Boxes($$renderer2, { size: 20 });
|
|
1774
1900
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Don't force BuildKit</div> <div class="desc svelte-1n6ht58">Skip setting <code class="svelte-1n6ht58">DOCKER_BUILDKIT=1</code> for container builds and let the daemon's
|
|
1775
|
-
default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1901
|
+
default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", noBuildkit, true)}${$29.attr("disabled", savingBuildkit, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1776
1902
|
if (buildkitError) {
|
|
1777
1903
|
$$renderer2.push("<!--[0-->");
|
|
1778
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1904
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(buildkitError)}</div></div>`);
|
|
1779
1905
|
} else {
|
|
1780
1906
|
$$renderer2.push("<!--[-1-->");
|
|
1781
1907
|
}
|
|
1782
1908
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/blockingExtInstallToggle"><div class="label svelte-1n6ht58">`);
|
|
1783
1909
|
Puzzle($$renderer2, { size: 20 });
|
|
1784
1910
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Blocking IDE extension install</div> <div class="desc svelte-1n6ht58">Install the Claude Code IDE extension before code-server starts, so the first window
|
|
1785
|
-
always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1911
|
+
always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", blockingExtInstall, true)}${$29.attr("disabled", savingBlocking, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1786
1912
|
if (blockingError) {
|
|
1787
1913
|
$$renderer2.push("<!--[0-->");
|
|
1788
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1914
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(blockingError)}</div></div>`);
|
|
1789
1915
|
} else {
|
|
1790
1916
|
$$renderer2.push("<!--[-1-->");
|
|
1791
1917
|
}
|
|
@@ -1795,10 +1921,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1795
1921
|
again.</div> `);
|
|
1796
1922
|
if (verError) {
|
|
1797
1923
|
$$renderer2.push("<!--[0-->");
|
|
1798
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1924
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(verError)}</div>`);
|
|
1799
1925
|
} else if (verMsg) {
|
|
1800
1926
|
$$renderer2.push("<!--[1-->");
|
|
1801
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1927
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(verMsg)}</div>`);
|
|
1802
1928
|
} else {
|
|
1803
1929
|
$$renderer2.push("<!--[-1-->");
|
|
1804
1930
|
}
|
|
@@ -1808,7 +1934,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1808
1934
|
icon: Trash_2,
|
|
1809
1935
|
disabled: clearingVer,
|
|
1810
1936
|
children: ($$renderer3) => {
|
|
1811
|
-
$$renderer3.push(`<!---->${$
|
|
1937
|
+
$$renderer3.push(`<!---->${$29.escape(clearingVer ? "Clearing\u2026" : "Clear cache")}`);
|
|
1812
1938
|
},
|
|
1813
1939
|
$$slots: { default: true }
|
|
1814
1940
|
});
|
|
@@ -1832,7 +1958,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1832
1958
|
}
|
|
1833
1959
|
$$renderer2.push(`<!--]--></form></section> `);
|
|
1834
1960
|
CoinButton($$renderer2, {});
|
|
1835
|
-
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$
|
|
1961
|
+
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$29.escape(version)}</div></main></div> `);
|
|
1836
1962
|
Toaster($$renderer2, { toastOptions: TOAST_OPTIONS });
|
|
1837
1963
|
$$renderer2.push(`<!---->`);
|
|
1838
1964
|
});
|
|
@@ -1846,11 +1972,13 @@ function Settings($$renderer, $$props) {
|
|
|
1846
1972
|
defaultMode,
|
|
1847
1973
|
claudePermissionMode,
|
|
1848
1974
|
claudeEffortLevel,
|
|
1975
|
+
claudeOutputStyle,
|
|
1849
1976
|
defaultImage,
|
|
1850
1977
|
builtinImage,
|
|
1851
1978
|
disableBuildCache,
|
|
1852
1979
|
copyIgnorePatterns,
|
|
1853
1980
|
builtinCopyIgnore,
|
|
1981
|
+
claudeConfigDir,
|
|
1854
1982
|
gitIdentityEnabled,
|
|
1855
1983
|
gitIdentityName,
|
|
1856
1984
|
gitIdentityEmail,
|
|
@@ -1884,7 +2012,7 @@ function Settings($$renderer, $$props) {
|
|
|
1884
2012
|
} = $$props;
|
|
1885
2013
|
if (true) {
|
|
1886
2014
|
let failed = function($$renderer3, error) {
|
|
1887
|
-
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$
|
|
2015
|
+
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$30.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
1888
2016
|
};
|
|
1889
2017
|
$$renderer2.push("<!--[0-->");
|
|
1890
2018
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -1892,16 +2020,18 @@ function Settings($$renderer, $$props) {
|
|
|
1892
2020
|
{
|
|
1893
2021
|
HydratableBoundary($$renderer3, {
|
|
1894
2022
|
children: ($$renderer4) => {
|
|
1895
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$
|
|
2023
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$30.attr("props-ref", emitIslandProps({
|
|
1896
2024
|
pet,
|
|
1897
2025
|
defaultMode,
|
|
1898
2026
|
claudePermissionMode,
|
|
1899
2027
|
claudeEffortLevel,
|
|
2028
|
+
claudeOutputStyle,
|
|
1900
2029
|
defaultImage,
|
|
1901
2030
|
builtinImage,
|
|
1902
2031
|
disableBuildCache,
|
|
1903
2032
|
copyIgnorePatterns,
|
|
1904
2033
|
builtinCopyIgnore,
|
|
2034
|
+
claudeConfigDir,
|
|
1905
2035
|
gitIdentityEnabled,
|
|
1906
2036
|
gitIdentityName,
|
|
1907
2037
|
gitIdentityEmail,
|
|
@@ -1940,11 +2070,13 @@ function Settings($$renderer, $$props) {
|
|
|
1940
2070
|
defaultMode,
|
|
1941
2071
|
claudePermissionMode,
|
|
1942
2072
|
claudeEffortLevel,
|
|
2073
|
+
claudeOutputStyle,
|
|
1943
2074
|
defaultImage,
|
|
1944
2075
|
builtinImage,
|
|
1945
2076
|
disableBuildCache,
|
|
1946
2077
|
copyIgnorePatterns,
|
|
1947
2078
|
builtinCopyIgnore,
|
|
2079
|
+
claudeConfigDir,
|
|
1948
2080
|
gitIdentityEnabled,
|
|
1949
2081
|
gitIdentityName,
|
|
1950
2082
|
gitIdentityEmail,
|