codebay 0.13.0 → 0.15.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 +522 -443
- package/.mochi/svelte-client/HydratableIsland-smgsf0ma.js +1 -0
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-9vc087ep.js +2 -0
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-a48xq47a.js +14 -0
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-d4zehrqz.js +3 -0
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-t5175pf5.js +44 -0
- package/.mochi/svelte-client/chunk-0mstgbtr.js +2 -0
- package/.mochi/svelte-client/chunk-0q9g0kpg.js +1 -0
- package/.mochi/svelte-client/chunk-3fwjzw1r.js +1 -0
- package/.mochi/svelte-client/{chunk-spk1b2r4.js → chunk-5pg0be5f.js} +1 -1
- package/.mochi/svelte-client/{chunk-ccfh8hxz.js → chunk-a2hty99b.js} +1 -1
- package/.mochi/svelte-client/{chunk-0mc09cyb.js → chunk-ds9yn9cq.js} +1 -1
- package/.mochi/svelte-client/{chunk-phf7v5jj.js → chunk-fn03gxer.js} +1 -1
- package/.mochi/svelte-client/chunk-jhgq7f65.js +2 -0
- package/.mochi/svelte-client/chunk-p5a07kx1.js +1 -0
- package/.mochi/svelte-client/chunk-p5wpyhsf.js +2 -0
- package/.mochi/svelte-client/chunk-t2kfvtb6.js +2 -0
- package/.mochi/svelte-client/{chunk-x0m3k0rn.js → chunk-v3wg9mdy.js} +1 -1
- package/.mochi/svelte-compile/{App-94xsdn0w.server.js → App-68f9a9fq.server.js} +64 -59
- package/.mochi/svelte-compile/{Avatars-fnccw47h.server.js → Avatars-vyh3rwxx.server.js} +14 -29
- package/.mochi/svelte-compile/Instance-yfw7s5mp.server.js +627 -0
- package/.mochi/svelte-compile/{Settings-h7gsjyz3.server.js → Settings-0b5t9kw9.server.js} +348 -151
- package/.mochi/svelte-compile/{chunk-w0hca7va.js → chunk-0y3wrae9.js} +13 -1
- package/.mochi/svelte-compile/{chunk-ed46m58e.js → chunk-2qzc07gt.js} +13 -1
- package/.mochi/svelte-compile/chunk-ef3hvegw.js +21 -0
- package/.mochi/svelte-compile/chunk-f9td8ej2.js +24 -0
- package/.mochi/svelte-compile/{chunk-pqb403fh.js → chunk-g0eravvj.js} +5 -16
- package/.mochi/svelte-css/AgentLogBox-38adby5iygny7.css +1 -0
- package/.mochi/svelte-css/{InstanceCard-25z7nas7y98zk.css → InstanceCard-3vxozrp9uoads.css} +1 -1
- package/.mochi/svelte-css/{SettingsView-bccw34agd2bj.css → SettingsView-2400myxb9ot56.css} +1 -1
- package/README.md +32 -1
- package/migrations/0009_agent_runs.sql +24 -0
- package/migrations/0010_agent_run_model.sql +2 -0
- package/package.json +6 -2
- package/public/favicon.svg +9 -0
- package/src/components/AgentLogBox.svelte +458 -0
- package/src/components/AppShell.svelte +11 -0
- package/src/components/FolderBrowser.svelte +13 -5
- package/src/components/InstanceCard.svelte +38 -0
- package/src/components/InstanceView.svelte +8 -0
- package/src/components/SettingsView.svelte +260 -0
- package/src/components/UiShowcase.svelte +4 -2
- package/src/container-injections/claude-code-credentials.ts +2 -3
- package/src/container-injections/claude-code-skills.ts +125 -0
- package/src/container-injections/claude-output-style.ts +2 -3
- package/src/container-injections/claude-statusline.ts +9 -17
- package/src/container-injections/github-credentials.ts +12 -1
- package/src/index.ts +32 -7
- package/src/lib/agent-run-stream.ts +246 -0
- package/src/lib/agent-runs.server.ts +724 -0
- package/src/lib/auth.server.ts +11 -2
- package/src/lib/build-freshness.server.ts +71 -0
- package/src/lib/config.server.ts +29 -6
- package/src/lib/container-files.server.ts +23 -1
- package/src/lib/data-dir-lock.server.ts +78 -0
- package/src/lib/db.server.ts +120 -1
- package/src/lib/devcontainer.server.ts +60 -14
- package/src/lib/docker-client.server.ts +11 -5
- package/src/lib/drives.ts +11 -0
- package/src/lib/exec.server.ts +66 -5
- package/src/lib/host-claude.server.ts +31 -0
- package/src/lib/injections.server.ts +2 -0
- package/src/lib/instances.server.ts +45 -3
- package/src/lib/log-capture.server.ts +17 -5
- package/src/lib/mcp-auth.server.ts +52 -0
- package/src/lib/picker.server.ts +23 -2
- package/src/lib/sandbox-ops.server.ts +263 -0
- package/src/mcp/routes.server.ts +25 -0
- package/src/mcp/server.server.ts +52 -0
- package/src/mcp/tools.server.ts +494 -0
- package/src/pages/Settings.svelte +15 -0
- package/src/routes.ts +72 -1
- package/src/shell.html +1 -0
- package/src/types.ts +15 -0
- package/.mochi/svelte-client/HydratableIsland-zrdsrsmg.js +0 -1
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-v7y7dh53.js +0 -2
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-tmwd6fpb.js +0 -14
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-m7t64dbh.js +0 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-wedc9x9y.js +0 -39
- package/.mochi/svelte-client/chunk-5jwfs4p9.js +0 -2
- package/.mochi/svelte-client/chunk-6qg4q98a.js +0 -2
- package/.mochi/svelte-client/chunk-tmeh70wg.js +0 -2
- package/.mochi/svelte-client/chunk-vs1yjbqt.js +0 -2
- package/.mochi/svelte-client/chunk-y7f4jbdm.js +0 -2
- package/.mochi/svelte-compile/Instance-knnkcn2p.server.js +0 -377
|
@@ -2,23 +2,26 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Layout_template,
|
|
4
4
|
Plus,
|
|
5
|
-
Terminal,
|
|
6
5
|
playChime,
|
|
7
6
|
setSoundEnabled,
|
|
8
7
|
setTabShortcutsEnabled,
|
|
9
8
|
soundEnabled,
|
|
10
9
|
tabShortcutsEnabled,
|
|
11
10
|
unlockAudio
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-g0eravvj.js";
|
|
12
|
+
import {
|
|
13
|
+
Message_square
|
|
14
|
+
} from "./chunk-ef3hvegw.js";
|
|
13
15
|
import {
|
|
14
16
|
CLAUDE_EFFORT_LEVELS,
|
|
15
17
|
CLAUDE_OUTPUT_STYLES,
|
|
16
18
|
CLAUDE_PERMISSION_MODES,
|
|
19
|
+
Terminal,
|
|
17
20
|
apiPost,
|
|
18
21
|
applyTheme,
|
|
19
22
|
getTheme,
|
|
20
23
|
setTheme
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-0y3wrae9.js";
|
|
22
25
|
import {
|
|
23
26
|
Rotate_ccw
|
|
24
27
|
} from "./chunk-jx6h1xzp.js";
|
|
@@ -41,11 +44,11 @@ import"./chunk-xpt1a7jm.js";
|
|
|
41
44
|
|
|
42
45
|
// src/pages/Settings.svelte
|
|
43
46
|
import"svelte/internal/flags/async";
|
|
44
|
-
import * as $
|
|
47
|
+
import * as $30 from "svelte/internal/server";
|
|
45
48
|
|
|
46
49
|
// src/components/SettingsView.svelte
|
|
47
50
|
import"svelte/internal/flags/async";
|
|
48
|
-
import * as $
|
|
51
|
+
import * as $29 from "svelte/internal/server";
|
|
49
52
|
|
|
50
53
|
// node_modules/@lucide/svelte/dist/icons/container.svelte
|
|
51
54
|
import"svelte/internal/flags/async";
|
|
@@ -307,9 +310,33 @@ function Folder_minus($$renderer, $$props) {
|
|
|
307
310
|
];
|
|
308
311
|
Icon($$renderer, $12.spread_props([{ name: "folder-minus" }, props, { iconNode }]));
|
|
309
312
|
}
|
|
310
|
-
// node_modules/@lucide/svelte/dist/icons/
|
|
313
|
+
// node_modules/@lucide/svelte/dist/icons/folder-cog.svelte
|
|
311
314
|
import"svelte/internal/flags/async";
|
|
312
315
|
import * as $13 from "svelte/internal/server";
|
|
316
|
+
function Folder_cog($$renderer, $$props) {
|
|
317
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
318
|
+
const iconNode = [
|
|
319
|
+
[
|
|
320
|
+
"path",
|
|
321
|
+
{
|
|
322
|
+
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"
|
|
323
|
+
}
|
|
324
|
+
],
|
|
325
|
+
["path", { d: "m14.305 19.53.923-.382" }],
|
|
326
|
+
["path", { d: "m15.228 16.852-.923-.383" }],
|
|
327
|
+
["path", { d: "m16.852 15.228-.383-.923" }],
|
|
328
|
+
["path", { d: "m16.852 20.772-.383.924" }],
|
|
329
|
+
["path", { d: "m19.148 15.228.383-.923" }],
|
|
330
|
+
["path", { d: "m19.53 21.696-.382-.924" }],
|
|
331
|
+
["path", { d: "m20.772 16.852.924-.383" }],
|
|
332
|
+
["path", { d: "m20.772 19.148.924.383" }],
|
|
333
|
+
["circle", { cx: "18", cy: "18", r: "3" }]
|
|
334
|
+
];
|
|
335
|
+
Icon($$renderer, $13.spread_props([{ name: "folder-cog" }, props, { iconNode }]));
|
|
336
|
+
}
|
|
337
|
+
// node_modules/@lucide/svelte/dist/icons/trash-2.svelte
|
|
338
|
+
import"svelte/internal/flags/async";
|
|
339
|
+
import * as $14 from "svelte/internal/server";
|
|
313
340
|
function Trash_2($$renderer, $$props) {
|
|
314
341
|
let { $$slots, $$events, ...props } = $$props;
|
|
315
342
|
const iconNode = [
|
|
@@ -319,11 +346,11 @@ function Trash_2($$renderer, $$props) {
|
|
|
319
346
|
["path", { d: "M3 6h18" }],
|
|
320
347
|
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
|
|
321
348
|
];
|
|
322
|
-
Icon($$renderer, $
|
|
349
|
+
Icon($$renderer, $14.spread_props([{ name: "trash-2" }, props, { iconNode }]));
|
|
323
350
|
}
|
|
324
351
|
// node_modules/@lucide/svelte/dist/icons/hammer.svelte
|
|
325
352
|
import"svelte/internal/flags/async";
|
|
326
|
-
import * as $
|
|
353
|
+
import * as $15 from "svelte/internal/server";
|
|
327
354
|
function Hammer($$renderer, $$props) {
|
|
328
355
|
let { $$slots, $$events, ...props } = $$props;
|
|
329
356
|
const iconNode = [
|
|
@@ -336,11 +363,11 @@ function Hammer($$renderer, $$props) {
|
|
|
336
363
|
}
|
|
337
364
|
]
|
|
338
365
|
];
|
|
339
|
-
Icon($$renderer, $
|
|
366
|
+
Icon($$renderer, $15.spread_props([{ name: "hammer" }, props, { iconNode }]));
|
|
340
367
|
}
|
|
341
368
|
// node_modules/@lucide/svelte/dist/icons/key-round.svelte
|
|
342
369
|
import"svelte/internal/flags/async";
|
|
343
|
-
import * as $
|
|
370
|
+
import * as $16 from "svelte/internal/server";
|
|
344
371
|
function Key_round($$renderer, $$props) {
|
|
345
372
|
let { $$slots, $$events, ...props } = $$props;
|
|
346
373
|
const iconNode = [
|
|
@@ -355,11 +382,11 @@ function Key_round($$renderer, $$props) {
|
|
|
355
382
|
{ cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" }
|
|
356
383
|
]
|
|
357
384
|
];
|
|
358
|
-
Icon($$renderer, $
|
|
385
|
+
Icon($$renderer, $16.spread_props([{ name: "key-round" }, props, { iconNode }]));
|
|
359
386
|
}
|
|
360
387
|
// node_modules/@lucide/svelte/dist/icons/user-cog.svelte
|
|
361
388
|
import"svelte/internal/flags/async";
|
|
362
|
-
import * as $
|
|
389
|
+
import * as $17 from "svelte/internal/server";
|
|
363
390
|
function User_cog($$renderer, $$props) {
|
|
364
391
|
let { $$slots, $$events, ...props } = $$props;
|
|
365
392
|
const iconNode = [
|
|
@@ -375,11 +402,11 @@ function User_cog($$renderer, $$props) {
|
|
|
375
402
|
["circle", { cx: "18", cy: "15", r: "3" }],
|
|
376
403
|
["circle", { cx: "9", cy: "7", r: "4" }]
|
|
377
404
|
];
|
|
378
|
-
Icon($$renderer, $
|
|
405
|
+
Icon($$renderer, $17.spread_props([{ name: "user-cog" }, props, { iconNode }]));
|
|
379
406
|
}
|
|
380
407
|
// node_modules/@lucide/svelte/dist/icons/cpu.svelte
|
|
381
408
|
import"svelte/internal/flags/async";
|
|
382
|
-
import * as $
|
|
409
|
+
import * as $18 from "svelte/internal/server";
|
|
383
410
|
function Cpu($$renderer, $$props) {
|
|
384
411
|
let { $$slots, $$events, ...props } = $$props;
|
|
385
412
|
const iconNode = [
|
|
@@ -401,11 +428,11 @@ function Cpu($$renderer, $$props) {
|
|
|
401
428
|
],
|
|
402
429
|
["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1" }]
|
|
403
430
|
];
|
|
404
|
-
Icon($$renderer, $
|
|
431
|
+
Icon($$renderer, $18.spread_props([{ name: "cpu" }, props, { iconNode }]));
|
|
405
432
|
}
|
|
406
433
|
// node_modules/@lucide/svelte/dist/icons/variable.svelte
|
|
407
434
|
import"svelte/internal/flags/async";
|
|
408
|
-
import * as $
|
|
435
|
+
import * as $19 from "svelte/internal/server";
|
|
409
436
|
function Variable($$renderer, $$props) {
|
|
410
437
|
let { $$slots, $$events, ...props } = $$props;
|
|
411
438
|
const iconNode = [
|
|
@@ -414,11 +441,11 @@ function Variable($$renderer, $$props) {
|
|
|
414
441
|
["line", { x1: "15", x2: "9", y1: "9", y2: "15" }],
|
|
415
442
|
["line", { x1: "9", x2: "15", y1: "9", y2: "15" }]
|
|
416
443
|
];
|
|
417
|
-
Icon($$renderer, $
|
|
444
|
+
Icon($$renderer, $19.spread_props([{ name: "variable" }, props, { iconNode }]));
|
|
418
445
|
}
|
|
419
446
|
// node_modules/@lucide/svelte/dist/icons/key-square.svelte
|
|
420
447
|
import"svelte/internal/flags/async";
|
|
421
|
-
import * as $
|
|
448
|
+
import * as $20 from "svelte/internal/server";
|
|
422
449
|
function Key_square($$renderer, $$props) {
|
|
423
450
|
let { $$slots, $$events, ...props } = $$props;
|
|
424
451
|
const iconNode = [
|
|
@@ -436,11 +463,11 @@ function Key_square($$renderer, $$props) {
|
|
|
436
463
|
}
|
|
437
464
|
]
|
|
438
465
|
];
|
|
439
|
-
Icon($$renderer, $
|
|
466
|
+
Icon($$renderer, $20.spread_props([{ name: "key-square" }, props, { iconNode }]));
|
|
440
467
|
}
|
|
441
468
|
// node_modules/@lucide/svelte/dist/icons/sliders-horizontal.svelte
|
|
442
469
|
import"svelte/internal/flags/async";
|
|
443
|
-
import * as $
|
|
470
|
+
import * as $21 from "svelte/internal/server";
|
|
444
471
|
function Sliders_horizontal($$renderer, $$props) {
|
|
445
472
|
let { $$slots, $$events, ...props } = $$props;
|
|
446
473
|
const iconNode = [
|
|
@@ -454,11 +481,11 @@ function Sliders_horizontal($$renderer, $$props) {
|
|
|
454
481
|
["path", { d: "M8 10v4" }],
|
|
455
482
|
["path", { d: "M8 12H3" }]
|
|
456
483
|
];
|
|
457
|
-
Icon($$renderer, $
|
|
484
|
+
Icon($$renderer, $21.spread_props([{ name: "sliders-horizontal" }, props, { iconNode }]));
|
|
458
485
|
}
|
|
459
486
|
// node_modules/@lucide/svelte/dist/icons/list-ordered.svelte
|
|
460
487
|
import"svelte/internal/flags/async";
|
|
461
|
-
import * as $
|
|
488
|
+
import * as $22 from "svelte/internal/server";
|
|
462
489
|
function List_ordered($$renderer, $$props) {
|
|
463
490
|
let { $$slots, $$events, ...props } = $$props;
|
|
464
491
|
const iconNode = [
|
|
@@ -474,11 +501,11 @@ function List_ordered($$renderer, $$props) {
|
|
|
474
501
|
}
|
|
475
502
|
]
|
|
476
503
|
];
|
|
477
|
-
Icon($$renderer, $
|
|
504
|
+
Icon($$renderer, $22.spread_props([{ name: "list-ordered" }, props, { iconNode }]));
|
|
478
505
|
}
|
|
479
506
|
// node_modules/@lucide/svelte/dist/icons/boxes.svelte
|
|
480
507
|
import"svelte/internal/flags/async";
|
|
481
|
-
import * as $
|
|
508
|
+
import * as $23 from "svelte/internal/server";
|
|
482
509
|
function Boxes($$renderer, $$props) {
|
|
483
510
|
let { $$slots, $$events, ...props } = $$props;
|
|
484
511
|
const iconNode = [
|
|
@@ -510,11 +537,11 @@ function Boxes($$renderer, $$props) {
|
|
|
510
537
|
["path", { d: "m12 8 4.74-2.85" }],
|
|
511
538
|
["path", { d: "M12 13.5V8" }]
|
|
512
539
|
];
|
|
513
|
-
Icon($$renderer, $
|
|
540
|
+
Icon($$renderer, $23.spread_props([{ name: "boxes" }, props, { iconNode }]));
|
|
514
541
|
}
|
|
515
542
|
// node_modules/@lucide/svelte/dist/icons/puzzle.svelte
|
|
516
543
|
import"svelte/internal/flags/async";
|
|
517
|
-
import * as $
|
|
544
|
+
import * as $24 from "svelte/internal/server";
|
|
518
545
|
function Puzzle($$renderer, $$props) {
|
|
519
546
|
let { $$slots, $$events, ...props } = $$props;
|
|
520
547
|
const iconNode = [
|
|
@@ -525,14 +552,32 @@ function Puzzle($$renderer, $$props) {
|
|
|
525
552
|
}
|
|
526
553
|
]
|
|
527
554
|
];
|
|
528
|
-
Icon($$renderer, $
|
|
555
|
+
Icon($$renderer, $24.spread_props([{ name: "puzzle" }, props, { iconNode }]));
|
|
556
|
+
}
|
|
557
|
+
// node_modules/@lucide/svelte/dist/icons/plug.svelte
|
|
558
|
+
import"svelte/internal/flags/async";
|
|
559
|
+
import * as $25 from "svelte/internal/server";
|
|
560
|
+
function Plug($$renderer, $$props) {
|
|
561
|
+
let { $$slots, $$events, ...props } = $$props;
|
|
562
|
+
const iconNode = [
|
|
563
|
+
["path", { d: "M12 22v-5" }],
|
|
564
|
+
["path", { d: "M15 8V2" }],
|
|
565
|
+
[
|
|
566
|
+
"path",
|
|
567
|
+
{
|
|
568
|
+
d: "M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z"
|
|
569
|
+
}
|
|
570
|
+
],
|
|
571
|
+
["path", { d: "M9 8V2" }]
|
|
572
|
+
];
|
|
573
|
+
Icon($$renderer, $25.spread_props([{ name: "plug" }, props, { iconNode }]));
|
|
529
574
|
}
|
|
530
575
|
// src/components/SettingsView.svelte
|
|
531
576
|
import { flushSync } from "svelte";
|
|
532
577
|
|
|
533
578
|
// src/components/CoinButton.svelte
|
|
534
579
|
import"svelte/internal/flags/async";
|
|
535
|
-
import * as $
|
|
580
|
+
import * as $26 from "svelte/internal/server";
|
|
536
581
|
function CoinButton($$renderer, $$props) {
|
|
537
582
|
let { href = "/avatars" } = $$props;
|
|
538
583
|
const coinArt = {
|
|
@@ -548,14 +593,14 @@ function CoinButton($$renderer, $$props) {
|
|
|
548
593
|
"..####.."
|
|
549
594
|
]
|
|
550
595
|
};
|
|
551
|
-
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$
|
|
596
|
+
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$26.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">`);
|
|
552
597
|
Avatar($$renderer, { art: coinArt, name: "coin", scale: 3 });
|
|
553
598
|
$$renderer.push(`<!----></span></a> <span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span></div>`);
|
|
554
599
|
}
|
|
555
600
|
|
|
556
601
|
// node_modules/@lucide/svelte/dist/icons/shield-check.svelte
|
|
557
602
|
import"svelte/internal/flags/async";
|
|
558
|
-
import * as $
|
|
603
|
+
import * as $27 from "svelte/internal/server";
|
|
559
604
|
function Shield_check($$renderer, $$props) {
|
|
560
605
|
let { $$slots, $$events, ...props } = $$props;
|
|
561
606
|
const iconNode = [
|
|
@@ -567,33 +612,18 @@ function Shield_check($$renderer, $$props) {
|
|
|
567
612
|
],
|
|
568
613
|
["path", { d: "m9 12 2 2 4-4" }]
|
|
569
614
|
];
|
|
570
|
-
Icon($$renderer, $
|
|
615
|
+
Icon($$renderer, $27.spread_props([{ name: "shield-check" }, props, { iconNode }]));
|
|
571
616
|
}
|
|
572
617
|
// node_modules/@lucide/svelte/dist/icons/gauge.svelte
|
|
573
618
|
import"svelte/internal/flags/async";
|
|
574
|
-
import * as $
|
|
619
|
+
import * as $28 from "svelte/internal/server";
|
|
575
620
|
function Gauge($$renderer, $$props) {
|
|
576
621
|
let { $$slots, $$events, ...props } = $$props;
|
|
577
622
|
const iconNode = [
|
|
578
623
|
["path", { d: "m12 14 4-4" }],
|
|
579
624
|
["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]
|
|
580
625
|
];
|
|
581
|
-
Icon($$renderer, $
|
|
582
|
-
}
|
|
583
|
-
// node_modules/@lucide/svelte/dist/icons/message-square.svelte
|
|
584
|
-
import"svelte/internal/flags/async";
|
|
585
|
-
import * as $27 from "svelte/internal/server";
|
|
586
|
-
function Message_square($$renderer, $$props) {
|
|
587
|
-
let { $$slots, $$events, ...props } = $$props;
|
|
588
|
-
const iconNode = [
|
|
589
|
-
[
|
|
590
|
-
"path",
|
|
591
|
-
{
|
|
592
|
-
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"
|
|
593
|
-
}
|
|
594
|
-
]
|
|
595
|
-
];
|
|
596
|
-
Icon($$renderer, $27.spread_props([{ name: "message-square" }, props, { iconNode }]));
|
|
626
|
+
Icon($$renderer, $28.spread_props([{ name: "gauge" }, props, { iconNode }]));
|
|
597
627
|
}
|
|
598
628
|
// src/components/SettingsView.svelte
|
|
599
629
|
function SettingsView($$renderer, $$props) {
|
|
@@ -609,6 +639,11 @@ function SettingsView($$renderer, $$props) {
|
|
|
609
639
|
disableBuildCache,
|
|
610
640
|
copyIgnorePatterns,
|
|
611
641
|
builtinCopyIgnore,
|
|
642
|
+
claudeConfigDir,
|
|
643
|
+
mcpEnabled,
|
|
644
|
+
mcpToken,
|
|
645
|
+
mcpUrl,
|
|
646
|
+
mcpPrAttribution,
|
|
612
647
|
gitIdentityEnabled,
|
|
613
648
|
gitIdentityName,
|
|
614
649
|
gitIdentityEmail,
|
|
@@ -811,6 +846,61 @@ function SettingsView($$renderer, $$props) {
|
|
|
811
846
|
flushSync(() => copyIgnore = builtinCopyIgnore);
|
|
812
847
|
copyIgnoreFormEl?.requestSubmit();
|
|
813
848
|
}
|
|
849
|
+
let claudeDir = claudeConfigDir;
|
|
850
|
+
let savingClaudeDir = false;
|
|
851
|
+
let claudeDirError = null;
|
|
852
|
+
let claudeDirSaved = false;
|
|
853
|
+
let claudeDirFormEl;
|
|
854
|
+
const claudeDirOpts = saveOpts({
|
|
855
|
+
setSaving: (v) => savingClaudeDir = v,
|
|
856
|
+
setError: (v) => claudeDirError = v,
|
|
857
|
+
setMsg: (v) => claudeDirSaved = !!v,
|
|
858
|
+
onSuccess: (data) => {
|
|
859
|
+
claudeDir = data?.dir ?? claudeDir;
|
|
860
|
+
claudeDirSaved = true;
|
|
861
|
+
}
|
|
862
|
+
});
|
|
863
|
+
function resetClaudeDir() {
|
|
864
|
+
flushSync(() => claudeDir = "");
|
|
865
|
+
claudeDirFormEl?.requestSubmit();
|
|
866
|
+
}
|
|
867
|
+
let mcp = mcpEnabled;
|
|
868
|
+
let mcpTokenValue = mcpToken;
|
|
869
|
+
let savingMcpToggle = false;
|
|
870
|
+
let mcpToggleError = null;
|
|
871
|
+
let savingMcpToken = false;
|
|
872
|
+
let mcpTokenError = null;
|
|
873
|
+
let mcpCopied = null;
|
|
874
|
+
const mcpToggleOpts = toggleOpts({
|
|
875
|
+
set: (v) => mcp = v,
|
|
876
|
+
setSaving: (v) => savingMcpToggle = v,
|
|
877
|
+
setError: (v) => mcpToggleError = v,
|
|
878
|
+
onSuccess: (data) => mcpTokenValue = data?.token ?? ""
|
|
879
|
+
});
|
|
880
|
+
const mcpTokenOpts = saveOpts({
|
|
881
|
+
setSaving: (v) => savingMcpToken = v,
|
|
882
|
+
setError: (v) => mcpTokenError = v,
|
|
883
|
+
onSuccess: (data) => mcpTokenValue = data?.token ?? "",
|
|
884
|
+
confirmMessage: "Regenerate the MCP token? Any agent already configured with the current token will stop working."
|
|
885
|
+
});
|
|
886
|
+
let mcpAttribution = mcpPrAttribution;
|
|
887
|
+
let savingMcpAttribution = false;
|
|
888
|
+
let mcpAttributionError = null;
|
|
889
|
+
const mcpAttributionOpts = toggleOpts({
|
|
890
|
+
set: (v) => mcpAttribution = v,
|
|
891
|
+
setSaving: (v) => savingMcpAttribution = v,
|
|
892
|
+
setError: (v) => mcpAttributionError = v
|
|
893
|
+
});
|
|
894
|
+
const mcpCommand = $29.derived(() => `claude mcp add --transport http codebay ${mcpUrl} --header "Authorization: Bearer ${mcpTokenValue}"`);
|
|
895
|
+
async function copyMcp(label, text) {
|
|
896
|
+
try {
|
|
897
|
+
await navigator.clipboard.writeText(text);
|
|
898
|
+
mcpCopied = label;
|
|
899
|
+
setTimeout(() => mcpCopied = null, 1500);
|
|
900
|
+
} catch {
|
|
901
|
+
mcpTokenError = "Could not copy \u2014 select the text and copy it manually.";
|
|
902
|
+
}
|
|
903
|
+
}
|
|
814
904
|
let gitIdentity = gitIdentityEnabled;
|
|
815
905
|
let savingGitToggle = false;
|
|
816
906
|
let gitToggleError = null;
|
|
@@ -1029,7 +1119,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1029
1119
|
manualModelsMsg = "Saved.";
|
|
1030
1120
|
}
|
|
1031
1121
|
});
|
|
1032
|
-
let litellmBlocker = $
|
|
1122
|
+
let litellmBlocker = $29.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
|
|
1033
1123
|
let hostEnvVars = hostEnvVarsEnabled;
|
|
1034
1124
|
let savingHostEnvToggle = false;
|
|
1035
1125
|
let hostEnvToggleError = null;
|
|
@@ -1205,30 +1295,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1205
1295
|
$$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">`);
|
|
1206
1296
|
Terminal($$renderer2, { size: 20 });
|
|
1207
1297
|
$$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
|
|
1208
|
-
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$
|
|
1298
|
+
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)}>`);
|
|
1209
1299
|
Layout_template($$renderer2, { size: 15 });
|
|
1210
|
-
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$
|
|
1300
|
+
$$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)}>`);
|
|
1211
1301
|
Terminal($$renderer2, { size: 15 });
|
|
1212
1302
|
$$renderer2.push(`<!----> Terminal</button></div></form> `);
|
|
1213
1303
|
if (modeError) {
|
|
1214
1304
|
$$renderer2.push("<!--[0-->");
|
|
1215
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1305
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(modeError)}</div></div>`);
|
|
1216
1306
|
} else {
|
|
1217
1307
|
$$renderer2.push("<!--[-1-->");
|
|
1218
1308
|
}
|
|
1219
1309
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudePermissionMode"><div class="label svelte-1n6ht58">`);
|
|
1220
1310
|
Shield_check($$renderer2, { size: 20 });
|
|
1221
1311
|
$$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
|
|
1222
|
-
create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$
|
|
1223
|
-
const each_array = $
|
|
1312
|
+
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"><!--[-->`);
|
|
1313
|
+
const each_array = $29.ensure_array_like(CLAUDE_PERMISSION_MODES);
|
|
1224
1314
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
1225
1315
|
let option = each_array[$$index];
|
|
1226
|
-
$$renderer2.push(`<button type="button"${$
|
|
1316
|
+
$$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>`);
|
|
1227
1317
|
}
|
|
1228
1318
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1229
1319
|
if (permissionError) {
|
|
1230
1320
|
$$renderer2.push("<!--[0-->");
|
|
1231
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1321
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(permissionError)}</div></div>`);
|
|
1232
1322
|
} else {
|
|
1233
1323
|
$$renderer2.push("<!--[-1-->");
|
|
1234
1324
|
}
|
|
@@ -1236,31 +1326,31 @@ function SettingsView($$renderer, $$props) {
|
|
|
1236
1326
|
Gauge($$renderer2, { size: 20 });
|
|
1237
1327
|
$$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,
|
|
1238
1328
|
written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. Applies on create and rebuild, not to
|
|
1239
|
-
already-running instances.</div></div></div> <input type="hidden" name="level"${$
|
|
1240
|
-
const each_array_1 = $
|
|
1329
|
+
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"><!--[-->`);
|
|
1330
|
+
const each_array_1 = $29.ensure_array_like(CLAUDE_EFFORT_LEVELS);
|
|
1241
1331
|
for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
|
|
1242
1332
|
let option = each_array_1[$$index_1];
|
|
1243
|
-
$$renderer2.push(`<button type="button"${$
|
|
1333
|
+
$$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>`);
|
|
1244
1334
|
}
|
|
1245
1335
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1246
1336
|
if (effortError) {
|
|
1247
1337
|
$$renderer2.push("<!--[0-->");
|
|
1248
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1338
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(effortError)}</div></div>`);
|
|
1249
1339
|
} else {
|
|
1250
1340
|
$$renderer2.push("<!--[-1-->");
|
|
1251
1341
|
}
|
|
1252
1342
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudeOutputStyle"><div class="label svelte-1n6ht58">`);
|
|
1253
1343
|
Message_square($$renderer2, { size: 20 });
|
|
1254
|
-
$$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"${$
|
|
1255
|
-
const each_array_2 = $
|
|
1344
|
+
$$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"><!--[-->`);
|
|
1345
|
+
const each_array_2 = $29.ensure_array_like(CLAUDE_OUTPUT_STYLES);
|
|
1256
1346
|
for (let $$index_2 = 0, $$length = each_array_2.length;$$index_2 < $$length; $$index_2++) {
|
|
1257
1347
|
let option = each_array_2[$$index_2];
|
|
1258
|
-
$$renderer2.push(`<button type="button"${$
|
|
1348
|
+
$$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>`);
|
|
1259
1349
|
}
|
|
1260
1350
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1261
1351
|
if (outputStyleError) {
|
|
1262
1352
|
$$renderer2.push("<!--[0-->");
|
|
1263
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1353
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(outputStyleError)}</div></div>`);
|
|
1264
1354
|
} else {
|
|
1265
1355
|
$$renderer2.push("<!--[-1-->");
|
|
1266
1356
|
}
|
|
@@ -1269,12 +1359,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1269
1359
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image `);
|
|
1270
1360
|
if (dockerArch) {
|
|
1271
1361
|
$$renderer2.push("<!--[0-->");
|
|
1272
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$
|
|
1362
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$29.escape(dockerArch)}</span>`);
|
|
1273
1363
|
} else {
|
|
1274
1364
|
$$renderer2.push("<!--[-1-->");
|
|
1275
1365
|
}
|
|
1276
1366
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
|
|
1277
|
-
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$
|
|
1367
|
+
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"/> `);
|
|
1278
1368
|
Button($$renderer2, {
|
|
1279
1369
|
type: "submit",
|
|
1280
1370
|
disabled: savingImage,
|
|
@@ -1289,14 +1379,14 @@ function SettingsView($$renderer, $$props) {
|
|
|
1289
1379
|
icon: Rotate_ccw,
|
|
1290
1380
|
disabled: savingImage,
|
|
1291
1381
|
onclick: resetImage,
|
|
1292
|
-
title: `Reset to default (${$
|
|
1382
|
+
title: `Reset to default (${$29.stringify(builtinImage)})`,
|
|
1293
1383
|
"aria-label": "Reset to default image"
|
|
1294
1384
|
});
|
|
1295
1385
|
$$renderer2.push(`<!----></div> <div class="desc tip svelte-1n6ht58">`);
|
|
1296
1386
|
if (dockerArch) {
|
|
1297
1387
|
$$renderer2.push("<!--[0-->");
|
|
1298
|
-
$$renderer2.push(`Your Docker daemon runs on <strong>${$
|
|
1299
|
-
an <strong>${$
|
|
1388
|
+
$$renderer2.push(`Your Docker daemon runs on <strong>${$29.escape(dockerArch)}</strong> \u2014 pick an image that publishes
|
|
1389
|
+
an <strong>${$29.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
|
|
1300
1390
|
} else {
|
|
1301
1391
|
$$renderer2.push("<!--[-1-->");
|
|
1302
1392
|
$$renderer2.push(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
|
|
@@ -1305,7 +1395,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1305
1395
|
$$renderer2.push(`<!--]--></div> `);
|
|
1306
1396
|
if (imageError) {
|
|
1307
1397
|
$$renderer2.push("<!--[0-->");
|
|
1308
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1398
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(imageError)}</div>`);
|
|
1309
1399
|
} else if (imageSaved) {
|
|
1310
1400
|
$$renderer2.push("<!--[1-->");
|
|
1311
1401
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1316,7 +1406,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1316
1406
|
Folder_minus($$renderer2, { size: 20 });
|
|
1317
1407
|
$$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
|
|
1318
1408
|
new instance's workspace. Leave blank to copy everything. Only applies to local
|
|
1319
|
-
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"${$
|
|
1409
|
+
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"/> `);
|
|
1320
1410
|
Button($$renderer2, {
|
|
1321
1411
|
type: "submit",
|
|
1322
1412
|
disabled: savingCopyIgnore,
|
|
@@ -1331,27 +1421,119 @@ function SettingsView($$renderer, $$props) {
|
|
|
1331
1421
|
icon: Rotate_ccw,
|
|
1332
1422
|
disabled: savingCopyIgnore,
|
|
1333
1423
|
onclick: resetCopyIgnore,
|
|
1334
|
-
title: `Reset to default (${$
|
|
1424
|
+
title: `Reset to default (${$29.stringify(builtinCopyIgnore)})`,
|
|
1335
1425
|
"aria-label": "Reset to default copy-ignore patterns"
|
|
1336
1426
|
});
|
|
1337
1427
|
$$renderer2.push(`<!----></div> `);
|
|
1338
1428
|
if (copyIgnoreError) {
|
|
1339
1429
|
$$renderer2.push("<!--[0-->");
|
|
1340
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1430
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(copyIgnoreError)}</div>`);
|
|
1341
1431
|
} else if (copyIgnoreSaved) {
|
|
1342
1432
|
$$renderer2.push("<!--[1-->");
|
|
1343
1433
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
1344
1434
|
} else {
|
|
1345
1435
|
$$renderer2.push("<!--[-1-->");
|
|
1346
1436
|
}
|
|
1347
|
-
$$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/
|
|
1437
|
+
$$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">`);
|
|
1438
|
+
Folder_cog($$renderer2, { size: 20 });
|
|
1439
|
+
$$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
|
|
1440
|
+
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"/> `);
|
|
1441
|
+
Button($$renderer2, {
|
|
1442
|
+
type: "submit",
|
|
1443
|
+
disabled: savingClaudeDir,
|
|
1444
|
+
children: ($$renderer3) => {
|
|
1445
|
+
$$renderer3.push(`<!---->Save`);
|
|
1446
|
+
},
|
|
1447
|
+
$$slots: { default: true }
|
|
1448
|
+
});
|
|
1449
|
+
$$renderer2.push(`<!----> `);
|
|
1450
|
+
Button($$renderer2, {
|
|
1451
|
+
type: "button",
|
|
1452
|
+
icon: Rotate_ccw,
|
|
1453
|
+
disabled: savingClaudeDir,
|
|
1454
|
+
onclick: resetClaudeDir,
|
|
1455
|
+
title: "Reset to default (~/.claude)",
|
|
1456
|
+
"aria-label": "Reset to default Claude config directory"
|
|
1457
|
+
});
|
|
1458
|
+
$$renderer2.push(`<!----></div> `);
|
|
1459
|
+
if (claudeDirError) {
|
|
1460
|
+
$$renderer2.push("<!--[0-->");
|
|
1461
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeDirError)}</div>`);
|
|
1462
|
+
} else if (claudeDirSaved) {
|
|
1463
|
+
$$renderer2.push("<!--[1-->");
|
|
1464
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
1465
|
+
} else {
|
|
1466
|
+
$$renderer2.push("<!--[-1-->");
|
|
1467
|
+
}
|
|
1468
|
+
$$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/mcpToggle"><div class="label svelte-1n6ht58">`);
|
|
1469
|
+
Plug($$renderer2, { size: 20 });
|
|
1470
|
+
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">MCP server</div> <div class="desc svelte-1n6ht58">Expose Codebay to other AI agents over MCP, so they can create sandboxes, run Claude
|
|
1471
|
+
Code in them non-interactively and read back the result. Off by default; the endpoint
|
|
1472
|
+
404s until you turn it on, then authenticates with the bearer token below.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", mcp, true)}${$29.attr("disabled", savingMcpToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1473
|
+
if (mcpToggleError) {
|
|
1474
|
+
$$renderer2.push("<!--[0-->");
|
|
1475
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(mcpToggleError)}</div></div>`);
|
|
1476
|
+
} else {
|
|
1477
|
+
$$renderer2.push("<!--[-1-->");
|
|
1478
|
+
}
|
|
1479
|
+
$$renderer2.push(`<!--]--> `);
|
|
1480
|
+
if (mcp) {
|
|
1481
|
+
$$renderer2.push("<!--[0-->");
|
|
1482
|
+
$$renderer2.push(`<div class="row divided svelte-1n6ht58"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Token</div> <div class="desc svelte-1n6ht58">Anything holding this token can create containers and run agents with your GitHub
|
|
1483
|
+
and Claude credentials. Treat it like a password.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Bearer</span> <input type="text" class="image-input svelte-1n6ht58"${$29.attr("value", mcpTokenValue)} readonly="" spellcheck="false"/></label> <div class="mcp-actions svelte-1n6ht58">`);
|
|
1484
|
+
Button($$renderer2, {
|
|
1485
|
+
type: "button",
|
|
1486
|
+
onclick: () => copyMcp("token", mcpTokenValue),
|
|
1487
|
+
children: ($$renderer3) => {
|
|
1488
|
+
$$renderer3.push(`<!---->${$29.escape(mcpCopied === "token" ? "Copied" : "Copy token")}`);
|
|
1489
|
+
},
|
|
1490
|
+
$$slots: { default: true }
|
|
1491
|
+
});
|
|
1492
|
+
$$renderer2.push(`<!----> `);
|
|
1493
|
+
Button($$renderer2, {
|
|
1494
|
+
type: "button",
|
|
1495
|
+
onclick: () => copyMcp("command", mcpCommand()),
|
|
1496
|
+
children: ($$renderer3) => {
|
|
1497
|
+
$$renderer3.push(`<!---->${$29.escape(mcpCopied === "command" ? "Copied" : "Copy claude mcp add")}`);
|
|
1498
|
+
},
|
|
1499
|
+
$$slots: { default: true }
|
|
1500
|
+
});
|
|
1501
|
+
$$renderer2.push(`<!----> <form method="POST" action="?/mcpRegenerateToken">`);
|
|
1502
|
+
Button($$renderer2, {
|
|
1503
|
+
type: "submit",
|
|
1504
|
+
disabled: savingMcpToken,
|
|
1505
|
+
children: ($$renderer3) => {
|
|
1506
|
+
$$renderer3.push(`<!---->${$29.escape(savingMcpToken ? "Regenerating\u2026" : "Regenerate")}`);
|
|
1507
|
+
},
|
|
1508
|
+
$$slots: { default: true }
|
|
1509
|
+
});
|
|
1510
|
+
$$renderer2.push(`<!----></form></div> <code class="mcp-command svelte-1n6ht58">${$29.escape(mcpCommand())}</code> `);
|
|
1511
|
+
if (mcpTokenError) {
|
|
1512
|
+
$$renderer2.push("<!--[0-->");
|
|
1513
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(mcpTokenError)}</div>`);
|
|
1514
|
+
} else {
|
|
1515
|
+
$$renderer2.push("<!--[-1-->");
|
|
1516
|
+
}
|
|
1517
|
+
$$renderer2.push(`<!--]--></div></div> <form class="row divided svelte-1n6ht58" method="POST" action="?/mcpPrAttributionToggle"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Credit Codebay on pull requests</div> <div class="desc svelte-1n6ht58">Append a one-line footer to the body of every pull request an agent opens through <code class="svelte-1n6ht58">create_pr</code>. Off by default \u2014 an attribution line on your PRs is yours to
|
|
1518
|
+
opt into.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", mcpAttribution, true)}${$29.attr("disabled", savingMcpAttribution, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1519
|
+
if (mcpAttributionError) {
|
|
1520
|
+
$$renderer2.push("<!--[0-->");
|
|
1521
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(mcpAttributionError)}</div></div>`);
|
|
1522
|
+
} else {
|
|
1523
|
+
$$renderer2.push("<!--[-1-->");
|
|
1524
|
+
}
|
|
1525
|
+
$$renderer2.push(`<!--]-->`);
|
|
1526
|
+
} else {
|
|
1527
|
+
$$renderer2.push("<!--[-1-->");
|
|
1528
|
+
}
|
|
1529
|
+
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/gitIdentityToggle"><div class="label svelte-1n6ht58">`);
|
|
1348
1530
|
User_cog($$renderer2, { size: 20 });
|
|
1349
1531
|
$$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
|
|
1350
1532
|
new container, taking precedence over the host's own git config. When off, each container
|
|
1351
|
-
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1533
|
+
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> `);
|
|
1352
1534
|
if (gitToggleError) {
|
|
1353
1535
|
$$renderer2.push("<!--[0-->");
|
|
1354
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1536
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(gitToggleError)}</div></div>`);
|
|
1355
1537
|
} else {
|
|
1356
1538
|
$$renderer2.push("<!--[-1-->");
|
|
1357
1539
|
}
|
|
@@ -1359,7 +1541,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1359
1541
|
if (gitIdentity) {
|
|
1360
1542
|
$$renderer2.push("<!--[0-->");
|
|
1361
1543
|
$$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
|
|
1362
|
-
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"${$
|
|
1544
|
+
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">`);
|
|
1363
1545
|
Button($$renderer2, {
|
|
1364
1546
|
type: "submit",
|
|
1365
1547
|
disabled: savingGitIdentity,
|
|
@@ -1371,7 +1553,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1371
1553
|
$$renderer2.push(`<!----></div></div> `);
|
|
1372
1554
|
if (gitIdentityError) {
|
|
1373
1555
|
$$renderer2.push("<!--[0-->");
|
|
1374
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1556
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(gitIdentityError)}</div>`);
|
|
1375
1557
|
} else if (gitIdentitySaved) {
|
|
1376
1558
|
$$renderer2.push("<!--[1-->");
|
|
1377
1559
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1385,10 +1567,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1385
1567
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58">`);
|
|
1386
1568
|
Layers($$renderer2, { size: 20 });
|
|
1387
1569
|
$$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
|
|
1388
|
-
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"${$
|
|
1570
|
+
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> `);
|
|
1389
1571
|
if (cacheError) {
|
|
1390
1572
|
$$renderer2.push("<!--[0-->");
|
|
1391
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1573
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(cacheError)}</div></div>`);
|
|
1392
1574
|
} else {
|
|
1393
1575
|
$$renderer2.push("<!--[-1-->");
|
|
1394
1576
|
}
|
|
@@ -1398,10 +1580,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1398
1580
|
remove pulled images.</div> `);
|
|
1399
1581
|
if (clearError) {
|
|
1400
1582
|
$$renderer2.push("<!--[0-->");
|
|
1401
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1583
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(clearError)}</div>`);
|
|
1402
1584
|
} else if (clearMsg) {
|
|
1403
1585
|
$$renderer2.push("<!--[1-->");
|
|
1404
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1586
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(clearMsg)}</div>`);
|
|
1405
1587
|
} else {
|
|
1406
1588
|
$$renderer2.push("<!--[-1-->");
|
|
1407
1589
|
}
|
|
@@ -1411,7 +1593,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1411
1593
|
icon: Trash_2,
|
|
1412
1594
|
disabled: clearing,
|
|
1413
1595
|
children: ($$renderer3) => {
|
|
1414
|
-
$$renderer3.push(`<!---->${$
|
|
1596
|
+
$$renderer3.push(`<!---->${$29.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
|
|
1415
1597
|
},
|
|
1416
1598
|
$$slots: { default: true }
|
|
1417
1599
|
});
|
|
@@ -1421,10 +1603,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1421
1603
|
layers. In-container edits are kept; stopped instances are left alone.</div> `);
|
|
1422
1604
|
if (rebuildError) {
|
|
1423
1605
|
$$renderer2.push("<!--[0-->");
|
|
1424
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1606
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(rebuildError)}</div>`);
|
|
1425
1607
|
} else if (rebuildMsg) {
|
|
1426
1608
|
$$renderer2.push("<!--[1-->");
|
|
1427
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1609
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(rebuildMsg)}</div>`);
|
|
1428
1610
|
} else {
|
|
1429
1611
|
$$renderer2.push("<!--[-1-->");
|
|
1430
1612
|
}
|
|
@@ -1434,11 +1616,11 @@ function SettingsView($$renderer, $$props) {
|
|
|
1434
1616
|
icon: Hammer,
|
|
1435
1617
|
disabled: rebuilding,
|
|
1436
1618
|
children: ($$renderer3) => {
|
|
1437
|
-
$$renderer3.push(`<!---->${$
|
|
1619
|
+
$$renderer3.push(`<!---->${$29.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
|
|
1438
1620
|
},
|
|
1439
1621
|
$$slots: { default: true }
|
|
1440
1622
|
});
|
|
1441
|
-
$$renderer2.push(`<!----></form></section> <section${$
|
|
1623
|
+
$$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">`);
|
|
1442
1624
|
Key_round($$renderer2, { size: 20 });
|
|
1443
1625
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually `);
|
|
1444
1626
|
if (customEndpoint) {
|
|
@@ -1459,10 +1641,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1459
1641
|
token set here is injected into every new container and overrides host credential
|
|
1460
1642
|
discovery.`);
|
|
1461
1643
|
}
|
|
1462
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1644
|
+
$$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> `);
|
|
1463
1645
|
if (manualToggleError) {
|
|
1464
1646
|
$$renderer2.push("<!--[0-->");
|
|
1465
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1647
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualToggleError)}</div></div>`);
|
|
1466
1648
|
} else {
|
|
1467
1649
|
$$renderer2.push("<!--[-1-->");
|
|
1468
1650
|
}
|
|
@@ -1470,7 +1652,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1470
1652
|
if (manualTokens && !customEndpoint) {
|
|
1471
1653
|
$$renderer2.push("<!--[0-->");
|
|
1472
1654
|
$$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
|
|
1473
|
-
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"${$
|
|
1655
|
+
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")}/> `);
|
|
1474
1656
|
Button($$renderer2, {
|
|
1475
1657
|
type: "submit",
|
|
1476
1658
|
disabled: savingGithub,
|
|
@@ -1482,17 +1664,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1482
1664
|
$$renderer2.push(`<!----></div> `);
|
|
1483
1665
|
if (githubError) {
|
|
1484
1666
|
$$renderer2.push("<!--[0-->");
|
|
1485
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1667
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(githubError)}</div>`);
|
|
1486
1668
|
} else if (githubMsg) {
|
|
1487
1669
|
$$renderer2.push("<!--[1-->");
|
|
1488
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1670
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(githubMsg)}</div>`);
|
|
1489
1671
|
} else {
|
|
1490
1672
|
$$renderer2.push("<!--[-1-->");
|
|
1491
1673
|
}
|
|
1492
1674
|
$$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
|
|
1493
1675
|
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
|
|
1494
1676
|
the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
|
|
1495
|
-
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$
|
|
1677
|
+
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")}/> `);
|
|
1496
1678
|
Button($$renderer2, {
|
|
1497
1679
|
type: "submit",
|
|
1498
1680
|
disabled: savingClaude,
|
|
@@ -1504,10 +1686,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1504
1686
|
$$renderer2.push(`<!----></div> `);
|
|
1505
1687
|
if (claudeError) {
|
|
1506
1688
|
$$renderer2.push("<!--[0-->");
|
|
1507
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1689
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeError)}</div>`);
|
|
1508
1690
|
} else if (claudeMsg) {
|
|
1509
1691
|
$$renderer2.push("<!--[1-->");
|
|
1510
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1692
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(claudeMsg)}</div>`);
|
|
1511
1693
|
} else {
|
|
1512
1694
|
$$renderer2.push("<!--[-1-->");
|
|
1513
1695
|
}
|
|
@@ -1515,19 +1697,19 @@ function SettingsView($$renderer, $$props) {
|
|
|
1515
1697
|
} else {
|
|
1516
1698
|
$$renderer2.push("<!--[-1-->");
|
|
1517
1699
|
}
|
|
1518
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1700
|
+
$$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">`);
|
|
1519
1701
|
Key_round($$renderer2, { size: 20 });
|
|
1520
1702
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock `);
|
|
1521
1703
|
if (litellmBlocker()) {
|
|
1522
1704
|
$$renderer2.push("<!--[0-->");
|
|
1523
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$
|
|
1705
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$29.attr("title", `Disabled while ${$29.stringify(litellmBlocker())} is on`)}>disabled</span>`);
|
|
1524
1706
|
} else {
|
|
1525
1707
|
$$renderer2.push("<!--[-1-->");
|
|
1526
1708
|
}
|
|
1527
1709
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
|
|
1528
1710
|
if (litellmBlocker()) {
|
|
1529
1711
|
$$renderer2.push("<!--[0-->");
|
|
1530
|
-
$$renderer2.push(`Not available while "${$
|
|
1712
|
+
$$renderer2.push(`Not available while "${$29.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
|
|
1531
1713
|
incompatible.`);
|
|
1532
1714
|
} else {
|
|
1533
1715
|
$$renderer2.push("<!--[-1-->");
|
|
@@ -1535,17 +1717,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1535
1717
|
default API. When enabled, the Bedrock endpoint variables are injected into every new
|
|
1536
1718
|
container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`);
|
|
1537
1719
|
}
|
|
1538
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1720
|
+
$$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> `);
|
|
1539
1721
|
if (customToggleError) {
|
|
1540
1722
|
$$renderer2.push("<!--[0-->");
|
|
1541
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1723
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customToggleError)}</div></div>`);
|
|
1542
1724
|
} else {
|
|
1543
1725
|
$$renderer2.push("<!--[-1-->");
|
|
1544
1726
|
}
|
|
1545
1727
|
$$renderer2.push(`<!--]--> `);
|
|
1546
1728
|
if (customEndpoint) {
|
|
1547
1729
|
$$renderer2.push("<!--[0-->");
|
|
1548
|
-
$$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"${$
|
|
1730
|
+
$$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"/> `);
|
|
1549
1731
|
Button($$renderer2, {
|
|
1550
1732
|
type: "submit",
|
|
1551
1733
|
disabled: savingCustomBaseUrl,
|
|
@@ -1557,15 +1739,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1557
1739
|
$$renderer2.push(`<!----></div> `);
|
|
1558
1740
|
if (customBaseUrlError) {
|
|
1559
1741
|
$$renderer2.push("<!--[0-->");
|
|
1560
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1742
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customBaseUrlError)}</div>`);
|
|
1561
1743
|
} else if (customBaseUrlMsg) {
|
|
1562
1744
|
$$renderer2.push("<!--[1-->");
|
|
1563
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1745
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customBaseUrlMsg)}</div>`);
|
|
1564
1746
|
} else {
|
|
1565
1747
|
$$renderer2.push("<!--[-1-->");
|
|
1566
1748
|
}
|
|
1567
1749
|
$$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
|
|
1568
|
-
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$
|
|
1750
|
+
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")}/> `);
|
|
1569
1751
|
Button($$renderer2, {
|
|
1570
1752
|
type: "submit",
|
|
1571
1753
|
disabled: savingCustomToken,
|
|
@@ -1577,15 +1759,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1577
1759
|
$$renderer2.push(`<!----></div> `);
|
|
1578
1760
|
if (customTokenError) {
|
|
1579
1761
|
$$renderer2.push("<!--[0-->");
|
|
1580
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1762
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customTokenError)}</div>`);
|
|
1581
1763
|
} else if (customTokenMsg) {
|
|
1582
1764
|
$$renderer2.push("<!--[1-->");
|
|
1583
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1765
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customTokenMsg)}</div>`);
|
|
1584
1766
|
} else {
|
|
1585
1767
|
$$renderer2.push("<!--[-1-->");
|
|
1586
1768
|
}
|
|
1587
1769
|
$$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
|
|
1588
|
-
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"${$
|
|
1770
|
+
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">`);
|
|
1589
1771
|
Button($$renderer2, {
|
|
1590
1772
|
type: "submit",
|
|
1591
1773
|
disabled: savingCustomModels,
|
|
@@ -1597,10 +1779,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1597
1779
|
$$renderer2.push(`<!----></div></div> `);
|
|
1598
1780
|
if (customModelsError) {
|
|
1599
1781
|
$$renderer2.push("<!--[0-->");
|
|
1600
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1782
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customModelsError)}</div>`);
|
|
1601
1783
|
} else if (customModelsMsg) {
|
|
1602
1784
|
$$renderer2.push("<!--[1-->");
|
|
1603
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1785
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customModelsMsg)}</div>`);
|
|
1604
1786
|
} else {
|
|
1605
1787
|
$$renderer2.push("<!--[-1-->");
|
|
1606
1788
|
}
|
|
@@ -1608,7 +1790,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1608
1790
|
} else {
|
|
1609
1791
|
$$renderer2.push("<!--[-1-->");
|
|
1610
1792
|
}
|
|
1611
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1793
|
+
$$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">`);
|
|
1612
1794
|
Cpu($$renderer2, { size: 18 });
|
|
1613
1795
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override models manually `);
|
|
1614
1796
|
if (customEndpoint) {
|
|
@@ -1627,17 +1809,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1627
1809
|
$$renderer2.push(`Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
|
|
1628
1810
|
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.`);
|
|
1629
1811
|
}
|
|
1630
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1812
|
+
$$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> `);
|
|
1631
1813
|
if (manualModelToggleError) {
|
|
1632
1814
|
$$renderer2.push("<!--[0-->");
|
|
1633
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1815
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualModelToggleError)}</div></div>`);
|
|
1634
1816
|
} else {
|
|
1635
1817
|
$$renderer2.push("<!--[-1-->");
|
|
1636
1818
|
}
|
|
1637
1819
|
$$renderer2.push(`<!--]--> `);
|
|
1638
1820
|
if (manualModelOverride) {
|
|
1639
1821
|
$$renderer2.push("<!--[0-->");
|
|
1640
|
-
$$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"${$
|
|
1822
|
+
$$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">`);
|
|
1641
1823
|
Button($$renderer2, {
|
|
1642
1824
|
type: "submit",
|
|
1643
1825
|
disabled: savingManualModels,
|
|
@@ -1649,10 +1831,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1649
1831
|
$$renderer2.push(`<!----></div></div> `);
|
|
1650
1832
|
if (manualModelsError) {
|
|
1651
1833
|
$$renderer2.push("<!--[0-->");
|
|
1652
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1834
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(manualModelsError)}</div>`);
|
|
1653
1835
|
} else if (manualModelsMsg) {
|
|
1654
1836
|
$$renderer2.push("<!--[1-->");
|
|
1655
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1837
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(manualModelsMsg)}</div>`);
|
|
1656
1838
|
} else {
|
|
1657
1839
|
$$renderer2.push("<!--[-1-->");
|
|
1658
1840
|
}
|
|
@@ -1664,10 +1846,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1664
1846
|
Variable($$renderer2, { size: 20 });
|
|
1665
1847
|
$$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
|
|
1666
1848
|
interactive shells. Values are read from this process's own environment at container
|
|
1667
|
-
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"${$
|
|
1849
|
+
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> `);
|
|
1668
1850
|
if (hostEnvToggleError) {
|
|
1669
1851
|
$$renderer2.push("<!--[0-->");
|
|
1670
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1852
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(hostEnvToggleError)}</div></div>`);
|
|
1671
1853
|
} else {
|
|
1672
1854
|
$$renderer2.push("<!--[-1-->");
|
|
1673
1855
|
}
|
|
@@ -1675,18 +1857,18 @@ function SettingsView($$renderer, $$props) {
|
|
|
1675
1857
|
if (hostEnvVars) {
|
|
1676
1858
|
$$renderer2.push("<!--[0-->");
|
|
1677
1859
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1678
|
-
const each_array_3 = $
|
|
1860
|
+
const each_array_3 = $29.ensure_array_like(hostEnvNames);
|
|
1679
1861
|
if (each_array_3.length !== 0) {
|
|
1680
1862
|
$$renderer2.push("<!--[-->");
|
|
1681
1863
|
for (let $$index_4 = 0, $$length = each_array_3.length;$$index_4 < $$length; $$index_4++) {
|
|
1682
1864
|
let name = each_array_3[$$index_4];
|
|
1683
1865
|
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1684
|
-
const each_array_4 = $
|
|
1866
|
+
const each_array_4 = $29.ensure_array_like(hostEnvNames.filter((n) => n !== name));
|
|
1685
1867
|
for (let $$index_3 = 0, $$length2 = each_array_4.length;$$index_3 < $$length2; $$index_3++) {
|
|
1686
1868
|
let other = each_array_4[$$index_3];
|
|
1687
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1869
|
+
$$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", other)}/>`);
|
|
1688
1870
|
}
|
|
1689
|
-
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$
|
|
1871
|
+
$$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}`)}>`);
|
|
1690
1872
|
X($$renderer2, { size: 13 });
|
|
1691
1873
|
$$renderer2.push(`<!----></button></form>`);
|
|
1692
1874
|
}
|
|
@@ -1695,12 +1877,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1695
1877
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1696
1878
|
}
|
|
1697
1879
|
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1698
|
-
const each_array_5 = $
|
|
1880
|
+
const each_array_5 = $29.ensure_array_like(hostEnvNames);
|
|
1699
1881
|
for (let $$index_5 = 0, $$length = each_array_5.length;$$index_5 < $$length; $$index_5++) {
|
|
1700
1882
|
let name = each_array_5[$$index_5];
|
|
1701
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1883
|
+
$$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", name)}/>`);
|
|
1702
1884
|
}
|
|
1703
|
-
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$
|
|
1885
|
+
$$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"/> `);
|
|
1704
1886
|
Button($$renderer2, {
|
|
1705
1887
|
type: "submit",
|
|
1706
1888
|
icon: Plus,
|
|
@@ -1713,10 +1895,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1713
1895
|
$$renderer2.push(`<!----></form> `);
|
|
1714
1896
|
if (hostEnvNamesError) {
|
|
1715
1897
|
$$renderer2.push("<!--[0-->");
|
|
1716
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1898
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(hostEnvNamesError)}</div>`);
|
|
1717
1899
|
} else if (hostEnvNamesMsg) {
|
|
1718
1900
|
$$renderer2.push("<!--[1-->");
|
|
1719
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1901
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(hostEnvNamesMsg)}</div>`);
|
|
1720
1902
|
} else {
|
|
1721
1903
|
$$renderer2.push("<!--[-1-->");
|
|
1722
1904
|
}
|
|
@@ -1728,10 +1910,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1728
1910
|
Key_square($$renderer2, { size: 20 });
|
|
1729
1911
|
$$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
|
|
1730
1912
|
locally, masked in the build log, and never shown here after saving. Re-add a name to
|
|
1731
|
-
update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1913
|
+
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> `);
|
|
1732
1914
|
if (customEnvToggleError) {
|
|
1733
1915
|
$$renderer2.push("<!--[0-->");
|
|
1734
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1916
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customEnvToggleError)}</div></div>`);
|
|
1735
1917
|
} else {
|
|
1736
1918
|
$$renderer2.push("<!--[-1-->");
|
|
1737
1919
|
}
|
|
@@ -1739,12 +1921,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1739
1921
|
if (customEnvEnabled) {
|
|
1740
1922
|
$$renderer2.push("<!--[0-->");
|
|
1741
1923
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1742
|
-
const each_array_6 = $
|
|
1924
|
+
const each_array_6 = $29.ensure_array_like(customEnvNames);
|
|
1743
1925
|
if (each_array_6.length !== 0) {
|
|
1744
1926
|
$$renderer2.push("<!--[-->");
|
|
1745
1927
|
for (let $$index_6 = 0, $$length = each_array_6.length;$$index_6 < $$length; $$index_6++) {
|
|
1746
1928
|
let name = each_array_6[$$index_6];
|
|
1747
|
-
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$
|
|
1929
|
+
$$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}`)}>`);
|
|
1748
1930
|
X($$renderer2, { size: 13 });
|
|
1749
1931
|
$$renderer2.push(`<!----></button></form>`);
|
|
1750
1932
|
}
|
|
@@ -1752,7 +1934,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1752
1934
|
$$renderer2.push("<!--[!-->");
|
|
1753
1935
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1754
1936
|
}
|
|
1755
|
-
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$
|
|
1937
|
+
$$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"/> `);
|
|
1756
1938
|
Button($$renderer2, {
|
|
1757
1939
|
type: "submit",
|
|
1758
1940
|
icon: Plus,
|
|
@@ -1765,10 +1947,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1765
1947
|
$$renderer2.push(`<!----></form> `);
|
|
1766
1948
|
if (customEnvError) {
|
|
1767
1949
|
$$renderer2.push("<!--[0-->");
|
|
1768
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1950
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customEnvError)}</div>`);
|
|
1769
1951
|
} else if (customEnvMsg) {
|
|
1770
1952
|
$$renderer2.push("<!--[1-->");
|
|
1771
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1953
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customEnvMsg)}</div>`);
|
|
1772
1954
|
} else {
|
|
1773
1955
|
$$renderer2.push("<!--[-1-->");
|
|
1774
1956
|
}
|
|
@@ -1782,15 +1964,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1782
1964
|
ThemePicker($$renderer2, {});
|
|
1783
1965
|
$$renderer2.push(`<!----></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1784
1966
|
Volume_2($$renderer2, { size: 20 });
|
|
1785
|
-
$$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"${$
|
|
1967
|
+
$$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">`);
|
|
1786
1968
|
Keyboard($$renderer2, { size: 20 });
|
|
1787
1969
|
$$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
|
|
1788
|
-
always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$
|
|
1970
|
+
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">`);
|
|
1789
1971
|
Paw_print($$renderer2, { size: 18 });
|
|
1790
|
-
$$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"${$
|
|
1972
|
+
$$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> `);
|
|
1791
1973
|
if (petError) {
|
|
1792
1974
|
$$renderer2.push("<!--[0-->");
|
|
1793
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1975
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(petError)}</div></div>`);
|
|
1794
1976
|
} else {
|
|
1795
1977
|
$$renderer2.push("<!--[-1-->");
|
|
1796
1978
|
}
|
|
@@ -1798,10 +1980,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1798
1980
|
if (petArt) {
|
|
1799
1981
|
$$renderer2.push("<!--[0-->");
|
|
1800
1982
|
$$renderer2.push(`<div class="sub pets svelte-1n6ht58"><!--[-->`);
|
|
1801
|
-
const each_array_7 = $
|
|
1983
|
+
const each_array_7 = $29.ensure_array_like(avatars);
|
|
1802
1984
|
for (let $$index_7 = 0, $$length = each_array_7.length;$$index_7 < $$length; $$index_7++) {
|
|
1803
1985
|
let art = each_array_7[$$index_7];
|
|
1804
|
-
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$
|
|
1986
|
+
$$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)}>`);
|
|
1805
1987
|
Avatar($$renderer2, { art, name: art.name, scale: 4 });
|
|
1806
1988
|
$$renderer2.push(`<!----></button></form>`);
|
|
1807
1989
|
}
|
|
@@ -1814,30 +1996,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1814
1996
|
$$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">`);
|
|
1815
1997
|
List_ordered($$renderer2, { size: 20 });
|
|
1816
1998
|
$$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
|
|
1817
|
-
when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1999
|
+
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> `);
|
|
1818
2000
|
if (serialError) {
|
|
1819
2001
|
$$renderer2.push("<!--[0-->");
|
|
1820
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
2002
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(serialError)}</div></div>`);
|
|
1821
2003
|
} else {
|
|
1822
2004
|
$$renderer2.push("<!--[-1-->");
|
|
1823
2005
|
}
|
|
1824
2006
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/noBuildkitToggle"><div class="label svelte-1n6ht58">`);
|
|
1825
2007
|
Boxes($$renderer2, { size: 20 });
|
|
1826
2008
|
$$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
|
|
1827
|
-
default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
2009
|
+
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> `);
|
|
1828
2010
|
if (buildkitError) {
|
|
1829
2011
|
$$renderer2.push("<!--[0-->");
|
|
1830
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
2012
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(buildkitError)}</div></div>`);
|
|
1831
2013
|
} else {
|
|
1832
2014
|
$$renderer2.push("<!--[-1-->");
|
|
1833
2015
|
}
|
|
1834
2016
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/blockingExtInstallToggle"><div class="label svelte-1n6ht58">`);
|
|
1835
2017
|
Puzzle($$renderer2, { size: 20 });
|
|
1836
2018
|
$$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
|
|
1837
|
-
always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
2019
|
+
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> `);
|
|
1838
2020
|
if (blockingError) {
|
|
1839
2021
|
$$renderer2.push("<!--[0-->");
|
|
1840
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
2022
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(blockingError)}</div></div>`);
|
|
1841
2023
|
} else {
|
|
1842
2024
|
$$renderer2.push("<!--[-1-->");
|
|
1843
2025
|
}
|
|
@@ -1847,10 +2029,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1847
2029
|
again.</div> `);
|
|
1848
2030
|
if (verError) {
|
|
1849
2031
|
$$renderer2.push("<!--[0-->");
|
|
1850
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
2032
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(verError)}</div>`);
|
|
1851
2033
|
} else if (verMsg) {
|
|
1852
2034
|
$$renderer2.push("<!--[1-->");
|
|
1853
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
2035
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(verMsg)}</div>`);
|
|
1854
2036
|
} else {
|
|
1855
2037
|
$$renderer2.push("<!--[-1-->");
|
|
1856
2038
|
}
|
|
@@ -1860,7 +2042,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1860
2042
|
icon: Trash_2,
|
|
1861
2043
|
disabled: clearingVer,
|
|
1862
2044
|
children: ($$renderer3) => {
|
|
1863
|
-
$$renderer3.push(`<!---->${$
|
|
2045
|
+
$$renderer3.push(`<!---->${$29.escape(clearingVer ? "Clearing\u2026" : "Clear cache")}`);
|
|
1864
2046
|
},
|
|
1865
2047
|
$$slots: { default: true }
|
|
1866
2048
|
});
|
|
@@ -1884,7 +2066,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1884
2066
|
}
|
|
1885
2067
|
$$renderer2.push(`<!--]--></form></section> `);
|
|
1886
2068
|
CoinButton($$renderer2, {});
|
|
1887
|
-
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$
|
|
2069
|
+
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$29.escape(version)}</div></main></div> `);
|
|
1888
2070
|
Toaster($$renderer2, { toastOptions: TOAST_OPTIONS });
|
|
1889
2071
|
$$renderer2.push(`<!---->`);
|
|
1890
2072
|
});
|
|
@@ -1904,6 +2086,11 @@ function Settings($$renderer, $$props) {
|
|
|
1904
2086
|
disableBuildCache,
|
|
1905
2087
|
copyIgnorePatterns,
|
|
1906
2088
|
builtinCopyIgnore,
|
|
2089
|
+
claudeConfigDir,
|
|
2090
|
+
mcpEnabled,
|
|
2091
|
+
mcpToken,
|
|
2092
|
+
mcpUrl,
|
|
2093
|
+
mcpPrAttribution,
|
|
1907
2094
|
gitIdentityEnabled,
|
|
1908
2095
|
gitIdentityName,
|
|
1909
2096
|
gitIdentityEmail,
|
|
@@ -1937,7 +2124,7 @@ function Settings($$renderer, $$props) {
|
|
|
1937
2124
|
} = $$props;
|
|
1938
2125
|
if (true) {
|
|
1939
2126
|
let failed = function($$renderer3, error) {
|
|
1940
|
-
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$
|
|
2127
|
+
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$30.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
1941
2128
|
};
|
|
1942
2129
|
$$renderer2.push("<!--[0-->");
|
|
1943
2130
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -1945,7 +2132,7 @@ function Settings($$renderer, $$props) {
|
|
|
1945
2132
|
{
|
|
1946
2133
|
HydratableBoundary($$renderer3, {
|
|
1947
2134
|
children: ($$renderer4) => {
|
|
1948
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$
|
|
2135
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$30.attr("props-ref", emitIslandProps({
|
|
1949
2136
|
pet,
|
|
1950
2137
|
defaultMode,
|
|
1951
2138
|
claudePermissionMode,
|
|
@@ -1956,6 +2143,11 @@ function Settings($$renderer, $$props) {
|
|
|
1956
2143
|
disableBuildCache,
|
|
1957
2144
|
copyIgnorePatterns,
|
|
1958
2145
|
builtinCopyIgnore,
|
|
2146
|
+
claudeConfigDir,
|
|
2147
|
+
mcpEnabled,
|
|
2148
|
+
mcpToken,
|
|
2149
|
+
mcpUrl,
|
|
2150
|
+
mcpPrAttribution,
|
|
1959
2151
|
gitIdentityEnabled,
|
|
1960
2152
|
gitIdentityName,
|
|
1961
2153
|
gitIdentityEmail,
|
|
@@ -2000,6 +2192,11 @@ function Settings($$renderer, $$props) {
|
|
|
2000
2192
|
disableBuildCache,
|
|
2001
2193
|
copyIgnorePatterns,
|
|
2002
2194
|
builtinCopyIgnore,
|
|
2195
|
+
claudeConfigDir,
|
|
2196
|
+
mcpEnabled,
|
|
2197
|
+
mcpToken,
|
|
2198
|
+
mcpUrl,
|
|
2199
|
+
mcpPrAttribution,
|
|
2003
2200
|
gitIdentityEnabled,
|
|
2004
2201
|
gitIdentityName,
|
|
2005
2202
|
gitIdentityEmail,
|