codebay 0.15.0 → 0.16.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.
Files changed (90) hide show
  1. package/.mochi/manifest.json +493 -432
  2. package/.mochi/svelte-client/HydratableIsland-6y9p903x.js +1 -0
  3. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-nv6yzk0x.js +2 -0
  4. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-ry83ck8a.js +14 -0
  5. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-vjt4jscf.js +3 -0
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-1jdrk8x6.js +48 -0
  7. package/.mochi/svelte-client/{chunk-5pg0be5f.js → chunk-0vqvn81s.js} +1 -1
  8. package/.mochi/svelte-client/chunk-2dc6352a.js +1 -0
  9. package/.mochi/svelte-client/chunk-3cxaw5hr.js +2 -0
  10. package/.mochi/svelte-client/chunk-3jqc40sp.js +2 -0
  11. package/.mochi/svelte-client/chunk-3pgw6t5j.js +4 -0
  12. package/.mochi/svelte-client/chunk-7g3xt6ez.js +2 -0
  13. package/.mochi/svelte-client/chunk-b5s3mpg0.js +1 -0
  14. package/.mochi/svelte-client/chunk-bhseezf3.js +2 -0
  15. package/.mochi/svelte-client/chunk-bhwkq8er.js +1 -0
  16. package/.mochi/svelte-client/chunk-jm3ge348.js +1 -0
  17. package/.mochi/svelte-client/{chunk-ds9yn9cq.js → chunk-sxcr9gzp.js} +1 -1
  18. package/.mochi/svelte-client/{chunk-a2hty99b.js → chunk-tss2473w.js} +1 -1
  19. package/.mochi/svelte-compile/{App-68f9a9fq.server.js → App-8mpgrxza.server.js} +489 -295
  20. package/.mochi/svelte-compile/{Avatars-vyh3rwxx.server.js → Avatars-y5nf6q25.server.js} +102 -86
  21. package/.mochi/svelte-compile/{DefaultError-je52k17d.server.js → DefaultError-rrjye0s2.server.js} +1 -2
  22. package/.mochi/svelte-compile/{Instance-yfw7s5mp.server.js → Instance-3sbzyp0g.server.js} +186 -118
  23. package/.mochi/svelte-compile/{Settings-0b5t9kw9.server.js → Settings-ysvh5vhh.server.js} +739 -628
  24. package/.mochi/svelte-compile/chunk-7zaw9t5a.js +25 -0
  25. package/.mochi/svelte-compile/chunk-878xcmp4.js +65 -0
  26. package/.mochi/svelte-compile/chunk-d2z3qxxe.js +28 -0
  27. package/.mochi/svelte-compile/{chunk-60mpagr9.js → chunk-gnf5cnct.js} +661 -22
  28. package/.mochi/svelte-compile/{chunk-0y3wrae9.js → chunk-jq7jj8jd.js} +10 -6
  29. package/.mochi/svelte-compile/chunk-vr0e32mv.js +24 -0
  30. package/.mochi/svelte-compile/{chunk-apdte4nh.js → chunk-xmygdsj4.js} +35 -612
  31. package/.mochi/svelte-compile/{chunk-g0eravvj.js → chunk-zk4a9zms.js} +25 -17
  32. package/.mochi/svelte-css/DropZone-1zeitd761uwyd.css +1 -0
  33. package/.mochi/svelte-css/IdeBar-d3un7kuigxc5.css +1 -0
  34. package/.mochi/svelte-css/InstanceView-3ucotech5097w.css +1 -0
  35. package/README.md +13 -4
  36. package/migrations/0011_agent_run_rejected_structured_output.sql +2 -0
  37. package/package.json +9 -9
  38. package/src/__fixtures__/IdeBarStrip.svelte +41 -0
  39. package/src/avatars/dog.ts +1 -1
  40. package/src/avatars/lightning.ts +8 -9
  41. package/src/avatars/rocket.ts +4 -5
  42. package/src/components/AppShell.svelte +101 -1
  43. package/src/components/DropZone.svelte +77 -0
  44. package/src/components/HealthBox.svelte +6 -5
  45. package/src/components/IdeBar.svelte +222 -76
  46. package/src/components/InstanceView.svelte +75 -2
  47. package/src/components/SettingsView.svelte +87 -0
  48. package/src/components/TerminalPane.svelte +54 -0
  49. package/src/components/UiShowcase.svelte +19 -1
  50. package/src/container-injections/claude-code-install.ts +1 -1
  51. package/src/container-injections/claude-history.ts +52 -0
  52. package/src/container-injections/tmux.ts +6 -2
  53. package/src/index.ts +3 -0
  54. package/src/lib/agent-run-stream.ts +41 -1
  55. package/src/lib/agent-runs.server.ts +14 -3
  56. package/src/lib/config.server.ts +7 -1
  57. package/src/lib/db.server.ts +6 -2
  58. package/src/lib/devcontainer.server.ts +33 -2
  59. package/src/lib/injections.server.ts +5 -1
  60. package/src/lib/instances.server.ts +21 -4
  61. package/src/lib/log-capture.server.ts +46 -18
  62. package/src/lib/osc52.ts +18 -0
  63. package/src/lib/upload.ts +32 -0
  64. package/src/lib/uploads.server.ts +164 -0
  65. package/src/mcp/server.server.ts +4 -1
  66. package/src/mcp/tools.server.ts +178 -12
  67. package/src/pages/Instance.svelte +6 -2
  68. package/src/pages/Settings.svelte +3 -0
  69. package/src/routes.ts +16 -2
  70. package/src/types.ts +2 -0
  71. package/.mochi/svelte-client/HydratableIsland-smgsf0ma.js +0 -1
  72. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-9vc087ep.js +0 -2
  73. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-a48xq47a.js +0 -14
  74. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-d4zehrqz.js +0 -3
  75. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-t5175pf5.js +0 -44
  76. package/.mochi/svelte-client/chunk-0mstgbtr.js +0 -2
  77. package/.mochi/svelte-client/chunk-0q9g0kpg.js +0 -1
  78. package/.mochi/svelte-client/chunk-3fwjzw1r.js +0 -1
  79. package/.mochi/svelte-client/chunk-fn03gxer.js +0 -4
  80. package/.mochi/svelte-client/chunk-jhgq7f65.js +0 -2
  81. package/.mochi/svelte-client/chunk-p5a07kx1.js +0 -1
  82. package/.mochi/svelte-client/chunk-p5wpyhsf.js +0 -2
  83. package/.mochi/svelte-client/chunk-t2kfvtb6.js +0 -2
  84. package/.mochi/svelte-client/chunk-v3wg9mdy.js +0 -1
  85. package/.mochi/svelte-compile/chunk-2qzc07gt.js +0 -34
  86. package/.mochi/svelte-compile/chunk-ef3hvegw.js +0 -21
  87. package/.mochi/svelte-compile/chunk-f9td8ej2.js +0 -24
  88. package/.mochi/svelte-compile/chunk-jx6h1xzp.js +0 -20
  89. package/.mochi/svelte-css/IdeBar-1mtgemqfuvqzi.css +0 -1
  90. package/.mochi/svelte-css/InstanceView-32j12hyg8v9u0.css +0 -1
@@ -8,10 +8,10 @@ import {
8
8
  soundEnabled,
9
9
  tabShortcutsEnabled,
10
10
  unlockAudio
11
- } from "./chunk-g0eravvj.js";
11
+ } from "./chunk-zk4a9zms.js";
12
12
  import {
13
13
  Message_square
14
- } from "./chunk-ef3hvegw.js";
14
+ } from "./chunk-7zaw9t5a.js";
15
15
  import {
16
16
  CLAUDE_EFFORT_LEVELS,
17
17
  CLAUDE_OUTPUT_STYLES,
@@ -21,139 +21,163 @@ import {
21
21
  applyTheme,
22
22
  getTheme,
23
23
  setTheme
24
- } from "./chunk-0y3wrae9.js";
24
+ } from "./chunk-jq7jj8jd.js";
25
25
  import {
26
26
  Rotate_ccw
27
- } from "./chunk-jx6h1xzp.js";
27
+ } from "./chunk-vr0e32mv.js";
28
28
  import {
29
29
  AppBar,
30
30
  Avatar,
31
31
  Button,
32
- TOAST_OPTIONS,
33
- Toaster,
34
32
  avatars,
35
33
  findAvatar
36
- } from "./chunk-apdte4nh.js";
34
+ } from "./chunk-xmygdsj4.js";
37
35
  import {
38
36
  HydratableBoundary,
39
37
  Icon,
38
+ TOAST_OPTIONS,
39
+ Toaster,
40
40
  X,
41
41
  emitIslandProps
42
- } from "./chunk-60mpagr9.js";
42
+ } from "./chunk-gnf5cnct.js";
43
43
  import"./chunk-xpt1a7jm.js";
44
44
 
45
45
  // src/pages/Settings.svelte
46
46
  import"svelte/internal/flags/async";
47
- import * as $30 from "svelte/internal/server";
47
+ import * as $32 from "svelte/internal/server";
48
48
 
49
49
  // src/components/SettingsView.svelte
50
50
  import"svelte/internal/flags/async";
51
- import * as $29 from "svelte/internal/server";
51
+ import * as $31 from "svelte/internal/server";
52
52
 
53
53
  // node_modules/@lucide/svelte/dist/icons/container.svelte
54
54
  import"svelte/internal/flags/async";
55
55
  import * as $ from "svelte/internal/server";
56
56
  function Container($$renderer, $$props) {
57
57
  let { $$slots, $$events, ...props } = $$props;
58
- const iconNode = [
59
- [
60
- "path",
61
- {
62
- d: "M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"
63
- }
64
- ],
65
- ["path", { d: "M10 21.9V14L2.1 9.1" }],
66
- ["path", { d: "m10 14 11.9-6.9" }],
67
- ["path", { d: "M14 19.8v-8.1" }],
68
- ["path", { d: "M18 17.5V9.4" }]
69
- ];
70
- Icon($$renderer, $.spread_props([{ name: "container" }, props, { iconNode }]));
58
+ const iconData = {
59
+ name: "container",
60
+ size: 24,
61
+ node: [
62
+ [
63
+ "path",
64
+ {
65
+ d: "M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"
66
+ }
67
+ ],
68
+ ["path", { d: "M10 21.9V14L2.1 9.1" }],
69
+ ["path", { d: "m10 14 11.9-6.9" }],
70
+ ["path", { d: "M14 19.8v-8.1" }],
71
+ ["path", { d: "M18 17.5V9.4" }]
72
+ ]
73
+ };
74
+ Icon($$renderer, $.spread_props([props, { icon: iconData }]));
71
75
  }
72
76
  // node_modules/@lucide/svelte/dist/icons/power.svelte
73
77
  import"svelte/internal/flags/async";
74
78
  import * as $2 from "svelte/internal/server";
75
79
  function Power($$renderer, $$props) {
76
80
  let { $$slots, $$events, ...props } = $$props;
77
- const iconNode = [
78
- ["path", { d: "M12 2v10" }],
79
- ["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" }]
80
- ];
81
- Icon($$renderer, $2.spread_props([{ name: "power" }, props, { iconNode }]));
81
+ const iconData = {
82
+ name: "power",
83
+ size: 24,
84
+ node: [
85
+ ["path", { d: "M12 2v10" }],
86
+ ["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" }]
87
+ ]
88
+ };
89
+ Icon($$renderer, $2.spread_props([props, { icon: iconData }]));
82
90
  }
83
91
  // node_modules/@lucide/svelte/dist/icons/volume-2.svelte
84
92
  import"svelte/internal/flags/async";
85
93
  import * as $3 from "svelte/internal/server";
86
94
  function Volume_2($$renderer, $$props) {
87
95
  let { $$slots, $$events, ...props } = $$props;
88
- const iconNode = [
89
- [
90
- "path",
91
- {
92
- d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"
93
- }
94
- ],
95
- ["path", { d: "M16 9a5 5 0 0 1 0 6" }],
96
- ["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728" }]
97
- ];
98
- Icon($$renderer, $3.spread_props([{ name: "volume-2" }, props, { iconNode }]));
96
+ const iconData = {
97
+ name: "volume-2",
98
+ size: 24,
99
+ node: [
100
+ [
101
+ "path",
102
+ {
103
+ d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"
104
+ }
105
+ ],
106
+ ["path", { d: "M16 9a5 5 0 0 1 0 6" }],
107
+ ["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728" }]
108
+ ]
109
+ };
110
+ Icon($$renderer, $3.spread_props([props, { icon: iconData }]));
99
111
  }
100
112
  // node_modules/@lucide/svelte/dist/icons/keyboard.svelte
101
113
  import"svelte/internal/flags/async";
102
114
  import * as $4 from "svelte/internal/server";
