codebay 0.12.0 → 0.13.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 +198 -190
- package/.mochi/svelte-client/HydratableIsland-zrdsrsmg.js +1 -0
- package/.mochi/svelte-client/{_hydrate-AppShell_2rtnxn6pgp2rh-aqm4k957.js → _hydrate-AppShell_2rtnxn6pgp2rh-v7y7dh53.js} +2 -2
- package/.mochi/svelte-client/{_hydrate-AvatarsView_257s9yq1wwr4f-m7h7xdxn.js → _hydrate-AvatarsView_257s9yq1wwr4f-tmwd6fpb.js} +1 -1
- package/.mochi/svelte-client/{_hydrate-InstanceView_2ma45l9bybfhl-d256bw54.js → _hydrate-InstanceView_2ma45l9bybfhl-m7t64dbh.js} +1 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-wedc9x9y.js +39 -0
- package/.mochi/svelte-client/{chunk-2eaagsfc.js → chunk-0mc09cyb.js} +1 -1
- package/.mochi/svelte-client/{chunk-a5e8vytv.js → chunk-5jwfs4p9.js} +2 -2
- package/.mochi/svelte-client/chunk-6qg4q98a.js +2 -0
- package/.mochi/svelte-client/{chunk-d8rdrqsh.js → chunk-ccfh8hxz.js} +1 -1
- package/.mochi/svelte-client/{chunk-d9bszcp8.js → chunk-phf7v5jj.js} +1 -1
- package/.mochi/svelte-client/{chunk-y1xjps59.js → chunk-spk1b2r4.js} +1 -1
- package/.mochi/svelte-client/chunk-tmeh70wg.js +2 -0
- package/.mochi/svelte-client/{chunk-6v5d7dex.js → chunk-vs1yjbqt.js} +1 -1
- package/.mochi/svelte-client/{chunk-1ttqgrz7.js → chunk-x0m3k0rn.js} +1 -1
- package/.mochi/svelte-client/{chunk-s70rry6z.js → chunk-y7f4jbdm.js} +1 -1
- package/.mochi/svelte-compile/{App-bhak71kt.server.js → App-94xsdn0w.server.js} +2 -2
- package/.mochi/svelte-compile/{Avatars-c0k5jx8q.server.js → Avatars-fnccw47h.server.js} +1 -1
- package/.mochi/svelte-compile/{Instance-hj76qnha.server.js → Instance-knnkcn2p.server.js} +1 -1
- package/.mochi/svelte-compile/{Settings-j3aygrjb.server.js → Settings-h7gsjyz3.server.js} +169 -114
- package/.mochi/svelte-compile/{chunk-gz6hv1h5.js → chunk-apdte4nh.js} +121 -143
- package/.mochi/svelte-compile/{chunk-zd49axkf.js → chunk-w0hca7va.js} +2 -1
- package/package.json +1 -1
- package/src/avatars/anchor.ts +1 -2
- package/src/avatars/bear.ts +2 -3
- package/src/avatars/bee.ts +7 -8
- package/src/avatars/cat.ts +4 -5
- package/src/avatars/cherry.ts +7 -8
- package/src/avatars/crab.ts +6 -7
- package/src/avatars/crown.ts +2 -3
- package/src/avatars/dog.ts +8 -9
- package/src/avatars/fish.ts +8 -9
- package/src/avatars/flower.ts +6 -7
- package/src/avatars/fox.ts +8 -9
- package/src/avatars/frog.ts +6 -7
- package/src/avatars/key.ts +2 -3
- package/src/avatars/mushroom.ts +4 -5
- package/src/avatars/octopus.ts +7 -8
- package/src/avatars/owl.ts +7 -8
- package/src/avatars/penguin.ts +8 -9
- package/src/avatars/planet.ts +8 -9
- package/src/avatars/rabbit.ts +3 -4
- package/src/avatars/robot.ts +6 -7
- package/src/avatars/snail.ts +6 -7
- package/src/avatars/star.ts +5 -6
- package/src/components/SettingsView.svelte +74 -0
- package/src/container-injections/claude-code-install.ts +12 -7
- package/src/container-injections/claude-code-update.ts +45 -10
- package/src/container-injections/claude-output-style.ts +84 -0
- package/src/lib/injections.server.ts +5 -1
- package/src/pages/Settings.svelte +9 -1
- package/src/routes.ts +10 -0
- package/src/types.ts +16 -0
- package/.mochi/svelte-client/HydratableIsland-4j3bazeq.js +0 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-pwbtv8ma.js +0 -39
- package/.mochi/svelte-client/chunk-krevp8yb.js +0 -2
- package/.mochi/svelte-client/chunk-wcfbjj3x.js +0 -2
|
@@ -12,12 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-pqb403fh.js";
|
|
13
13
|
import {
|
|
14
14
|
CLAUDE_EFFORT_LEVELS,
|
|
15
|
+
CLAUDE_OUTPUT_STYLES,
|
|
15
16
|
CLAUDE_PERMISSION_MODES,
|
|
16
17
|
apiPost,
|
|
17
18
|
applyTheme,
|
|
18
19
|
getTheme,
|
|
19
20
|
setTheme
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-w0hca7va.js";
|
|
21
22
|
import {
|
|
22
23
|
Rotate_ccw
|
|
23
24
|
} from "./chunk-jx6h1xzp.js";
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
Toaster,
|
|
30
31
|
avatars,
|
|
31
32
|
findAvatar
|
|
32
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-apdte4nh.js";
|
|
33
34
|
import {
|
|
34
35
|
HydratableBoundary,
|
|
35
36
|
Icon,
|
|
@@ -40,11 +41,11 @@ import"./chunk-xpt1a7jm.js";
|
|
|
40
41
|
|
|
41
42
|
// src/pages/Settings.svelte
|
|
42
43
|
import"svelte/internal/flags/async";
|
|
43
|
-
import * as $
|
|
44
|
+
import * as $29 from "svelte/internal/server";
|
|
44
45
|
|
|
45
46
|
// src/components/SettingsView.svelte
|
|
46
47
|
import"svelte/internal/flags/async";
|
|
47
|
-
import * as $
|
|
48
|
+
import * as $28 from "svelte/internal/server";
|
|
48
49
|
|
|
49
50
|
// node_modules/@lucide/svelte/dist/icons/container.svelte
|
|
50
51
|
import"svelte/internal/flags/async";
|
|
@@ -579,6 +580,21 @@ function Gauge($$renderer, $$props) {
|
|
|
579
580
|
];
|
|
580
581
|
Icon($$renderer, $26.spread_props([{ name: "gauge" }, props, { iconNode }]));
|
|
581
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 }]));
|
|
597
|
+
}
|
|
582
598
|
// src/components/SettingsView.svelte
|
|
583
599
|
function SettingsView($$renderer, $$props) {
|
|
584
600
|
$$renderer.component(($$renderer2) => {
|
|
@@ -587,6 +603,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
587
603
|
defaultMode,
|
|
588
604
|
claudePermissionMode,
|
|
589
605
|
claudeEffortLevel,
|
|
606
|
+
claudeOutputStyle,
|
|
590
607
|
defaultImage,
|
|
591
608
|
builtinImage,
|
|
592
609
|
disableBuildCache,
|
|
@@ -738,6 +755,26 @@ function SettingsView($$renderer, $$props) {
|
|
|
738
755
|
flushSync(() => effortChoice = next);
|
|
739
756
|
effortFormEl?.requestSubmit();
|
|
740
757
|
}
|
|
758
|
+
let outputStyleChoice = claudeOutputStyle;
|
|
759
|
+
let savingOutputStyle = false;
|
|
760
|
+
let outputStyleError = null;
|
|
761
|
+
let outputStyleFormEl;
|
|
762
|
+
const outputStyleOpts = saveOpts({
|
|
763
|
+
setSaving: (v) => savingOutputStyle = v,
|
|
764
|
+
setError: (v) => outputStyleError = v,
|
|
765
|
+
setMsg: () => {},
|
|
766
|
+
onSuccess: (data) => {
|
|
767
|
+
if (data?.style)
|
|
768
|
+
outputStyleChoice = data.style;
|
|
769
|
+
}
|
|
770
|
+
});
|
|
771
|
+
const OUTPUT_STYLE_LABELS = { default: "Default", none: "None", Concise: "Concise" };
|
|
772
|
+
function chooseOutputStyle(next) {
|
|
773
|
+
if (next === outputStyleChoice)
|
|
774
|
+
return;
|
|
775
|
+
flushSync(() => outputStyleChoice = next);
|
|
776
|
+
outputStyleFormEl?.requestSubmit();
|
|
777
|
+
}
|
|
741
778
|
let image = defaultImage;
|
|
742
779
|
let savingImage = false;
|
|
743
780
|
let imageError = null;
|
|
@@ -992,7 +1029,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
992
1029
|
manualModelsMsg = "Saved.";
|
|
993
1030
|
}
|
|
994
1031
|
});
|
|
995
|
-
let litellmBlocker = $
|
|
1032
|
+
let litellmBlocker = $28.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
|
|
996
1033
|
let hostEnvVars = hostEnvVarsEnabled;
|
|
997
1034
|
let savingHostEnvToggle = false;
|
|
998
1035
|
let hostEnvToggleError = null;
|
|
@@ -1168,30 +1205,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1168
1205
|
$$renderer2.push(`<!----> <main class="content svelte-1n6ht58"><section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/defaultMode"><div class="label svelte-1n6ht58">`);
|
|
1169
1206
|
Terminal($$renderer2, { size: 20 });
|
|
1170
1207
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default editor</div> <div class="desc svelte-1n6ht58">What new instances start in. <strong>Full IDE</strong> serves browser VS Code; <strong>Terminal</strong> is lighter \u2014 just Claude Code in a terminal, no code-server. You
|
|
1171
|
-
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$
|
|
1208
|
+
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$28.attr("value", modeChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Default editor mode"><button type="button"${$28.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "ide" })}${$28.attr("aria-pressed", modeChoice === "ide")}${$28.attr("disabled", savingMode, true)}>`);
|
|
1172
1209
|
Layout_template($$renderer2, { size: 15 });
|
|
1173
|
-
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$
|
|
1210
|
+
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$28.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "terminal" })}${$28.attr("aria-pressed", modeChoice === "terminal")}${$28.attr("disabled", savingMode, true)}>`);
|
|
1174
1211
|
Terminal($$renderer2, { size: 15 });
|
|
1175
1212
|
$$renderer2.push(`<!----> Terminal</button></div></form> `);
|
|
1176
1213
|
if (modeError) {
|
|
1177
1214
|
$$renderer2.push("<!--[0-->");
|
|
1178
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1215
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(modeError)}</div></div>`);
|
|
1179
1216
|
} else {
|
|
1180
1217
|
$$renderer2.push("<!--[-1-->");
|
|
1181
1218
|
}
|
|
1182
1219
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudePermissionMode"><div class="label svelte-1n6ht58">`);
|
|
1183
1220
|
Shield_check($$renderer2, { size: 20 });
|
|
1184
1221
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude permission mode</div> <div class="desc svelte-1n6ht58">The mode Claude Code starts in inside new instances. <strong>Default</strong> runs <code class="svelte-1n6ht58">--dangerously-skip-permissions</code>, which never prompts; the other three pass <code class="svelte-1n6ht58">--permission-mode</code> instead, because the skip flag overrides them. Applies on
|
|
1185
|
-
create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$
|
|
1186
|
-
const each_array = $
|
|
1222
|
+
create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$28.attr("value", permissionChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude permission mode"><!--[-->`);
|
|
1223
|
+
const each_array = $28.ensure_array_like(CLAUDE_PERMISSION_MODES);
|
|
1187
1224
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
1188
1225
|
let option = each_array[$$index];
|
|
1189
|
-
$$renderer2.push(`<button type="button"${$
|
|
1226
|
+
$$renderer2.push(`<button type="button"${$28.attr_class("mode-btn svelte-1n6ht58", undefined, { active: permissionChoice === option })}${$28.attr("aria-pressed", permissionChoice === option)}${$28.attr("disabled", savingPermission, true)}>${$28.escape(PERMISSION_LABELS[option])}</button>`);
|
|
1190
1227
|
}
|
|
1191
1228
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1192
1229
|
if (permissionError) {
|
|
1193
1230
|
$$renderer2.push("<!--[0-->");
|
|
1194
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1231
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(permissionError)}</div></div>`);
|
|
1195
1232
|
} else {
|
|
1196
1233
|
$$renderer2.push("<!--[-1-->");
|
|
1197
1234
|
}
|
|
@@ -1199,16 +1236,31 @@ function SettingsView($$renderer, $$props) {
|
|
|
1199
1236
|
Gauge($$renderer2, { size: 20 });
|
|
1200
1237
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude effort level</div> <div class="desc svelte-1n6ht58">The default reasoning effort Claude Code starts new sessions at inside instances,
|
|
1201
1238
|
written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. Applies on create and rebuild, not to
|
|
1202
|
-
already-running instances.</div></div></div> <input type="hidden" name="level"${$
|
|
1203
|
-
const each_array_1 = $
|
|
1239
|
+
already-running instances.</div></div></div> <input type="hidden" name="level"${$28.attr("value", effortChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude effort level"><!--[-->`);
|
|
1240
|
+
const each_array_1 = $28.ensure_array_like(CLAUDE_EFFORT_LEVELS);
|
|
1204
1241
|
for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
|
|
1205
1242
|
let option = each_array_1[$$index_1];
|
|
1206
|
-
$$renderer2.push(`<button type="button"${$
|
|
1243
|
+
$$renderer2.push(`<button type="button"${$28.attr_class("mode-btn svelte-1n6ht58", undefined, { active: effortChoice === option })}${$28.attr("aria-pressed", effortChoice === option)}${$28.attr("disabled", savingEffort, true)}>${$28.escape(EFFORT_LABELS[option])}</button>`);
|
|
1207
1244
|
}
|
|
1208
1245
|
$$renderer2.push(`<!--]--></div></form> `);
|
|
1209
1246
|
if (effortError) {
|
|
1210
1247
|
$$renderer2.push("<!--[0-->");
|
|
1211
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1248
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(effortError)}</div></div>`);
|
|
1249
|
+
} else {
|
|
1250
|
+
$$renderer2.push("<!--[-1-->");
|
|
1251
|
+
}
|
|
1252
|
+
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudeOutputStyle"><div class="label svelte-1n6ht58">`);
|
|
1253
|
+
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"${$28.attr("value", outputStyleChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude output style"><!--[-->`);
|
|
1255
|
+
const each_array_2 = $28.ensure_array_like(CLAUDE_OUTPUT_STYLES);
|
|
1256
|
+
for (let $$index_2 = 0, $$length = each_array_2.length;$$index_2 < $$length; $$index_2++) {
|
|
1257
|
+
let option = each_array_2[$$index_2];
|
|
1258
|
+
$$renderer2.push(`<button type="button"${$28.attr_class("mode-btn svelte-1n6ht58", undefined, { active: outputStyleChoice === option })}${$28.attr("aria-pressed", outputStyleChoice === option)}${$28.attr("disabled", savingOutputStyle, true)}>${$28.escape(OUTPUT_STYLE_LABELS[option])}</button>`);
|
|
1259
|
+
}
|
|
1260
|
+
$$renderer2.push(`<!--]--></div></form> `);
|
|
1261
|
+
if (outputStyleError) {
|
|
1262
|
+
$$renderer2.push("<!--[0-->");
|
|
1263
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(outputStyleError)}</div></div>`);
|
|
1212
1264
|
} else {
|
|
1213
1265
|
$$renderer2.push("<!--[-1-->");
|
|
1214
1266
|
}
|
|
@@ -1217,12 +1269,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1217
1269
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image `);
|
|
1218
1270
|
if (dockerArch) {
|
|
1219
1271
|
$$renderer2.push("<!--[0-->");
|
|
1220
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$
|
|
1272
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$28.escape(dockerArch)}</span>`);
|
|
1221
1273
|
} else {
|
|
1222
1274
|
$$renderer2.push("<!--[-1-->");
|
|
1223
1275
|
}
|
|
1224
1276
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
|
|
1225
|
-
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$
|
|
1277
|
+
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$28.attr("value", image)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> `);
|
|
1226
1278
|
Button($$renderer2, {
|
|
1227
1279
|
type: "submit",
|
|
1228
1280
|
disabled: savingImage,
|
|
@@ -1237,14 +1289,14 @@ function SettingsView($$renderer, $$props) {
|
|
|
1237
1289
|
icon: Rotate_ccw,
|
|
1238
1290
|
disabled: savingImage,
|
|
1239
1291
|
onclick: resetImage,
|
|
1240
|
-
title: `Reset to default (${$
|
|
1292
|
+
title: `Reset to default (${$28.stringify(builtinImage)})`,
|
|
1241
1293
|
"aria-label": "Reset to default image"
|
|
1242
1294
|
});
|
|
1243
1295
|
$$renderer2.push(`<!----></div> <div class="desc tip svelte-1n6ht58">`);
|
|
1244
1296
|
if (dockerArch) {
|
|
1245
1297
|
$$renderer2.push("<!--[0-->");
|
|
1246
|
-
$$renderer2.push(`Your Docker daemon runs on <strong>${$
|
|
1247
|
-
an <strong>${$
|
|
1298
|
+
$$renderer2.push(`Your Docker daemon runs on <strong>${$28.escape(dockerArch)}</strong> \u2014 pick an image that publishes
|
|
1299
|
+
an <strong>${$28.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
|
|
1248
1300
|
} else {
|
|
1249
1301
|
$$renderer2.push("<!--[-1-->");
|
|
1250
1302
|
$$renderer2.push(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
|
|
@@ -1253,7 +1305,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1253
1305
|
$$renderer2.push(`<!--]--></div> `);
|
|
1254
1306
|
if (imageError) {
|
|
1255
1307
|
$$renderer2.push("<!--[0-->");
|
|
1256
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1308
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(imageError)}</div>`);
|
|
1257
1309
|
} else if (imageSaved) {
|
|
1258
1310
|
$$renderer2.push("<!--[1-->");
|
|
1259
1311
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1264,7 +1316,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1264
1316
|
Folder_minus($$renderer2, { size: 20 });
|
|
1265
1317
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Skip when copying a local folder</div> <div class="desc svelte-1n6ht58">Comma-separated folder/file names excluded when copying a local source folder into a
|
|
1266
1318
|
new instance's workspace. Leave blank to copy everything. Only applies to local
|
|
1267
|
-
folders \u2014 cloning a Git repo URL is unaffected.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="patterns" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.attr("value", copyIgnore)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> `);
|
|
1268
1320
|
Button($$renderer2, {
|
|
1269
1321
|
type: "submit",
|
|
1270
1322
|
disabled: savingCopyIgnore,
|
|
@@ -1279,13 +1331,13 @@ function SettingsView($$renderer, $$props) {
|
|
|
1279
1331
|
icon: Rotate_ccw,
|
|
1280
1332
|
disabled: savingCopyIgnore,
|
|
1281
1333
|
onclick: resetCopyIgnore,
|
|
1282
|
-
title: `Reset to default (${$
|
|
1334
|
+
title: `Reset to default (${$28.stringify(builtinCopyIgnore)})`,
|
|
1283
1335
|
"aria-label": "Reset to default copy-ignore patterns"
|
|
1284
1336
|
});
|
|
1285
1337
|
$$renderer2.push(`<!----></div> `);
|
|
1286
1338
|
if (copyIgnoreError) {
|
|
1287
1339
|
$$renderer2.push("<!--[0-->");
|
|
1288
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1340
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(copyIgnoreError)}</div>`);
|
|
1289
1341
|
} else if (copyIgnoreSaved) {
|
|
1290
1342
|
$$renderer2.push("<!--[1-->");
|
|
1291
1343
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1296,10 +1348,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1296
1348
|
User_cog($$renderer2, { size: 20 });
|
|
1297
1349
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override git identity</div> <div class="desc svelte-1n6ht58">Inject a name and email as <code class="svelte-1n6ht58">git config --global user.name/user.email</code> in every
|
|
1298
1350
|
new container, taking precedence over the host's own git config. When off, each container
|
|
1299
|
-
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1351
|
+
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", gitIdentity, true)}${$28.attr("disabled", savingGitToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1300
1352
|
if (gitToggleError) {
|
|
1301
1353
|
$$renderer2.push("<!--[0-->");
|
|
1302
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1354
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(gitToggleError)}</div></div>`);
|
|
1303
1355
|
} else {
|
|
1304
1356
|
$$renderer2.push("<!--[-1-->");
|
|
1305
1357
|
}
|
|
@@ -1307,7 +1359,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1307
1359
|
if (gitIdentity) {
|
|
1308
1360
|
$$renderer2.push("<!--[0-->");
|
|
1309
1361
|
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/gitIdentityOverride"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Identity</div> <div class="desc svelte-1n6ht58">Both fields are required \u2014 leave either blank and the container falls back to the
|
|
1310
|
-
host's identity.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Name</span> <input type="text" name="name" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.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"${$28.attr("value", gitEmail)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="jane@example.com"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1311
1363
|
Button($$renderer2, {
|
|
1312
1364
|
type: "submit",
|
|
1313
1365
|
disabled: savingGitIdentity,
|
|
@@ -1319,7 +1371,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1319
1371
|
$$renderer2.push(`<!----></div></div> `);
|
|
1320
1372
|
if (gitIdentityError) {
|
|
1321
1373
|
$$renderer2.push("<!--[0-->");
|
|
1322
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1374
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(gitIdentityError)}</div>`);
|
|
1323
1375
|
} else if (gitIdentitySaved) {
|
|
1324
1376
|
$$renderer2.push("<!--[1-->");
|
|
1325
1377
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -1333,10 +1385,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1333
1385
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58">`);
|
|
1334
1386
|
Layers($$renderer2, { size: 20 });
|
|
1335
1387
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Disable build cache</div> <div class="desc svelte-1n6ht58">Build every new container with <code class="svelte-1n6ht58">--build-no-cache</code>. Applies to first boot
|
|
1336
|
-
and rebuilds \u2014 slower, but always picks up upstream image/layer changes.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
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"${$28.attr("checked", noCache, true)}${$28.attr("disabled", savingCache, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1337
1389
|
if (cacheError) {
|
|
1338
1390
|
$$renderer2.push("<!--[0-->");
|
|
1339
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1391
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(cacheError)}</div></div>`);
|
|
1340
1392
|
} else {
|
|
1341
1393
|
$$renderer2.push("<!--[-1-->");
|
|
1342
1394
|
}
|
|
@@ -1346,10 +1398,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1346
1398
|
remove pulled images.</div> `);
|
|
1347
1399
|
if (clearError) {
|
|
1348
1400
|
$$renderer2.push("<!--[0-->");
|
|
1349
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1401
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(clearError)}</div>`);
|
|
1350
1402
|
} else if (clearMsg) {
|
|
1351
1403
|
$$renderer2.push("<!--[1-->");
|
|
1352
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1404
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(clearMsg)}</div>`);
|
|
1353
1405
|
} else {
|
|
1354
1406
|
$$renderer2.push("<!--[-1-->");
|
|
1355
1407
|
}
|
|
@@ -1359,7 +1411,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1359
1411
|
icon: Trash_2,
|
|
1360
1412
|
disabled: clearing,
|
|
1361
1413
|
children: ($$renderer3) => {
|
|
1362
|
-
$$renderer3.push(`<!---->${$
|
|
1414
|
+
$$renderer3.push(`<!---->${$28.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
|
|
1363
1415
|
},
|
|
1364
1416
|
$$slots: { default: true }
|
|
1365
1417
|
});
|
|
@@ -1369,10 +1421,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1369
1421
|
layers. In-container edits are kept; stopped instances are left alone.</div> `);
|
|
1370
1422
|
if (rebuildError) {
|
|
1371
1423
|
$$renderer2.push("<!--[0-->");
|
|
1372
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1424
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(rebuildError)}</div>`);
|
|
1373
1425
|
} else if (rebuildMsg) {
|
|
1374
1426
|
$$renderer2.push("<!--[1-->");
|
|
1375
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1427
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(rebuildMsg)}</div>`);
|
|
1376
1428
|
} else {
|
|
1377
1429
|
$$renderer2.push("<!--[-1-->");
|
|
1378
1430
|
}
|
|
@@ -1382,11 +1434,11 @@ function SettingsView($$renderer, $$props) {
|
|
|
1382
1434
|
icon: Hammer,
|
|
1383
1435
|
disabled: rebuilding,
|
|
1384
1436
|
children: ($$renderer3) => {
|
|
1385
|
-
$$renderer3.push(`<!---->${$
|
|
1437
|
+
$$renderer3.push(`<!---->${$28.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
|
|
1386
1438
|
},
|
|
1387
1439
|
$$slots: { default: true }
|
|
1388
1440
|
});
|
|
1389
|
-
$$renderer2.push(`<!----></form></section> <section${$
|
|
1441
|
+
$$renderer2.push(`<!----></form></section> <section${$28.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58">`);
|
|
1390
1442
|
Key_round($$renderer2, { size: 20 });
|
|
1391
1443
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually `);
|
|
1392
1444
|
if (customEndpoint) {
|
|
@@ -1407,10 +1459,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1407
1459
|
token set here is injected into every new container and overrides host credential
|
|
1408
1460
|
discovery.`);
|
|
1409
1461
|
}
|
|
1410
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1462
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", manualTokens, true)}${$28.attr("disabled", savingManualToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1411
1463
|
if (manualToggleError) {
|
|
1412
1464
|
$$renderer2.push("<!--[0-->");
|
|
1413
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1465
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(manualToggleError)}</div></div>`);
|
|
1414
1466
|
} else {
|
|
1415
1467
|
$$renderer2.push("<!--[-1-->");
|
|
1416
1468
|
}
|
|
@@ -1418,7 +1470,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1418
1470
|
if (manualTokens && !customEndpoint) {
|
|
1419
1471
|
$$renderer2.push("<!--[0-->");
|
|
1420
1472
|
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/githubToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">GitHub token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">gh auth token</code> to print your GitHub CLI token, or
|
|
1421
|
-
create a Personal Access Token at <code class="svelte-1n6ht58">github.com/settings/tokens</code> (scopes: <code class="svelte-1n6ht58">repo</code>, <code class="svelte-1n6ht58">read:org</code>). Leave blank and Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="githubToken" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.attr("value", githubToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$28.attr("placeholder", ghSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "ghp_\u2026 / gho_\u2026")}/> `);
|
|
1422
1474
|
Button($$renderer2, {
|
|
1423
1475
|
type: "submit",
|
|
1424
1476
|
disabled: savingGithub,
|
|
@@ -1430,17 +1482,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1430
1482
|
$$renderer2.push(`<!----></div> `);
|
|
1431
1483
|
if (githubError) {
|
|
1432
1484
|
$$renderer2.push("<!--[0-->");
|
|
1433
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1485
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(githubError)}</div>`);
|
|
1434
1486
|
} else if (githubMsg) {
|
|
1435
1487
|
$$renderer2.push("<!--[1-->");
|
|
1436
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1488
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(githubMsg)}</div>`);
|
|
1437
1489
|
} else {
|
|
1438
1490
|
$$renderer2.push("<!--[-1-->");
|
|
1439
1491
|
}
|
|
1440
1492
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/claudeToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude Code token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">claude setup-token</code> to mint a long-lived token and
|
|
1441
1493
|
paste it here. Copying a live login out of the keychain or <code class="svelte-1n6ht58">~/.claude/.credentials.json</code> works too, but that credential rotates \u2014
|
|
1442
1494
|
the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
|
|
1443
|
-
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$
|
|
1495
|
+
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$28.attr("value", claudeToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$28.attr("placeholder", claudeSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-ant-oat\u2026")}/> `);
|
|
1444
1496
|
Button($$renderer2, {
|
|
1445
1497
|
type: "submit",
|
|
1446
1498
|
disabled: savingClaude,
|
|
@@ -1452,10 +1504,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1452
1504
|
$$renderer2.push(`<!----></div> `);
|
|
1453
1505
|
if (claudeError) {
|
|
1454
1506
|
$$renderer2.push("<!--[0-->");
|
|
1455
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1507
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(claudeError)}</div>`);
|
|
1456
1508
|
} else if (claudeMsg) {
|
|
1457
1509
|
$$renderer2.push("<!--[1-->");
|
|
1458
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1510
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(claudeMsg)}</div>`);
|
|
1459
1511
|
} else {
|
|
1460
1512
|
$$renderer2.push("<!--[-1-->");
|
|
1461
1513
|
}
|
|
@@ -1463,19 +1515,19 @@ function SettingsView($$renderer, $$props) {
|
|
|
1463
1515
|
} else {
|
|
1464
1516
|
$$renderer2.push("<!--[-1-->");
|
|
1465
1517
|
}
|
|
1466
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1518
|
+
$$renderer2.push(`<!--]--></section> <section${$28.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": litellmBlocker() })}><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58">`);
|
|
1467
1519
|
Key_round($$renderer2, { size: 20 });
|
|
1468
1520
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock `);
|
|
1469
1521
|
if (litellmBlocker()) {
|
|
1470
1522
|
$$renderer2.push("<!--[0-->");
|
|
1471
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$
|
|
1523
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$28.attr("title", `Disabled while ${$28.stringify(litellmBlocker())} is on`)}>disabled</span>`);
|
|
1472
1524
|
} else {
|
|
1473
1525
|
$$renderer2.push("<!--[-1-->");
|
|
1474
1526
|
}
|
|
1475
1527
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
|
|
1476
1528
|
if (litellmBlocker()) {
|
|
1477
1529
|
$$renderer2.push("<!--[0-->");
|
|
1478
|
-
$$renderer2.push(`Not available while "${$
|
|
1530
|
+
$$renderer2.push(`Not available while "${$28.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
|
|
1479
1531
|
incompatible.`);
|
|
1480
1532
|
} else {
|
|
1481
1533
|
$$renderer2.push("<!--[-1-->");
|
|
@@ -1483,17 +1535,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1483
1535
|
default API. When enabled, the Bedrock endpoint variables are injected into every new
|
|
1484
1536
|
container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`);
|
|
1485
1537
|
}
|
|
1486
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1538
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", customEndpoint, true)}${$28.attr("disabled", savingCustomToggle || !!litellmBlocker(), true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1487
1539
|
if (customToggleError) {
|
|
1488
1540
|
$$renderer2.push("<!--[0-->");
|
|
1489
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1541
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(customToggleError)}</div></div>`);
|
|
1490
1542
|
} else {
|
|
1491
1543
|
$$renderer2.push("<!--[-1-->");
|
|
1492
1544
|
}
|
|
1493
1545
|
$$renderer2.push(`<!--]--> `);
|
|
1494
1546
|
if (customEndpoint) {
|
|
1495
1547
|
$$renderer2.push("<!--[0-->");
|
|
1496
|
-
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customBaseUrl"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Base URL</div> <div class="desc svelte-1n6ht58">The LiteLLM proxy endpoint, e.g. <code class="svelte-1n6ht58">https://litellm.example.com/bedrock</code>. Passed as <code class="svelte-1n6ht58">ANTHROPIC_BEDROCK_BASE_URL</code>.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="baseUrl" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.attr("value", customBaseUrl)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> `);
|
|
1497
1549
|
Button($$renderer2, {
|
|
1498
1550
|
type: "submit",
|
|
1499
1551
|
disabled: savingCustomBaseUrl,
|
|
@@ -1505,15 +1557,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1505
1557
|
$$renderer2.push(`<!----></div> `);
|
|
1506
1558
|
if (customBaseUrlError) {
|
|
1507
1559
|
$$renderer2.push("<!--[0-->");
|
|
1508
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1560
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(customBaseUrlError)}</div>`);
|
|
1509
1561
|
} else if (customBaseUrlMsg) {
|
|
1510
1562
|
$$renderer2.push("<!--[1-->");
|
|
1511
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1563
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(customBaseUrlMsg)}</div>`);
|
|
1512
1564
|
} else {
|
|
1513
1565
|
$$renderer2.push("<!--[-1-->");
|
|
1514
1566
|
}
|
|
1515
1567
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Auth token</div> <div class="desc svelte-1n6ht58">Your LiteLLM API key. Passed as <code class="svelte-1n6ht58">ANTHROPIC_AUTH_TOKEN</code>. Leave blank and
|
|
1516
|
-
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$
|
|
1568
|
+
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$28.attr("value", customToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$28.attr("placeholder", customTokenSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-\u2026")}/> `);
|
|
1517
1569
|
Button($$renderer2, {
|
|
1518
1570
|
type: "submit",
|
|
1519
1571
|
disabled: savingCustomToken,
|
|
@@ -1525,15 +1577,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1525
1577
|
$$renderer2.push(`<!----></div> `);
|
|
1526
1578
|
if (customTokenError) {
|
|
1527
1579
|
$$renderer2.push("<!--[0-->");
|
|
1528
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1580
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(customTokenError)}</div>`);
|
|
1529
1581
|
} else if (customTokenMsg) {
|
|
1530
1582
|
$$renderer2.push("<!--[1-->");
|
|
1531
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1583
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(customTokenMsg)}</div>`);
|
|
1532
1584
|
} else {
|
|
1533
1585
|
$$renderer2.push("<!--[-1-->");
|
|
1534
1586
|
}
|
|
1535
1587
|
$$renderer2.push(`<!--]--></form> <form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">Model aliases to use for each tier. Prefilled with defaults from the reference
|
|
1536
|
-
launcher script. Leave a field as-is to keep its current value.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.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"${$28.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"${$28.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"${$28.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"${$28.attr("value", customDefaultModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1537
1589
|
Button($$renderer2, {
|
|
1538
1590
|
type: "submit",
|
|
1539
1591
|
disabled: savingCustomModels,
|
|
@@ -1545,10 +1597,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1545
1597
|
$$renderer2.push(`<!----></div></div> `);
|
|
1546
1598
|
if (customModelsError) {
|
|
1547
1599
|
$$renderer2.push("<!--[0-->");
|
|
1548
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1600
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(customModelsError)}</div>`);
|
|
1549
1601
|
} else if (customModelsMsg) {
|
|
1550
1602
|
$$renderer2.push("<!--[1-->");
|
|
1551
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1603
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(customModelsMsg)}</div>`);
|
|
1552
1604
|
} else {
|
|
1553
1605
|
$$renderer2.push("<!--[-1-->");
|
|
1554
1606
|
}
|
|
@@ -1556,7 +1608,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1556
1608
|
} else {
|
|
1557
1609
|
$$renderer2.push("<!--[-1-->");
|
|
1558
1610
|
}
|
|
1559
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1611
|
+
$$renderer2.push(`<!--]--></section> <section${$28.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualModelToggle"><div class="label svelte-1n6ht58">`);
|
|
1560
1612
|
Cpu($$renderer2, { size: 18 });
|
|
1561
1613
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override models manually `);
|
|
1562
1614
|
if (customEndpoint) {
|
|
@@ -1575,17 +1627,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1575
1627
|
$$renderer2.push(`Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
|
|
1576
1628
|
the fields you fill are injected into new containers as <code class="svelte-1n6ht58">ANTHROPIC_*_MODEL</code> variables; blanks fall through to Claude Code's own defaults.`);
|
|
1577
1629
|
}
|
|
1578
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1630
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", manualModelOverride, true)}${$28.attr("disabled", savingManualModelToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1579
1631
|
if (manualModelToggleError) {
|
|
1580
1632
|
$$renderer2.push("<!--[0-->");
|
|
1581
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1633
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(manualModelToggleError)}</div></div>`);
|
|
1582
1634
|
} else {
|
|
1583
1635
|
$$renderer2.push("<!--[-1-->");
|
|
1584
1636
|
}
|
|
1585
1637
|
$$renderer2.push(`<!--]--> `);
|
|
1586
1638
|
if (manualModelOverride) {
|
|
1587
1639
|
$$renderer2.push("<!--[0-->");
|
|
1588
|
-
$$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/manualModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">A model name or alias per tier, e.g. <code class="svelte-1n6ht58">opusplan</code>, <code class="svelte-1n6ht58">opus</code>, <code class="svelte-1n6ht58">sonnet</code>, or a full <code class="svelte-1n6ht58">claude-\u2026</code> id. Leave a field blank to skip it.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$
|
|
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"${$28.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"${$28.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"${$28.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"${$28.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"${$28.attr("value", manualDefault)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1589
1641
|
Button($$renderer2, {
|
|
1590
1642
|
type: "submit",
|
|
1591
1643
|
disabled: savingManualModels,
|
|
@@ -1597,10 +1649,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1597
1649
|
$$renderer2.push(`<!----></div></div> `);
|
|
1598
1650
|
if (manualModelsError) {
|
|
1599
1651
|
$$renderer2.push("<!--[0-->");
|
|
1600
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1652
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(manualModelsError)}</div>`);
|
|
1601
1653
|
} else if (manualModelsMsg) {
|
|
1602
1654
|
$$renderer2.push("<!--[1-->");
|
|
1603
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1655
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(manualModelsMsg)}</div>`);
|
|
1604
1656
|
} else {
|
|
1605
1657
|
$$renderer2.push("<!--[-1-->");
|
|
1606
1658
|
}
|
|
@@ -1612,10 +1664,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1612
1664
|
Variable($$renderer2, { size: 20 });
|
|
1613
1665
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Host environment variables</div> <div class="desc svelte-1n6ht58">Forward selected environment variables from this machine into every new container's
|
|
1614
1666
|
interactive shells. Values are read from this process's own environment at container
|
|
1615
|
-
start and are never shown here or stored \u2014 only the variable names are saved.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
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"${$28.attr("checked", hostEnvVars, true)}${$28.attr("disabled", savingHostEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1616
1668
|
if (hostEnvToggleError) {
|
|
1617
1669
|
$$renderer2.push("<!--[0-->");
|
|
1618
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1670
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(hostEnvToggleError)}</div></div>`);
|
|
1619
1671
|
} else {
|
|
1620
1672
|
$$renderer2.push("<!--[-1-->");
|
|
1621
1673
|
}
|
|
@@ -1623,18 +1675,18 @@ function SettingsView($$renderer, $$props) {
|
|
|
1623
1675
|
if (hostEnvVars) {
|
|
1624
1676
|
$$renderer2.push("<!--[0-->");
|
|
1625
1677
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1626
|
-
const
|
|
1627
|
-
if (
|
|
1678
|
+
const each_array_3 = $28.ensure_array_like(hostEnvNames);
|
|
1679
|
+
if (each_array_3.length !== 0) {
|
|
1628
1680
|
$$renderer2.push("<!--[-->");
|
|
1629
|
-
for (let $$
|
|
1630
|
-
let name =
|
|
1681
|
+
for (let $$index_4 = 0, $$length = each_array_3.length;$$index_4 < $$length; $$index_4++) {
|
|
1682
|
+
let name = each_array_3[$$index_4];
|
|
1631
1683
|
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1632
|
-
const
|
|
1633
|
-
for (let $$
|
|
1634
|
-
let other =
|
|
1635
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1684
|
+
const each_array_4 = $28.ensure_array_like(hostEnvNames.filter((n) => n !== name));
|
|
1685
|
+
for (let $$index_3 = 0, $$length2 = each_array_4.length;$$index_3 < $$length2; $$index_3++) {
|
|
1686
|
+
let other = each_array_4[$$index_3];
|
|
1687
|
+
$$renderer2.push(`<input type="hidden" name="names"${$28.attr("value", other)}/>`);
|
|
1636
1688
|
}
|
|
1637
|
-
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$
|
|
1689
|
+
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$28.escape(name)}</span> <span${$28.attr_class("var-status svelte-1n6ht58", undefined, { present: hostEnvPresence[name] })}${$28.attr("title", hostEnvPresence[name] ? "Set on this host \u2014 will be injected" : "Not set on this host \u2014 will be skipped")}>${$28.escape(hostEnvPresence[name] ? "set" : "missing")}</span> <button type="submit" class="var-remove svelte-1n6ht58"${$28.attr("disabled", savingHostEnvNames, true)}${$28.attr("aria-label", `Remove ${name}`)}>`);
|
|
1638
1690
|
X($$renderer2, { size: 13 });
|
|
1639
1691
|
$$renderer2.push(`<!----></button></form>`);
|
|
1640
1692
|
}
|
|
@@ -1643,12 +1695,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1643
1695
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1644
1696
|
}
|
|
1645
1697
|
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1646
|
-
const
|
|
1647
|
-
for (let $$
|
|
1648
|
-
let name =
|
|
1649
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1698
|
+
const each_array_5 = $28.ensure_array_like(hostEnvNames);
|
|
1699
|
+
for (let $$index_5 = 0, $$length = each_array_5.length;$$index_5 < $$length; $$index_5++) {
|
|
1700
|
+
let name = each_array_5[$$index_5];
|
|
1701
|
+
$$renderer2.push(`<input type="hidden" name="names"${$28.attr("value", name)}/>`);
|
|
1650
1702
|
}
|
|
1651
|
-
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$
|
|
1703
|
+
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$28.attr("value", newHostEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> `);
|
|
1652
1704
|
Button($$renderer2, {
|
|
1653
1705
|
type: "submit",
|
|
1654
1706
|
icon: Plus,
|
|
@@ -1661,10 +1713,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1661
1713
|
$$renderer2.push(`<!----></form> `);
|
|
1662
1714
|
if (hostEnvNamesError) {
|
|
1663
1715
|
$$renderer2.push("<!--[0-->");
|
|
1664
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1716
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(hostEnvNamesError)}</div>`);
|
|
1665
1717
|
} else if (hostEnvNamesMsg) {
|
|
1666
1718
|
$$renderer2.push("<!--[1-->");
|
|
1667
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1719
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(hostEnvNamesMsg)}</div>`);
|
|
1668
1720
|
} else {
|
|
1669
1721
|
$$renderer2.push("<!--[-1-->");
|
|
1670
1722
|
}
|
|
@@ -1676,10 +1728,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1676
1728
|
Key_square($$renderer2, { size: 20 });
|
|
1677
1729
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Custom environment variables</div> <div class="desc svelte-1n6ht58">Inject your own <code class="svelte-1n6ht58">NAME=value</code> pairs into every new container as <code class="svelte-1n6ht58">containerEnv</code>, available to all processes. Values are secret \u2014 stored
|
|
1678
1730
|
locally, masked in the build log, and never shown here after saving. Re-add a name to
|
|
1679
|
-
update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1731
|
+
update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", customEnvEnabled, true)}${$28.attr("disabled", savingCustomEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1680
1732
|
if (customEnvToggleError) {
|
|
1681
1733
|
$$renderer2.push("<!--[0-->");
|
|
1682
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1734
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(customEnvToggleError)}</div></div>`);
|
|
1683
1735
|
} else {
|
|
1684
1736
|
$$renderer2.push("<!--[-1-->");
|
|
1685
1737
|
}
|
|
@@ -1687,12 +1739,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1687
1739
|
if (customEnvEnabled) {
|
|
1688
1740
|
$$renderer2.push("<!--[0-->");
|
|
1689
1741
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1690
|
-
const
|
|
1691
|
-
if (
|
|
1742
|
+
const each_array_6 = $28.ensure_array_like(customEnvNames);
|
|
1743
|
+
if (each_array_6.length !== 0) {
|
|
1692
1744
|
$$renderer2.push("<!--[-->");
|
|
1693
|
-
for (let $$
|
|
1694
|
-
let name =
|
|
1695
|
-
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$
|
|
1745
|
+
for (let $$index_6 = 0, $$length = each_array_6.length;$$index_6 < $$length; $$index_6++) {
|
|
1746
|
+
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"${$28.attr("value", name)}/> <span class="var-name svelte-1n6ht58">${$28.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"${$28.attr("disabled", savingCustomEnv, true)}${$28.attr("aria-label", `Remove ${name}`)}>`);
|
|
1696
1748
|
X($$renderer2, { size: 13 });
|
|
1697
1749
|
$$renderer2.push(`<!----></button></form>`);
|
|
1698
1750
|
}
|
|
@@ -1700,7 +1752,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1700
1752
|
$$renderer2.push("<!--[!-->");
|
|
1701
1753
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1702
1754
|
}
|
|
1703
|
-
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$
|
|
1755
|
+
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$28.attr("value", newCustomEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="MY_SECRET"/> <input type="password" name="value" class="image-input svelte-1n6ht58"${$28.attr("value", newCustomEnvValue)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="value"/> `);
|
|
1704
1756
|
Button($$renderer2, {
|
|
1705
1757
|
type: "submit",
|
|
1706
1758
|
icon: Plus,
|
|
@@ -1713,10 +1765,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1713
1765
|
$$renderer2.push(`<!----></form> `);
|
|
1714
1766
|
if (customEnvError) {
|
|
1715
1767
|
$$renderer2.push("<!--[0-->");
|
|
1716
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1768
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(customEnvError)}</div>`);
|
|
1717
1769
|
} else if (customEnvMsg) {
|
|
1718
1770
|
$$renderer2.push("<!--[1-->");
|
|
1719
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1771
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(customEnvMsg)}</div>`);
|
|
1720
1772
|
} else {
|
|
1721
1773
|
$$renderer2.push("<!--[-1-->");
|
|
1722
1774
|
}
|
|
@@ -1730,15 +1782,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1730
1782
|
ThemePicker($$renderer2, {});
|
|
1731
1783
|
$$renderer2.push(`<!----></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1732
1784
|
Volume_2($$renderer2, { size: 20 });
|
|
1733
|
-
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Attention sound</div> <div class="desc svelte-1n6ht58">Play a chime when an instance finishes a task or needs your input.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$
|
|
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"${$28.attr("checked", sound, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1734
1786
|
Keyboard($$renderer2, { size: 20 });
|
|
1735
1787
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Tab keyboard shortcuts</div> <div class="desc svelte-1n6ht58">Jump between open instance tabs with <code class="svelte-1n6ht58">Alt</code>+<code class="svelte-1n6ht58">1</code>\u2013<code class="svelte-1n6ht58">9</code> (9 is
|
|
1736
|
-
always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$
|
|
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"${$28.attr("checked", tabShortcuts, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/petToggle"><div class="label svelte-1n6ht58">`);
|
|
1737
1789
|
Paw_print($$renderer2, { size: 18 });
|
|
1738
|
-
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Pet logo</div> <div class="desc svelte-1n6ht58">Swap the box in the header for a pixel pet.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
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"${$28.attr("checked", !!petArt, true)}${$28.attr("disabled", savingPet, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1739
1791
|
if (petError) {
|
|
1740
1792
|
$$renderer2.push("<!--[0-->");
|
|
1741
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1793
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(petError)}</div></div>`);
|
|
1742
1794
|
} else {
|
|
1743
1795
|
$$renderer2.push("<!--[-1-->");
|
|
1744
1796
|
}
|
|
@@ -1746,10 +1798,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1746
1798
|
if (petArt) {
|
|
1747
1799
|
$$renderer2.push("<!--[0-->");
|
|
1748
1800
|
$$renderer2.push(`<div class="sub pets svelte-1n6ht58"><!--[-->`);
|
|
1749
|
-
const
|
|
1750
|
-
for (let $$
|
|
1751
|
-
let art =
|
|
1752
|
-
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$
|
|
1801
|
+
const each_array_7 = $28.ensure_array_like(avatars);
|
|
1802
|
+
for (let $$index_7 = 0, $$length = each_array_7.length;$$index_7 < $$length; $$index_7++) {
|
|
1803
|
+
let art = each_array_7[$$index_7];
|
|
1804
|
+
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$28.attr("value", art.name)}/> <button type="submit"${$28.attr_class("pet svelte-1n6ht58", undefined, { selected: art.name === petArt.name })}${$28.attr("disabled", savingPet, true)}${$28.attr("title", art.name)}${$28.attr("aria-label", art.name)}${$28.attr("aria-pressed", art.name === petArt.name)}>`);
|
|
1753
1805
|
Avatar($$renderer2, { art, name: art.name, scale: 4 });
|
|
1754
1806
|
$$renderer2.push(`<!----></button></form>`);
|
|
1755
1807
|
}
|
|
@@ -1762,30 +1814,30 @@ function SettingsView($$renderer, $$props) {
|
|
|
1762
1814
|
$$renderer2.push(`<!----> <span class="name svelte-1n6ht58">Advanced</span> <span class="hint svelte-1n6ht58">escape hatches \u2014 defaults are right for almost everyone</span></summary> <form class="row divided svelte-1n6ht58" method="POST" action="?/serialInjectionsToggle"><div class="label svelte-1n6ht58">`);
|
|
1763
1815
|
List_ordered($$renderer2, { size: 20 });
|
|
1764
1816
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Serial boot injections</div> <div class="desc svelte-1n6ht58">Run boot injections one at a time instead of in parallel stages. Slower boot; useful
|
|
1765
|
-
when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1817
|
+
when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", serialInjections, true)}${$28.attr("disabled", savingSerial, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1766
1818
|
if (serialError) {
|
|
1767
1819
|
$$renderer2.push("<!--[0-->");
|
|
1768
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1820
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(serialError)}</div></div>`);
|
|
1769
1821
|
} else {
|
|
1770
1822
|
$$renderer2.push("<!--[-1-->");
|
|
1771
1823
|
}
|
|
1772
1824
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/noBuildkitToggle"><div class="label svelte-1n6ht58">`);
|
|
1773
1825
|
Boxes($$renderer2, { size: 20 });
|
|
1774
1826
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Don't force BuildKit</div> <div class="desc svelte-1n6ht58">Skip setting <code class="svelte-1n6ht58">DOCKER_BUILDKIT=1</code> for container builds and let the daemon's
|
|
1775
|
-
default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1827
|
+
default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", noBuildkit, true)}${$28.attr("disabled", savingBuildkit, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1776
1828
|
if (buildkitError) {
|
|
1777
1829
|
$$renderer2.push("<!--[0-->");
|
|
1778
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1830
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(buildkitError)}</div></div>`);
|
|
1779
1831
|
} else {
|
|
1780
1832
|
$$renderer2.push("<!--[-1-->");
|
|
1781
1833
|
}
|
|
1782
1834
|
$$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/blockingExtInstallToggle"><div class="label svelte-1n6ht58">`);
|
|
1783
1835
|
Puzzle($$renderer2, { size: 20 });
|
|
1784
1836
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Blocking IDE extension install</div> <div class="desc svelte-1n6ht58">Install the Claude Code IDE extension before code-server starts, so the first window
|
|
1785
|
-
always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1837
|
+
always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$28.attr("checked", blockingExtInstall, true)}${$28.attr("disabled", savingBlocking, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1786
1838
|
if (blockingError) {
|
|
1787
1839
|
$$renderer2.push("<!--[0-->");
|
|
1788
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1840
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$28.escape(blockingError)}</div></div>`);
|
|
1789
1841
|
} else {
|
|
1790
1842
|
$$renderer2.push("<!--[-1-->");
|
|
1791
1843
|
}
|
|
@@ -1795,10 +1847,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1795
1847
|
again.</div> `);
|
|
1796
1848
|
if (verError) {
|
|
1797
1849
|
$$renderer2.push("<!--[0-->");
|
|
1798
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1850
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$28.escape(verError)}</div>`);
|
|
1799
1851
|
} else if (verMsg) {
|
|
1800
1852
|
$$renderer2.push("<!--[1-->");
|
|
1801
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1853
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$28.escape(verMsg)}</div>`);
|
|
1802
1854
|
} else {
|
|
1803
1855
|
$$renderer2.push("<!--[-1-->");
|
|
1804
1856
|
}
|
|
@@ -1808,7 +1860,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1808
1860
|
icon: Trash_2,
|
|
1809
1861
|
disabled: clearingVer,
|
|
1810
1862
|
children: ($$renderer3) => {
|
|
1811
|
-
$$renderer3.push(`<!---->${$
|
|
1863
|
+
$$renderer3.push(`<!---->${$28.escape(clearingVer ? "Clearing\u2026" : "Clear cache")}`);
|
|
1812
1864
|
},
|
|
1813
1865
|
$$slots: { default: true }
|
|
1814
1866
|
});
|
|
@@ -1832,7 +1884,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1832
1884
|
}
|
|
1833
1885
|
$$renderer2.push(`<!--]--></form></section> `);
|
|
1834
1886
|
CoinButton($$renderer2, {});
|
|
1835
|
-
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$
|
|
1887
|
+
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$28.escape(version)}</div></main></div> `);
|
|
1836
1888
|
Toaster($$renderer2, { toastOptions: TOAST_OPTIONS });
|
|
1837
1889
|
$$renderer2.push(`<!---->`);
|
|
1838
1890
|
});
|
|
@@ -1846,6 +1898,7 @@ function Settings($$renderer, $$props) {
|
|
|
1846
1898
|
defaultMode,
|
|
1847
1899
|
claudePermissionMode,
|
|
1848
1900
|
claudeEffortLevel,
|
|
1901
|
+
claudeOutputStyle,
|
|
1849
1902
|
defaultImage,
|
|
1850
1903
|
builtinImage,
|
|
1851
1904
|
disableBuildCache,
|
|
@@ -1884,7 +1937,7 @@ function Settings($$renderer, $$props) {
|
|
|
1884
1937
|
} = $$props;
|
|
1885
1938
|
if (true) {
|
|
1886
1939
|
let failed = function($$renderer3, error) {
|
|
1887
|
-
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$
|
|
1940
|
+
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$29.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
1888
1941
|
};
|
|
1889
1942
|
$$renderer2.push("<!--[0-->");
|
|
1890
1943
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -1892,11 +1945,12 @@ function Settings($$renderer, $$props) {
|
|
|
1892
1945
|
{
|
|
1893
1946
|
HydratableBoundary($$renderer3, {
|
|
1894
1947
|
children: ($$renderer4) => {
|
|
1895
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$
|
|
1948
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$29.attr("props-ref", emitIslandProps({
|
|
1896
1949
|
pet,
|
|
1897
1950
|
defaultMode,
|
|
1898
1951
|
claudePermissionMode,
|
|
1899
1952
|
claudeEffortLevel,
|
|
1953
|
+
claudeOutputStyle,
|
|
1900
1954
|
defaultImage,
|
|
1901
1955
|
builtinImage,
|
|
1902
1956
|
disableBuildCache,
|
|
@@ -1940,6 +1994,7 @@ function Settings($$renderer, $$props) {
|
|
|
1940
1994
|
defaultMode,
|
|
1941
1995
|
claudePermissionMode,
|
|
1942
1996
|
claudeEffortLevel,
|
|
1997
|
+
claudeOutputStyle,
|
|
1943
1998
|
defaultImage,
|
|
1944
1999
|
builtinImage,
|
|
1945
2000
|
disableBuildCache,
|