codebay 0.8.0 → 0.9.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/import-css/xterm-1yy1hf1g.css +252 -0
- package/.mochi/manifest.json +330 -211
- package/.mochi/svelte-client/HydratableIsland-k6q8esj4.js +1 -0
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-sg96rp17.js +2 -0
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-92hepzby.js +14 -0
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-p3f649gk.js +1 -0
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-dzmgmv78.js +29 -0
- package/.mochi/svelte-client/chunk-2j95sv83.js +1 -0
- package/.mochi/svelte-client/chunk-6rbs0mhx.js +1 -0
- package/.mochi/svelte-client/chunk-7wkvn2vx.js +2 -0
- package/.mochi/svelte-client/chunk-a2psjmrm.js +2 -0
- package/.mochi/svelte-client/chunk-m497q88s.js +2 -0
- package/.mochi/svelte-client/{chunk-fqg2qzj8.js → chunk-m4fzsd5b.js} +1 -1
- package/.mochi/svelte-client/chunk-mpv3qx28.js +36 -0
- package/.mochi/svelte-client/chunk-rs41by6w.js +2 -0
- package/.mochi/svelte-client/{chunk-qj7zy2d9.js → chunk-v65n8th6.js} +4 -4
- package/.mochi/svelte-compile/{App-6rcf0d74.server.js → App-7vjcp38v.server.js} +368 -37
- package/.mochi/svelte-compile/{Avatars-pzyz0tv3.server.js → Avatars-e2cfc95t.server.js} +130 -25
- package/.mochi/svelte-compile/{ClientStats-z3tn9ad6.server.js → ClientStats-4cphmrnp.server.js} +1 -1
- package/.mochi/svelte-compile/{DefaultError-wh77vebf.server.js → DefaultError-je52k17d.server.js} +1 -1
- package/.mochi/svelte-compile/{Instance-49ksrp11.server.js → Instance-h78n2dsv.server.js} +16 -13
- package/.mochi/svelte-compile/{Settings-sz5d6qj7.server.js → Settings-tav2asn7.server.js} +153 -127
- package/.mochi/svelte-compile/{chunk-fpe16ywq.js → chunk-60mpagr9.js} +17 -7
- package/.mochi/svelte-compile/chunk-9nqc2r0y.js +9706 -0
- package/.mochi/svelte-compile/{chunk-6ghzacpg.js → chunk-bpqwf1nw.js} +36 -4
- package/.mochi/svelte-compile/chunk-jx6h1xzp.js +20 -0
- package/.mochi/svelte-compile/{chunk-q8rbesaw.js → chunk-m8ygpyhr.js} +5 -4
- package/.mochi/svelte-compile/chunk-rtdne1m8.js +31 -0
- package/.mochi/svelte-compile/{chunk-we0ggtws.js → chunk-xpt1a7jm.js} +2 -1
- package/.mochi/svelte-css/AvatarEditor-2mdq8ss346drw.css +1 -0
- package/.mochi/svelte-css/{AvatarsView-2ughbzc26luyb.css → AvatarsView-2llo48w0wt0xn.css} +1 -1
- package/.mochi/svelte-css/FolderBrowser-2pxp9z1o7zixk.css +1 -0
- package/.mochi/svelte-css/{IdeBar-2qoqi2ya9zdn3.css → IdeBar-10xodudcx57qr.css} +1 -1
- package/.mochi/svelte-css/{SettingsView-3uycxa8z548m4.css → SettingsView-2qfauz68axro1.css} +1 -1
- package/.mochi/svelte-css/TerminalPane-3bwgk6ulzq6b3.css +1 -0
- package/.mochi/svelte-css/TerminalSplit-2416xfuln89a3.css +1 -0
- package/migrations/0005_instance_mode.sql +1 -0
- package/migrations/0006_terminal_split.sql +1 -0
- package/package.json +3 -1
- package/src/avatars/serialize.ts +35 -6
- package/src/components/AppShell.svelte +46 -8
- package/src/components/Avatar.svelte +3 -2
- package/src/components/AvatarEditor.svelte +96 -19
- package/src/components/AvatarsView.svelte +0 -0
- package/src/components/DashboardView.svelte +22 -7
- package/src/components/FolderBrowser.svelte +88 -8
- package/src/components/HealthBox.svelte +12 -5
- package/src/components/IdeBar.svelte +10 -0
- package/src/components/InstanceCard.svelte +3 -1
- package/src/components/InstanceView.svelte +1 -0
- package/src/components/SettingsView.svelte +108 -0
- package/src/components/TerminalPane.svelte +274 -0
- package/src/components/TerminalSplit.svelte +154 -0
- package/src/container-injections/claude-code-ide-extension.ts +2 -0
- package/src/container-injections/ttyd.ts +49 -0
- package/src/lib/config.server.ts +3 -0
- package/src/lib/db.server.ts +14 -4
- package/src/lib/devcontainer.server.ts +136 -22
- package/src/lib/health.server.ts +1 -1
- package/src/lib/injections.server.ts +15 -5
- package/src/lib/instances.server.ts +64 -10
- package/src/lib/proxy.server.ts +87 -11
- package/src/pages/App.svelte +5 -3
- package/src/pages/Settings.svelte +4 -0
- package/src/routes.ts +55 -6
- package/src/types.ts +18 -0
- package/.mochi/svelte-client/HydratableIsland-qyjx1d98.js +0 -1
- package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-fkna7bj2.js +0 -2
- package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-89wtkb86.js +0 -13
- package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-eamnbyqk.js +0 -1
- package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-kdra4mcb.js +0 -28
- package/.mochi/svelte-client/chunk-330mrspw.js +0 -2
- package/.mochi/svelte-client/chunk-4jgkak13.js +0 -1
- package/.mochi/svelte-client/chunk-k5m4kt20.js +0 -2
- package/.mochi/svelte-client/chunk-rpdphch7.js +0 -2
- package/.mochi/svelte-compile/chunk-bacb4b0r.js +0 -14
- package/.mochi/svelte-css/AvatarEditor-2ewwtejaml4e2.css +0 -1
- package/.mochi/svelte-css/FolderBrowser-1x428zb3f2kti.css +0 -1
- /package/.mochi/svelte-compile/{chunk-btmcxhqy.js → chunk-brjv9pyd.js} +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
+
Layout_template,
|
|
3
4
|
Plus,
|
|
5
|
+
Terminal,
|
|
4
6
|
playChime,
|
|
5
7
|
setSoundEnabled,
|
|
6
8
|
soundEnabled,
|
|
7
9
|
unlockAudio
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-bpqwf1nw.js";
|
|
9
11
|
import {
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
Rotate_ccw
|
|
13
|
+
} from "./chunk-jx6h1xzp.js";
|
|
12
14
|
import {
|
|
13
15
|
AppBar,
|
|
14
16
|
Avatar,
|
|
@@ -16,22 +18,23 @@ import {
|
|
|
16
18
|
Toaster,
|
|
17
19
|
avatars,
|
|
18
20
|
findAvatar
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-m8ygpyhr.js";
|
|
20
22
|
import {
|
|
21
23
|
HydratableBoundary,
|
|
22
24
|
Icon,
|
|
25
|
+
X,
|
|
23
26
|
cookies,
|
|
24
27
|
emitIslandProps
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import"./chunk-
|
|
28
|
+
} from "./chunk-60mpagr9.js";
|
|
29
|
+
import"./chunk-xpt1a7jm.js";
|
|
27
30
|
|
|
28
31
|
// src/pages/Settings.svelte
|
|
29
32
|
import"svelte/internal/flags/async";
|
|
30
|
-
import * as $
|
|
33
|
+
import * as $20 from "svelte/internal/server";
|
|
31
34
|
|
|
32
35
|
// src/components/SettingsView.svelte
|
|
33
36
|
import"svelte/internal/flags/async";
|
|
34
|
-
import * as $
|
|
37
|
+
import * as $19 from "svelte/internal/server";
|
|
35
38
|
|
|
36
39
|
// node_modules/@lucide/svelte/dist/icons/container.svelte
|
|
37
40
|
import"svelte/internal/flags/async";
|
|
@@ -63,23 +66,9 @@ function Power($$renderer, $$props) {
|
|
|
63
66
|
];
|
|
64
67
|
Icon($$renderer, $2.spread_props([{ name: "power" }, props, { iconNode }]));
|
|
65
68
|
}
|
|
66
|
-
// node_modules/@lucide/svelte/dist/icons/rotate-ccw.svelte
|
|
67
|
-
import"svelte/internal/flags/async";
|
|
68
|
-
import * as $3 from "svelte/internal/server";
|
|
69
|
-
function Rotate_ccw($$renderer, $$props) {
|
|
70
|
-
let { $$slots, $$events, ...props } = $$props;
|
|
71
|
-
const iconNode = [
|
|
72
|
-
[
|
|
73
|
-
"path",
|
|
74
|
-
{ d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }
|
|
75
|
-
],
|
|
76
|
-
["path", { d: "M3 3v5h5" }]
|
|
77
|
-
];
|
|
78
|
-
Icon($$renderer, $3.spread_props([{ name: "rotate-ccw" }, props, { iconNode }]));
|
|
79
|
-
}
|
|
80
69
|
// node_modules/@lucide/svelte/dist/icons/volume-2.svelte
|
|
81
70
|
import"svelte/internal/flags/async";
|
|
82
|
-
import * as $
|
|
71
|
+
import * as $3 from "svelte/internal/server";
|
|
83
72
|
function Volume_2($$renderer, $$props) {
|
|
84
73
|
let { $$slots, $$events, ...props } = $$props;
|
|
85
74
|
const iconNode = [
|
|
@@ -92,11 +81,11 @@ function Volume_2($$renderer, $$props) {
|
|
|
92
81
|
["path", { d: "M16 9a5 5 0 0 1 0 6" }],
|
|
93
82
|
["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728" }]
|
|
94
83
|
];
|
|
95
|
-
Icon($$renderer, $
|
|
84
|
+
Icon($$renderer, $3.spread_props([{ name: "volume-2" }, props, { iconNode }]));
|
|
96
85
|
}
|
|
97
86
|
// node_modules/@lucide/svelte/dist/icons/paw-print.svelte
|
|
98
87
|
import"svelte/internal/flags/async";
|
|
99
|
-
import * as $
|
|
88
|
+
import * as $4 from "svelte/internal/server";
|
|
100
89
|
function Paw_print($$renderer, $$props) {
|
|
101
90
|
let { $$slots, $$events, ...props } = $$props;
|
|
102
91
|
const iconNode = [
|
|
@@ -110,11 +99,11 @@ function Paw_print($$renderer, $$props) {
|
|
|
110
99
|
}
|
|
111
100
|
]
|
|
112
101
|
];
|
|
113
|
-
Icon($$renderer, $
|
|
102
|
+
Icon($$renderer, $4.spread_props([{ name: "paw-print" }, props, { iconNode }]));
|
|
114
103
|
}
|
|
115
104
|
// node_modules/@lucide/svelte/dist/icons/sun-moon.svelte
|
|
116
105
|
import"svelte/internal/flags/async";
|
|
117
|
-
import * as $
|
|
106
|
+
import * as $5 from "svelte/internal/server";
|
|
118
107
|
function Sun_moon($$renderer, $$props) {
|
|
119
108
|
let { $$slots, $$events, ...props } = $$props;
|
|
120
109
|
const iconNode = [
|
|
@@ -129,15 +118,15 @@ function Sun_moon($$renderer, $$props) {
|
|
|
129
118
|
["path", { d: "m19 5-1.256 1.256" }],
|
|
130
119
|
["path", { d: "M20 12h2" }]
|
|
131
120
|
];
|
|
132
|
-
Icon($$renderer, $
|
|
121
|
+
Icon($$renderer, $5.spread_props([{ name: "sun-moon" }, props, { iconNode }]));
|
|
133
122
|
}
|
|
134
123
|
// src/components/ThemePicker.svelte
|
|
135
124
|
import"svelte/internal/flags/async";
|
|
136
|
-
import * as $
|
|
125
|
+
import * as $9 from "svelte/internal/server";
|
|
137
126
|
|
|
138
127
|
// node_modules/@lucide/svelte/dist/icons/sun.svelte
|
|
139
128
|
import"svelte/internal/flags/async";
|
|
140
|
-
import * as $
|
|
129
|
+
import * as $6 from "svelte/internal/server";
|
|
141
130
|
function Sun($$renderer, $$props) {
|
|
142
131
|
let { $$slots, $$events, ...props } = $$props;
|
|
143
132
|
const iconNode = [
|
|
@@ -151,11 +140,11 @@ function Sun($$renderer, $$props) {
|
|
|
151
140
|
["path", { d: "m6.34 17.66-1.41 1.41" }],
|
|
152
141
|
["path", { d: "m19.07 4.93-1.41 1.41" }]
|
|
153
142
|
];
|
|
154
|
-
Icon($$renderer, $
|
|
143
|
+
Icon($$renderer, $6.spread_props([{ name: "sun" }, props, { iconNode }]));
|
|
155
144
|
}
|
|
156
145
|
// node_modules/@lucide/svelte/dist/icons/moon.svelte
|
|
157
146
|
import"svelte/internal/flags/async";
|
|
158
|
-
import * as $
|
|
147
|
+
import * as $7 from "svelte/internal/server";
|
|
159
148
|
function Moon($$renderer, $$props) {
|
|
160
149
|
let { $$slots, $$events, ...props } = $$props;
|
|
161
150
|
const iconNode = [
|
|
@@ -166,11 +155,11 @@ function Moon($$renderer, $$props) {
|
|
|
166
155
|
}
|
|
167
156
|
]
|
|
168
157
|
];
|
|
169
|
-
Icon($$renderer, $
|
|
158
|
+
Icon($$renderer, $7.spread_props([{ name: "moon" }, props, { iconNode }]));
|
|
170
159
|
}
|
|
171
160
|
// node_modules/@lucide/svelte/dist/icons/monitor.svelte
|
|
172
161
|
import"svelte/internal/flags/async";
|
|
173
|
-
import * as $
|
|
162
|
+
import * as $8 from "svelte/internal/server";
|
|
174
163
|
function Monitor($$renderer, $$props) {
|
|
175
164
|
let { $$slots, $$events, ...props } = $$props;
|
|
176
165
|
const iconNode = [
|
|
@@ -181,7 +170,7 @@ function Monitor($$renderer, $$props) {
|
|
|
181
170
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21" }],
|
|
182
171
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21" }]
|
|
183
172
|
];
|
|
184
|
-
Icon($$renderer, $
|
|
173
|
+
Icon($$renderer, $8.spread_props([{ name: "monitor" }, props, { iconNode }]));
|
|
185
174
|
}
|
|
186
175
|
// src/theme.ts
|
|
187
176
|
var THEME_KEY = "theme";
|
|
@@ -214,10 +203,10 @@ function ThemePicker($$renderer, $$props) {
|
|
|
214
203
|
applyTheme(value);
|
|
215
204
|
}
|
|
216
205
|
$$renderer2.push(`<div class="picker svelte-3gcwuj" role="radiogroup" aria-label="Theme"><!--[-->`);
|
|
217
|
-
const each_array = $
|
|
206
|
+
const each_array = $9.ensure_array_like(options);
|
|
218
207
|
for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
|
|
219
208
|
let { value, label, icon: Icon2 } = each_array[$$index];
|
|
220
|
-
$$renderer2.push(`<button type="button"${$
|
|
209
|
+
$$renderer2.push(`<button type="button"${$9.attr_class("segment svelte-3gcwuj", undefined, { active: theme === value })} role="radio"${$9.attr("aria-checked", theme === value)}>`);
|
|
221
210
|
if (Icon2) {
|
|
222
211
|
$$renderer2.push("<!--[-->");
|
|
223
212
|
Icon2($$renderer2, { size: 13 });
|
|
@@ -226,7 +215,7 @@ function ThemePicker($$renderer, $$props) {
|
|
|
226
215
|
$$renderer2.push("<!--[!-->");
|
|
227
216
|
$$renderer2.push("<!--]-->");
|
|
228
217
|
}
|
|
229
|
-
$$renderer2.push(` ${$
|
|
218
|
+
$$renderer2.push(` ${$9.escape(label)}</button>`);
|
|
230
219
|
}
|
|
231
220
|
$$renderer2.push(`<!--]--></div>`);
|
|
232
221
|
});
|
|
@@ -234,7 +223,7 @@ function ThemePicker($$renderer, $$props) {
|
|
|
234
223
|
|
|
235
224
|
// node_modules/@lucide/svelte/dist/icons/layers.svelte
|
|
236
225
|
import"svelte/internal/flags/async";
|
|
237
|
-
import * as $
|
|
226
|
+
import * as $10 from "svelte/internal/server";
|
|
238
227
|
function Layers($$renderer, $$props) {
|
|
239
228
|
let { $$slots, $$events, ...props } = $$props;
|
|
240
229
|
const iconNode = [
|
|
@@ -257,11 +246,11 @@ function Layers($$renderer, $$props) {
|
|
|
257
246
|
}
|
|
258
247
|
]
|
|
259
248
|
];
|
|
260
|
-
Icon($$renderer, $
|
|
249
|
+
Icon($$renderer, $10.spread_props([{ name: "layers" }, props, { iconNode }]));
|
|
261
250
|
}
|
|
262
251
|
// node_modules/@lucide/svelte/dist/icons/folder-minus.svelte
|
|
263
252
|
import"svelte/internal/flags/async";
|
|
264
|
-
import * as $
|
|
253
|
+
import * as $11 from "svelte/internal/server";
|
|
265
254
|
function Folder_minus($$renderer, $$props) {
|
|
266
255
|
let { $$slots, $$events, ...props } = $$props;
|
|
267
256
|
const iconNode = [
|
|
@@ -273,11 +262,11 @@ function Folder_minus($$renderer, $$props) {
|
|
|
273
262
|
}
|
|
274
263
|
]
|
|
275
264
|
];
|
|
276
|
-
Icon($$renderer, $
|
|
265
|
+
Icon($$renderer, $11.spread_props([{ name: "folder-minus" }, props, { iconNode }]));
|
|
277
266
|
}
|
|
278
267
|
// node_modules/@lucide/svelte/dist/icons/trash-2.svelte
|
|
279
268
|
import"svelte/internal/flags/async";
|
|
280
|
-
import * as $
|
|
269
|
+
import * as $12 from "svelte/internal/server";
|
|
281
270
|
function Trash_2($$renderer, $$props) {
|
|
282
271
|
let { $$slots, $$events, ...props } = $$props;
|
|
283
272
|
const iconNode = [
|
|
@@ -287,11 +276,11 @@ function Trash_2($$renderer, $$props) {
|
|
|
287
276
|
["path", { d: "M3 6h18" }],
|
|
288
277
|
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
|
|
289
278
|
];
|
|
290
|
-
Icon($$renderer, $
|
|
279
|
+
Icon($$renderer, $12.spread_props([{ name: "trash-2" }, props, { iconNode }]));
|
|
291
280
|
}
|
|
292
281
|
// node_modules/@lucide/svelte/dist/icons/hammer.svelte
|
|
293
282
|
import"svelte/internal/flags/async";
|
|
294
|
-
import * as $
|
|
283
|
+
import * as $13 from "svelte/internal/server";
|
|
295
284
|
function Hammer($$renderer, $$props) {
|
|
296
285
|
let { $$slots, $$events, ...props } = $$props;
|
|
297
286
|
const iconNode = [
|
|
@@ -304,11 +293,11 @@ function Hammer($$renderer, $$props) {
|
|
|
304
293
|
}
|
|
305
294
|
]
|
|
306
295
|
];
|
|
307
|
-
Icon($$renderer, $
|
|
296
|
+
Icon($$renderer, $13.spread_props([{ name: "hammer" }, props, { iconNode }]));
|
|
308
297
|
}
|
|
309
298
|
// node_modules/@lucide/svelte/dist/icons/key-round.svelte
|
|
310
299
|
import"svelte/internal/flags/async";
|
|
311
|
-
import * as $
|
|
300
|
+
import * as $14 from "svelte/internal/server";
|
|
312
301
|
function Key_round($$renderer, $$props) {
|
|
313
302
|
let { $$slots, $$events, ...props } = $$props;
|
|
314
303
|
const iconNode = [
|
|
@@ -323,11 +312,11 @@ function Key_round($$renderer, $$props) {
|
|
|
323
312
|
{ cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" }
|
|
324
313
|
]
|
|
325
314
|
];
|
|
326
|
-
Icon($$renderer, $
|
|
315
|
+
Icon($$renderer, $14.spread_props([{ name: "key-round" }, props, { iconNode }]));
|
|
327
316
|
}
|
|
328
317
|
// node_modules/@lucide/svelte/dist/icons/user-cog.svelte
|
|
329
318
|
import"svelte/internal/flags/async";
|
|
330
|
-
import * as $
|
|
319
|
+
import * as $15 from "svelte/internal/server";
|
|
331
320
|
function User_cog($$renderer, $$props) {
|
|
332
321
|
let { $$slots, $$events, ...props } = $$props;
|
|
333
322
|
const iconNode = [
|
|
@@ -343,11 +332,11 @@ function User_cog($$renderer, $$props) {
|
|
|
343
332
|
["circle", { cx: "18", cy: "15", r: "3" }],
|
|
344
333
|
["circle", { cx: "9", cy: "7", r: "4" }]
|
|
345
334
|
];
|
|
346
|
-
Icon($$renderer, $
|
|
335
|
+
Icon($$renderer, $15.spread_props([{ name: "user-cog" }, props, { iconNode }]));
|
|
347
336
|
}
|
|
348
337
|
// node_modules/@lucide/svelte/dist/icons/cpu.svelte
|
|
349
338
|
import"svelte/internal/flags/async";
|
|
350
|
-
import * as $
|
|
339
|
+
import * as $16 from "svelte/internal/server";
|
|
351
340
|
function Cpu($$renderer, $$props) {
|
|
352
341
|
let { $$slots, $$events, ...props } = $$props;
|
|
353
342
|
const iconNode = [
|
|
@@ -369,11 +358,11 @@ function Cpu($$renderer, $$props) {
|
|
|
369
358
|
],
|
|
370
359
|
["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1" }]
|
|
371
360
|
];
|
|
372
|
-
Icon($$renderer, $
|
|
361
|
+
Icon($$renderer, $16.spread_props([{ name: "cpu" }, props, { iconNode }]));
|
|
373
362
|
}
|
|
374
363
|
// node_modules/@lucide/svelte/dist/icons/variable.svelte
|
|
375
364
|
import"svelte/internal/flags/async";
|
|
376
|
-
import * as $
|
|
365
|
+
import * as $17 from "svelte/internal/server";
|
|
377
366
|
function Variable($$renderer, $$props) {
|
|
378
367
|
let { $$slots, $$events, ...props } = $$props;
|
|
379
368
|
const iconNode = [
|
|
@@ -382,14 +371,14 @@ function Variable($$renderer, $$props) {
|
|
|
382
371
|
["line", { x1: "15", x2: "9", y1: "9", y2: "15" }],
|
|
383
372
|
["line", { x1: "9", x2: "15", y1: "9", y2: "15" }]
|
|
384
373
|
];
|
|
385
|
-
Icon($$renderer, $
|
|
374
|
+
Icon($$renderer, $17.spread_props([{ name: "variable" }, props, { iconNode }]));
|
|
386
375
|
}
|
|
387
376
|
// src/components/SettingsView.svelte
|
|
388
377
|
import { flushSync } from "svelte";
|
|
389
378
|
|
|
390
379
|
// src/components/CoinButton.svelte
|
|
391
380
|
import"svelte/internal/flags/async";
|
|
392
|
-
import * as $
|
|
381
|
+
import * as $18 from "svelte/internal/server";
|
|
393
382
|
function CoinButton($$renderer, $$props) {
|
|
394
383
|
let { href = "/avatars" } = $$props;
|
|
395
384
|
const coinArt = {
|
|
@@ -405,7 +394,7 @@ function CoinButton($$renderer, $$props) {
|
|
|
405
394
|
"..####.."
|
|
406
395
|
]
|
|
407
396
|
};
|
|
408
|
-
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$
|
|
397
|
+
$$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$18.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">`);
|
|
409
398
|
Avatar($$renderer, { art: coinArt, name: "coin", scale: 3 });
|
|
410
399
|
$$renderer.push(`<!----></span></a> <span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span></div>`);
|
|
411
400
|
}
|
|
@@ -415,6 +404,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
415
404
|
$$renderer.component(($$renderer2) => {
|
|
416
405
|
let {
|
|
417
406
|
pet,
|
|
407
|
+
defaultMode,
|
|
418
408
|
defaultImage,
|
|
419
409
|
builtinImage,
|
|
420
410
|
disableBuildCache,
|
|
@@ -490,6 +480,25 @@ function SettingsView($$renderer, $$props) {
|
|
|
490
480
|
}
|
|
491
481
|
};
|
|
492
482
|
}
|
|
483
|
+
let modeChoice = defaultMode;
|
|
484
|
+
let savingMode = false;
|
|
485
|
+
let modeError = null;
|
|
486
|
+
let modeFormEl;
|
|
487
|
+
const defaultModeOpts = saveOpts({
|
|
488
|
+
setSaving: (v) => savingMode = v,
|
|
489
|
+
setError: (v) => modeError = v,
|
|
490
|
+
setMsg: () => {},
|
|
491
|
+
onSuccess: (data) => {
|
|
492
|
+
if (data?.mode)
|
|
493
|
+
modeChoice = data.mode;
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
function chooseMode(next) {
|
|
497
|
+
if (next === modeChoice)
|
|
498
|
+
return;
|
|
499
|
+
flushSync(() => modeChoice = next);
|
|
500
|
+
modeFormEl?.requestSubmit();
|
|
501
|
+
}
|
|
493
502
|
let image = defaultImage;
|
|
494
503
|
let savingImage = false;
|
|
495
504
|
let imageError = null;
|
|
@@ -709,7 +718,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
709
718
|
manualModelsMsg = "Saved.";
|
|
710
719
|
}
|
|
711
720
|
});
|
|
712
|
-
let litellmBlocker = $
|
|
721
|
+
let litellmBlocker = $19.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
|
|
713
722
|
let hostEnvVars = hostEnvVarsEnabled;
|
|
714
723
|
let savingHostEnvToggle = false;
|
|
715
724
|
let hostEnvToggleError = null;
|
|
@@ -822,17 +831,31 @@ function SettingsView($$renderer, $$props) {
|
|
|
822
831
|
},
|
|
823
832
|
$$slots: { default: true }
|
|
824
833
|
});
|
|
825
|
-
$$renderer2.push(`<!----> <main class="content svelte-1n6ht58"><section class="card svelte-1n6ht58"><form class="row
|
|
834
|
+
$$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">`);
|
|
835
|
+
Terminal($$renderer2, { size: 20 });
|
|
836
|
+
$$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
|
|
837
|
+
can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$19.attr("value", modeChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Default editor mode"><button type="button"${$19.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "ide" })}${$19.attr("aria-pressed", modeChoice === "ide")}${$19.attr("disabled", savingMode, true)}>`);
|
|
838
|
+
Layout_template($$renderer2, { size: 15 });
|
|
839
|
+
$$renderer2.push(`<!----> Full IDE</button> <button type="button"${$19.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "terminal" })}${$19.attr("aria-pressed", modeChoice === "terminal")}${$19.attr("disabled", savingMode, true)}>`);
|
|
840
|
+
Terminal($$renderer2, { size: 15 });
|
|
841
|
+
$$renderer2.push(`<!----> Terminal</button></div></form> `);
|
|
842
|
+
if (modeError) {
|
|
843
|
+
$$renderer2.push("<!--[0-->");
|
|
844
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(modeError)}</div></div>`);
|
|
845
|
+
} else {
|
|
846
|
+
$$renderer2.push("<!--[-1-->");
|
|
847
|
+
}
|
|
848
|
+
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/defaultImage"><div class="label svelte-1n6ht58">`);
|
|
826
849
|
Container($$renderer2, { size: 20 });
|
|
827
850
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image `);
|
|
828
851
|
if (dockerArch) {
|
|
829
852
|
$$renderer2.push("<!--[0-->");
|
|
830
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$
|
|
853
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$19.escape(dockerArch)}</span>`);
|
|
831
854
|
} else {
|
|
832
855
|
$$renderer2.push("<!--[-1-->");
|
|
833
856
|
}
|
|
834
857
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
|
|
835
|
-
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$
|
|
858
|
+
created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$19.attr("value", image)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> `);
|
|
836
859
|
Button($$renderer2, {
|
|
837
860
|
type: "submit",
|
|
838
861
|
disabled: savingImage,
|
|
@@ -847,14 +870,14 @@ function SettingsView($$renderer, $$props) {
|
|
|
847
870
|
icon: Rotate_ccw,
|
|
848
871
|
disabled: savingImage,
|
|
849
872
|
onclick: resetImage,
|
|
850
|
-
title: `Reset to default (${$
|
|
873
|
+
title: `Reset to default (${$19.stringify(builtinImage)})`,
|
|
851
874
|
"aria-label": "Reset to default image"
|
|
852
875
|
});
|
|
853
876
|
$$renderer2.push(`<!----></div> <div class="desc tip svelte-1n6ht58">`);
|
|
854
877
|
if (dockerArch) {
|
|
855
878
|
$$renderer2.push("<!--[0-->");
|
|
856
|
-
$$renderer2.push(`Your Docker daemon runs on <strong>${$
|
|
857
|
-
an <strong>${$
|
|
879
|
+
$$renderer2.push(`Your Docker daemon runs on <strong>${$19.escape(dockerArch)}</strong> \u2014 pick an image that publishes
|
|
880
|
+
an <strong>${$19.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
|
|
858
881
|
} else {
|
|
859
882
|
$$renderer2.push("<!--[-1-->");
|
|
860
883
|
$$renderer2.push(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
|
|
@@ -863,7 +886,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
863
886
|
$$renderer2.push(`<!--]--></div> `);
|
|
864
887
|
if (imageError) {
|
|
865
888
|
$$renderer2.push("<!--[0-->");
|
|
866
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
889
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(imageError)}</div>`);
|
|
867
890
|
} else if (imageSaved) {
|
|
868
891
|
$$renderer2.push("<!--[1-->");
|
|
869
892
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -874,7 +897,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
874
897
|
Folder_minus($$renderer2, { size: 20 });
|
|
875
898
|
$$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
|
|
876
899
|
new instance's workspace. Leave blank to copy everything. Only applies to local
|
|
877
|
-
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"${$
|
|
900
|
+
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"${$19.attr("value", copyIgnore)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> `);
|
|
878
901
|
Button($$renderer2, {
|
|
879
902
|
type: "submit",
|
|
880
903
|
disabled: savingCopyIgnore,
|
|
@@ -889,13 +912,13 @@ function SettingsView($$renderer, $$props) {
|
|
|
889
912
|
icon: Rotate_ccw,
|
|
890
913
|
disabled: savingCopyIgnore,
|
|
891
914
|
onclick: resetCopyIgnore,
|
|
892
|
-
title: `Reset to default (${$
|
|
915
|
+
title: `Reset to default (${$19.stringify(builtinCopyIgnore)})`,
|
|
893
916
|
"aria-label": "Reset to default copy-ignore patterns"
|
|
894
917
|
});
|
|
895
918
|
$$renderer2.push(`<!----></div> `);
|
|
896
919
|
if (copyIgnoreError) {
|
|
897
920
|
$$renderer2.push("<!--[0-->");
|
|
898
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
921
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(copyIgnoreError)}</div>`);
|
|
899
922
|
} else if (copyIgnoreSaved) {
|
|
900
923
|
$$renderer2.push("<!--[1-->");
|
|
901
924
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -906,10 +929,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
906
929
|
User_cog($$renderer2, { size: 20 });
|
|
907
930
|
$$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
|
|
908
931
|
new container, taking precedence over the host's own git config. When off, each container
|
|
909
|
-
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
932
|
+
falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$19.attr("checked", gitIdentity, true)}${$19.attr("disabled", savingGitToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
910
933
|
if (gitToggleError) {
|
|
911
934
|
$$renderer2.push("<!--[0-->");
|
|
912
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
935
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(gitToggleError)}</div></div>`);
|
|
913
936
|
} else {
|
|
914
937
|
$$renderer2.push("<!--[-1-->");
|
|
915
938
|
}
|
|
@@ -917,7 +940,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
917
940
|
if (gitIdentity) {
|
|
918
941
|
$$renderer2.push("<!--[0-->");
|
|
919
942
|
$$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
|
|
920
|
-
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"${$
|
|
943
|
+
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"${$19.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"${$19.attr("value", gitEmail)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="jane@example.com"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
921
944
|
Button($$renderer2, {
|
|
922
945
|
type: "submit",
|
|
923
946
|
disabled: savingGitIdentity,
|
|
@@ -929,7 +952,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
929
952
|
$$renderer2.push(`<!----></div></div> `);
|
|
930
953
|
if (gitIdentityError) {
|
|
931
954
|
$$renderer2.push("<!--[0-->");
|
|
932
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
955
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(gitIdentityError)}</div>`);
|
|
933
956
|
} else if (gitIdentitySaved) {
|
|
934
957
|
$$renderer2.push("<!--[1-->");
|
|
935
958
|
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
|
|
@@ -943,10 +966,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
943
966
|
$$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58">`);
|
|
944
967
|
Layers($$renderer2, { size: 20 });
|
|
945
968
|
$$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
|
|
946
|
-
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"${$
|
|
969
|
+
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"${$19.attr("checked", noCache, true)}${$19.attr("disabled", savingCache, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
947
970
|
if (cacheError) {
|
|
948
971
|
$$renderer2.push("<!--[0-->");
|
|
949
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
972
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(cacheError)}</div></div>`);
|
|
950
973
|
} else {
|
|
951
974
|
$$renderer2.push("<!--[-1-->");
|
|
952
975
|
}
|
|
@@ -956,10 +979,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
956
979
|
remove pulled images.</div> `);
|
|
957
980
|
if (clearError) {
|
|
958
981
|
$$renderer2.push("<!--[0-->");
|
|
959
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
982
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(clearError)}</div>`);
|
|
960
983
|
} else if (clearMsg) {
|
|
961
984
|
$$renderer2.push("<!--[1-->");
|
|
962
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
985
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(clearMsg)}</div>`);
|
|
963
986
|
} else {
|
|
964
987
|
$$renderer2.push("<!--[-1-->");
|
|
965
988
|
}
|
|
@@ -969,7 +992,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
969
992
|
icon: Trash_2,
|
|
970
993
|
disabled: clearing,
|
|
971
994
|
children: ($$renderer3) => {
|
|
972
|
-
$$renderer3.push(`<!---->${$
|
|
995
|
+
$$renderer3.push(`<!---->${$19.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
|
|
973
996
|
},
|
|
974
997
|
$$slots: { default: true }
|
|
975
998
|
});
|
|
@@ -979,10 +1002,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
979
1002
|
layers. In-container edits are kept; stopped instances are left alone.</div> `);
|
|
980
1003
|
if (rebuildError) {
|
|
981
1004
|
$$renderer2.push("<!--[0-->");
|
|
982
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1005
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(rebuildError)}</div>`);
|
|
983
1006
|
} else if (rebuildMsg) {
|
|
984
1007
|
$$renderer2.push("<!--[1-->");
|
|
985
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1008
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(rebuildMsg)}</div>`);
|
|
986
1009
|
} else {
|
|
987
1010
|
$$renderer2.push("<!--[-1-->");
|
|
988
1011
|
}
|
|
@@ -992,11 +1015,11 @@ function SettingsView($$renderer, $$props) {
|
|
|
992
1015
|
icon: Hammer,
|
|
993
1016
|
disabled: rebuilding,
|
|
994
1017
|
children: ($$renderer3) => {
|
|
995
|
-
$$renderer3.push(`<!---->${$
|
|
1018
|
+
$$renderer3.push(`<!---->${$19.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
|
|
996
1019
|
},
|
|
997
1020
|
$$slots: { default: true }
|
|
998
1021
|
});
|
|
999
|
-
$$renderer2.push(`<!----></form></section> <section${$
|
|
1022
|
+
$$renderer2.push(`<!----></form></section> <section${$19.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58">`);
|
|
1000
1023
|
Key_round($$renderer2, { size: 20 });
|
|
1001
1024
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually `);
|
|
1002
1025
|
if (customEndpoint) {
|
|
@@ -1017,10 +1040,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1017
1040
|
token set here is injected into every new container and overrides host credential
|
|
1018
1041
|
discovery.`);
|
|
1019
1042
|
}
|
|
1020
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1043
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$19.attr("checked", manualTokens, true)}${$19.attr("disabled", savingManualToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1021
1044
|
if (manualToggleError) {
|
|
1022
1045
|
$$renderer2.push("<!--[0-->");
|
|
1023
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1046
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(manualToggleError)}</div></div>`);
|
|
1024
1047
|
} else {
|
|
1025
1048
|
$$renderer2.push("<!--[-1-->");
|
|
1026
1049
|
}
|
|
@@ -1028,7 +1051,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1028
1051
|
if (manualTokens && !customEndpoint) {
|
|
1029
1052
|
$$renderer2.push("<!--[0-->");
|
|
1030
1053
|
$$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
|
|
1031
|
-
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"${$
|
|
1054
|
+
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"${$19.attr("value", githubToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$19.attr("placeholder", ghSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "ghp_\u2026 / gho_\u2026")}/> `);
|
|
1032
1055
|
Button($$renderer2, {
|
|
1033
1056
|
type: "submit",
|
|
1034
1057
|
disabled: savingGithub,
|
|
@@ -1040,17 +1063,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1040
1063
|
$$renderer2.push(`<!----></div> `);
|
|
1041
1064
|
if (githubError) {
|
|
1042
1065
|
$$renderer2.push("<!--[0-->");
|
|
1043
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1066
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(githubError)}</div>`);
|
|
1044
1067
|
} else if (githubMsg) {
|
|
1045
1068
|
$$renderer2.push("<!--[1-->");
|
|
1046
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1069
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(githubMsg)}</div>`);
|
|
1047
1070
|
} else {
|
|
1048
1071
|
$$renderer2.push("<!--[-1-->");
|
|
1049
1072
|
}
|
|
1050
1073
|
$$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
|
|
1051
1074
|
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
|
|
1052
1075
|
the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
|
|
1053
|
-
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$
|
|
1076
|
+
to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$19.attr("value", claudeToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$19.attr("placeholder", claudeSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-ant-oat\u2026")}/> `);
|
|
1054
1077
|
Button($$renderer2, {
|
|
1055
1078
|
type: "submit",
|
|
1056
1079
|
disabled: savingClaude,
|
|
@@ -1062,10 +1085,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1062
1085
|
$$renderer2.push(`<!----></div> `);
|
|
1063
1086
|
if (claudeError) {
|
|
1064
1087
|
$$renderer2.push("<!--[0-->");
|
|
1065
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1088
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(claudeError)}</div>`);
|
|
1066
1089
|
} else if (claudeMsg) {
|
|
1067
1090
|
$$renderer2.push("<!--[1-->");
|
|
1068
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1091
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(claudeMsg)}</div>`);
|
|
1069
1092
|
} else {
|
|
1070
1093
|
$$renderer2.push("<!--[-1-->");
|
|
1071
1094
|
}
|
|
@@ -1073,19 +1096,19 @@ function SettingsView($$renderer, $$props) {
|
|
|
1073
1096
|
} else {
|
|
1074
1097
|
$$renderer2.push("<!--[-1-->");
|
|
1075
1098
|
}
|
|
1076
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1099
|
+
$$renderer2.push(`<!--]--></section> <section${$19.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": litellmBlocker() })}><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58">`);
|
|
1077
1100
|
Key_round($$renderer2, { size: 20 });
|
|
1078
1101
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock `);
|
|
1079
1102
|
if (litellmBlocker()) {
|
|
1080
1103
|
$$renderer2.push("<!--[0-->");
|
|
1081
|
-
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$
|
|
1104
|
+
$$renderer2.push(`<span class="arch svelte-1n6ht58"${$19.attr("title", `Disabled while ${$19.stringify(litellmBlocker())} is on`)}>disabled</span>`);
|
|
1082
1105
|
} else {
|
|
1083
1106
|
$$renderer2.push("<!--[-1-->");
|
|
1084
1107
|
}
|
|
1085
1108
|
$$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
|
|
1086
1109
|
if (litellmBlocker()) {
|
|
1087
1110
|
$$renderer2.push("<!--[0-->");
|
|
1088
|
-
$$renderer2.push(`Not available while "${$
|
|
1111
|
+
$$renderer2.push(`Not available while "${$19.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
|
|
1089
1112
|
incompatible.`);
|
|
1090
1113
|
} else {
|
|
1091
1114
|
$$renderer2.push("<!--[-1-->");
|
|
@@ -1093,17 +1116,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1093
1116
|
default API. When enabled, the Bedrock endpoint variables are injected into every new
|
|
1094
1117
|
container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`);
|
|
1095
1118
|
}
|
|
1096
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1119
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$19.attr("checked", customEndpoint, true)}${$19.attr("disabled", savingCustomToggle || !!litellmBlocker(), true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1097
1120
|
if (customToggleError) {
|
|
1098
1121
|
$$renderer2.push("<!--[0-->");
|
|
1099
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1122
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(customToggleError)}</div></div>`);
|
|
1100
1123
|
} else {
|
|
1101
1124
|
$$renderer2.push("<!--[-1-->");
|
|
1102
1125
|
}
|
|
1103
1126
|
$$renderer2.push(`<!--]--> `);
|
|
1104
1127
|
if (customEndpoint) {
|
|
1105
1128
|
$$renderer2.push("<!--[0-->");
|
|
1106
|
-
$$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"${$
|
|
1129
|
+
$$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"${$19.attr("value", customBaseUrl)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> `);
|
|
1107
1130
|
Button($$renderer2, {
|
|
1108
1131
|
type: "submit",
|
|
1109
1132
|
disabled: savingCustomBaseUrl,
|
|
@@ -1115,15 +1138,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1115
1138
|
$$renderer2.push(`<!----></div> `);
|
|
1116
1139
|
if (customBaseUrlError) {
|
|
1117
1140
|
$$renderer2.push("<!--[0-->");
|
|
1118
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1141
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(customBaseUrlError)}</div>`);
|
|
1119
1142
|
} else if (customBaseUrlMsg) {
|
|
1120
1143
|
$$renderer2.push("<!--[1-->");
|
|
1121
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1144
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(customBaseUrlMsg)}</div>`);
|
|
1122
1145
|
} else {
|
|
1123
1146
|
$$renderer2.push("<!--[-1-->");
|
|
1124
1147
|
}
|
|
1125
1148
|
$$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
|
|
1126
|
-
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$
|
|
1149
|
+
Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$19.attr("value", customToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$19.attr("placeholder", customTokenSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-\u2026")}/> `);
|
|
1127
1150
|
Button($$renderer2, {
|
|
1128
1151
|
type: "submit",
|
|
1129
1152
|
disabled: savingCustomToken,
|
|
@@ -1135,15 +1158,15 @@ function SettingsView($$renderer, $$props) {
|
|
|
1135
1158
|
$$renderer2.push(`<!----></div> `);
|
|
1136
1159
|
if (customTokenError) {
|
|
1137
1160
|
$$renderer2.push("<!--[0-->");
|
|
1138
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1161
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(customTokenError)}</div>`);
|
|
1139
1162
|
} else if (customTokenMsg) {
|
|
1140
1163
|
$$renderer2.push("<!--[1-->");
|
|
1141
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1164
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(customTokenMsg)}</div>`);
|
|
1142
1165
|
} else {
|
|
1143
1166
|
$$renderer2.push("<!--[-1-->");
|
|
1144
1167
|
}
|
|
1145
1168
|
$$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
|
|
1146
|
-
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"${$
|
|
1169
|
+
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"${$19.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"${$19.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"${$19.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"${$19.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"${$19.attr("value", customDefaultModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1147
1170
|
Button($$renderer2, {
|
|
1148
1171
|
type: "submit",
|
|
1149
1172
|
disabled: savingCustomModels,
|
|
@@ -1155,10 +1178,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1155
1178
|
$$renderer2.push(`<!----></div></div> `);
|
|
1156
1179
|
if (customModelsError) {
|
|
1157
1180
|
$$renderer2.push("<!--[0-->");
|
|
1158
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1181
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(customModelsError)}</div>`);
|
|
1159
1182
|
} else if (customModelsMsg) {
|
|
1160
1183
|
$$renderer2.push("<!--[1-->");
|
|
1161
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1184
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(customModelsMsg)}</div>`);
|
|
1162
1185
|
} else {
|
|
1163
1186
|
$$renderer2.push("<!--[-1-->");
|
|
1164
1187
|
}
|
|
@@ -1166,7 +1189,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1166
1189
|
} else {
|
|
1167
1190
|
$$renderer2.push("<!--[-1-->");
|
|
1168
1191
|
}
|
|
1169
|
-
$$renderer2.push(`<!--]--></section> <section${$
|
|
1192
|
+
$$renderer2.push(`<!--]--></section> <section${$19.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualModelToggle"><div class="label svelte-1n6ht58">`);
|
|
1170
1193
|
Cpu($$renderer2, { size: 18 });
|
|
1171
1194
|
$$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override models manually `);
|
|
1172
1195
|
if (customEndpoint) {
|
|
@@ -1185,17 +1208,17 @@ function SettingsView($$renderer, $$props) {
|
|
|
1185
1208
|
$$renderer2.push(`Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
|
|
1186
1209
|
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.`);
|
|
1187
1210
|
}
|
|
1188
|
-
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$
|
|
1211
|
+
$$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$19.attr("checked", manualModelOverride, true)}${$19.attr("disabled", savingManualModelToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1189
1212
|
if (manualModelToggleError) {
|
|
1190
1213
|
$$renderer2.push("<!--[0-->");
|
|
1191
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1214
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(manualModelToggleError)}</div></div>`);
|
|
1192
1215
|
} else {
|
|
1193
1216
|
$$renderer2.push("<!--[-1-->");
|
|
1194
1217
|
}
|
|
1195
1218
|
$$renderer2.push(`<!--]--> `);
|
|
1196
1219
|
if (manualModelOverride) {
|
|
1197
1220
|
$$renderer2.push("<!--[0-->");
|
|
1198
|
-
$$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"${$
|
|
1221
|
+
$$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"${$19.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"${$19.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"${$19.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"${$19.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"${$19.attr("value", manualDefault)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
|
|
1199
1222
|
Button($$renderer2, {
|
|
1200
1223
|
type: "submit",
|
|
1201
1224
|
disabled: savingManualModels,
|
|
@@ -1207,10 +1230,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1207
1230
|
$$renderer2.push(`<!----></div></div> `);
|
|
1208
1231
|
if (manualModelsError) {
|
|
1209
1232
|
$$renderer2.push("<!--[0-->");
|
|
1210
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1233
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(manualModelsError)}</div>`);
|
|
1211
1234
|
} else if (manualModelsMsg) {
|
|
1212
1235
|
$$renderer2.push("<!--[1-->");
|
|
1213
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1236
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(manualModelsMsg)}</div>`);
|
|
1214
1237
|
} else {
|
|
1215
1238
|
$$renderer2.push("<!--[-1-->");
|
|
1216
1239
|
}
|
|
@@ -1222,10 +1245,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1222
1245
|
Variable($$renderer2, { size: 20 });
|
|
1223
1246
|
$$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
|
|
1224
1247
|
interactive shells. Values are read from this process's own environment at container
|
|
1225
|
-
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"${$
|
|
1248
|
+
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"${$19.attr("checked", hostEnvVars, true)}${$19.attr("disabled", savingHostEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1226
1249
|
if (hostEnvToggleError) {
|
|
1227
1250
|
$$renderer2.push("<!--[0-->");
|
|
1228
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1251
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(hostEnvToggleError)}</div></div>`);
|
|
1229
1252
|
} else {
|
|
1230
1253
|
$$renderer2.push("<!--[-1-->");
|
|
1231
1254
|
}
|
|
@@ -1233,18 +1256,18 @@ function SettingsView($$renderer, $$props) {
|
|
|
1233
1256
|
if (hostEnvVars) {
|
|
1234
1257
|
$$renderer2.push("<!--[0-->");
|
|
1235
1258
|
$$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
|
|
1236
|
-
const each_array = $
|
|
1259
|
+
const each_array = $19.ensure_array_like(hostEnvNames);
|
|
1237
1260
|
if (each_array.length !== 0) {
|
|
1238
1261
|
$$renderer2.push("<!--[-->");
|
|
1239
1262
|
for (let $$index_1 = 0, $$length = each_array.length;$$index_1 < $$length; $$index_1++) {
|
|
1240
1263
|
let name = each_array[$$index_1];
|
|
1241
1264
|
$$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1242
|
-
const each_array_1 = $
|
|
1265
|
+
const each_array_1 = $19.ensure_array_like(hostEnvNames.filter((n) => n !== name));
|
|
1243
1266
|
for (let $$index = 0, $$length2 = each_array_1.length;$$index < $$length2; $$index++) {
|
|
1244
1267
|
let other = each_array_1[$$index];
|
|
1245
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1268
|
+
$$renderer2.push(`<input type="hidden" name="names"${$19.attr("value", other)}/>`);
|
|
1246
1269
|
}
|
|
1247
|
-
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$
|
|
1270
|
+
$$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$19.escape(name)}</span> <span${$19.attr_class("var-status svelte-1n6ht58", undefined, { present: hostEnvPresence[name] })}${$19.attr("title", hostEnvPresence[name] ? "Set on this host \u2014 will be injected" : "Not set on this host \u2014 will be skipped")}>${$19.escape(hostEnvPresence[name] ? "set" : "missing")}</span> <button type="submit" class="var-remove svelte-1n6ht58"${$19.attr("disabled", savingHostEnvNames, true)}${$19.attr("aria-label", `Remove ${name}`)}>`);
|
|
1248
1271
|
X($$renderer2, { size: 13 });
|
|
1249
1272
|
$$renderer2.push(`<!----></button></form>`);
|
|
1250
1273
|
}
|
|
@@ -1253,12 +1276,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1253
1276
|
$$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
|
|
1254
1277
|
}
|
|
1255
1278
|
$$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
|
|
1256
|
-
const each_array_2 = $
|
|
1279
|
+
const each_array_2 = $19.ensure_array_like(hostEnvNames);
|
|
1257
1280
|
for (let $$index_2 = 0, $$length = each_array_2.length;$$index_2 < $$length; $$index_2++) {
|
|
1258
1281
|
let name = each_array_2[$$index_2];
|
|
1259
|
-
$$renderer2.push(`<input type="hidden" name="names"${$
|
|
1282
|
+
$$renderer2.push(`<input type="hidden" name="names"${$19.attr("value", name)}/>`);
|
|
1260
1283
|
}
|
|
1261
|
-
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$
|
|
1284
|
+
$$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$19.attr("value", newHostEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> `);
|
|
1262
1285
|
Button($$renderer2, {
|
|
1263
1286
|
type: "submit",
|
|
1264
1287
|
icon: Plus,
|
|
@@ -1271,10 +1294,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1271
1294
|
$$renderer2.push(`<!----></form> `);
|
|
1272
1295
|
if (hostEnvNamesError) {
|
|
1273
1296
|
$$renderer2.push("<!--[0-->");
|
|
1274
|
-
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$
|
|
1297
|
+
$$renderer2.push(`<div class="msg error svelte-1n6ht58">${$19.escape(hostEnvNamesError)}</div>`);
|
|
1275
1298
|
} else if (hostEnvNamesMsg) {
|
|
1276
1299
|
$$renderer2.push("<!--[1-->");
|
|
1277
|
-
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$
|
|
1300
|
+
$$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$19.escape(hostEnvNamesMsg)}</div>`);
|
|
1278
1301
|
} else {
|
|
1279
1302
|
$$renderer2.push("<!--[-1-->");
|
|
1280
1303
|
}
|
|
@@ -1288,12 +1311,12 @@ function SettingsView($$renderer, $$props) {
|
|
|
1288
1311
|
ThemePicker($$renderer2, {});
|
|
1289
1312
|
$$renderer2.push(`<!----></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
|
|
1290
1313
|
Volume_2($$renderer2, { size: 20 });
|
|
1291
|
-
$$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"${$
|
|
1314
|
+
$$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"${$19.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"><form class="row svelte-1n6ht58" method="POST" action="?/petToggle"><div class="label svelte-1n6ht58">`);
|
|
1292
1315
|
Paw_print($$renderer2, { size: 18 });
|
|
1293
|
-
$$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"${$
|
|
1316
|
+
$$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"${$19.attr("checked", !!petArt, true)}${$19.attr("disabled", savingPet, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
|
|
1294
1317
|
if (petError) {
|
|
1295
1318
|
$$renderer2.push("<!--[0-->");
|
|
1296
|
-
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$
|
|
1319
|
+
$$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$19.escape(petError)}</div></div>`);
|
|
1297
1320
|
} else {
|
|
1298
1321
|
$$renderer2.push("<!--[-1-->");
|
|
1299
1322
|
}
|
|
@@ -1301,10 +1324,10 @@ function SettingsView($$renderer, $$props) {
|
|
|
1301
1324
|
if (petArt) {
|
|
1302
1325
|
$$renderer2.push("<!--[0-->");
|
|
1303
1326
|
$$renderer2.push(`<div class="sub pets svelte-1n6ht58"><!--[-->`);
|
|
1304
|
-
const each_array_3 = $
|
|
1327
|
+
const each_array_3 = $19.ensure_array_like(avatars);
|
|
1305
1328
|
for (let $$index_3 = 0, $$length = each_array_3.length;$$index_3 < $$length; $$index_3++) {
|
|
1306
1329
|
let art = each_array_3[$$index_3];
|
|
1307
|
-
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$
|
|
1330
|
+
$$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$19.attr("value", art.name)}/> <button type="submit"${$19.attr_class("pet svelte-1n6ht58", undefined, { selected: art.name === petArt.name })}${$19.attr("disabled", savingPet, true)}${$19.attr("title", art.name)}${$19.attr("aria-label", art.name)}${$19.attr("aria-pressed", art.name === petArt.name)}>`);
|
|
1308
1331
|
Avatar($$renderer2, { art, name: art.name, scale: 4 });
|
|
1309
1332
|
$$renderer2.push(`<!----></button></form>`);
|
|
1310
1333
|
}
|
|
@@ -1332,7 +1355,7 @@ function SettingsView($$renderer, $$props) {
|
|
|
1332
1355
|
}
|
|
1333
1356
|
$$renderer2.push(`<!--]--></form></section> `);
|
|
1334
1357
|
CoinButton($$renderer2, {});
|
|
1335
|
-
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$
|
|
1358
|
+
$$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$19.escape(version)}</div></main></div> `);
|
|
1336
1359
|
Toaster($$renderer2, {
|
|
1337
1360
|
toastOptions: {
|
|
1338
1361
|
style: "border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"
|
|
@@ -1347,6 +1370,7 @@ function Settings($$renderer, $$props) {
|
|
|
1347
1370
|
$$renderer.component(($$renderer2) => {
|
|
1348
1371
|
let {
|
|
1349
1372
|
pet,
|
|
1373
|
+
defaultMode,
|
|
1350
1374
|
defaultImage,
|
|
1351
1375
|
builtinImage,
|
|
1352
1376
|
disableBuildCache,
|
|
@@ -1380,7 +1404,7 @@ function Settings($$renderer, $$props) {
|
|
|
1380
1404
|
} = $$props;
|
|
1381
1405
|
if (true) {
|
|
1382
1406
|
let failed = function($$renderer3, error) {
|
|
1383
|
-
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$
|
|
1407
|
+
$$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$20.attr("data-message", error.message)}></mochi-island-failure>`);
|
|
1384
1408
|
};
|
|
1385
1409
|
$$renderer2.push("<!--[0-->");
|
|
1386
1410
|
$$renderer2.boundary({ failed }, ($$renderer3) => {
|
|
@@ -1388,8 +1412,9 @@ function Settings($$renderer, $$props) {
|
|
|
1388
1412
|
{
|
|
1389
1413
|
HydratableBoundary($$renderer3, {
|
|
1390
1414
|
children: ($$renderer4) => {
|
|
1391
|
-
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$
|
|
1415
|
+
$$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$20.attr("props-ref", emitIslandProps({
|
|
1392
1416
|
pet,
|
|
1417
|
+
defaultMode,
|
|
1393
1418
|
defaultImage,
|
|
1394
1419
|
builtinImage,
|
|
1395
1420
|
disableBuildCache,
|
|
@@ -1425,6 +1450,7 @@ function Settings($$renderer, $$props) {
|
|
|
1425
1450
|
{
|
|
1426
1451
|
SettingsView($$renderer4, {
|
|
1427
1452
|
pet,
|
|
1453
|
+
defaultMode,
|
|
1428
1454
|
defaultImage,
|
|
1429
1455
|
builtinImage,
|
|
1430
1456
|
disableBuildCache,
|