103
115
  function Keyboard($$renderer, $$props) {
104
116
  let { $$slots, $$events, ...props } = $$props;
105
- const iconNode = [
106
- ["path", { d: "M10 8h.01" }],
107
- ["path", { d: "M12 12h.01" }],
108
- ["path", { d: "M14 8h.01" }],
109
- ["path", { d: "M16 12h.01" }],
110
- ["path", { d: "M18 8h.01" }],
111
- ["path", { d: "M6 8h.01" }],
112
- ["path", { d: "M7 16h10" }],
113
- ["path", { d: "M8 12h.01" }],
114
- [
115
- "rect",
116
- { width: "20", height: "16", x: "2", y: "4", rx: "2" }
117
+ const iconData = {
118
+ name: "keyboard",
119
+ size: 24,
120
+ node: [
121
+ ["path", { d: "M10 8h.01" }],
122
+ ["path", { d: "M12 12h.01" }],
123
+ ["path", { d: "M14 8h.01" }],
124
+ ["path", { d: "M16 12h.01" }],
125
+ ["path", { d: "M18 8h.01" }],
126
+ ["path", { d: "M6 8h.01" }],
127
+ ["path", { d: "M7 16h10" }],
128
+ ["path", { d: "M8 12h.01" }],
129
+ [
130
+ "rect",
131
+ { width: "20", height: "16", x: "2", y: "4", rx: "2" }
132
+ ]
117
133
  ]
118
- ];
119
- Icon($$renderer, $4.spread_props([{ name: "keyboard" }, props, { iconNode }]));
134
+ };
135
+ Icon($$renderer, $4.spread_props([props, { icon: iconData }]));
120
136
  }
121
137
  // node_modules/@lucide/svelte/dist/icons/paw-print.svelte
122
138
  import"svelte/internal/flags/async";
123
139
  import * as $5 from "svelte/internal/server";
124
140
  function Paw_print($$renderer, $$props) {
125
141
  let { $$slots, $$events, ...props } = $$props;
126
- const iconNode = [
127
- ["circle", { cx: "11", cy: "4", r: "2" }],
128
- ["circle", { cx: "18", cy: "8", r: "2" }],
129
- ["circle", { cx: "20", cy: "16", r: "2" }],
130
- [
131
- "path",
132
- {
133
- d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z"
134
- }
142
+ const iconData = {
143
+ name: "paw-print",
144
+ size: 24,
145
+ node: [
146
+ ["circle", { cx: "11", cy: "4", r: "2" }],
147
+ ["circle", { cx: "18", cy: "8", r: "2" }],
148
+ ["circle", { cx: "20", cy: "16", r: "2" }],
149
+ [
150
+ "path",
151
+ {
152
+ d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z"
153
+ }
154
+ ]
135
155
  ]
136
- ];
137
- Icon($$renderer, $5.spread_props([{ name: "paw-print" }, props, { iconNode }]));
156
+ };
157
+ Icon($$renderer, $5.spread_props([props, { icon: iconData }]));
138
158
  }
139
159
  // node_modules/@lucide/svelte/dist/icons/sun-moon.svelte
140
160
  import"svelte/internal/flags/async";
141
161
  import * as $6 from "svelte/internal/server";
142
162
  function Sun_moon($$renderer, $$props) {
143
163
  let { $$slots, $$events, ...props } = $$props;
144
- const iconNode = [
145
- ["path", { d: "M12 2v2" }],
146
- [
147
- "path",
148
- {
149
- d: "M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"
150
- }
151
- ],
152
- ["path", { d: "M16 12a4 4 0 0 0-4-4" }],
153
- ["path", { d: "m19 5-1.256 1.256" }],
154
- ["path", { d: "M20 12h2" }]
155
- ];
156
- Icon($$renderer, $6.spread_props([{ name: "sun-moon" }, props, { iconNode }]));
164
+ const iconData = {
165
+ name: "sun-moon",
166
+ size: 24,
167
+ node: [
168
+ ["path", { d: "M12 2v2" }],
169
+ [
170
+ "path",
171
+ {
172
+ d: "M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"
173
+ }
174
+ ],
175
+ ["path", { d: "M16 12a4 4 0 0 0-4-4" }],
176
+ ["path", { d: "m19 5-1.256 1.256" }],
177
+ ["path", { d: "M20 12h2" }]
178
+ ]
179
+ };
180
+ Icon($$renderer, $6.spread_props([props, { icon: iconData }]));
157
181
  }
158
182
  // src/components/ThemePicker.svelte
159
183
  import"svelte/internal/flags/async";
@@ -164,48 +188,60 @@ import"svelte/internal/flags/async";
164
188
  import * as $7 from "svelte/internal/server";
165
189
  function Sun($$renderer, $$props) {
166
190
  let { $$slots, $$events, ...props } = $$props;
167
- const iconNode = [
168
- ["circle", { cx: "12", cy: "12", r: "4" }],
169
- ["path", { d: "M12 2v2" }],
170
- ["path", { d: "M12 20v2" }],
171
- ["path", { d: "m4.93 4.93 1.41 1.41" }],
172
- ["path", { d: "m17.66 17.66 1.41 1.41" }],
173
- ["path", { d: "M2 12h2" }],
174
- ["path", { d: "M20 12h2" }],
175
- ["path", { d: "m6.34 17.66-1.41 1.41" }],
176
- ["path", { d: "m19.07 4.93-1.41 1.41" }]
177
- ];
178
- Icon($$renderer, $7.spread_props([{ name: "sun" }, props, { iconNode }]));
191
+ const iconData = {
192
+ name: "sun",
193
+ size: 24,
194
+ node: [
195
+ ["circle", { cx: "12", cy: "12", r: "4" }],
196
+ ["path", { d: "M12 2v2" }],
197
+ ["path", { d: "M12 20v2" }],
198
+ ["path", { d: "m4.93 4.93 1.41 1.41" }],
199
+ ["path", { d: "m17.66 17.66 1.41 1.41" }],
200
+ ["path", { d: "M2 12h2" }],
201
+ ["path", { d: "M20 12h2" }],
202
+ ["path", { d: "m6.34 17.66-1.41 1.41" }],
203
+ ["path", { d: "m19.07 4.93-1.41 1.41" }]
204
+ ]
205
+ };
206
+ Icon($$renderer, $7.spread_props([props, { icon: iconData }]));
179
207
  }
180
208
  // node_modules/@lucide/svelte/dist/icons/moon.svelte
181
209
  import"svelte/internal/flags/async";
182
210
  import * as $8 from "svelte/internal/server";
183
211
  function Moon($$renderer, $$props) {
184
212
  let { $$slots, $$events, ...props } = $$props;
185
- const iconNode = [
186
- [
187
- "path",
188
- {
189
- d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"
190
- }
213
+ const iconData = {
214
+ name: "moon",
215
+ size: 24,
216
+ node: [
217
+ [
218
+ "path",
219
+ {
220
+ d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"
221
+ }
222
+ ]
191
223
  ]
192
- ];
193
- Icon($$renderer, $8.spread_props([{ name: "moon" }, props, { iconNode }]));
224
+ };
225
+ Icon($$renderer, $8.spread_props([props, { icon: iconData }]));
194
226
  }
195
227
  // node_modules/@lucide/svelte/dist/icons/monitor.svelte
196
228
  import"svelte/internal/flags/async";
197
229
  import * as $9 from "svelte/internal/server";
198
230
  function Monitor($$renderer, $$props) {
199
231
  let { $$slots, $$events, ...props } = $$props;
200
- const iconNode = [
201
- [
202
- "rect",
203
- { width: "20", height: "14", x: "2", y: "3", rx: "2" }
204
- ],
205
- ["line", { x1: "8", x2: "16", y1: "21", y2: "21" }],
206
- ["line", { x1: "12", x2: "12", y1: "17", y2: "21" }]
207
- ];
208
- Icon($$renderer, $9.spread_props([{ name: "monitor" }, props, { iconNode }]));
232
+ const iconData = {
233
+ name: "monitor",
234
+ size: 24,
235
+ node: [
236
+ [
237
+ "rect",
238
+ { width: "20", height: "14", x: "2", y: "3", rx: "2" }
239
+ ],
240
+ ["line", { x1: "8", x2: "16", y1: "21", y2: "21" }],
241
+ ["line", { x1: "12", x2: "12", y1: "17", y2: "21" }]
242
+ ]
243
+ };
244
+ Icon($$renderer, $9.spread_props([props, { icon: iconData }]));
209
245
  }
210
246
  // src/components/ThemePicker.svelte
211
247
  function ThemePicker($$renderer, $$props) {
@@ -255,8 +291,7 @@ function ThemePicker($$renderer, $$props) {
255
291
  }
256
292
  $$renderer2.push(`<!--]--></div> `);
257
293
  if (phase) {
258
- $$renderer2.push("<!--[0-->");
259
- $$renderer2.push(`<div${$10.attr_class("crt svelte-3gcwuj", undefined, {
294
+ $$renderer2.push(`<!--[0--><div${$10.attr_class("crt svelte-3gcwuj", undefined, {
260
295
  collapse: phase === "collapse",
261
296
  restore: phase === "restore"
262
297
  })}><span class="bar top svelte-3gcwuj"></span> <span class="bar bottom svelte-3gcwuj"></span> <span class="line svelte-3gcwuj"></span></div>`);
@@ -272,312 +307,391 @@ import"svelte/internal/flags/async";
272
307
  import * as $11 from "svelte/internal/server";
273
308
  function Layers($$renderer, $$props) {
274
309
  let { $$slots, $$events, ...props } = $$props;
275
- const iconNode = [
276
- [
277
- "path",
278
- {
279
- d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"
280
- }
281
- ],
282
- [
283
- "path",
284
- {
285
- d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"
286
- }
310
+ const iconData = {
311
+ name: "layers",
312
+ size: 24,
313
+ node: [
314
+ [
315
+ "path",
316
+ {
317
+ d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"
318
+ }
319
+ ],
320
+ [
321
+ "path",
322
+ {
323
+ d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"
324
+ }
325
+ ],
326
+ [
327
+ "path",
328
+ {
329
+ d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"
330
+ }
331
+ ]
287
332
  ],
288
- [
289
- "path",
290
- {
291
- d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"
292
- }
333
+ aliases: ["layers-3"]
334
+ };
335
+ Icon($$renderer, $11.spread_props([props, { icon: iconData }]));
336
+ }
337
+ // node_modules/@lucide/svelte/dist/icons/upload.svelte
338
+ import"svelte/internal/flags/async";
339
+ import * as $12 from "svelte/internal/server";
340
+ function Upload($$renderer, $$props) {
341
+ let { $$slots, $$events, ...props } = $$props;
342
+ const iconData = {
343
+ name: "upload",
344
+ size: 24,
345
+ node: [
346
+ ["path", { d: "M12 3v12" }],
347
+ ["path", { d: "m17 8-5-5-5 5" }],
348
+ ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }]
293
349
  ]
294
- ];
295
- Icon($$renderer, $11.spread_props([{ name: "layers" }, props, { iconNode }]));
350
+ };
351
+ Icon($$renderer, $12.spread_props([props, { icon: iconData }]));
296
352
  }
297
353
  // node_modules/@lucide/svelte/dist/icons/folder-minus.svelte
298
354
  import"svelte/internal/flags/async";
299
- import * as $12 from "svelte/internal/server";
355
+ import * as $13 from "svelte/internal/server";
300
356
  function Folder_minus($$renderer, $$props) {
301
357
  let { $$slots, $$events, ...props } = $$props;
302
- const iconNode = [
303
- ["path", { d: "M9 13h6" }],
304
- [
305
- "path",
306
- {
307
- d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
308
- }
358
+ const iconData = {
359
+ name: "folder-minus",
360
+ size: 24,
361
+ node: [
362
+ ["path", { d: "M9 13h6" }],
363
+ [
364
+ "path",
365
+ {
366
+ d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"
367
+ }
368
+ ]
309
369
  ]
310
- ];
311
- Icon($$renderer, $12.spread_props([{ name: "folder-minus" }, props, { iconNode }]));
370
+ };
371
+ Icon($$renderer, $13.spread_props([props, { icon: iconData }]));
312
372
  }
313
373
  // node_modules/@lucide/svelte/dist/icons/folder-cog.svelte
314
374
  import"svelte/internal/flags/async";
315
- import * as $13 from "svelte/internal/server";
375
+ import * as $14 from "svelte/internal/server";
316
376
  function Folder_cog($$renderer, $$props) {
317
377
  let { $$slots, $$events, ...props } = $$props;
318
- const iconNode = [
319
- [
320
- "path",
321
- {
322
- d: "M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3"
323
- }
378
+ const iconData = {
379
+ name: "folder-cog",
380
+ size: 24,
381
+ node: [
382
+ [
383
+ "path",
384
+ {
385
+ d: "M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3"
386
+ }
387
+ ],
388
+ ["path", { d: "m14.305 19.53.923-.382" }],
389
+ ["path", { d: "m15.228 16.852-.923-.383" }],
390
+ ["path", { d: "m16.852 15.228-.383-.923" }],
391
+ ["path", { d: "m16.852 20.772-.383.924" }],
392
+ ["path", { d: "m19.148 15.228.383-.923" }],
393
+ ["path", { d: "m19.53 21.696-.382-.924" }],
394
+ ["path", { d: "m20.772 16.852.924-.383" }],
395
+ ["path", { d: "m20.772 19.148.924.383" }],
396
+ ["circle", { cx: "18", cy: "18", r: "3" }]
324
397
  ],
325
- ["path", { d: "m14.305 19.53.923-.382" }],
326
- ["path", { d: "m15.228 16.852-.923-.383" }],
327
- ["path", { d: "m16.852 15.228-.383-.923" }],
328
- ["path", { d: "m16.852 20.772-.383.924" }],
329
- ["path", { d: "m19.148 15.228.383-.923" }],
330
- ["path", { d: "m19.53 21.696-.382-.924" }],
331
- ["path", { d: "m20.772 16.852.924-.383" }],
332
- ["path", { d: "m20.772 19.148.924.383" }],
333
- ["circle", { cx: "18", cy: "18", r: "3" }]
334
- ];
335
- Icon($$renderer, $13.spread_props([{ name: "folder-cog" }, props, { iconNode }]));
398
+ aliases: ["folder-cog-2"]
399
+ };
400
+ Icon($$renderer, $14.spread_props([props, { icon: iconData }]));
336
401
  }
337
- // node_modules/@lucide/svelte/dist/icons/trash-2.svelte
402
+ // node_modules/@lucide/svelte/dist/icons/trash.svelte
338
403
  import"svelte/internal/flags/async";
339
- import * as $14 from "svelte/internal/server";
340
- function Trash_2($$renderer, $$props) {
404
+ import * as $15 from "svelte/internal/server";
405
+ function Trash($$renderer, $$props) {
341
406
  let { $$slots, $$events, ...props } = $$props;
342
- const iconNode = [
343
- ["path", { d: "M10 11v6" }],
344
- ["path", { d: "M14 11v6" }],
345
- ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }],
346
- ["path", { d: "M3 6h18" }],
347
- ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
348
- ];
349
- Icon($$renderer, $14.spread_props([{ name: "trash-2" }, props, { iconNode }]));
407
+ const iconData = {
408
+ name: "trash",
409
+ size: 24,
410
+ node: [
411
+ ["path", { d: "M10 11v6" }],
412
+ ["path", { d: "M14 11v6" }],
413
+ ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }],
414
+ ["path", { d: "M3 6h18" }],
415
+ ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
416
+ ],
417
+ aliases: ["trash-2"]
418
+ };
419
+ Icon($$renderer, $15.spread_props([props, { icon: iconData }]));
350
420
  }
351
421
  // node_modules/@lucide/svelte/dist/icons/hammer.svelte
352
422
  import"svelte/internal/flags/async";
353
- import * as $15 from "svelte/internal/server";
423
+ import * as $16 from "svelte/internal/server";
354
424
  function Hammer($$renderer, $$props) {
355
425
  let { $$slots, $$events, ...props } = $$props;
356
- const iconNode = [
357
- ["path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }],
358
- ["path", { d: "m18 15 4-4" }],
359
- [
360
- "path",
361
- {
362
- d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"
363
- }
426
+ const iconData = {
427
+ name: "hammer",
428
+ size: 24,
429
+ node: [
430
+ ["path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }],
431
+ ["path", { d: "m18 15 4-4" }],
432
+ [
433
+ "path",
434
+ {
435
+ d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"
436
+ }
437
+ ]
364
438
  ]
365
- ];
366
- Icon($$renderer, $15.spread_props([{ name: "hammer" }, props, { iconNode }]));
439
+ };
440
+ Icon($$renderer, $16.spread_props([props, { icon: iconData }]));
367
441
  }
368
442
  // node_modules/@lucide/svelte/dist/icons/key-round.svelte
369
443
  import"svelte/internal/flags/async";
370
- import * as $16 from "svelte/internal/server";
444
+ import * as $17 from "svelte/internal/server";
371
445
  function Key_round($$renderer, $$props) {
372
446
  let { $$slots, $$events, ...props } = $$props;
373
- const iconNode = [
374
- [
375
- "path",
376
- {
377
- d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"
378
- }
379
- ],
380
- [
381
- "circle",
382
- { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" }
447
+ const iconData = {
448
+ name: "key-round",
449
+ size: 24,
450
+ node: [
451
+ [
452
+ "path",
453
+ {
454
+ d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"
455
+ }
456
+ ],
457
+ [
458
+ "circle",
459
+ { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" }
460
+ ]
383
461
  ]
384
- ];
385
- Icon($$renderer, $16.spread_props([{ name: "key-round" }, props, { iconNode }]));
462
+ };
463
+ Icon($$renderer, $17.spread_props([props, { icon: iconData }]));
386
464
  }
387
465
  // node_modules/@lucide/svelte/dist/icons/user-cog.svelte
388
466
  import"svelte/internal/flags/async";
389
- import * as $17 from "svelte/internal/server";
467
+ import * as $18 from "svelte/internal/server";
390
468
  function User_cog($$renderer, $$props) {
391
469
  let { $$slots, $$events, ...props } = $$props;
392
- const iconNode = [
393
- ["path", { d: "M10 15H6a4 4 0 0 0-4 4v2" }],
394
- ["path", { d: "m14.305 16.53.923-.382" }],
395
- ["path", { d: "m15.228 13.852-.923-.383" }],
396
- ["path", { d: "m16.852 12.228-.383-.923" }],
397
- ["path", { d: "m16.852 17.772-.383.924" }],
398
- ["path", { d: "m19.148 12.228.383-.923" }],
399
- ["path", { d: "m19.53 18.696-.382-.924" }],
400
- ["path", { d: "m20.772 13.852.924-.383" }],
401
- ["path", { d: "m20.772 16.148.924.383" }],
402
- ["circle", { cx: "18", cy: "15", r: "3" }],
403
- ["circle", { cx: "9", cy: "7", r: "4" }]
404
- ];
405
- Icon($$renderer, $17.spread_props([{ name: "user-cog" }, props, { iconNode }]));
470
+ const iconData = {
471
+ name: "user-cog",
472
+ size: 24,
473
+ node: [
474
+ ["path", { d: "M10 15H6a4 4 0 0 0-4 4v2" }],
475
+ ["path", { d: "m14.305 16.53.923-.382" }],
476
+ ["path", { d: "m15.228 13.852-.923-.383" }],
477
+ ["path", { d: "m16.852 12.228-.383-.923" }],
478
+ ["path", { d: "m16.852 17.772-.383.924" }],
479
+ ["path", { d: "m19.148 12.228.383-.923" }],
480
+ ["path", { d: "m19.53 18.696-.382-.924" }],
481
+ ["path", { d: "m20.772 13.852.924-.383" }],
482
+ ["path", { d: "m20.772 16.148.924.383" }],
483
+ ["circle", { cx: "18", cy: "15", r: "3" }],
484
+ ["circle", { cx: "9", cy: "7", r: "4" }]
485
+ ]
486
+ };
487
+ Icon($$renderer, $18.spread_props([props, { icon: iconData }]));
406
488
  }
407
489
  // node_modules/@lucide/svelte/dist/icons/cpu.svelte
408
490
  import"svelte/internal/flags/async";
409
- import * as $18 from "svelte/internal/server";
491
+ import * as $19 from "svelte/internal/server";
410
492
  function Cpu($$renderer, $$props) {
411
493
  let { $$slots, $$events, ...props } = $$props;
412
- const iconNode = [
413
- ["path", { d: "M12 20v2" }],
414
- ["path", { d: "M12 2v2" }],
415
- ["path", { d: "M17 20v2" }],
416
- ["path", { d: "M17 2v2" }],
417
- ["path", { d: "M2 12h2" }],
418
- ["path", { d: "M2 17h2" }],
419
- ["path", { d: "M2 7h2" }],
420
- ["path", { d: "M20 12h2" }],
421
- ["path", { d: "M20 17h2" }],
422
- ["path", { d: "M20 7h2" }],
423
- ["path", { d: "M7 20v2" }],
424
- ["path", { d: "M7 2v2" }],
425
- [
426
- "rect",
427
- { x: "4", y: "4", width: "16", height: "16", rx: "2" }
428
- ],
429
- ["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1" }]
430
- ];
431
- Icon($$renderer, $18.spread_props([{ name: "cpu" }, props, { iconNode }]));
494
+ const iconData = {
495
+ name: "cpu",
496
+ size: 24,
497
+ node: [
498
+ ["path", { d: "M12 20v2" }],
499
+ ["path", { d: "M12 2v2" }],
500
+ ["path", { d: "M17 20v2" }],
501
+ ["path", { d: "M17 2v2" }],
502
+ ["path", { d: "M2 12h2" }],
503
+ ["path", { d: "M2 17h2" }],
504
+ ["path", { d: "M2 7h2" }],
505
+ ["path", { d: "M20 12h2" }],
506
+ ["path", { d: "M20 17h2" }],
507
+ ["path", { d: "M20 7h2" }],
508
+ ["path", { d: "M7 20v2" }],
509
+ ["path", { d: "M7 2v2" }],
510
+ [
511
+ "rect",
512
+ { x: "4", y: "4", width: "16", height: "16", rx: "2" }
513
+ ],
514
+ ["rect", { x: "8", y: "8", width: "8", height: "8", rx: "1" }]
515
+ ]
516
+ };
517
+ Icon($$renderer, $19.spread_props([props, { icon: iconData }]));
432
518
  }
433
519
  // node_modules/@lucide/svelte/dist/icons/variable.svelte
434
520
  import"svelte/internal/flags/async";
435
- import * as $19 from "svelte/internal/server";
521
+ import * as $20 from "svelte/internal/server";
436
522
  function Variable($$renderer, $$props) {
437
523
  let { $$slots, $$events, ...props } = $$props;
438
- const iconNode = [
439
- ["path", { d: "M8 21s-4-3-4-9 4-9 4-9" }],
440
- ["path", { d: "M16 3s4 3 4 9-4 9-4 9" }],
441
- ["line", { x1: "15", x2: "9", y1: "9", y2: "15" }],
442
- ["line", { x1: "9", x2: "15", y1: "9", y2: "15" }]
443
- ];
444
- Icon($$renderer, $19.spread_props([{ name: "variable" }, props, { iconNode }]));
524
+ const iconData = {
525
+ name: "variable",
526
+ size: 24,
527
+ node: [
528
+ ["path", { d: "M8 21s-4-3-4-9 4-9 4-9" }],
529
+ ["path", { d: "M16 3s4 3 4 9-4 9-4 9" }],
530
+ ["line", { x1: "15", x2: "9", y1: "9", y2: "15" }],
531
+ ["line", { x1: "9", x2: "15", y1: "9", y2: "15" }]
532
+ ]
533
+ };
534
+ Icon($$renderer, $20.spread_props([props, { icon: iconData }]));
445
535
  }
446
536
  // node_modules/@lucide/svelte/dist/icons/key-square.svelte
447
537
  import"svelte/internal/flags/async";
448
- import * as $20 from "svelte/internal/server";
538
+ import * as $21 from "svelte/internal/server";
449
539
  function Key_square($$renderer, $$props) {
450
540
  let { $$slots, $$events, ...props } = $$props;
451
- const iconNode = [
452
- [
453
- "path",
454
- {
455
- d: "M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z"
456
- }
457
- ],
458
- ["path", { d: "m14 7 3 3" }],
459
- [
460
- "path",
461
- {
462
- d: "m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814"
463
- }
541
+ const iconData = {
542
+ name: "key-square",
543
+ size: 24,
544
+ node: [
545
+ [
546
+ "path",
547
+ {
548
+ d: "M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z"
549
+ }
550
+ ],
551
+ ["path", { d: "m14 7 3 3" }],
552
+ [
553
+ "path",
554
+ {
555
+ d: "m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814"
556
+ }
557
+ ]
464
558
  ]
465
- ];
466
- Icon($$renderer, $20.spread_props([{ name: "key-square" }, props, { iconNode }]));
559
+ };
560
+ Icon($$renderer, $21.spread_props([props, { icon: iconData }]));
467
561
  }
468
562
  // node_modules/@lucide/svelte/dist/icons/sliders-horizontal.svelte
469
563
  import"svelte/internal/flags/async";
470
- import * as $21 from "svelte/internal/server";
564
+ import * as $22 from "svelte/internal/server";
471
565
  function Sliders_horizontal($$renderer, $$props) {
472
566
  let { $$slots, $$events, ...props } = $$props;
473
- const iconNode = [
474
- ["path", { d: "M10 5H3" }],
475
- ["path", { d: "M12 19H3" }],
476
- ["path", { d: "M14 3v4" }],
477
- ["path", { d: "M16 17v4" }],
478
- ["path", { d: "M21 12h-9" }],
479
- ["path", { d: "M21 19h-5" }],
480
- ["path", { d: "M21 5h-7" }],
481
- ["path", { d: "M8 10v4" }],
482
- ["path", { d: "M8 12H3" }]
483
- ];
484
- Icon($$renderer, $21.spread_props([{ name: "sliders-horizontal" }, props, { iconNode }]));
567
+ const iconData = {
568
+ name: "sliders-horizontal",
569
+ size: 24,
570
+ node: [
571
+ ["path", { d: "M10 5H3" }],
572
+ ["path", { d: "M12 19H3" }],
573
+ ["path", { d: "M14 3v4" }],
574
+ ["path", { d: "M16 17v4" }],
575
+ ["path", { d: "M21 12h-9" }],
576
+ ["path", { d: "M21 19h-5" }],
577
+ ["path", { d: "M21 5h-7" }],
578
+ ["path", { d: "M8 10v4" }],
579
+ ["path", { d: "M8 12H3" }]
580
+ ]
581
+ };
582
+ Icon($$renderer, $22.spread_props([props, { icon: iconData }]));
485
583
  }
486
584
  // node_modules/@lucide/svelte/dist/icons/list-ordered.svelte
487
585
  import"svelte/internal/flags/async";
488
- import * as $22 from "svelte/internal/server";
586
+ import * as $23 from "svelte/internal/server";
489
587
  function List_ordered($$renderer, $$props) {
490
588
  let { $$slots, $$events, ...props } = $$props;
491
- const iconNode = [
492
- ["path", { d: "M11 5h10" }],
493
- ["path", { d: "M11 12h10" }],
494
- ["path", { d: "M11 19h10" }],
495
- ["path", { d: "M4 4h1v5" }],
496
- ["path", { d: "M4 9h2" }],
497
- [
498
- "path",
499
- {
500
- d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02"
501
- }
589
+ const iconData = {
590
+ name: "list-ordered",
591
+ size: 24,
592
+ node: [
593
+ ["path", { d: "M11 5h10" }],
594
+ ["path", { d: "M11 12h10" }],
595
+ ["path", { d: "M11 19h10" }],
596
+ ["path", { d: "M4 4h1v5" }],
597
+ ["path", { d: "M4 9h2" }],
598
+ [
599
+ "path",
600
+ {
601
+ d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02"
602
+ }
603
+ ]
502
604
  ]
503
- ];
504
- Icon($$renderer, $22.spread_props([{ name: "list-ordered" }, props, { iconNode }]));
605
+ };
606
+ Icon($$renderer, $23.spread_props([props, { icon: iconData }]));
505
607
  }
506
608
  // node_modules/@lucide/svelte/dist/icons/boxes.svelte
507
609
  import"svelte/internal/flags/async";
508
- import * as $23 from "svelte/internal/server";
610
+ import * as $24 from "svelte/internal/server";
509
611
  function Boxes($$renderer, $$props) {
510
612
  let { $$slots, $$events, ...props } = $$props;
511
- const iconNode = [
512
- [
513
- "path",
514
- {
515
- d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z"
516
- }
517
- ],
518
- ["path", { d: "m7 16.5-4.74-2.85" }],
519
- ["path", { d: "m7 16.5 5-3" }],
520
- ["path", { d: "M7 16.5v5.17" }],
521
- [
522
- "path",
523
- {
524
- d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z"
525
- }
526
- ],
527
- ["path", { d: "m17 16.5-5-3" }],
528
- ["path", { d: "m17 16.5 4.74-2.85" }],
529
- ["path", { d: "M17 16.5v5.17" }],
530
- [
531
- "path",
532
- {
533
- d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z"
534
- }
535
- ],
536
- ["path", { d: "M12 8 7.26 5.15" }],
537
- ["path", { d: "m12 8 4.74-2.85" }],
538
- ["path", { d: "M12 13.5V8" }]
539
- ];
540
- Icon($$renderer, $23.spread_props([{ name: "boxes" }, props, { iconNode }]));
613
+ const iconData = {
614
+ name: "boxes",
615
+ size: 24,
616
+ node: [
617
+ [
618
+ "path",
619
+ {
620
+ d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z"
621
+ }
622
+ ],
623
+ ["path", { d: "m7 16.5-4.74-2.85" }],
624
+ ["path", { d: "m7 16.5 5-3" }],
625
+ ["path", { d: "M7 16.5v5.17" }],
626
+ [
627
+ "path",
628
+ {
629
+ d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z"
630
+ }
631
+ ],
632
+ ["path", { d: "m17 16.5-5-3" }],
633
+ ["path", { d: "m17 16.5 4.74-2.85" }],
634
+ ["path", { d: "M17 16.5v5.17" }],
635
+ [
636
+ "path",
637
+ {
638
+ d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z"
639
+ }
640
+ ],
641
+ ["path", { d: "M12 8 7.26 5.15" }],
642
+ ["path", { d: "m12 8 4.74-2.85" }],
643
+ ["path", { d: "M12 13.5V8" }]
644
+ ]
645
+ };
646
+ Icon($$renderer, $24.spread_props([props, { icon: iconData }]));
541
647
  }
542
648
  // node_modules/@lucide/svelte/dist/icons/puzzle.svelte
543
649
  import"svelte/internal/flags/async";
544
- import * as $24 from "svelte/internal/server";
650
+ import * as $25 from "svelte/internal/server";
545
651
  function Puzzle($$renderer, $$props) {
546
652
  let { $$slots, $$events, ...props } = $$props;
547
- const iconNode = [
548
- [
549
- "path",
550
- {
551
- d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"
552
- }
653
+ const iconData = {
654
+ name: "puzzle",
655
+ size: 24,
656
+ node: [
657
+ [
658
+ "path",
659
+ {
660
+ d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"
661
+ }
662
+ ]
553
663
  ]
554
- ];
555
- Icon($$renderer, $24.spread_props([{ name: "puzzle" }, props, { iconNode }]));
664
+ };
665
+ Icon($$renderer, $25.spread_props([props, { icon: iconData }]));
556
666
  }
557
667
  // node_modules/@lucide/svelte/dist/icons/plug.svelte
558
668
  import"svelte/internal/flags/async";
559
- import * as $25 from "svelte/internal/server";
669
+ import * as $26 from "svelte/internal/server";
560
670
  function Plug($$renderer, $$props) {
561
671
  let { $$slots, $$events, ...props } = $$props;
562
- const iconNode = [
563
- ["path", { d: "M12 22v-5" }],
564
- ["path", { d: "M15 8V2" }],
565
- [
566
- "path",
567
- {
568
- d: "M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z"
569
- }
570
- ],
571
- ["path", { d: "M9 8V2" }]
572
- ];
573
- Icon($$renderer, $25.spread_props([{ name: "plug" }, props, { iconNode }]));
672
+ const iconData = {
673
+ name: "plug",
674
+ size: 24,
675
+ node: [
676
+ ["path", { d: "M12 22v-5" }],
677
+ ["path", { d: "M15 8V2" }],
678
+ [
679
+ "path",
680
+ {
681
+ d: "M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z"
682
+ }
683
+ ],
684
+ ["path", { d: "M9 8V2" }]
685
+ ]
686
+ };
687
+ Icon($$renderer, $26.spread_props([props, { icon: iconData }]));
574
688
  }
575
689
  // src/components/SettingsView.svelte
576
690
  import { flushSync } from "svelte";
577
691
 
578
692
  // src/components/CoinButton.svelte
579
693
  import"svelte/internal/flags/async";
580
- import * as $26 from "svelte/internal/server";
694
+ import * as $27 from "svelte/internal/server";
581
695
  function CoinButton($$renderer, $$props) {
582
696
  let { href = "/avatars" } = $$props;
583
697
  const coinArt = {
@@ -593,37 +707,70 @@ function CoinButton($$renderer, $$props) {
593
707
  "..####.."
594
708
  ]
595
709
  };
596
- $$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$26.attr("href", href)} aria-label="Draw your own avatar" title="Draw your own avatar"><span class="new svelte-1ioj7vz" aria-hidden="true">New</span> <span class="coin svelte-1ioj7vz" aria-hidden="true">`);
710
+ $$renderer.push(`<div class="coin-row svelte-1ioj7vz"><span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span> <a class="coin-btn svelte-1ioj7vz"${$27.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">`);
597
711
  Avatar($$renderer, { art: coinArt, name: "coin", scale: 3 });
598
712
  $$renderer.push(`<!----></span></a> <span class="pixel-line svelte-1ioj7vz" aria-hidden="true"></span></div>`);
599
713
  }
600
714
 
601
715
  // node_modules/@lucide/svelte/dist/icons/shield-check.svelte
602
716
  import"svelte/internal/flags/async";
603
- import * as $27 from "svelte/internal/server";
717
+ import * as $28 from "svelte/internal/server";
604
718
  function Shield_check($$renderer, $$props) {
605
719
  let { $$slots, $$events, ...props } = $$props;
606
- const iconNode = [
607
- [
608
- "path",
609
- {
610
- d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"
611
- }
612
- ],
613
- ["path", { d: "m9 12 2 2 4-4" }]
614
- ];
615
- Icon($$renderer, $27.spread_props([{ name: "shield-check" }, props, { iconNode }]));
720
+ const iconData = {
721
+ name: "shield-check",
722
+ size: 24,
723
+ node: [
724
+ [
725
+ "path",
726
+ {
727
+ d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"
728
+ }
729
+ ],
730
+ ["path", { d: "m9 12 2 2 4-4" }]
731
+ ]
732
+ };
733
+ Icon($$renderer, $28.spread_props([props, { icon: iconData }]));
616
734
  }
617
735
  // node_modules/@lucide/svelte/dist/icons/gauge.svelte
618
736
  import"svelte/internal/flags/async";
619
- import * as $28 from "svelte/internal/server";
737
+ import * as $29 from "svelte/internal/server";
620
738
  function Gauge($$renderer, $$props) {
621
739
  let { $$slots, $$events, ...props } = $$props;
622
- const iconNode = [
623
- ["path", { d: "m12 14 4-4" }],
624
- ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]
625
- ];
626
- Icon($$renderer, $28.spread_props([{ name: "gauge" }, props, { iconNode }]));
740
+ const iconData = {
741
+ name: "gauge",
742
+ size: 24,
743
+ node: [
744
+ ["path", { d: "m12 14 4-4" }],
745
+ ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]
746
+ ]
747
+ };
748
+ Icon($$renderer, $29.spread_props([props, { icon: iconData }]));
749
+ }
750
+ // node_modules/@lucide/svelte/dist/icons/clipboard-x.svelte
751
+ import"svelte/internal/flags/async";
752
+ import * as $30 from "svelte/internal/server";
753
+ function Clipboard_x($$renderer, $$props) {
754
+ let { $$slots, $$events, ...props } = $$props;
755
+ const iconData = {
756
+ name: "clipboard-x",
757
+ size: 24,
758
+ node: [
759
+ [
760
+ "rect",
761
+ { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1" }
762
+ ],
763
+ [
764
+ "path",
765
+ {
766
+ d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"
767
+ }
768
+ ],
769
+ ["path", { d: "m14.5 11.5-5 5" }],
770
+ ["path", { d: "m9.5 11.5 5 5" }]
771
+ ]
772
+ };
773
+ Icon($$renderer, $30.spread_props([props, { icon: iconData }]));
627
774
  }
628
775
  // src/components/SettingsView.svelte
629
776
  function SettingsView($$renderer, $$props) {
@@ -637,6 +784,7 @@ function SettingsView($$renderer, $$props) {
637
784
  defaultImage,
638
785
  builtinImage,
639
786
  disableBuildCache,
787
+ workspaceUploadEnabled,
640
788
  copyIgnorePatterns,
641
789
  builtinCopyIgnore,
642
790
  claudeConfigDir,
@@ -681,6 +829,7 @@ function SettingsView($$renderer, $$props) {
681
829
  let savingPet = false;
682
830
  let petError = null;
683
831
  let shuttingDown = false;
832
+ let insecure = null;
684
833
  function saveOpts(handlers) {
685
834
  return {
686
835
  onPending: handlers.setSaving,
@@ -891,7 +1040,7 @@ function SettingsView($$renderer, $$props) {
891
1040
  setSaving: (v) => savingMcpAttribution = v,
892
1041
  setError: (v) => mcpAttributionError = v
893
1042
  });
894
- const mcpCommand = $29.derived(() => `claude mcp add --transport http codebay ${mcpUrl} --header "Authorization: Bearer ${mcpTokenValue}"`);
1043
+ const mcpCommand = $31.derived(() => `claude mcp add --transport http codebay ${mcpUrl} --header "Authorization: Bearer ${mcpTokenValue}"`);
895
1044
  async function copyMcp(label, text) {
896
1045
  try {
897
1046
  await navigator.clipboard.writeText(text);
@@ -932,6 +1081,14 @@ function SettingsView($$renderer, $$props) {
932
1081
  setSaving: (v) => savingCache = v,
933
1082
  setError: (v) => cacheError = v
934
1083
  });
1084
+ let workspaceUpload = workspaceUploadEnabled;
1085
+ let savingUpload = false;
1086
+ let uploadError = null;
1087
+ const uploadToggleOpts = toggleOpts({
1088
+ set: (v) => workspaceUpload = v,
1089
+ setSaving: (v) => savingUpload = v,
1090
+ setError: (v) => uploadError = v
1091
+ });
935
1092
  let clearing = false;
936
1093
  let clearMsg = null;
937
1094
  let clearError = null;
@@ -1119,7 +1276,7 @@ function SettingsView($$renderer, $$props) {
1119
1276
  manualModelsMsg = "Saved.";
1120
1277
  }
1121
1278
  });
1122
- let litellmBlocker = $29.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
1279
+ let litellmBlocker = $31.derived(() => manualTokens ? "Set tokens manually" : manualModelOverride ? "Override models manually" : null);
1123
1280
  let hostEnvVars = hostEnvVarsEnabled;
1124
1281
  let savingHostEnvToggle = false;
1125
1282
  let hostEnvToggleError = null;
@@ -1292,33 +1449,41 @@ function SettingsView($$renderer, $$props) {
1292
1449
  },
1293
1450
  $$slots: { default: true }
1294
1451
  });
1295
- $$renderer2.push(`<!----> <main class="content svelte-1n6ht58"><section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/defaultMode"><div class="label svelte-1n6ht58">`);
1452
+ $$renderer2.push(`<!----> <main class="content svelte-1n6ht58">`);
1453
+ if (insecure) {
1454
+ $$renderer2.push(`<!--[0--><section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
1455
+ Clipboard_x($$renderer2, { size: 20 });
1456
+ $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Copying out of a terminal may not work on this address</div> <div class="desc svelte-1n6ht58">Browsers hand out clipboard access only on a secure origin, and <code class="svelte-1n6ht58">${$31.escape(insecure.origin)}</code> isn't one \u2014 so a copy out of an instance's VS Code
1457
+ terminal reaches nothing (codebay's own terminal falls back to a legacy copy that
1458
+ usually still works). Either open codebay through <code class="svelte-1n6ht58">localhost</code> (<code class="svelte-1n6ht58">${$31.escape(insecure.tunnel)}</code>), or allow this exact origin under <code class="svelte-1n6ht58">chrome://flags/#unsafely-treat-insecure-origin-as-secure</code>.</div></div></div></div></section>`);
1459
+ } else {
1460
+ $$renderer2.push("<!--[-1-->");
1461
+ }
1462
+ $$renderer2.push(`<!--]--> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/defaultMode"><div class="label svelte-1n6ht58">`);
1296
1463
  Terminal($$renderer2, { size: 20 });
1297
1464
  $$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
1298
- can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$29.attr("value", modeChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Default editor mode"><button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "ide" })}${$29.attr("aria-pressed", modeChoice === "ide")}${$29.attr("disabled", savingMode, true)}>`);
1465
+ can override this per instance when creating one.</div></div></div> <input type="hidden" name="mode"${$31.attr("value", modeChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Default editor mode"><button type="button"${$31.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "ide" })}${$31.attr("aria-pressed", modeChoice === "ide")}${$31.attr("disabled", savingMode, true)}>`);
1299
1466
  Layout_template($$renderer2, { size: 15 });
1300
- $$renderer2.push(`<!----> Full IDE</button> <button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "terminal" })}${$29.attr("aria-pressed", modeChoice === "terminal")}${$29.attr("disabled", savingMode, true)}>`);
1467
+ $$renderer2.push(`<!----> Full IDE</button> <button type="button"${$31.attr_class("mode-btn svelte-1n6ht58", undefined, { active: modeChoice === "terminal" })}${$31.attr("aria-pressed", modeChoice === "terminal")}${$31.attr("disabled", savingMode, true)}>`);
1301
1468
  Terminal($$renderer2, { size: 15 });
1302
1469
  $$renderer2.push(`<!----> Terminal</button></div></form> `);
1303
1470
  if (modeError) {
1304
- $$renderer2.push("<!--[0-->");
1305
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(modeError)}</div></div>`);
1471
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(modeError)}</div></div>`);
1306
1472
  } else {
1307
1473
  $$renderer2.push("<!--[-1-->");
1308
1474
  }
1309
1475
  $$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudePermissionMode"><div class="label svelte-1n6ht58">`);
1310
1476
  Shield_check($$renderer2, { size: 20 });
1311
1477
  $$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
1312
- create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$29.attr("value", permissionChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude permission mode"><!--[-->`);
1313
- const each_array = $29.ensure_array_like(CLAUDE_PERMISSION_MODES);
1478
+ create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="mode"${$31.attr("value", permissionChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude permission mode"><!--[-->`);
1479
+ const each_array = $31.ensure_array_like(CLAUDE_PERMISSION_MODES);
1314
1480
  for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
1315
1481
  let option = each_array[$$index];
1316
- $$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: permissionChoice === option })}${$29.attr("aria-pressed", permissionChoice === option)}${$29.attr("disabled", savingPermission, true)}>${$29.escape(PERMISSION_LABELS[option])}</button>`);
1482
+ $$renderer2.push(`<button type="button"${$31.attr_class("mode-btn svelte-1n6ht58", undefined, { active: permissionChoice === option })}${$31.attr("aria-pressed", permissionChoice === option)}${$31.attr("disabled", savingPermission, true)}>${$31.escape(PERMISSION_LABELS[option])}</button>`);
1317
1483
  }
1318
1484
  $$renderer2.push(`<!--]--></div></form> `);
1319
1485
  if (permissionError) {
1320
- $$renderer2.push("<!--[0-->");
1321
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(permissionError)}</div></div>`);
1486
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(permissionError)}</div></div>`);
1322
1487
  } else {
1323
1488
  $$renderer2.push("<!--[-1-->");
1324
1489
  }
@@ -1326,31 +1491,29 @@ function SettingsView($$renderer, $$props) {
1326
1491
  Gauge($$renderer2, { size: 20 });
1327
1492
  $$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,
1328
1493
  written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. Applies on create and rebuild, not to
1329
- already-running instances.</div></div></div> <input type="hidden" name="level"${$29.attr("value", effortChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude effort level"><!--[-->`);
1330
- const each_array_1 = $29.ensure_array_like(CLAUDE_EFFORT_LEVELS);
1494
+ already-running instances.</div></div></div> <input type="hidden" name="level"${$31.attr("value", effortChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude effort level"><!--[-->`);
1495
+ const each_array_1 = $31.ensure_array_like(CLAUDE_EFFORT_LEVELS);
1331
1496
  for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
1332
1497
  let option = each_array_1[$$index_1];
1333
- $$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: effortChoice === option })}${$29.attr("aria-pressed", effortChoice === option)}${$29.attr("disabled", savingEffort, true)}>${$29.escape(EFFORT_LABELS[option])}</button>`);
1498
+ $$renderer2.push(`<button type="button"${$31.attr_class("mode-btn svelte-1n6ht58", undefined, { active: effortChoice === option })}${$31.attr("aria-pressed", effortChoice === option)}${$31.attr("disabled", savingEffort, true)}>${$31.escape(EFFORT_LABELS[option])}</button>`);
1334
1499
  }
1335
1500
  $$renderer2.push(`<!--]--></div></form> `);
1336
1501
  if (effortError) {
1337
- $$renderer2.push("<!--[0-->");
1338
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(effortError)}</div></div>`);
1502
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(effortError)}</div></div>`);
1339
1503
  } else {
1340
1504
  $$renderer2.push("<!--[-1-->");
1341
1505
  }
1342
1506
  $$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/claudeOutputStyle"><div class="label svelte-1n6ht58">`);
