loom-agent 1.2.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 (79) hide show
  1. package/.env.example +25 -0
  2. package/CHANGELOG.md +402 -0
  3. package/LICENSE +21 -0
  4. package/LOOM.md +235 -0
  5. package/README.md +433 -0
  6. package/bin/loom-tui.js +43 -0
  7. package/bin/loom.js +44 -0
  8. package/docs/acp.md +151 -0
  9. package/docs/web.md +205 -0
  10. package/package.json +97 -0
  11. package/scripts/acp-smoke.js +146 -0
  12. package/src/acp/acp-server.js +287 -0
  13. package/src/config/provider-cmd.js +37 -0
  14. package/src/config/settings.js +164 -0
  15. package/src/core/agents.js +361 -0
  16. package/src/core/background-tasks.js +103 -0
  17. package/src/core/cli.js +579 -0
  18. package/src/core/custom-commands.js +70 -0
  19. package/src/core/errors.js +29 -0
  20. package/src/core/events.js +24 -0
  21. package/src/core/file-diffs.js +282 -0
  22. package/src/core/format.js +206 -0
  23. package/src/core/graph.js +257 -0
  24. package/src/core/hooks.js +82 -0
  25. package/src/core/lsp.js +385 -0
  26. package/src/core/memory.js +87 -0
  27. package/src/core/model-router.js +87 -0
  28. package/src/core/permissions.js +327 -0
  29. package/src/core/platform.js +33 -0
  30. package/src/core/plugin-cmd.js +380 -0
  31. package/src/core/restore.js +207 -0
  32. package/src/core/session-store.js +167 -0
  33. package/src/core/session.js +910 -0
  34. package/src/core/subagent-log.js +134 -0
  35. package/src/core/tokens.js +31 -0
  36. package/src/core/update.js +6 -0
  37. package/src/core/usage.js +166 -0
  38. package/src/index.js +41 -0
  39. package/src/mcp/mcp-client.js +201 -0
  40. package/src/mcp/mcp-manager.js +193 -0
  41. package/src/providers/anthropic.js +243 -0
  42. package/src/providers/google.js +29 -0
  43. package/src/providers/index.js +175 -0
  44. package/src/providers/local.js +27 -0
  45. package/src/providers/nvidia.js +85 -0
  46. package/src/providers/openai-compat.js +269 -0
  47. package/src/providers/openai.js +35 -0
  48. package/src/providers/openrouter.js +43 -0
  49. package/src/providers/registry.js +196 -0
  50. package/src/providers/tokenrouter.js +19 -0
  51. package/src/skills/skill-matcher.js +133 -0
  52. package/src/skills/skills-manager.js +213 -0
  53. package/src/tools/index.js +543 -0
  54. package/src/tui/App.tsx +1578 -0
  55. package/src/tui/components/BreadcrumbBar.tsx +34 -0
  56. package/src/tui/components/ChatArea.tsx +518 -0
  57. package/src/tui/components/InputBar.tsx +354 -0
  58. package/src/tui/components/MdText.tsx +105 -0
  59. package/src/tui/components/Modals.tsx +851 -0
  60. package/src/tui/components/PermissionPopup.tsx +264 -0
  61. package/src/tui/components/Sidebar.tsx +182 -0
  62. package/src/tui/components/SplashScreen.tsx +51 -0
  63. package/src/tui/components/SubagentPanel.tsx +217 -0
  64. package/src/tui/components/ToastOverlay.tsx +34 -0
  65. package/src/tui/keybinds.ts +318 -0
  66. package/src/tui/mcp-presets.ts +189 -0
  67. package/src/tui/md-render.ts +228 -0
  68. package/src/tui/store.ts +714 -0
  69. package/src/tui/suite-home.ts +20 -0
  70. package/src/tui/theme.ts +313 -0
  71. package/src/tui/themes.generated.ts +968 -0
  72. package/src/tui/tool-display.ts +176 -0
  73. package/src/tui/toolname.ts +60 -0
  74. package/src/tui/tui-config.ts +28 -0
  75. package/src/tui-open.tsx +51 -0
  76. package/src/web/attach.js +242 -0
  77. package/src/web/graph-view.html +262 -0
  78. package/src/web/index.html +824 -0
  79. package/src/web/web-server.js +470 -0