1343
1507
  Message_square($$renderer2, { size: 20 });
1344
- $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude output style</div> <div class="desc svelte-1n6ht58">The output style Claude Code starts new sessions in, written to <code class="svelte-1n6ht58">~/.claude/settings.json</code>. <strong>Default</strong> inherits your host <code class="svelte-1n6ht58">~/.claude/settings.json</code> (including any custom styles); <strong>None</strong> forces it off. Applies on create and rebuild, not to already-running instances.</div></div></div> <input type="hidden" name="style"${$29.attr("value", outputStyleChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude output style"><!--[-->`);
1345
- const each_array_2 = $29.ensure_array_like(CLAUDE_OUTPUT_STYLES);
1508
+ $$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"${$31.attr("value", outputStyleChoice)}/> <div class="mode-toggle svelte-1n6ht58" role="group" aria-label="Claude output style"><!--[-->`);
1509
+ const each_array_2 = $31.ensure_array_like(CLAUDE_OUTPUT_STYLES);
1346
1510
  for (let $$index_2 = 0, $$length = each_array_2.length;$$index_2 < $$length; $$index_2++) {
1347
1511
  let option = each_array_2[$$index_2];
1348
- $$renderer2.push(`<button type="button"${$29.attr_class("mode-btn svelte-1n6ht58", undefined, { active: outputStyleChoice === option })}${$29.attr("aria-pressed", outputStyleChoice === option)}${$29.attr("disabled", savingOutputStyle, true)}>${$29.escape(OUTPUT_STYLE_LABELS[option])}</button>`);
1512
+ $$renderer2.push(`<button type="button"${$31.attr_class("mode-btn svelte-1n6ht58", undefined, { active: outputStyleChoice === option })}${$31.attr("aria-pressed", outputStyleChoice === option)}${$31.attr("disabled", savingOutputStyle, true)}>${$31.escape(OUTPUT_STYLE_LABELS[option])}</button>`);
1349
1513
  }
1350
1514
  $$renderer2.push(`<!--]--></div></form> `);
1351
1515
  if (outputStyleError) {
1352
- $$renderer2.push("<!--[0-->");
1353
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(outputStyleError)}</div></div>`);
1516
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(outputStyleError)}</div></div>`);
1354
1517
  } else {
1355
1518
  $$renderer2.push("<!--[-1-->");
1356
1519
  }
@@ -1358,13 +1521,12 @@ function SettingsView($$renderer, $$props) {
1358
1521
  Container($$renderer2, { size: 20 });
1359
1522
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Default container image `);
1360
1523
  if (dockerArch) {
1361
- $$renderer2.push("<!--[0-->");
1362
- $$renderer2.push(`<span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$29.escape(dockerArch)}</span>`);
1524
+ $$renderer2.push(`<!--[0--><span class="arch svelte-1n6ht58" title="Docker daemon architecture">${$31.escape(dockerArch)}</span>`);
1363
1525
  } else {
1364
1526
  $$renderer2.push("<!--[-1-->");
1365
1527
  }
1366
1528
  $$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">Used only when a project folder ships no devcontainer.json. Takes effect for instances
1367
- created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$29.attr("value", image)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> `);
1529
+ created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="image" class="image-input svelte-1n6ht58"${$31.attr("value", image)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="mcr.microsoft.com/devcontainers/base:ubuntu"/> `);
1368
1530
  Button($$renderer2, {
1369
1531
  type: "submit",
1370
1532
  disabled: savingImage,
@@ -1379,26 +1541,22 @@ function SettingsView($$renderer, $$props) {
1379
1541
  icon: Rotate_ccw,
1380
1542
  disabled: savingImage,
1381
1543
  onclick: resetImage,
1382
- title: `Reset to default (${$29.stringify(builtinImage)})`,
1544
+ title: `Reset to default (${$31.stringify(builtinImage)})`,
1383
1545
  "aria-label": "Reset to default image"
1384
1546
  });
1385
1547
  $$renderer2.push(`<!----></div> <div class="desc tip svelte-1n6ht58">`);
1386
1548
  if (dockerArch) {
1387
- $$renderer2.push("<!--[0-->");
1388
- $$renderer2.push(`Your Docker daemon runs on <strong>${$29.escape(dockerArch)}</strong> \u2014 pick an image that publishes
1389
- an <strong>${$29.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
1549
+ $$renderer2.push(`<!--[0-->Your Docker daemon runs on <strong>${$31.escape(dockerArch)}</strong> \u2014 pick an image that publishes
1550
+ an <strong>${$31.escape(dockerArch)}</strong> manifest, or the pull will fail.`);
1390
1551
  } else {
1391
- $$renderer2.push("<!--[-1-->");
1392
- $$renderer2.push(`Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
1552
+ $$renderer2.push(`<!--[-1-->Pick an image whose manifest covers your Docker daemon's architecture, or the pull will
1393
1553
  fail.`);
1394
1554
  }
1395
1555
  $$renderer2.push(`<!--]--></div> `);
1396
1556
  if (imageError) {
1397
- $$renderer2.push("<!--[0-->");
1398
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(imageError)}</div>`);
1557
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(imageError)}</div>`);
1399
1558
  } else if (imageSaved) {
1400
- $$renderer2.push("<!--[1-->");
1401
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
1559
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">Saved.</div>`);
1402
1560
  } else {
1403
1561
  $$renderer2.push("<!--[-1-->");
1404
1562
  }