@@ -0,0 +1,968 @@
1
+ // Generated by scripts/fetch-themes.mjs — do not edit by hand.
2
+ // Source of truth: @shikijs/themes registry. Re-run the script after
3
+ // adding a row to MAPPINGS or bumping the package.
4
+
5
+ export const GENERATED_THEMES = [
6
+ {
7
+ "id": "ayu",
8
+ "label": "Ayu",
9
+ "desc": "Dark + warm accents, VS Code classic",
10
+ "palette": {
11
+ "bg": "#10141c",
12
+ "bgMsg": "#0d1017",
13
+ "bgPanel": "#0d1017",
14
+ "bgPanelAlt": "#0d1017",
15
+ "bgInput": "#141821",
16
+ "bgHover": "#3e8cf9",
17
+ "border": "#6b6d72",
18
+ "borderFocus": "#ff8f40",
19
+ "fg": "#bfbdb6",
20
+ "fgDim": "#828280",
21
+ "fgMuted": "#56585a",
22
+ "primary": "#ff8f40",
23
+ "primarySoft": "#cf7639",
24
+ "secondary": "#39bae6",
25
+ "accent": "#e6b450",
26
+ "success": "#70bf56",
27
+ "warning": "#e6b450",
28
+ "error": "#d95757",
29
+ "thinking": "#dcb66a",
30
+ "syntax": {
31
+ "kw": "#ff8f40",
32
+ "str": "#aad94c",
33
+ "com": "#5a6673",
34
+ "num": "#aad94c",
35
+ "call": "#39bae6",
36
+ "plain": "#bfbdb6",
37
+ "storage": "#ff8f40",
38
+ "support": "#ffb454",
39
+ "variable": "#bfbdb6"
40
+ }
41
+ }
42
+ },
43
+ {
44
+ "id": "catppuccin",
45
+ "label": "Catppuccin Mocha",
46
+ "desc": "Pastel, coffee-toned dark",
47
+ "palette": {
48
+ "bg": "#1e1e2e",
49
+ "bgMsg": "#191926",
50
+ "bgPanel": "#181825",
51
+ "bgPanelAlt": "#1e1e2e",
52
+ "bgInput": "#181825",
53
+ "bgHover": "#989eb7",
54
+ "border": "#585b70",
55
+ "borderFocus": "#cba6f7",
56
+ "fg": "#cdd6f4",
57
+ "fgDim": "#9096af",
58
+ "fgMuted": "#64687d",
59
+ "primary": "#cba6f7",
60
+ "primarySoft": "#a88bcf",
61
+ "secondary": "#fab387",
62
+ "accent": "#89b4fa",
63
+ "success": "#a6e3a1",
64
+ "warning": "#fab387",
65
+ "error": "#f38ba8",
66
+ "thinking": "#9abdf9",
67
+ "syntax": {
68
+ "kw": "#cba6f7",
69
+ "str": "#a6e3a1",
70
+ "com": "#9399b2",
71
+ "num": "#f5c2e7",
72
+ "call": "#fab387",
73
+ "plain": "#cdd6f4",
74
+ "storage": "#cba6f7",
75
+ "support": "#cba6f7",
76
+ "variable": "#cdd6f4"
77
+ }
78
+ }
79
+ },
80
+ {
81
+ "id": "catppuccin-frappe",
82
+ "label": "Catppuccin Frappé",
83
+ "desc": "Pastel, medium-dark",
84
+ "palette": {
85
+ "bg": "#303446",
86
+ "bgMsg": "#272b39",
87
+ "bgPanel": "#292c3c",
88
+ "bgPanelAlt": "#303446",
89
+ "bgInput": "#292c3c",
90
+ "bgHover": "#98a0c0",
91
+ "border": "#626880",
92
+ "borderFocus": "#ca9ee6",
93
+ "fg": "#c6d0f5",
94
+ "fgDim": "#9299b8",
95
+ "fgMuted": "#6c728c",
96
+ "primary": "#ca9ee6",
97
+ "primarySoft": "#ab89c6",
98
+ "secondary": "#ef9f76",
99
+ "accent": "#8caaee",
100
+ "success": "#a6d189",
101
+ "warning": "#ef9f76",
102
+ "error": "#e78284",
103
+ "thinking": "#9bb4f0",
104
+ "syntax": {
105
+ "kw": "#ca9ee6",
106
+ "str": "#a6d189",
107
+ "com": "#949cbb",
108
+ "num": "#f4b8e4",
109
+ "call": "#ef9f76",
110
+ "plain": "#c6d0f5",
111
+ "storage": "#ca9ee6",
112
+ "support": "#ca9ee6",
113
+ "variable": "#c6d0f5"
114
+ }
115
+ }
116
+ },
117
+ {
118
+ "id": "catppuccin-macchiato",
119
+ "label": "Catppuccin Macchiato",
120
+ "desc": "Pastel, deep dark",
121
+ "palette": {
122
+ "bg": "#24273a",
123
+ "bgMsg": "#1e2030",
124
+ "bgPanel": "#1e2030",
125
+ "bgPanelAlt": "#24273a",
126
+ "bgInput": "#1e2030",
127
+ "bgHover": "#979fbc",
128
+ "border": "#5b6078",
129
+ "borderFocus": "#c6a0f6",
130
+ "fg": "#cad3f5",
131
+ "fgDim": "#9097b4",
132
+ "fgMuted": "#666c85",
133
+ "primary": "#c6a0f6",
134
+ "primarySoft": "#a688d0",
135
+ "secondary": "#f5a97f",
136
+ "accent": "#8aadf4",
137
+ "success": "#a6da95",
138
+ "warning": "#f5a97f",
139
+ "error": "#ed8796",
140
+ "thinking": "#9ab7f4",
141
+ "syntax": {
142
+ "kw": "#c6a0f6",
143
+ "str": "#a6da95",
144
+ "com": "#939ab7",
145
+ "num": "#f5bde6",
146
+ "call": "#f5a97f",
147
+ "plain": "#cad3f5",
148
+ "storage": "#c6a0f6",
149
+ "support": "#c6a0f6",
150
+ "variable": "#cad3f5"
151
+ }
152
+ }
153
+ },
154
+ {
155
+ "id": "catppuccin-latte",
156
+ "label": "Catppuccin Latte",
157
+ "desc": "Pastel, light",
158
+ "palette": {
159
+ "bg": "#eff1f5",
160
+ "bgMsg": "#c4c6c9",
161
+ "bgPanel": "#e6e9ef",
162
+ "bgPanelAlt": "#eff1f5",
163
+ "bgInput": "#e6e9ef",
164
+ "bgHover": "#787b90",
165
+ "border": "#acb0be",
166
+ "borderFocus": "#8839ef",
167
+ "fg": "#4c4f69",
168
+ "fgDim": "#85889a",
169
+ "fgMuted": "#aeb0bd",
170
+ "primary": "#8839ef",
171
+ "primarySoft": "#9d5ef0",
172
+ "secondary": "#fe640b",
173
+ "accent": "#1e66f5",
174
+ "success": "#40a02b",
175
+ "warning": "#fe640b",
176
+ "error": "#d20f39",
177
+ "thinking": "#2a60d2",
178
+ "syntax": {
179
+ "kw": "#8839ef",
180
+ "str": "#40a02b",
181
+ "com": "#7c7f93",
182
+ "num": "#ea76cb",
183
+ "call": "#fe640b",
184
+ "plain": "#4c4f69",
185
+ "storage": "#8839ef",
186
+ "support": "#8839ef",
187
+ "variable": "#4c4f69"
188
+ }
189
+ }
190
+ },
191
+ {
192
+ "id": "dracula",
193
+ "label": "Dracula",
194
+ "desc": "Vampiric pink/purple classic",
195
+ "palette": {
196
+ "bg": "#282a36",
197
+ "bgMsg": "#21222c",
198
+ "bgPanel": "#21222c",
199
+ "bgPanelAlt": "#282a36",
200
+ "bgInput": "#21222c",
201
+ "bgHover": "#525566",
202
+ "border": "#bd93f9",
203
+ "borderFocus": "#FF79C6",
204
+ "fg": "#f8f8f2",
205
+ "fgDim": "#afb0b0",
206
+ "fgMuted": "#7b7c81",
207
+ "primary": "#FF79C6",
208
+ "primarySoft": "#d469a9",
209
+ "secondary": "#F1FA8C",
210
+ "accent": "#FF79C6",
211
+ "success": "#50FA7B",
212
+ "warning": "#8BE9FD",
213
+ "error": "#FF5555",
214
+ "thinking": "#fd99d1",
215
+ "syntax": {
216
+ "kw": "#FF79C6",
217
+ "str": "#F1FA8C",
218
+ "com": "#6272A4",
219
+ "num": "#BD93F9",
220
+ "call": "#F1FA8C",
221
+ "plain": "#f8f8f2",
222
+ "storage": "#FF79C6",
223
+ "support": "#8BE9FD",
224
+ "variable": "#F8F8F2"
225
+ }
226
+ }
227
+ },
228
+ {
229
+ "id": "dracula-soft",
230
+ "label": "Dracula Soft",
231
+ "desc": "Mellower dracula",
232
+ "palette": {
233
+ "bg": "#282a36",
234
+ "bgMsg": "#21222c",
235
+ "bgPanel": "#262626",
236
+ "bgPanelAlt": "#282a36",
237
+ "bgInput": "#262626",
238
+ "bgHover": "#525566",
239
+ "border": "#bf9eee",
240
+ "borderFocus": "#f286c4",
241
+ "fg": "#f6f6f4",
242
+ "fgDim": "#aeafb2",
243
+ "fgMuted": "#7a7c82",
244
+ "primary": "#f286c4",
245
+ "primarySoft": "#ca74a8",
246
+ "secondary": "#e7ee98",
247
+ "accent": "#f286c4",
248
+ "success": "#50FA7B",
249
+ "warning": "#97e1f1",
250
+ "error": "#ee6666",
251
+ "thinking": "#f3a2d0",
252
+ "syntax": {
253
+ "kw": "#f286c4",
254
+ "str": "#e7ee98",
255
+ "com": "#7b7f8b",
256
+ "num": "#bf9eee",
257
+ "call": "#e7ee98",
258
+ "plain": "#f6f6f4",
259
+ "storage": "#f286c4",
260
+ "support": "#97e1f1",
261
+ "variable": "#f6f6f4"
262
+ }
263
+ }
264
+ },
265
+ {
266
+ "id": "everforest",
267
+ "label": "Everforest",
268
+ "desc": "Muted greens, soft contrast",
269
+ "palette": {
270
+ "bg": "#2d353b",
271
+ "bgMsg": "#252b30",
272
+ "bgPanel": "#2d353b",
273
+ "bgPanelAlt": "#2d353b",
274
+ "bgInput": "#2d353b",
275
+ "bgHover": "#525b5f",
276
+ "border": "#7d8285",
277
+ "borderFocus": "#e67e80",
278
+ "fg": "#d3c6aa",
279
+ "fgDim": "#999383",
280
+ "fgMuted": "#6f6f67",
281
+ "primary": "#e67e80",
282
+ "primarySoft": "#c16f72",
283
+ "secondary": "#e69875",
284
+ "accent": "#a7c080",
285
+ "success": "#899c40",
286
+ "warning": "#bf983d",
287
+ "error": "#da6362",
288
+ "thinking": "#b2c28b",
289
+ "syntax": {
290
+ "kw": "#e67e80",
291
+ "str": "#dbbc7f",
292
+ "com": "#859289",
293
+ "num": "#a7c080",
294
+ "call": "#e69875",
295
+ "plain": "#d3c6aa",
296
+ "storage": "#e69875",
297
+ "support": "#a7c080",
298
+ "variable": "#d3c6aa"
299
+ }
300
+ }
301
+ },
302
+ {
303
+ "id": "github",
304
+ "label": "GitHub",
305
+ "desc": "GitHub dark theme",
306
+ "palette": {
307
+ "bg": "#24292e",
308
+ "bgMsg": "#1e2226",
309
+ "bgPanel": "#1f2428",
310
+ "bgPanelAlt": "#1f2428",
311
+ "bgInput": "#1f2428",
312
+ "bgHover": "#4199fd",
313
+ "border": "#777a7d",
314
+ "borderFocus": "#f97583",
315
+ "fg": "#e1e4e8",
316
+ "fgDim": "#9fa3a7",
317
+ "fgMuted": "#707478",
318
+ "primary": "#f97583",
319
+ "primarySoft": "#ce6672",
320
+ "secondary": "#b392f0",
321
+ "accent": "#79b8ff",
322
+ "success": "#28a745",
323
+ "warning": "#ffea7f",
324
+ "error": "#f97583",
325
+ "thinking": "#93c3f9",
326
+ "syntax": {
327
+ "kw": "#f97583",
328
+ "str": "#9ecbff",
329
+ "com": "#6a737d",
330
+ "num": "#79b8ff",
331
+ "call": "#b392f0",
332
+ "plain": "#e1e4e8",
333
+ "storage": "#f97583",
334
+ "support": "#79b8ff",
335
+ "variable": "#ffab70"
336
+ }
337
+ }
338
+ },
339
+ {
340
+ "id": "gruvbox",
341
+ "label": "Gruvbox",
342
+ "desc": "Retro groove, warm dark tones",
343
+ "palette": {
344
+ "bg": "#282828",
345
+ "bgMsg": "#212121",
346
+ "bgPanel": "#282828",
347
+ "bgPanelAlt": "#282828",
348
+ "bgInput": "#282828",
349
+ "bgHover": "#72a270",
350
+ "border": "#7a7a7a",
351
+ "borderFocus": "#fb4934",
352
+ "fg": "#ebdbb2",
353
+ "fgDim": "#a79c82",
354
+ "fgMuted": "#76705f",
355
+ "primary": "#fb4934",
356
+ "primarySoft": "#d14232",
357
+ "secondary": "#8ec07c",
358
+ "accent": "#83a598",
359
+ "success": "#b8bb26",
360
+ "warning": "#d79921",
361
+ "error": "#cc241d",
362
+ "thinking": "#9db39f",
363
+ "syntax": {
364
+ "kw": "#fb4934",
365
+ "str": "#b8bb26",
366
+ "com": "#928374",
367
+ "num": "#d3869b",
368
+ "call": "#8ec07c",
369
+ "plain": "#ebdbb2",
370
+ "storage": "#fb4934",
371
+ "support": "#d3869b",
372
+ "variable": "#83a598"
373
+ }
374
+ }
375
+ },
376
+ {
377
+ "id": "kanagawa",
378
+ "label": "Kanagawa",
379
+ "desc": "Japanese ink-painting inspired",
380
+ "palette": {
381
+ "bg": "#1f1f28",
382
+ "bgMsg": "#191921",
383
+ "bgPanel": "#1f1f28",
384
+ "bgPanelAlt": "#1f1f28",
385
+ "bgInput": "#1f1f28",
386
+ "bgHover": "#313f52",
387
+ "border": "#74747a",
388
+ "borderFocus": "#957FB8",
389
+ "fg": "#dcd7ba",
390
+ "fgDim": "#9a9787",
391
+ "fgMuted": "#6b6962",
392
+ "primary": "#957FB8",
393
+ "primarySoft": "#7d6c9b",
394
+ "secondary": "#E6C384",
395
+ "accent": "#6A9589",
396
+ "success": "#76946A",
397
+ "warning": "#FF9E3B",
398
+ "error": "#E82424",
399
+ "thinking": "#87a695",
400
+ "syntax": {
401
+ "kw": "#957FB8",
402
+ "str": "#98BB6C",
403
+ "com": "#727169",
404
+ "num": "#FFA066",
405
+ "call": "#E6C384",
406
+ "plain": "#dcd7ba",
407
+ "storage": "#957FB8",
408
+ "support": "#7E9CD8",
409
+ "variable": "#DCD7BA"
410
+ }
411
+ }
412
+ },
413
+ {
414
+ "id": "material",
415
+ "label": "Material",
416
+ "desc": "Google material dark theme",
417
+ "palette": {
418
+ "bg": "#263238",
419
+ "bgMsg": "#1f292e",
420
+ "bgPanel": "#263238",
421
+ "bgPanelAlt": "#263238",
422
+ "bgInput": "#263238",
423
+ "bgHover": "#89cfc9",
424
+ "border": "#788084",
425
+ "borderFocus": "#89DDFF",
426
+ "fg": "#eeffff",
427
+ "fgDim": "#a8b7b9",
428
+ "fgMuted": "#768488",
429
+ "primary": "#89DDFF",
430
+ "primarySoft": "#75bbd7",
431
+ "secondary": "#82AAFF",
432
+ "accent": "#80CBC4",
433
+ "success": "#C3E88D",
434
+ "warning": "#FFCB6B",
435
+ "error": "#f07178",
436
+ "thinking": "#9cd8d3",
437
+ "syntax": {
438
+ "kw": "#89DDFF",
439
+ "str": "#C3E88D",
440
+ "com": "#546E7A",
441
+ "num": "#89DDFF",
442
+ "call": "#82AAFF",
443
+ "plain": "#eeffff",
444
+ "storage": "#C792EA",
445
+ "support": "#EEFFFF",
446
+ "variable": "#EEFFFF"
447
+ }
448
+ }
449
+ },
450
+ {
451
+ "id": "material-darker",
452
+ "label": "Material Darker",
453
+ "desc": "Darker material variant",
454
+ "palette": {
455
+ "bg": "#212121",
456
+ "bgMsg": "#1b1b1b",
457
+ "bgPanel": "#212121",
458
+ "bgPanelAlt": "#212121",
459
+ "bgInput": "#212121",
460
+ "bgHover": "#6c6e6e",
461
+ "border": "#757575",
462
+ "borderFocus": "#89DDFF",
463
+ "fg": "#eeffff",
464
+ "fgDim": "#a6b1b1",
465
+ "fgMuted": "#737a7a",
466
+ "primary": "#89DDFF",
467
+ "primarySoft": "#74b7d3",
468
+ "secondary": "#82AAFF",
469
+ "accent": "#80CBC4",
470
+ "success": "#C3E88D",
471
+ "warning": "#FFCB6B",
472
+ "error": "#f07178",
473
+ "thinking": "#9cd8d3",
474
+ "syntax": {
475
+ "kw": "#89DDFF",
476
+ "str": "#C3E88D",
477
+ "com": "#545454",
478
+ "num": "#89DDFF",
479
+ "call": "#82AAFF",
480
+ "plain": "#eeffff",
481
+ "storage": "#C792EA",
482
+ "support": "#EEFFFF",
483
+ "variable": "#EEFFFF"
484
+ }
485
+ }
486
+ },
487
+ {
488
+ "id": "monokai",
489
+ "label": "Monokai",
490
+ "desc": "Classic green/yellow",
491
+ "palette": {
492
+ "bg": "#272822",
493
+ "bgMsg": "#20211c",
494
+ "bgPanel": "#1e1f1c",
495
+ "bgPanelAlt": "#272822",
496
+ "bgInput": "#1e1f1c",
497
+ "bgHover": "#909499",
498
+ "border": "#797a76",
499
+ "borderFocus": "#F92672",
500
+ "fg": "#f8f8f2",
501
+ "fgDim": "#afafa9",
502
+ "fgMuted": "#7b7b75",
503
+ "primary": "#F92672",
504
+ "primarySoft": "#cf2662",
505
+ "secondary": "#A6E22E",
506
+ "accent": "#F92672",
507
+ "success": "#487e35",
508
+ "warning": "#cca700",
509
+ "error": "#f44747",
510
+ "thinking": "#f95b92",
511
+ "syntax": {
512
+ "kw": "#F92672",
513
+ "str": "#E6DB74",
514
+ "com": "#88846f",
515
+ "num": "#AE81FF",
516
+ "call": "#A6E22E",
517
+ "plain": "#f8f8f2",
518
+ "storage": "#F92672",
519
+ "support": "#66D9EF",
520
+ "variable": "#F8F8F2"
521
+ }
522
+ }
523
+ },
524
+ {
525
+ "id": "nightowl",
526
+ "label": "Night Owl",
527
+ "desc": "Dark blue, gentle contrast",
528
+ "palette": {
529
+ "bg": "#011627",
530
+ "bgMsg": "#011220",
531
+ "bgPanel": "#011627",
532
+ "bgPanelAlt": "#011627",
533
+ "bgInput": "#021320",
534
+ "bgHover": "#2c485f",
535
+ "border": "#5f7e97",
536
+ "borderFocus": "#c792ea",
537
+ "fg": "#d6deeb",
538
+ "fgDim": "#8b98a6",
539
+ "fgMuted": "#566675",
540
+ "primary": "#c792ea",
541
+ "primarySoft": "#9f79c3",
542
+ "secondary": "#ffcb8b",
543
+ "accent": "#c792ea",
544
+ "success": "#9CCC65",
545
+ "warning": "#b39554",
546
+ "error": "#EF5350",
547
+ "thinking": "#cba5ea",
548
+ "syntax": {
549
+ "kw": "#c792ea",
550
+ "str": "#ecc48d",
551
+ "com": "#637777",
552
+ "num": "#F78C6C",
553
+ "call": "#ffcb8b",
554
+ "plain": "#d6deeb",
555
+ "storage": "#c792ea",
556
+ "support": "#c5e478",
557
+ "variable": "#c5e478"
558
+ }
559
+ }
560
+ },
561
+ {
562
+ "id": "nord",
563
+ "label": "Nord",
564
+ "desc": "Arctic, north-bluish color palette",
565
+ "palette": {
566
+ "bg": "#2e3440",
567
+ "bgMsg": "#262b34",
568
+ "bgPanel": "#2e3440",
569
+ "bgPanelAlt": "#2e3440",
570
+ "bgInput": "#2e3440",
571
+ "bgHover": "#4f5869",
572
+ "border": "#7d8189",
573
+ "borderFocus": "#81A1C1",
574
+ "fg": "#d8dee9",
575
+ "fgDim": "#9da3ae",
576
+ "fgMuted": "#727884",
577
+ "primary": "#81A1C1",
578
+ "primarySoft": "#708ba7",
579
+ "secondary": "#8FBCBB",
580
+ "accent": "#88c0d0",
581
+ "success": "#a3be8c",
582
+ "warning": "#ebcb8b",
583
+ "error": "#bf616a",
584
+ "thinking": "#9cc8d6",
585
+ "syntax": {
586
+ "kw": "#81A1C1",
587
+ "str": "#A3BE8C",
588
+ "com": "#616E88",
589
+ "num": "#EBCB8B",
590
+ "call": "#8FBCBB",
591
+ "plain": "#d8dee9",
592
+ "storage": "#81A1C1",
593
+ "support": "#8FBCBB",
594
+ "variable": "#D8DEE9"
595
+ }
596
+ }
597
+ },
598
+ {
599
+ "id": "one-dark",
600
+ "label": "One Dark Pro",
601
+ "desc": "Atom's One Dark, pro variant",
602
+ "palette": {
603
+ "bg": "#282c34",
604
+ "bgMsg": "#21242b",
605
+ "bgPanel": "#21252b",
606
+ "bgPanelAlt": "#282c34",
607
+ "bgInput": "#21252b",
608
+ "bgHover": "#6c7b99",
609
+ "border": "#7a7c81",
610
+ "borderFocus": "#c678dd",
611
+ "fg": "#abb2bf",
612
+ "fgDim": "#7d838e",
613
+ "fgMuted": "#5c626c",
614
+ "primary": "#c678dd",
615
+ "primarySoft": "#a669bb",
616
+ "secondary": "#e5c07b",
617
+ "accent": "#61afef",
618
+ "success": "#109868",
619
+ "warning": "#d19a66",
620
+ "error": "#c24038",
621
+ "thinking": "#74b0e3",
622
+ "syntax": {
623
+ "kw": "#c678dd",
624
+ "str": "#98c379",
625
+ "com": "#7f848e",
626
+ "num": "#d19a66",
627
+ "call": "#e5c07b",
628
+ "plain": "#abb2bf",
629
+ "storage": "#c678dd",
630
+ "support": "#e06c75",
631
+ "variable": "#e06c75"
632
+ }
633
+ }
634
+ },
635
+ {
636
+ "id": "palenight",
637
+ "label": "Palenight",
638
+ "desc": "Material palenight — deep blue",
639
+ "palette": {
640
+ "bg": "#292d3e",
641
+ "bgMsg": "#222533",
642
+ "bgPanel": "#292d3e",
643
+ "bgPanelAlt": "#292d3e",
644
+ "bgInput": "#292d3e",
645
+ "bgHover": "#7781b7",
646
+ "border": "#7a7d87",
647
+ "borderFocus": "#89DDFF",
648
+ "fg": "#babed8",
649
+ "fgDim": "#878ba2",
650
+ "fgMuted": "#63677c",
651
+ "primary": "#89DDFF",
652
+ "primarySoft": "#76bad8",
653
+ "secondary": "#82AAFF",
654
+ "accent": "#80CBC4",
655
+ "success": "#C3E88D",
656
+ "warning": "#FFCB6B",
657
+ "error": "#f07178",
658
+ "thinking": "#8fc8c9",
659
+ "syntax": {
660
+ "kw": "#89DDFF",
661
+ "str": "#C3E88D",
662
+ "com": "#676E95",
663
+ "num": "#89DDFF",
664
+ "call": "#82AAFF",
665
+ "plain": "#babed8",
666
+ "storage": "#C792EA",
667
+ "support": "#babed8",
668
+ "variable": "#babed8"
669
+ }
670
+ }
671
+ },
672
+ {
673
+ "id": "rosepine",
674
+ "label": "Rosé Pine",
675
+ "desc": "All natural pine, muted pastels",
676
+ "palette": {
677
+ "bg": "#191724",
678
+ "bgMsg": "#15131e",
679
+ "bgPanel": "#191724",
680
+ "bgPanelAlt": "#1f1d2e",
681
+ "bgInput": "#1f1d2e",
682
+ "bgHover": "#77738f",
683
+ "border": "#706f77",
684
+ "borderFocus": "#31748f",
685
+ "fg": "#e0def4",
686
+ "fgDim": "#9a98ab",
687
+ "fgMuted": "#696777",
688
+ "primary": "#31748f",
689
+ "primarySoft": "#2c617a",
690
+ "secondary": "#ebbcba",
691
+ "accent": "#c4a7e7",
692
+ "success": "#9ccfd8",
693
+ "warning": "#f6c177",
694
+ "error": "#eb6f92",
695
+ "thinking": "#cbb5ea",
696
+ "syntax": {
697
+ "kw": "#31748f",
698
+ "str": "#f6c177",
699
+ "com": "#6e6a86",
700
+ "num": "#31748f",
701
+ "call": "#ebbcba",
702
+ "plain": "#e0def4",
703
+ "storage": "#31748f",
704
+ "support": "#9ccfd8",
705
+ "variable": "#ebbcba"
706
+ }
707
+ }
708
+ },
709
+ {
710
+ "id": "rosepine-dawn",
711
+ "label": "Rosé Pine Dawn",
712
+ "desc": "Warm, light variant",
713
+ "palette": {
714
+ "bg": "#faf4ed",
715
+ "bgMsg": "#cdc8c2",
716
+ "bgPanel": "#faf4ed",
717
+ "bgPanelAlt": "#fffaf3",
718
+ "bgInput": "#fffaf3",
719
+ "bgHover": "#6c6885",
720
+ "border": "#a39f9a",
721
+ "borderFocus": "#286983",
722
+ "fg": "#575279",
723
+ "fgDim": "#908ba2",
724
+ "fgMuted": "#b9b3bf",
725
+ "primary": "#286983",
726
+ "primarySoft": "#528598",
727
+ "secondary": "#d7827e",
728
+ "accent": "#907aa9",
729
+ "success": "#56949f",
730
+ "warning": "#ea9d34",
731
+ "error": "#b4637a",
732
+ "thinking": "#82709d",
733
+ "syntax": {
734
+ "kw": "#286983",
735
+ "str": "#ea9d34",
736
+ "com": "#9893a5",
737
+ "num": "#286983",
738
+ "call": "#d7827e",
739
+ "plain": "#575279",
740
+ "storage": "#286983",
741
+ "support": "#56949f",
742
+ "variable": "#d7827e"
743
+ }
744
+ }
745
+ },
746
+ {
747
+ "id": "solarized",
748
+ "label": "Solarized Dark",
749
+ "desc": "Precision colors, low contrast",
750
+ "palette": {
751
+ "bg": "#002b36",
752
+ "bgMsg": "#00232c",
753
+ "bgPanel": "#00212b",
754
+ "bgPanelAlt": "#002b36",
755
+ "bgInput": "#00212b",
756
+ "bgHover": "#2e4c49",
757
+ "border": "#617c82",
758
+ "borderFocus": "#859900",
759
+ "fg": "#839496",
760
+ "fgDim": "#556f74",
761
+ "fgMuted": "#34555c",
762
+ "primary": "#859900",
763
+ "primarySoft": "#6a830b",
764
+ "secondary": "#CB4B16",
765
+ "accent": "#859900",
766
+ "success": "#487e35",
767
+ "warning": "#cca700",
768
+ "error": "#f44747",
769
+ "thinking": "#859826",
770
+ "syntax": {
771
+ "kw": "#859900",
772
+ "str": "#2AA198",
773
+ "com": "#586E75",
774
+ "num": "#D33682",
775
+ "call": "#CB4B16",
776
+ "plain": "#839496",
777
+ "storage": "#93A1A1",
778
+ "support": "#CB4B16",
779
+ "variable": "#839496"
780
+ }
781
+ }
782
+ },
783
+ {
784
+ "id": "solarized-light",
785
+ "label": "Solarized Light",
786
+ "desc": "Solarized light variant",
787
+ "palette": {
788
+ "bg": "#fdf6e3",
789
+ "bgMsg": "#cfcaba",
790
+ "bgPanel": "#eee8d5",
791
+ "bgPanelAlt": "#fdf6e3",
792
+ "bgInput": "#eee8d5",
793
+ "bgHover": "#e3dfce",
794
+ "border": "#ddd6c1",
795
+ "borderFocus": "#859900",
796
+ "fg": "#657b83",
797
+ "fgDim": "#9aa6a5",
798
+ "fgMuted": "#c0c5bd",
799
+ "primary": "#859900",
800
+ "primarySoft": "#9dac2d",
801
+ "secondary": "#CB4B16",
802
+ "accent": "#859900",
803
+ "success": "#487e35",
804
+ "warning": "#cca700",
805
+ "error": "#f44747",
806
+ "thinking": "#7d9221",
807
+ "syntax": {
808
+ "kw": "#859900",
809
+ "str": "#2AA198",
810
+ "com": "#93A1A1",
811
+ "num": "#D33682",
812
+ "call": "#CB4B16",
813
+ "plain": "#657b83",
814
+ "storage": "#586E75",
815
+ "support": "#CB4B16",
816
+ "variable": "#657B83"
817
+ }
818
+ }
819
+ },
820
+ {
821
+ "id": "synthwave",
822
+ "label": "Synthwave '84",
823
+ "desc": "Retro neon",
824
+ "palette": {
825
+ "bg": "#262335",
826
+ "bgMsg": "#1f1d2b",
827
+ "bgPanel": "#241b2f",
828
+ "bgPanelAlt": "#262335",
829
+ "bgInput": "#171520",
830
+ "bgHover": "#fcfcfc",
831
+ "border": "#495495",
832
+ "borderFocus": "#fede5d",
833
+ "fg": "#d4d4d4",
834
+ "fgDim": "#97969c",
835
+ "fgMuted": "#6c6a75",
836
+ "primary": "#fede5d",
837
+ "primarySoft": "#d3b955",
838
+ "secondary": "#ff7edb",
839
+ "accent": "#f97e72",
840
+ "success": "#206d4b",
841
+ "warning": "#72f1b8",
842
+ "error": "#fe4450",
843
+ "thinking": "#f0948b",
844
+ "syntax": {
845
+ "kw": "#fede5d",
846
+ "str": "#848bbd",
847
+ "com": "#848bbd",
848
+ "num": "#f97e72",
849
+ "call": "#ff7edb",
850
+ "plain": "#d4d4d4",
851
+ "storage": "#fede5d",
852
+ "support": "#fe4450",
853
+ "variable": "#ff7edb"
854
+ }
855
+ }
856
+ },
857
+ {
858
+ "id": "tokyonight",
859
+ "label": "Tokyo Night",
860
+ "desc": "Tokyo city lights",
861
+ "palette": {
862
+ "bg": "#1a1b26",
863
+ "bgMsg": "#15161f",
864
+ "bgPanel": "#16161e",
865
+ "bgPanelAlt": "#16161e",
866
+ "bgInput": "#16161e",
867
+ "bgHover": "#586385",
868
+ "border": "#717278",
869
+ "borderFocus": "#bb9af7",
870
+ "fg": "#a9b1d6",
871
+ "fgDim": "#777d98",
872
+ "fgMuted": "#53576c",
873
+ "primary": "#bb9af7",
874
+ "primarySoft": "#9b81cd",
875
+ "secondary": "#0db9d7",
876
+ "accent": "#6183bb",
877
+ "success": "#164846",
878
+ "warning": "#e0af68",
879
+ "error": "#db4b4b",
880
+ "thinking": "#738fc2",
881
+ "syntax": {
882
+ "kw": "#bb9af7",
883
+ "str": "#9ece6a",
884
+ "com": "#51597d",
885
+ "num": "#ff9e64",
886
+ "call": "#0db9d7",
887
+ "plain": "#a9b1d6",
888
+ "storage": "#bb9af7",
889
+ "support": "#ff9e64",
890
+ "variable": "#c0caf5"
891
+ }
892
+ }
893
+ },
894
+ {
895
+ "id": "vesper",
896
+ "label": "Vesper",
897
+ "desc": "Evening calm, dark theme",
898
+ "palette": {
899
+ "bg": "#101010",
900
+ "bgMsg": "#0d0d0d",
901
+ "bgPanel": "#101010",
902
+ "bgPanelAlt": "#101010",
903
+ "bgInput": "#101010",
904
+ "bgHover": "#fcfcfc",
905
+ "border": "#6b6b6b",
906
+ "borderFocus": "#A0A0A0",
907
+ "fg": "#d4d4d4",
908
+ "fgDim": "#8f8f8f",
909
+ "fgMuted": "#5e5e5e",
910
+ "primary": "#A0A0A0",
911
+ "primarySoft": "#838383",
912
+ "secondary": "#FFF",
913
+ "accent": "#FFC799",
914
+ "success": "#99FFE4",
915
+ "warning": "#FFC799",
916
+ "error": "#FF8080",
917
+ "thinking": "#f4caa8",
918
+ "syntax": {
919
+ "kw": "#A0A0A0",
920
+ "str": "#99FFE4",
921
+ "com": "#8b8b8b94",
922
+ "num": "#FFF",
923
+ "call": "#FFF",
924
+ "plain": "#d4d4d4",
925
+ "storage": "#A0A0A0",
926
+ "support": "#FFC799",
927
+ "variable": "#FFF"
928
+ }
929
+ }
930
+ },
931
+ {
932
+ "id": "vitesse",
933
+ "label": "Vitesse",
934
+ "desc": "Elegant dark theme",
935
+ "palette": {
936
+ "bg": "#121212",
937
+ "bgMsg": "#0f0f0f",
938
+ "bgPanel": "#121212",
939
+ "bgPanelAlt": "#121212",
940
+ "bgInput": "#121212",
941
+ "bgHover": "#ececeb",
942
+ "border": "#6c6c6c",
943
+ "borderFocus": "#4d9375",
944
+ "fg": "#dbd7ca",
945
+ "fgDim": "#95928a",
946
+ "fgMuted": "#62615c",
947
+ "primary": "#4d9375",
948
+ "primarySoft": "#417961",
949
+ "secondary": "#80a665",
950
+ "accent": "#4d9375",
951
+ "success": "#4d9375",
952
+ "warning": "#d4976c",
953
+ "error": "#cb7676",
954
+ "thinking": "#71a48a",
955
+ "syntax": {
956
+ "kw": "#4d9375",
957
+ "str": "#c98a7d",
958
+ "com": "#758575dd",
959
+ "num": "#c99076",
960
+ "call": "#80a665",
961
+ "plain": "#dbd7ca",
962
+ "storage": "#cb7676",
963
+ "support": "#b8a965",
964
+ "variable": "#bd976a"
965
+ }
966
+ }
967
+ }
968
+ ];