@@ -1406,7 +1564,7 @@ function SettingsView($$renderer, $$props) {
1406
1564
  Folder_minus($$renderer2, { size: 20 });
1407
1565
  $$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
1408
1566
  new instance's workspace. Leave blank to copy everything. Only applies to local
1409
- folders \u2014 cloning a Git repo URL is unaffected.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="patterns" class="image-input svelte-1n6ht58"${$29.attr("value", copyIgnore)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> `);
1567
+ 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"${$31.attr("value", copyIgnore)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="node_modules, .venv, dist"/> `);
1410
1568
  Button($$renderer2, {
1411
1569
  type: "submit",
1412
1570
  disabled: savingCopyIgnore,
@@ -1421,23 +1579,31 @@ function SettingsView($$renderer, $$props) {
1421
1579
  icon: Rotate_ccw,
1422
1580
  disabled: savingCopyIgnore,
1423
1581
  onclick: resetCopyIgnore,
1424
- title: `Reset to default (${$29.stringify(builtinCopyIgnore)})`,
1582
+ title: `Reset to default (${$31.stringify(builtinCopyIgnore)})`,
1425
1583
  "aria-label": "Reset to default copy-ignore patterns"
1426
1584
  });
1427
1585
  $$renderer2.push(`<!----></div> `);
1428
1586
  if (copyIgnoreError) {
1429
- $$renderer2.push("<!--[0-->");
1430
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(copyIgnoreError)}</div>`);
1587
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(copyIgnoreError)}</div>`);
1431
1588
  } else if (copyIgnoreSaved) {
1432
- $$renderer2.push("<!--[1-->");
1433
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
1589
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">Saved.</div>`);
1434
1590
  } else {
1435
1591
  $$renderer2.push("<!--[-1-->");
1436
1592
  }
1437
- $$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/claudeConfigDir"><div class="label svelte-1n6ht58">`);
1593
+ $$renderer2.push(`<!--]--></form></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/workspaceUploadToggle"><div class="label svelte-1n6ht58">`);
1594
+ Upload($$renderer2, { size: 20 });
1595
+ $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Drop files into the workspace</div> <div class="desc svelte-1n6ht58">Drag-and-drop or paste files and images onto an instance to save them under <code class="svelte-1n6ht58">codebay-inbox/</code> in its workspace (git-excluded). The in-container path is shown
1596
+ so Claude can Read it. Turn off to drop straight into VS Code's explorer instead. Off by
1597
+ default.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", workspaceUpload, true)}${$31.attr("disabled", savingUpload, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1598
+ if (uploadError) {
1599
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(uploadError)}</div></div>`);
1600
+ } else {
1601
+ $$renderer2.push("<!--[-1-->");
1602
+ }
1603
+ $$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row image-row svelte-1n6ht58" method="POST" action="?/claudeConfigDir"><div class="label svelte-1n6ht58">`);
1438
1604
  Folder_cog($$renderer2, { size: 20 });
1439
1605
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Claude config directory</div> <div class="desc svelte-1n6ht58">Host directory the Claude Code injections read from \u2014 credentials, statusLine, output
1440
- styles, and global skills / <code class="svelte-1n6ht58">CLAUDE.md</code>. Leave blank to use <code class="svelte-1n6ht58">~/.claude</code>. Takes effect for instances created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="dir" class="image-input svelte-1n6ht58"${$29.attr("value", claudeDir)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="~/.claude"/> `);
1606
+ styles, and global skills / <code class="svelte-1n6ht58">CLAUDE.md</code>. Leave blank to use <code class="svelte-1n6ht58">~/.claude</code>. Takes effect for instances created from now on.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="dir" class="image-input svelte-1n6ht58"${$31.attr("value", claudeDir)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="~/.claude"/> `);
1441
1607
  Button($$renderer2, {
1442
1608
  type: "submit",
1443
1609
  disabled: savingClaudeDir,
@@ -1457,11 +1623,9 @@ function SettingsView($$renderer, $$props) {
1457
1623
  });
1458
1624
  $$renderer2.push(`<!----></div> `);
1459
1625
  if (claudeDirError) {
1460
- $$renderer2.push("<!--[0-->");
1461
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeDirError)}</div>`);
1626
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(claudeDirError)}</div>`);
1462
1627
  } else if (claudeDirSaved) {
1463
- $$renderer2.push("<!--[1-->");
1464
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
1628
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">Saved.</div>`);
1465
1629
  } else {
1466
1630
  $$renderer2.push("<!--[-1-->");
1467
1631
  }
@@ -1469,23 +1633,21 @@ function SettingsView($$renderer, $$props) {
1469
1633
  Plug($$renderer2, { size: 20 });
1470
1634
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">MCP server</div> <div class="desc svelte-1n6ht58">Expose Codebay to other AI agents over MCP, so they can create sandboxes, run Claude
1471
1635
  Code in them non-interactively and read back the result. Off by default; the endpoint
1472
- 404s until you turn it on, then authenticates with the bearer token below.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", mcp, true)}${$29.attr("disabled", savingMcpToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1636
+ 404s until you turn it on, then authenticates with the bearer token below.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", mcp, true)}${$31.attr("disabled", savingMcpToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1473
1637
  if (mcpToggleError) {
1474
- $$renderer2.push("<!--[0-->");
1475
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(mcpToggleError)}</div></div>`);
1638
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(mcpToggleError)}</div></div>`);
1476
1639
  } else {
1477
1640
  $$renderer2.push("<!--[-1-->");
1478
1641
  }
1479
1642
  $$renderer2.push(`<!--]--> `);
1480
1643
  if (mcp) {
1481
- $$renderer2.push("<!--[0-->");
1482
- $$renderer2.push(`<div class="row divided svelte-1n6ht58"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Token</div> <div class="desc svelte-1n6ht58">Anything holding this token can create containers and run agents with your GitHub
1483
- and Claude credentials. Treat it like a password.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Bearer</span> <input type="text" class="image-input svelte-1n6ht58"${$29.attr("value", mcpTokenValue)} readonly="" spellcheck="false"/></label> <div class="mcp-actions svelte-1n6ht58">`);
1644
+ $$renderer2.push(`<!--[0--><div class="row divided svelte-1n6ht58"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Token</div> <div class="desc svelte-1n6ht58">Anything holding this token can create containers and run agents with your GitHub
1645
+ and Claude credentials. Treat it like a password.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Bearer</span> <input type="text" class="image-input svelte-1n6ht58"${$31.attr("value", mcpTokenValue)} readonly="" spellcheck="false"/></label> <div class="mcp-actions svelte-1n6ht58">`);
1484
1646
  Button($$renderer2, {
1485
1647
  type: "button",
1486
1648
  onclick: () => copyMcp("token", mcpTokenValue),
1487
1649
  children: ($$renderer3) => {
1488
- $$renderer3.push(`<!---->${$29.escape(mcpCopied === "token" ? "Copied" : "Copy token")}`);
1650
+ $$renderer3.push(`<!---->${$31.escape(mcpCopied === "token" ? "Copied" : "Copy token")}`);
1489
1651
  },
1490
1652
  $$slots: { default: true }
1491
1653
  });
@@ -1494,7 +1656,7 @@ function SettingsView($$renderer, $$props) {
1494
1656
  type: "button",
1495
1657
  onclick: () => copyMcp("command", mcpCommand()),
1496
1658
  children: ($$renderer3) => {
1497
- $$renderer3.push(`<!---->${$29.escape(mcpCopied === "command" ? "Copied" : "Copy claude mcp add")}`);
1659
+ $$renderer3.push(`<!---->${$31.escape(mcpCopied === "command" ? "Copied" : "Copy claude mcp add")}`);
1498
1660
  },
1499
1661
  $$slots: { default: true }
1500
1662
  });
@@ -1503,22 +1665,20 @@ function SettingsView($$renderer, $$props) {
1503
1665
  type: "submit",
1504
1666
  disabled: savingMcpToken,
1505
1667
  children: ($$renderer3) => {
1506
- $$renderer3.push(`<!---->${$29.escape(savingMcpToken ? "Regenerating\u2026" : "Regenerate")}`);
1668
+ $$renderer3.push(`<!---->${$31.escape(savingMcpToken ? "Regenerating\u2026" : "Regenerate")}`);
1507
1669
  },
1508
1670
  $$slots: { default: true }
1509
1671
  });
1510
- $$renderer2.push(`<!----></form></div> <code class="mcp-command svelte-1n6ht58">${$29.escape(mcpCommand())}</code> `);
1672
+ $$renderer2.push(`<!----></form></div> <code class="mcp-command svelte-1n6ht58">${$31.escape(mcpCommand())}</code> `);
1511
1673
  if (mcpTokenError) {
1512
- $$renderer2.push("<!--[0-->");
1513
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(mcpTokenError)}</div>`);
1674
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(mcpTokenError)}</div>`);
1514
1675
  } else {
1515
1676
  $$renderer2.push("<!--[-1-->");
1516
1677
  }
1517
1678
  $$renderer2.push(`<!--]--></div></div> <form class="row divided svelte-1n6ht58" method="POST" action="?/mcpPrAttributionToggle"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Credit Codebay on pull requests</div> <div class="desc svelte-1n6ht58">Append a one-line footer to the body of every pull request an agent opens through <code class="svelte-1n6ht58">create_pr</code>. Off by default \u2014 an attribution line on your PRs is yours to
1518
- opt into.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", mcpAttribution, true)}${$29.attr("disabled", savingMcpAttribution, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1679
+ opt into.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", mcpAttribution, true)}${$31.attr("disabled", savingMcpAttribution, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1519
1680
  if (mcpAttributionError) {
1520
- $$renderer2.push("<!--[0-->");
1521
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(mcpAttributionError)}</div></div>`);
1681
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(mcpAttributionError)}</div></div>`);
1522
1682
  } else {
1523
1683
  $$renderer2.push("<!--[-1-->");
1524
1684
  }
@@ -1530,18 +1690,16 @@ function SettingsView($$renderer, $$props) {
1530
1690
  User_cog($$renderer2, { size: 20 });
1531
1691
  $$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
1532
1692
  new container, taking precedence over the host's own git config. When off, each container
1533
- falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", gitIdentity, true)}${$29.attr("disabled", savingGitToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1693
+ falls back to the host's identity.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", gitIdentity, true)}${$31.attr("disabled", savingGitToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1534
1694
  if (gitToggleError) {
1535
- $$renderer2.push("<!--[0-->");
1536
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(gitToggleError)}</div></div>`);
1695
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(gitToggleError)}</div></div>`);
1537
1696
  } else {
1538
1697
  $$renderer2.push("<!--[-1-->");
1539
1698
  }
1540
1699
  $$renderer2.push(`<!--]--> `);
1541
1700
  if (gitIdentity) {
1542
- $$renderer2.push("<!--[0-->");
1543
- $$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/gitIdentityOverride"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Identity</div> <div class="desc svelte-1n6ht58">Both fields are required \u2014 leave either blank and the container falls back to the
1544
- host's identity.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Name</span> <input type="text" name="name" class="image-input svelte-1n6ht58"${$29.attr("value", gitName)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="Jane Doe"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Email</span> <input type="text" name="email" class="image-input svelte-1n6ht58"${$29.attr("value", gitEmail)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="jane@example.com"/></label> <div class="model-save-row svelte-1n6ht58">`);
1701
+ $$renderer2.push(`<!--[0--><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
1702
+ 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"${$31.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"${$31.attr("value", gitEmail)} spellcheck="false" autocapitalize="off" autocorrect="off" placeholder="jane@example.com"/></label> <div class="model-save-row svelte-1n6ht58">`);
1545
1703
  Button($$renderer2, {
1546
1704
  type: "submit",
1547
1705
  disabled: savingGitIdentity,
@@ -1552,11 +1710,9 @@ function SettingsView($$renderer, $$props) {
1552
1710
  });
1553
1711
  $$renderer2.push(`<!----></div></div> `);
1554
1712
  if (gitIdentityError) {
1555
- $$renderer2.push("<!--[0-->");
1556
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(gitIdentityError)}</div>`);
1713
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(gitIdentityError)}</div>`);
1557
1714
  } else if (gitIdentitySaved) {
1558
- $$renderer2.push("<!--[1-->");
1559
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">Saved.</div>`);
1715
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">Saved.</div>`);
1560
1716
  } else {
1561
1717
  $$renderer2.push("<!--[-1-->");
1562
1718
  }
@@ -1567,33 +1723,30 @@ function SettingsView($$renderer, $$props) {
1567
1723
  $$renderer2.push(`<!--]--></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/disableBuildCache"><div class="label svelte-1n6ht58">`);
1568
1724
  Layers($$renderer2, { size: 20 });
1569
1725
  $$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
1570
- and rebuilds \u2014 slower, but always picks up upstream image/layer changes.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", noCache, true)}${$29.attr("disabled", savingCache, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1726
+ 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"${$31.attr("checked", noCache, true)}${$31.attr("disabled", savingCache, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1571
1727
  if (cacheError) {
1572
- $$renderer2.push("<!--[0-->");
1573
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(cacheError)}</div></div>`);
1728
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(cacheError)}</div></div>`);
1574
1729
  } else {
1575
1730
  $$renderer2.push("<!--[-1-->");
1576
1731
  }
1577
1732
  $$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/clearBuildCache"><div class="label svelte-1n6ht58">`);
1578
- Trash_2($$renderer2, { size: 20 });
1733
+ Trash($$renderer2, { size: 20 });
1579
1734
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Clear build cache</div> <div class="desc svelte-1n6ht58">Purge Docker's BuildKit layer cache now, so the next build runs uncached. Doesn't
1580
1735
  remove pulled images.</div> `);
1581
1736
  if (clearError) {
1582
- $$renderer2.push("<!--[0-->");
1583
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(clearError)}</div>`);
1737
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(clearError)}</div>`);
1584
1738
  } else if (clearMsg) {
1585
- $$renderer2.push("<!--[1-->");
1586
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(clearMsg)}</div>`);
1739
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(clearMsg)}</div>`);
1587
1740
  } else {
1588
1741
  $$renderer2.push("<!--[-1-->");
1589
1742
  }
1590
1743
  $$renderer2.push(`<!--]--></div></div> `);
1591
1744
  Button($$renderer2, {
1592
1745
  type: "submit",
1593
- icon: Trash_2,
1746
+ icon: Trash,
1594
1747
  disabled: clearing,
1595
1748
  children: ($$renderer3) => {
1596
- $$renderer3.push(`<!---->${$29.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
1749
+ $$renderer3.push(`<!---->${$31.escape(clearing ? "Clearing\u2026" : "Clear cache")}`);
1597
1750
  },
1598
1751
  $$slots: { default: true }
1599
1752
  });
@@ -1602,11 +1755,9 @@ function SettingsView($$renderer, $$props) {
1602
1755
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Rebuild running containers (no cache)</div> <div class="desc svelte-1n6ht58">Rebuild every currently-running instance from scratch, without using any cached image
1603
1756
  layers. In-container edits are kept; stopped instances are left alone.</div> `);
1604
1757
  if (rebuildError) {
1605
- $$renderer2.push("<!--[0-->");
1606
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(rebuildError)}</div>`);
1758
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(rebuildError)}</div>`);
1607
1759
  } else if (rebuildMsg) {
1608
- $$renderer2.push("<!--[1-->");
1609
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(rebuildMsg)}</div>`);
1760
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(rebuildMsg)}</div>`);
1610
1761
  } else {
1611
1762
  $$renderer2.push("<!--[-1-->");
1612
1763
  }
@@ -1616,43 +1767,38 @@ function SettingsView($$renderer, $$props) {
1616
1767
  icon: Hammer,
1617
1768
  disabled: rebuilding,
1618
1769
  children: ($$renderer3) => {
1619
- $$renderer3.push(`<!---->${$29.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
1770
+ $$renderer3.push(`<!---->${$31.escape(rebuilding ? "Starting\u2026" : "Rebuild all")}`);
1620
1771
  },
1621
1772
  $$slots: { default: true }
1622
1773
  });
1623
- $$renderer2.push(`<!----></form></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58">`);
1774
+ $$renderer2.push(`<!----></form></section> <section${$31.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualTokensToggle"><div class="label svelte-1n6ht58">`);
1624
1775
  Key_round($$renderer2, { size: 20 });
1625
1776
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Set tokens manually `);
1626
1777
  if (customEndpoint) {
1627
- $$renderer2.push("<!--[0-->");
1628
- $$renderer2.push(`<span class="arch svelte-1n6ht58" title="Disabled while LiteLLM + Bedrock mode is on">disabled</span>`);
1778
+ $$renderer2.push(`<!--[0--><span class="arch svelte-1n6ht58" title="Disabled while LiteLLM + Bedrock mode is on">disabled</span>`);
1629
1779
  } else {
1630
1780
  $$renderer2.push("<!--[-1-->");
1631
1781
  }
1632
1782
  $$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
1633
1783
  if (customEndpoint) {
1634
- $$renderer2.push("<!--[0-->");
1635
- $$renderer2.push(`Not available while LiteLLM + Bedrock mode is enabled \u2014 Claude credentials are
1784
+ $$renderer2.push(`<!--[0-->Not available while LiteLLM + Bedrock mode is enabled \u2014 Claude credentials are
1636
1785
  provided by the LiteLLM endpoint instead.`);
1637
1786
  } else {
1638
- $$renderer2.push("<!--[-1-->");
1639
- $$renderer2.push(`Provide GitHub and Claude Code tokens yourself instead of discovering them from this
1787
+ $$renderer2.push(`<!--[-1-->Provide GitHub and Claude Code tokens yourself instead of discovering them from this
1640
1788
  machine. Useful on a headless server or when signed in as a different identity. A
1641
1789
  token set here is injected into every new container and overrides host credential
1642
1790
  discovery.`);
1643
1791
  }
1644
- $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", manualTokens, true)}${$29.attr("disabled", savingManualToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1792
+ $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", manualTokens, true)}${$31.attr("disabled", savingManualToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1645
1793
  if (manualToggleError) {
1646
- $$renderer2.push("<!--[0-->");
1647
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualToggleError)}</div></div>`);
1794
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(manualToggleError)}</div></div>`);
1648
1795
  } else {
1649
1796
  $$renderer2.push("<!--[-1-->");
1650
1797
  }
1651
1798
  $$renderer2.push(`<!--]--> `);
1652
1799
  if (manualTokens && !customEndpoint) {
1653
- $$renderer2.push("<!--[0-->");
1654
- $$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/githubToken"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">GitHub token</div> <div class="desc svelte-1n6ht58">macOS / Linux: run <code class="svelte-1n6ht58">gh auth token</code> to print your GitHub CLI token, or
1655
- create a Personal Access Token at <code class="svelte-1n6ht58">github.com/settings/tokens</code> (scopes: <code class="svelte-1n6ht58">repo</code>, <code class="svelte-1n6ht58">read:org</code>). Leave blank and Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="githubToken" class="image-input svelte-1n6ht58"${$29.attr("value", githubToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", ghSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "ghp_\u2026 / gho_\u2026")}/> `);
1800
+ $$renderer2.push(`<!--[0--><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
1801
+ 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"${$31.attr("value", githubToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$31.attr("placeholder", ghSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "ghp_\u2026 / gho_\u2026")}/> `);
1656
1802
  Button($$renderer2, {
1657
1803
  type: "submit",
1658
1804
  disabled: savingGithub,
@@ -1663,18 +1809,16 @@ function SettingsView($$renderer, $$props) {
1663
1809
  });
1664
1810
  $$renderer2.push(`<!----></div> `);
1665
1811
  if (githubError) {
1666
- $$renderer2.push("<!--[0-->");
1667
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(githubError)}</div>`);
1812
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(githubError)}</div>`);
1668
1813
  } else if (githubMsg) {
1669
- $$renderer2.push("<!--[1-->");
1670
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(githubMsg)}</div>`);
1814
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(githubMsg)}</div>`);
1671
1815
  } else {
1672
1816
  $$renderer2.push("<!--[-1-->");
1673
1817
  }
1674
1818
  $$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
1675
1819
  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
1676
1820
  the first <code class="svelte-1n6ht58">claude</code> to refresh it signs the other one out. Leave blank and Save
1677
- to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$29.attr("value", claudeToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", claudeSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-ant-oat\u2026")}/> `);
1821
+ to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="claudeToken" class="image-input svelte-1n6ht58"${$31.attr("value", claudeToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$31.attr("placeholder", claudeSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-ant-oat\u2026")}/> `);
1678
1822
  Button($$renderer2, {
1679
1823
  type: "submit",
1680
1824
  disabled: savingClaude,
@@ -1685,11 +1829,9 @@ function SettingsView($$renderer, $$props) {
1685
1829
  });
1686
1830
  $$renderer2.push(`<!----></div> `);
1687
1831
  if (claudeError) {
1688
- $$renderer2.push("<!--[0-->");
1689
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(claudeError)}</div>`);
1832
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(claudeError)}</div>`);
1690
1833
  } else if (claudeMsg) {
1691
- $$renderer2.push("<!--[1-->");
1692
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(claudeMsg)}</div>`);
1834
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(claudeMsg)}</div>`);
1693
1835
  } else {
1694
1836
  $$renderer2.push("<!--[-1-->");
1695
1837
  }
@@ -1697,37 +1839,32 @@ function SettingsView($$renderer, $$props) {
1697
1839
  } else {
1698
1840
  $$renderer2.push("<!--[-1-->");
1699
1841
  }
1700
- $$renderer2.push(`<!--]--></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": litellmBlocker() })}><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58">`);
1842
+ $$renderer2.push(`<!--]--></section> <section${$31.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": litellmBlocker() })}><form class="row svelte-1n6ht58" method="POST" action="?/customEndpointToggle"><div class="label svelte-1n6ht58">`);
1701
1843
  Key_round($$renderer2, { size: 20 });
1702
1844
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">LiteLLM + Bedrock `);
1703
1845
  if (litellmBlocker()) {
1704
- $$renderer2.push("<!--[0-->");
1705
- $$renderer2.push(`<span class="arch svelte-1n6ht58"${$29.attr("title", `Disabled while ${$29.stringify(litellmBlocker())} is on`)}>disabled</span>`);
1846
+ $$renderer2.push(`<!--[0--><span class="arch svelte-1n6ht58"${$31.attr("title", `Disabled while ${$31.stringify(litellmBlocker())} is on`)}>disabled</span>`);
1706
1847
  } else {
1707
1848
  $$renderer2.push("<!--[-1-->");
1708
1849
  }
1709
1850
  $$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
1710
1851
  if (litellmBlocker()) {
1711
- $$renderer2.push("<!--[0-->");
1712
- $$renderer2.push(`Not available while "${$29.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
1852
+ $$renderer2.push(`<!--[0-->Not available while "${$31.escape(litellmBlocker())}" is enabled \u2014 these modes are mutually
1713
1853
  incompatible.`);
1714
1854
  } else {
1715
- $$renderer2.push("<!--[-1-->");
1716
- $$renderer2.push(`Route <code class="svelte-1n6ht58">claude</code> through a LiteLLM proxy fronting AWS Bedrock instead of Anthropic's
1855
+ $$renderer2.push(`<!--[-1-->Route <code class="svelte-1n6ht58">claude</code> through a LiteLLM proxy fronting AWS Bedrock instead of Anthropic's
1717
1856
  default API. When enabled, the Bedrock endpoint variables are injected into every new
1718
1857
  container, host OAuth credentials are not used, and "Set tokens manually" is disabled.`);
1719
1858
  }
1720
- $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", customEndpoint, true)}${$29.attr("disabled", savingCustomToggle || !!litellmBlocker(), true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1859
+ $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", customEndpoint, true)}${$31.attr("disabled", savingCustomToggle || !!litellmBlocker(), true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1721
1860
  if (customToggleError) {
1722
- $$renderer2.push("<!--[0-->");
1723
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customToggleError)}</div></div>`);
1861
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(customToggleError)}</div></div>`);
1724
1862
  } else {
1725
1863
  $$renderer2.push("<!--[-1-->");
1726
1864
  }
1727
1865
  $$renderer2.push(`<!--]--> `);
1728
1866
  if (customEndpoint) {
1729
- $$renderer2.push("<!--[0-->");
1730
- $$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/customBaseUrl"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Base URL</div> <div class="desc svelte-1n6ht58">The LiteLLM proxy endpoint, e.g. <code class="svelte-1n6ht58">https://litellm.example.com/bedrock</code>. Passed as <code class="svelte-1n6ht58">ANTHROPIC_BEDROCK_BASE_URL</code>.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="text" name="baseUrl" class="image-input svelte-1n6ht58"${$29.attr("value", customBaseUrl)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> `);
1867
+ $$renderer2.push(`<!--[0--><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"${$31.attr("value", customBaseUrl)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="https://litellm.example.com/bedrock"/> `);
1731
1868
  Button($$renderer2, {
1732
1869
  type: "submit",
1733
1870
  disabled: savingCustomBaseUrl,
@@ -1738,16 +1875,14 @@ function SettingsView($$renderer, $$props) {
1738
1875
  });
1739
1876
  $$renderer2.push(`<!----></div> `);
1740
1877
  if (customBaseUrlError) {
1741
- $$renderer2.push("<!--[0-->");
1742
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customBaseUrlError)}</div>`);
1878
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(customBaseUrlError)}</div>`);
1743
1879
  } else if (customBaseUrlMsg) {
1744
- $$renderer2.push("<!--[1-->");
1745
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customBaseUrlMsg)}</div>`);
1880
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(customBaseUrlMsg)}</div>`);
1746
1881
  } else {
1747
1882
  $$renderer2.push("<!--[-1-->");
1748
1883
  }
1749
1884
  $$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
1750
- Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$29.attr("value", customToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$29.attr("placeholder", customTokenSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-\u2026")}/> `);
1885
+ Save to clear.</div></div></div> <div class="image-controls svelte-1n6ht58"><input type="password" name="token" class="image-input svelte-1n6ht58"${$31.attr("value", customToken)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"${$31.attr("placeholder", customTokenSaved ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022 (saved)" : "sk-\u2026")}/> `);
1751
1886
  Button($$renderer2, {
1752
1887
  type: "submit",
1753
1888
  disabled: savingCustomToken,
@@ -1758,16 +1893,14 @@ function SettingsView($$renderer, $$props) {
1758
1893
  });
1759
1894
  $$renderer2.push(`<!----></div> `);
1760
1895
  if (customTokenError) {
1761
- $$renderer2.push("<!--[0-->");
1762
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customTokenError)}</div>`);
1896
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(customTokenError)}</div>`);
1763
1897
  } else if (customTokenMsg) {
1764
- $$renderer2.push("<!--[1-->");
1765
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customTokenMsg)}</div>`);
1898
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(customTokenMsg)}</div>`);
1766
1899
  } else {
1767
1900
  $$renderer2.push("<!--[-1-->");
1768
1901
  }
1769
1902
  $$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
1770
- launcher script. Leave a field as-is to keep its current value.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$29.attr("value", customOpusModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Sonnet</span> <input type="text" name="sonnetModel" class="image-input svelte-1n6ht58"${$29.attr("value", customSonnetModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Haiku</span> <input type="text" name="haikuModel" class="image-input svelte-1n6ht58"${$29.attr("value", customHaikuModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Small/fast</span> <input type="text" name="smallFastModel" class="image-input svelte-1n6ht58"${$29.attr("value", customSmallFastModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Default</span> <input type="text" name="defaultModel" class="image-input svelte-1n6ht58"${$29.attr("value", customDefaultModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
1903
+ 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"${$31.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"${$31.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"${$31.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"${$31.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"${$31.attr("value", customDefaultModel)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
1771
1904
  Button($$renderer2, {
1772
1905
  type: "submit",
1773
1906
  disabled: savingCustomModels,
@@ -1778,11 +1911,9 @@ function SettingsView($$renderer, $$props) {
1778
1911
  });
1779
1912
  $$renderer2.push(`<!----></div></div> `);
1780
1913
  if (customModelsError) {
1781
- $$renderer2.push("<!--[0-->");
1782
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customModelsError)}</div>`);
1914
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(customModelsError)}</div>`);
1783
1915
  } else if (customModelsMsg) {
1784
- $$renderer2.push("<!--[1-->");
1785
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customModelsMsg)}</div>`);
1916
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(customModelsMsg)}</div>`);
1786
1917
  } else {
1787
1918
  $$renderer2.push("<!--[-1-->");
1788
1919
  }
@@ -1790,36 +1921,31 @@ function SettingsView($$renderer, $$props) {
1790
1921
  } else {
1791
1922
  $$renderer2.push("<!--[-1-->");
1792
1923
  }
1793
- $$renderer2.push(`<!--]--></section> <section${$29.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualModelToggle"><div class="label svelte-1n6ht58">`);
1924
+ $$renderer2.push(`<!--]--></section> <section${$31.attr_class("card svelte-1n6ht58", undefined, { "disabled-card": customEndpoint })}><form class="row svelte-1n6ht58" method="POST" action="?/manualModelToggle"><div class="label svelte-1n6ht58">`);
1794
1925
  Cpu($$renderer2, { size: 18 });
1795
1926
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Override models manually `);
1796
1927
  if (customEndpoint) {
1797
- $$renderer2.push("<!--[0-->");
1798
- $$renderer2.push(`<span class="arch svelte-1n6ht58" title="Disabled while LiteLLM + Bedrock is on">disabled</span>`);
1928
+ $$renderer2.push(`<!--[0--><span class="arch svelte-1n6ht58" title="Disabled while LiteLLM + Bedrock is on">disabled</span>`);
1799
1929
  } else {
1800
1930
  $$renderer2.push("<!--[-1-->");
1801
1931
  }
1802
1932
  $$renderer2.push(`<!--]--></div> <div class="desc svelte-1n6ht58">`);
1803
1933
  if (customEndpoint) {
1804
- $$renderer2.push("<!--[0-->");
1805
- $$renderer2.push(`Not available while "LiteLLM + Bedrock" is enabled \u2014 these modes are mutually
1934
+ $$renderer2.push(`<!--[0-->Not available while "LiteLLM + Bedrock" is enabled \u2014 these modes are mutually
1806
1935
  incompatible.`);
1807
1936
  } else {
1808
- $$renderer2.push("<!--[-1-->");
1809
- $$renderer2.push(`Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
1937
+ $$renderer2.push(`<!--[-1-->Pin which model <code class="svelte-1n6ht58">claude</code> uses on the standard (subscription) path. Only
1810
1938
  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.`);
1811
1939
  }
1812
- $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", manualModelOverride, true)}${$29.attr("disabled", savingManualModelToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1940
+ $$renderer2.push(`<!--]--></div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", manualModelOverride, true)}${$31.attr("disabled", savingManualModelToggle || customEndpoint, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1813
1941
  if (manualModelToggleError) {
1814
- $$renderer2.push("<!--[0-->");
1815
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(manualModelToggleError)}</div></div>`);
1942
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(manualModelToggleError)}</div></div>`);
1816
1943
  } else {
1817
1944
  $$renderer2.push("<!--[-1-->");
1818
1945
  }
1819
1946
  $$renderer2.push(`<!--]--> `);
1820
1947
  if (manualModelOverride) {
1821
- $$renderer2.push("<!--[0-->");
1822
- $$renderer2.push(`<form class="row divided token-row svelte-1n6ht58" method="POST" action="?/manualModels"><div class="label svelte-1n6ht58"><div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Model IDs</div> <div class="desc svelte-1n6ht58">A model name or alias per tier, e.g. <code class="svelte-1n6ht58">opusplan</code>, <code class="svelte-1n6ht58">opus</code>, <code class="svelte-1n6ht58">sonnet</code>, or a full <code class="svelte-1n6ht58">claude-\u2026</code> id. Leave a field blank to skip it.</div></div></div> <div class="model-fields svelte-1n6ht58"><label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Opus</span> <input type="text" name="opusModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualOpus)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Sonnet</span> <input type="text" name="sonnetModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualSonnet)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Haiku</span> <input type="text" name="haikuModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualHaiku)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Small/fast</span> <input type="text" name="smallFastModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualSmallFast)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <label class="model-row svelte-1n6ht58"><span class="model-label svelte-1n6ht58">Default</span> <input type="text" name="defaultModel" class="image-input svelte-1n6ht58"${$29.attr("value", manualDefault)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
1948
+ $$renderer2.push(`<!--[0--><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"${$31.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"${$31.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"${$31.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"${$31.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"${$31.attr("value", manualDefault)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off"/></label> <div class="model-save-row svelte-1n6ht58">`);
1823
1949
  Button($$renderer2, {
1824
1950
  type: "submit",
1825
1951
  disabled: savingManualModels,
@@ -1830,11 +1956,9 @@ function SettingsView($$renderer, $$props) {
1830
1956
  });
1831
1957
  $$renderer2.push(`<!----></div></div> `);
1832
1958
  if (manualModelsError) {
1833
- $$renderer2.push("<!--[0-->");
1834
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(manualModelsError)}</div>`);
1959
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(manualModelsError)}</div>`);
1835
1960
  } else if (manualModelsMsg) {
1836
- $$renderer2.push("<!--[1-->");
1837
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(manualModelsMsg)}</div>`);
1961
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(manualModelsMsg)}</div>`);
1838
1962
  } else {
1839
1963
  $$renderer2.push("<!--[-1-->");
1840
1964
  }
@@ -1846,43 +1970,40 @@ function SettingsView($$renderer, $$props) {
1846
1970
  Variable($$renderer2, { size: 20 });
1847
1971
  $$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
1848
1972
  interactive shells. Values are read from this process's own environment at container
1849
- start and are never shown here or stored \u2014 only the variable names are saved.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", hostEnvVars, true)}${$29.attr("disabled", savingHostEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1973
+ 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"${$31.attr("checked", hostEnvVars, true)}${$31.attr("disabled", savingHostEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1850
1974
  if (hostEnvToggleError) {
1851
- $$renderer2.push("<!--[0-->");
1852
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(hostEnvToggleError)}</div></div>`);
1975
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(hostEnvToggleError)}</div></div>`);
1853
1976
  } else {
1854
1977
  $$renderer2.push("<!--[-1-->");
1855
1978
  }
1856
1979
  $$renderer2.push(`<!--]--> `);
1857
1980
  if (hostEnvVars) {
1858
- $$renderer2.push("<!--[0-->");
1859
- $$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
1860
- const each_array_3 = $29.ensure_array_like(hostEnvNames);
1981
+ $$renderer2.push(`<!--[0--><div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
1982
+ const each_array_3 = $31.ensure_array_like(hostEnvNames);
1861
1983
  if (each_array_3.length !== 0) {
1862
1984
  $$renderer2.push("<!--[-->");
1863
1985
  for (let $$index_4 = 0, $$length = each_array_3.length;$$index_4 < $$length; $$index_4++) {
1864
1986
  let name = each_array_3[$$index_4];
1865
1987
  $$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
1866
- const each_array_4 = $29.ensure_array_like(hostEnvNames.filter((n) => n !== name));
1988
+ const each_array_4 = $31.ensure_array_like(hostEnvNames.filter((n) => n !== name));
1867
1989
  for (let $$index_3 = 0, $$length2 = each_array_4.length;$$index_3 < $$length2; $$index_3++) {
1868
1990
  let other = each_array_4[$$index_3];
1869
- $$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", other)}/>`);
1991
+ $$renderer2.push(`<input type="hidden" name="names"${$31.attr("value", other)}/>`);
1870
1992
  }
1871
- $$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$29.escape(name)}</span> <span${$29.attr_class("var-status svelte-1n6ht58", undefined, { present: hostEnvPresence[name] })}${$29.attr("title", hostEnvPresence[name] ? "Set on this host \u2014 will be injected" : "Not set on this host \u2014 will be skipped")}>${$29.escape(hostEnvPresence[name] ? "set" : "missing")}</span> <button type="submit" class="var-remove svelte-1n6ht58"${$29.attr("disabled", savingHostEnvNames, true)}${$29.attr("aria-label", `Remove ${name}`)}>`);
1993
+ $$renderer2.push(`<!--]--> <span class="var-name svelte-1n6ht58">${$31.escape(name)}</span> <span${$31.attr_class("var-status svelte-1n6ht58", undefined, { present: hostEnvPresence[name] })}${$31.attr("title", hostEnvPresence[name] ? "Set on this host \u2014 will be injected" : "Not set on this host \u2014 will be skipped")}>${$31.escape(hostEnvPresence[name] ? "set" : "missing")}</span> <button type="submit" class="var-remove svelte-1n6ht58"${$31.attr("disabled", savingHostEnvNames, true)}${$31.attr("aria-label", `Remove ${name}`)}>`);
1872
1994
  X($$renderer2, { size: 13 });
1873
1995
  $$renderer2.push(`<!----></button></form>`);
1874
1996
  }
1875
1997
  } else {
1876
- $$renderer2.push("<!--[!-->");
1877
- $$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
1998
+ $$renderer2.push(`<!--[!--><div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
1878
1999
  }
1879
2000
  $$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/hostEnvVarNames"><!--[-->`);
1880
- const each_array_5 = $29.ensure_array_like(hostEnvNames);
2001
+ const each_array_5 = $31.ensure_array_like(hostEnvNames);
1881
2002
  for (let $$index_5 = 0, $$length = each_array_5.length;$$index_5 < $$length; $$index_5++) {
1882
2003
  let name = each_array_5[$$index_5];
1883
- $$renderer2.push(`<input type="hidden" name="names"${$29.attr("value", name)}/>`);
2004
+ $$renderer2.push(`<input type="hidden" name="names"${$31.attr("value", name)}/>`);
1884
2005
  }
1885
- $$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$29.attr("value", newHostEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> `);
2006
+ $$renderer2.push(`<!--]--> <input type="text" name="names" class="image-input svelte-1n6ht58"${$31.attr("value", newHostEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="AWS_ACCESS_KEY_ID"/> `);
1886
2007
  Button($$renderer2, {
1887
2008
  type: "submit",
1888
2009
  icon: Plus,
@@ -1894,11 +2015,9 @@ function SettingsView($$renderer, $$props) {
1894
2015
  });
1895
2016
  $$renderer2.push(`<!----></form> `);
1896
2017
  if (hostEnvNamesError) {
1897
- $$renderer2.push("<!--[0-->");
1898
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(hostEnvNamesError)}</div>`);
2018
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(hostEnvNamesError)}</div>`);
1899
2019
  } else if (hostEnvNamesMsg) {
1900
- $$renderer2.push("<!--[1-->");
1901
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(hostEnvNamesMsg)}</div>`);
2020
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(hostEnvNamesMsg)}</div>`);
1902
2021
  } else {
1903
2022
  $$renderer2.push("<!--[-1-->");
1904
2023
  }
@@ -1910,31 +2029,28 @@ function SettingsView($$renderer, $$props) {
1910
2029
  Key_square($$renderer2, { size: 20 });
1911
2030
  $$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
1912
2031
  locally, masked in the build log, and never shown here after saving. Re-add a name to
1913
- update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", customEnvEnabled, true)}${$29.attr("disabled", savingCustomEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2032
+ update its value.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", customEnvEnabled, true)}${$31.attr("disabled", savingCustomEnvToggle, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1914
2033
  if (customEnvToggleError) {
1915
- $$renderer2.push("<!--[0-->");
1916
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(customEnvToggleError)}</div></div>`);
2034
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(customEnvToggleError)}</div></div>`);
1917
2035
  } else {
1918
2036
  $$renderer2.push("<!--[-1-->");
1919
2037
  }
1920
2038
  $$renderer2.push(`<!--]--> `);
1921
2039
  if (customEnvEnabled) {
1922
- $$renderer2.push("<!--[0-->");
1923
- $$renderer2.push(`<div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
1924
- const each_array_6 = $29.ensure_array_like(customEnvNames);
2040
+ $$renderer2.push(`<!--[0--><div class="row divided var-row svelte-1n6ht58"><div class="var-list svelte-1n6ht58">`);
2041
+ const each_array_6 = $31.ensure_array_like(customEnvNames);
1925
2042
  if (each_array_6.length !== 0) {
1926
2043
  $$renderer2.push("<!--[-->");
1927
2044
  for (let $$index_6 = 0, $$length = each_array_6.length;$$index_6 < $$length; $$index_6++) {
1928
2045
  let name = each_array_6[$$index_6];
1929
- $$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$29.attr("value", name)}/> <span class="var-name svelte-1n6ht58">${$29.escape(name)}</span> <span class="var-status present svelte-1n6ht58" title="Set \u2014 injected into every new container">\u2022\u2022\u2022\u2022 saved</span> <button type="submit" class="var-remove svelte-1n6ht58"${$29.attr("disabled", savingCustomEnv, true)}${$29.attr("aria-label", `Remove ${name}`)}>`);
2046
+ $$renderer2.push(`<form class="var-item svelte-1n6ht58" method="POST" action="?/removeCustomEnvVar"><input type="hidden" name="name"${$31.attr("value", name)}/> <span class="var-name svelte-1n6ht58">${$31.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"${$31.attr("disabled", savingCustomEnv, true)}${$31.attr("aria-label", `Remove ${name}`)}>`);
1930
2047
  X($$renderer2, { size: 13 });
1931
2048
  $$renderer2.push(`<!----></button></form>`);
1932
2049
  }
1933
2050
  } else {
1934
- $$renderer2.push("<!--[!-->");
1935
- $$renderer2.push(`<div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
2051
+ $$renderer2.push(`<!--[!--><div class="var-empty svelte-1n6ht58">No variables added yet.</div>`);
1936
2052
  }
1937
- $$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$29.attr("value", newCustomEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="MY_SECRET"/> <input type="password" name="value" class="image-input svelte-1n6ht58"${$29.attr("value", newCustomEnvValue)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="value"/> `);
2053
+ $$renderer2.push(`<!--]--></div> <form class="var-add svelte-1n6ht58" method="POST" action="?/setCustomEnvVar"><input type="text" name="name" class="image-input svelte-1n6ht58"${$31.attr("value", newCustomEnvName)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="MY_SECRET"/> <input type="password" name="value" class="image-input svelte-1n6ht58"${$31.attr("value", newCustomEnvValue)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="value"/> `);
1938
2054
  Button($$renderer2, {
1939
2055
  type: "submit",
1940
2056
  icon: Plus,
@@ -1946,11 +2062,9 @@ function SettingsView($$renderer, $$props) {
1946
2062
  });
1947
2063
  $$renderer2.push(`<!----></form> `);
1948
2064
  if (customEnvError) {
1949
- $$renderer2.push("<!--[0-->");
1950
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(customEnvError)}</div>`);
2065
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(customEnvError)}</div>`);
1951
2066
  } else if (customEnvMsg) {
1952
- $$renderer2.push("<!--[1-->");
1953
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(customEnvMsg)}</div>`);
2067
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(customEnvMsg)}</div>`);
1954
2068
  } else {
1955
2069
  $$renderer2.push("<!--[-1-->");
1956
2070
  }
@@ -1964,26 +2078,24 @@ function SettingsView($$renderer, $$props) {
1964
2078
  ThemePicker($$renderer2, {});
1965
2079
  $$renderer2.push(`<!----></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
1966
2080
  Volume_2($$renderer2, { size: 20 });
1967
- $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Attention sound</div> <div class="desc svelte-1n6ht58">Play a chime when an instance finishes a task or needs your input.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$29.attr("checked", sound, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><div class="row svelte-1n6ht58"><div class="label svelte-1n6ht58">`);
2081
+ $$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"${$31.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">`);
1968
2082
  Keyboard($$renderer2, { size: 20 });
1969
2083
  $$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
1970
- always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$29.attr("checked", tabShortcuts, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></div></section> <section class="card svelte-1n6ht58"><form class="row svelte-1n6ht58" method="POST" action="?/petToggle"><div class="label svelte-1n6ht58">`);
2084
+ always the last tab). Turn off to leave those keystrokes to the editor.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox"${$31.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">`);
1971
2085
  Paw_print($$renderer2, { size: 18 });
1972
- $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Pet logo</div> <div class="desc svelte-1n6ht58">Swap the box in the header for a pixel pet.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", !!petArt, true)}${$29.attr("disabled", savingPet, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2086
+ $$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"${$31.attr("checked", !!petArt, true)}${$31.attr("disabled", savingPet, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
1973
2087
  if (petError) {
1974
- $$renderer2.push("<!--[0-->");
1975
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(petError)}</div></div>`);
2088
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(petError)}</div></div>`);
1976
2089
  } else {
1977
2090
  $$renderer2.push("<!--[-1-->");
1978
2091
  }
1979
2092
  $$renderer2.push(`<!--]--> `);
1980
2093
  if (petArt) {
1981
- $$renderer2.push("<!--[0-->");
1982
- $$renderer2.push(`<div class="sub pets svelte-1n6ht58"><!--[-->`);
1983
- const each_array_7 = $29.ensure_array_like(avatars);
2094
+ $$renderer2.push(`<!--[0--><div class="sub pets svelte-1n6ht58"><!--[-->`);
2095
+ const each_array_7 = $31.ensure_array_like(avatars);
1984
2096
  for (let $$index_7 = 0, $$length = each_array_7.length;$$index_7 < $$length; $$index_7++) {
1985
2097
  let art = each_array_7[$$index_7];
1986
- $$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$29.attr("value", art.name)}/> <button type="submit"${$29.attr_class("pet svelte-1n6ht58", undefined, { selected: art.name === petArt.name })}${$29.attr("disabled", savingPet, true)}${$29.attr("title", art.name)}${$29.attr("aria-label", art.name)}${$29.attr("aria-pressed", art.name === petArt.name)}>`);
2098
+ $$renderer2.push(`<form method="POST" action="?/petChoose" class="svelte-1n6ht58"><input type="hidden" name="name"${$31.attr("value", art.name)}/> <button type="submit"${$31.attr_class("pet svelte-1n6ht58", undefined, { selected: art.name === petArt.name })}${$31.attr("disabled", savingPet, true)}${$31.attr("title", art.name)}${$31.attr("aria-label", art.name)}${$31.attr("aria-pressed", art.name === petArt.name)}>`);
1987
2099
  Avatar($$renderer2, { art, name: art.name, scale: 4 });
1988
2100
  $$renderer2.push(`<!----></button></form>`);
1989
2101
  }
@@ -1996,53 +2108,48 @@ function SettingsView($$renderer, $$props) {
1996
2108
  $$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">`);
1997
2109
  List_ordered($$renderer2, { size: 20 });
1998
2110
  $$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
1999
- when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", serialInjections, true)}${$29.attr("disabled", savingSerial, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2111
+ when diagnosing injection interference.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", serialInjections, true)}${$31.attr("disabled", savingSerial, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2000
2112
  if (serialError) {
2001
- $$renderer2.push("<!--[0-->");
2002
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(serialError)}</div></div>`);
2113
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(serialError)}</div></div>`);
2003
2114
  } else {
2004
2115
  $$renderer2.push("<!--[-1-->");
2005
2116
  }
2006
2117
  $$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/noBuildkitToggle"><div class="label svelte-1n6ht58">`);
2007
2118
  Boxes($$renderer2, { size: 20 });
2008
2119
  $$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
2009
- default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", noBuildkit, true)}${$29.attr("disabled", savingBuildkit, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2120
+ default builder decide. For daemons where forcing BuildKit breaks builds.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", noBuildkit, true)}${$31.attr("disabled", savingBuildkit, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2010
2121
  if (buildkitError) {
2011
- $$renderer2.push("<!--[0-->");
2012
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(buildkitError)}</div></div>`);
2122
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(buildkitError)}</div></div>`);
2013
2123
  } else {
2014
2124
  $$renderer2.push("<!--[-1-->");
2015
2125
  }
2016
2126
  $$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/blockingExtInstallToggle"><div class="label svelte-1n6ht58">`);
2017
2127
  Puzzle($$renderer2, { size: 20 });
2018
2128
  $$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
2019
- always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$29.attr("checked", blockingExtInstall, true)}${$29.attr("disabled", savingBlocking, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2129
+ always has it active. Slower first boot.</div></div></div> <label class="switch svelte-1n6ht58"><input type="checkbox" name="enabled"${$31.attr("checked", blockingExtInstall, true)}${$31.attr("disabled", savingBlocking, true)} class="svelte-1n6ht58"/> <span class="track svelte-1n6ht58"><span class="thumb svelte-1n6ht58"></span></span></label></form> `);
2020
2130
  if (blockingError) {
2021
- $$renderer2.push("<!--[0-->");
2022
- $$renderer2.push(`<div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$29.escape(blockingError)}</div></div>`);
2131
+ $$renderer2.push(`<!--[0--><div class="sub svelte-1n6ht58"><div class="msg error svelte-1n6ht58">${$31.escape(blockingError)}</div></div>`);
2023
2132
  } else {
2024
2133
  $$renderer2.push("<!--[-1-->");
2025
2134
  }
2026
2135
  $$renderer2.push(`<!--]--> <form class="row divided svelte-1n6ht58" method="POST" action="?/clearVersionCache"><div class="label svelte-1n6ht58">`);
2027
- Trash_2($$renderer2, { size: 20 });
2136
+ Trash($$renderer2, { size: 20 });
2028
2137
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Clear claude-code version cache</div> <div class="desc svelte-1n6ht58">Forget the cached latest-version check; the next instance boot asks the npm registry
2029
2138
  again.</div> `);
2030
2139
  if (verError) {
2031
- $$renderer2.push("<!--[0-->");
2032
- $$renderer2.push(`<div class="msg error svelte-1n6ht58">${$29.escape(verError)}</div>`);
2140
+ $$renderer2.push(`<!--[0--><div class="msg error svelte-1n6ht58">${$31.escape(verError)}</div>`);
2033
2141
  } else if (verMsg) {
2034
- $$renderer2.push("<!--[1-->");
2035
- $$renderer2.push(`<div class="msg ok svelte-1n6ht58">${$29.escape(verMsg)}</div>`);
2142
+ $$renderer2.push(`<!--[1--><div class="msg ok svelte-1n6ht58">${$31.escape(verMsg)}</div>`);
2036
2143
  } else {
2037
2144
  $$renderer2.push("<!--[-1-->");
2038
2145
  }
2039
2146
  $$renderer2.push(`<!--]--></div></div> `);
2040
2147
  Button($$renderer2, {
2041
2148
  type: "submit",
2042
- icon: Trash_2,
2149
+ icon: Trash,
2043
2150
  disabled: clearingVer,
2044
2151
  children: ($$renderer3) => {
2045
- $$renderer3.push(`<!---->${$29.escape(clearingVer ? "Clearing\u2026" : "Clear cache")}`);
2152
+ $$renderer3.push(`<!---->${$31.escape(clearingVer ? "Clearing\u2026" : "Clear cache")}`);
2046
2153
  },
2047
2154
  $$slots: { default: true }
2048
2155
  });
@@ -2051,8 +2158,7 @@ function SettingsView($$renderer, $$props) {
2051
2158
  $$renderer2.push(`<!----> <div class="text svelte-1n6ht58"><div class="name svelte-1n6ht58">Delete database, containers, and shut down</div> <div class="desc svelte-1n6ht58">Stop and remove every instance and its container, delete all copied workspaces and the
2052
2159
  database, then shut down the server. This cannot be undone.</div></div></div> `);
2053
2160
  if (shuttingDown) {
2054
- $$renderer2.push("<!--[0-->");
2055
- $$renderer2.push(`<span class="shutting svelte-1n6ht58">Server is shutting down \u2014 you can close this tab.</span>`);
2161
+ $$renderer2.push(`<!--[0--><span class="shutting svelte-1n6ht58">Server is shutting down \u2014 you can close this tab.</span>`);
2056
2162
  } else {
2057
2163
  $$renderer2.push("<!--[-1-->");
2058
2164
  Button($$renderer2, {
@@ -2066,7 +2172,7 @@ function SettingsView($$renderer, $$props) {
2066
2172
  }
2067
2173
  $$renderer2.push(`<!--]--></form></section> `);
2068
2174
  CoinButton($$renderer2, {});
2069
- $$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$29.escape(version)}</div></main></div> `);
2175
+ $$renderer2.push(`<!----> <div class="version svelte-1n6ht58">Codebay v${$31.escape(version)}</div></main></div> `);
2070
2176
  Toaster($$renderer2, { toastOptions: TOAST_OPTIONS });
2071
2177
  $$renderer2.push(`<!---->`);
2072
2178
  });
@@ -2084,6 +2190,7 @@ function Settings($$renderer, $$props) {
2084
2190
  defaultImage,
2085
2191
  builtinImage,
2086
2192
  disableBuildCache,
2193
+ workspaceUploadEnabled,
2087
2194
  copyIgnorePatterns,
2088
2195
  builtinCopyIgnore,
2089
2196
  claudeConfigDir,
@@ -2123,65 +2230,17 @@ function Settings($$renderer, $$props) {
2123
2230
  version
2124
2231
  } = $$props;
2125
2232
  if (true) {
2126
- let failed = function($$renderer3, error) {
2127
- $$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$30.attr("data-message", error.message)}></mochi-island-failure>`);
2128
- };
2129
2233
  $$renderer2.push("<!--[0-->");
2130
- $$renderer2.boundary({ failed }, ($$renderer3) => {
2131
- $$renderer3.push(`<!--[-->`);
2132
- {
2133
- HydratableBoundary($$renderer3, {
2134
- children: ($$renderer4) => {
2135
- $$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$30.attr("props-ref", emitIslandProps({
2136
- pet,
2137
- defaultMode,
2138
- claudePermissionMode,
2139
- claudeEffortLevel,
2140
- claudeOutputStyle,
2141
- defaultImage,
2142
- builtinImage,
2143
- disableBuildCache,
2144
- copyIgnorePatterns,
2145
- builtinCopyIgnore,
2146
- claudeConfigDir,
2147
- mcpEnabled,
2148
- mcpToken,
2149
- mcpUrl,
2150
- mcpPrAttribution,
2151
- gitIdentityEnabled,
2152
- gitIdentityName,
2153
- gitIdentityEmail,
2154
- dockerArch,
2155
- manualTokensEnabled,
2156
- githubTokenSet,
2157
- claudeTokenSet,
2158
- customEndpointEnabled,
2159
- customEndpointBaseUrl,
2160
- customEndpointTokenSet,
2161
- customEndpointOpusModel,
2162
- customEndpointSonnetModel,
2163
- customEndpointHaikuModel,
2164
- customEndpointSmallFastModel,
2165
- customEndpointModel,
2166
- manualModelOverrideEnabled,
2167
- manualOpusModel,
2168
- manualSonnetModel,
2169
- manualHaikuModel,
2170
- manualSmallFastModel,
2171
- manualModel,
2172
- hostEnvVarsEnabled,
2173
- hostEnvVarNames,
2174
- hostEnvVarPresence,
2175
- customEnvVarsEnabled,
2176
- customEnvVarNames,
2177
- advancedSerialInjections,
2178
- advancedNoBuildkit,
2179
- advancedBlockingExtInstall,
2180
- version
2181
- }))}>`);
2182
- $$renderer4.push(`<!--[-->`);
2183
- {
2184
- SettingsView($$renderer4, {
2234
+ {
2235
+ let failed = function($$renderer3, error) {
2236
+ $$renderer3.push(`<mochi-island-failure data-component="SettingsView"${$32.attr("data-message", error.message)}></mochi-island-failure>`);
2237
+ };
2238
+ $$renderer2.boundary({ failed }, ($$renderer3) => {
2239
+ $$renderer3.push(`<!--[-->`);
2240
+ {
2241
+ HydratableBoundary($$renderer3, {
2242
+ children: ($$renderer4) => {
2243
+ $$renderer4.push(`<mochi-hydratable-island component-name="SettingsView_8hmarwmf8onq" component-url="__MOCHI_COMPONENT_URL__SettingsView_8hmarwmf8onq__"${$32.attr("props-ref", emitIslandProps({
2185
2244
  pet,
2186
2245
  defaultMode,
2187
2246
  claudePermissionMode,
@@ -2190,6 +2249,7 @@ function Settings($$renderer, $$props) {
2190
2249
  defaultImage,
2191
2250
  builtinImage,
2192
2251
  disableBuildCache,
2252
+ workspaceUploadEnabled,
2193
2253
  copyIgnorePatterns,
2194
2254
  builtinCopyIgnore,
2195
2255
  claudeConfigDir,
@@ -2227,16 +2287,67 @@ function Settings($$renderer, $$props) {
2227
2287
  advancedNoBuildkit,
2228
2288
  advancedBlockingExtInstall,
2229
2289
  version
2230
- });
2231
- }
2232
- $$renderer4.push(`<!--]-->`);
2233
- $$renderer4.push(`</mochi-hydratable-island>`);
2234
- },
2235
- $$slots: { default: true }
2236
- });
2237
- }
2238
- $$renderer3.push(`<!--]-->`);
2239
- });
2290
+ }))}>`);
2291
+ $$renderer4.push(`<!--[-->`);
2292
+ {
2293
+ SettingsView($$renderer4, {
2294
+ pet,
2295
+ defaultMode,
2296
+ claudePermissionMode,
2297
+ claudeEffortLevel,
2298
+ claudeOutputStyle,
2299
+ defaultImage,
2300
+ builtinImage,
2301
+ disableBuildCache,
2302
+ workspaceUploadEnabled,
2303
+ copyIgnorePatterns,
2304
+ builtinCopyIgnore,
2305
+ claudeConfigDir,
2306
+ mcpEnabled,
2307
+ mcpToken,
2308
+ mcpUrl,
2309
+ mcpPrAttribution,
2310
+ gitIdentityEnabled,
2311
+ gitIdentityName,
2312
+ gitIdentityEmail,
2313
+ dockerArch,
2314
+ manualTokensEnabled,
2315
+ githubTokenSet,
2316
+ claudeTokenSet,
2317
+ customEndpointEnabled,
2318
+ customEndpointBaseUrl,
2319
+ customEndpointTokenSet,
2320
+ customEndpointOpusModel,
2321
+ customEndpointSonnetModel,
2322
+ customEndpointHaikuModel,
2323
+ customEndpointSmallFastModel,
2324
+ customEndpointModel,
2325
+ manualModelOverrideEnabled,
2326
+ manualOpusModel,
2327
+ manualSonnetModel,
2328
+ manualHaikuModel,
2329
+ manualSmallFastModel,
2330
+ manualModel,
2331
+ hostEnvVarsEnabled,
2332
+ hostEnvVarNames,
2333
+ hostEnvVarPresence,
2334
+ customEnvVarsEnabled,
2335
+ customEnvVarNames,
2336
+ advancedSerialInjections,
2337
+ advancedNoBuildkit,
2338
+ advancedBlockingExtInstall,
2339
+ version
2340
+ });
2341
+ }
2342
+ $$renderer4.push(`<!--]-->`);
2343
+ $$renderer4.push(`</mochi-hydratable-island>`);
2344
+ },
2345
+ $$slots: { default: true }
2346
+ });
2347
+ }
2348
+ $$renderer3.push(`<!--]-->`);
2349
+ });
2350
+ }
2240
2351
  }
2241
2352
  $$renderer2.push(`<!--]-->`);
2242
2353
  });