@nghyane/arcane 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/src/main.ts +3 -0
- package/src/modes/components/model-selector.ts +1 -1
- package/src/modes/components/status-line.ts +15 -40
- package/src/modes/components/user-message.ts +2 -0
- package/src/modes/components/welcome.ts +1 -1
- package/src/modes/interactive-mode.ts +2 -0
- package/src/modes/theme/dark.json +56 -59
- package/src/modes/theme/defaults/dark-catppuccin.json +47 -56
- package/src/modes/theme/defaults/dark-dracula.json +24 -32
- package/src/modes/theme/defaults/dark-gruvbox.json +53 -74
- package/src/modes/theme/defaults/dark-solarized.json +33 -35
- package/src/modes/theme/defaults/dark-tokyo-night.json +57 -67
- package/src/modes/theme/defaults/index.ts +3 -179
- package/src/modes/theme/defaults/light-catppuccin.json +42 -50
- package/src/modes/theme/defaults/light-github.json +68 -94
- package/src/modes/theme/defaults/light-solarized.json +41 -49
- package/src/modes/theme/light.json +14 -12
- package/src/modes/theme/theme-schema.json +4 -0
- package/src/modes/theme/theme.ts +89 -6
- package/src/tui/output-block.ts +2 -12
- package/src/modes/theme/defaults/alabaster.json +0 -93
- package/src/modes/theme/defaults/amethyst.json +0 -96
- package/src/modes/theme/defaults/anthracite.json +0 -93
- package/src/modes/theme/defaults/basalt.json +0 -91
- package/src/modes/theme/defaults/birch.json +0 -95
- package/src/modes/theme/defaults/dark-abyss.json +0 -91
- package/src/modes/theme/defaults/dark-arctic.json +0 -104
- package/src/modes/theme/defaults/dark-aurora.json +0 -95
- package/src/modes/theme/defaults/dark-cavern.json +0 -91
- package/src/modes/theme/defaults/dark-copper.json +0 -95
- package/src/modes/theme/defaults/dark-cosmos.json +0 -90
- package/src/modes/theme/defaults/dark-cyberpunk.json +0 -102
- package/src/modes/theme/defaults/dark-eclipse.json +0 -91
- package/src/modes/theme/defaults/dark-ember.json +0 -95
- package/src/modes/theme/defaults/dark-equinox.json +0 -90
- package/src/modes/theme/defaults/dark-forest.json +0 -96
- package/src/modes/theme/defaults/dark-github.json +0 -105
- package/src/modes/theme/defaults/dark-lavender.json +0 -95
- package/src/modes/theme/defaults/dark-lunar.json +0 -89
- package/src/modes/theme/defaults/dark-midnight.json +0 -95
- package/src/modes/theme/defaults/dark-monochrome.json +0 -94
- package/src/modes/theme/defaults/dark-monokai.json +0 -98
- package/src/modes/theme/defaults/dark-nebula.json +0 -90
- package/src/modes/theme/defaults/dark-nord.json +0 -97
- package/src/modes/theme/defaults/dark-ocean.json +0 -101
- package/src/modes/theme/defaults/dark-one.json +0 -100
- package/src/modes/theme/defaults/dark-rainforest.json +0 -91
- package/src/modes/theme/defaults/dark-reef.json +0 -91
- package/src/modes/theme/defaults/dark-retro.json +0 -92
- package/src/modes/theme/defaults/dark-rose-pine.json +0 -96
- package/src/modes/theme/defaults/dark-sakura.json +0 -95
- package/src/modes/theme/defaults/dark-slate.json +0 -95
- package/src/modes/theme/defaults/dark-solstice.json +0 -90
- package/src/modes/theme/defaults/dark-starfall.json +0 -91
- package/src/modes/theme/defaults/dark-sunset.json +0 -99
- package/src/modes/theme/defaults/dark-swamp.json +0 -90
- package/src/modes/theme/defaults/dark-synthwave.json +0 -103
- package/src/modes/theme/defaults/dark-taiga.json +0 -91
- package/src/modes/theme/defaults/dark-terminal.json +0 -95
- package/src/modes/theme/defaults/dark-tundra.json +0 -91
- package/src/modes/theme/defaults/dark-twilight.json +0 -91
- package/src/modes/theme/defaults/dark-volcanic.json +0 -91
- package/src/modes/theme/defaults/graphite.json +0 -92
- package/src/modes/theme/defaults/light-arctic.json +0 -107
- package/src/modes/theme/defaults/light-aurora-day.json +0 -91
- package/src/modes/theme/defaults/light-canyon.json +0 -91
- package/src/modes/theme/defaults/light-cirrus.json +0 -90
- package/src/modes/theme/defaults/light-coral.json +0 -95
- package/src/modes/theme/defaults/light-cyberpunk.json +0 -96
- package/src/modes/theme/defaults/light-dawn.json +0 -90
- package/src/modes/theme/defaults/light-dunes.json +0 -91
- package/src/modes/theme/defaults/light-eucalyptus.json +0 -95
- package/src/modes/theme/defaults/light-forest.json +0 -100
- package/src/modes/theme/defaults/light-frost.json +0 -95
- package/src/modes/theme/defaults/light-glacier.json +0 -91
- package/src/modes/theme/defaults/light-gruvbox.json +0 -108
- package/src/modes/theme/defaults/light-haze.json +0 -90
- package/src/modes/theme/defaults/light-honeycomb.json +0 -95
- package/src/modes/theme/defaults/light-lagoon.json +0 -91
- package/src/modes/theme/defaults/light-lavender.json +0 -95
- package/src/modes/theme/defaults/light-meadow.json +0 -91
- package/src/modes/theme/defaults/light-mint.json +0 -95
- package/src/modes/theme/defaults/light-monochrome.json +0 -101
- package/src/modes/theme/defaults/light-ocean.json +0 -99
- package/src/modes/theme/defaults/light-one.json +0 -99
- package/src/modes/theme/defaults/light-opal.json +0 -91
- package/src/modes/theme/defaults/light-orchard.json +0 -91
- package/src/modes/theme/defaults/light-paper.json +0 -95
- package/src/modes/theme/defaults/light-prism.json +0 -90
- package/src/modes/theme/defaults/light-retro.json +0 -98
- package/src/modes/theme/defaults/light-sand.json +0 -95
- package/src/modes/theme/defaults/light-savanna.json +0 -91
- package/src/modes/theme/defaults/light-soleil.json +0 -90
- package/src/modes/theme/defaults/light-sunset.json +0 -99
- package/src/modes/theme/defaults/light-synthwave.json +0 -98
- package/src/modes/theme/defaults/light-tokyo-night.json +0 -111
- package/src/modes/theme/defaults/light-wetland.json +0 -91
- package/src/modes/theme/defaults/light-zenith.json +0 -89
- package/src/modes/theme/defaults/limestone.json +0 -94
- package/src/modes/theme/defaults/mahogany.json +0 -97
- package/src/modes/theme/defaults/marble.json +0 -93
- package/src/modes/theme/defaults/obsidian.json +0 -91
- package/src/modes/theme/defaults/onyx.json +0 -91
- package/src/modes/theme/defaults/pearl.json +0 -93
- package/src/modes/theme/defaults/porcelain.json +0 -91
- package/src/modes/theme/defaults/quartz.json +0 -96
- package/src/modes/theme/defaults/sandstone.json +0 -95
- package/src/modes/theme/defaults/titanium.json +0 -90
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@nghyane/arcane",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.11",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/nghyane/arcane",
|
|
7
7
|
"author": "Can Bölük",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@mozilla/readability": "0.6.0",
|
|
47
47
|
"@nghyane/arcane-stats": "^0.1.8",
|
|
48
|
-
"@nghyane/arcane-agent": "^0.1.
|
|
49
|
-
"@nghyane/arcane-codemode": "^0.1.
|
|
48
|
+
"@nghyane/arcane-agent": "^0.1.9",
|
|
49
|
+
"@nghyane/arcane-codemode": "^0.1.10",
|
|
50
50
|
"@nghyane/arcane-ai": "^0.1.8",
|
|
51
51
|
"@nghyane/arcane-natives": "^0.1.7",
|
|
52
|
-
"@nghyane/arcane-tui": "^0.1.
|
|
52
|
+
"@nghyane/arcane-tui": "^0.1.9",
|
|
53
53
|
"@nghyane/arcane-utils": "^0.1.6",
|
|
54
54
|
"@sinclair/typebox": "^0.34.48",
|
|
55
55
|
"@xterm/headless": "^6.0.0",
|
package/src/main.ts
CHANGED
|
@@ -11,6 +11,7 @@ import * as os from "node:os";
|
|
|
11
11
|
import * as path from "node:path";
|
|
12
12
|
import { createInterface } from "node:readline/promises";
|
|
13
13
|
import { type ImageContent, supportsXhigh } from "@nghyane/arcane-ai";
|
|
14
|
+
import { queryTerminalBackground } from "@nghyane/arcane-tui";
|
|
14
15
|
import { $env, postmortem } from "@nghyane/arcane-utils";
|
|
15
16
|
import { getProjectDir, setProjectDir } from "@nghyane/arcane-utils/dirs";
|
|
16
17
|
import chalk from "chalk";
|
|
@@ -591,12 +592,14 @@ export async function runRootCommand(parsed: Args, rawArgs: string[]): Promise<v
|
|
|
591
592
|
});
|
|
592
593
|
}
|
|
593
594
|
|
|
595
|
+
const terminalBg = isInteractive ? await queryTerminalBackground() : null;
|
|
594
596
|
await initTheme(
|
|
595
597
|
isInteractive,
|
|
596
598
|
settings.get("symbolPreset"),
|
|
597
599
|
settings.get("colorBlindMode"),
|
|
598
600
|
settings.get("theme.dark"),
|
|
599
601
|
settings.get("theme.light"),
|
|
602
|
+
terminalBg ?? undefined,
|
|
600
603
|
);
|
|
601
604
|
time("initTheme:final");
|
|
602
605
|
|
|
@@ -21,7 +21,7 @@ import { DynamicBorder } from "./dynamic-border";
|
|
|
21
21
|
function makeInvertedBadge(label: string, color: ThemeColor): string {
|
|
22
22
|
const fgAnsi = theme.getFgAnsi(color);
|
|
23
23
|
const bgAnsi = fgAnsi.replace(/\x1b\[38;/g, "\x1b[48;");
|
|
24
|
-
return `${bgAnsi}\x1b[30m ${label} \x1b[39m
|
|
24
|
+
return `${bgAnsi}\x1b[30m ${label} \x1b[39m${theme.getAppBgAnsi()}`;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
interface ModelItem {
|
|
@@ -309,78 +309,53 @@ export class StatusLineComponent implements Component {
|
|
|
309
309
|
const ctx = this.#buildSegmentContext(width);
|
|
310
310
|
const effectiveSettings = this.#resolveSettings();
|
|
311
311
|
const separatorDef = getSeparator(effectiveSettings.separator ?? "powerline-thin", theme);
|
|
312
|
-
|
|
313
|
-
const bgAnsi = theme.getBgAnsi("statusLineBg");
|
|
314
312
|
const fgAnsi = theme.getFgAnsi("text");
|
|
315
313
|
const sepAnsi = theme.getFgAnsi("statusLineSep");
|
|
314
|
+
const leftSepWidth = visibleWidth(separatorDef.left);
|
|
315
|
+
const rightSepWidth = visibleWidth(separatorDef.right);
|
|
316
316
|
|
|
317
|
-
// Collect visible segment contents
|
|
318
317
|
const leftParts: string[] = [];
|
|
319
|
-
for (const segId of
|
|
318
|
+
for (const segId of this.#resolveSettings().leftSegments) {
|
|
320
319
|
const rendered = renderSegment(segId, ctx);
|
|
321
|
-
if (rendered.visible && rendered.content)
|
|
322
|
-
leftParts.push(rendered.content);
|
|
323
|
-
}
|
|
320
|
+
if (rendered.visible && rendered.content) leftParts.push(rendered.content);
|
|
324
321
|
}
|
|
325
322
|
|
|
326
323
|
const rightParts: string[] = [];
|
|
327
|
-
for (const segId of
|
|
324
|
+
for (const segId of this.#resolveSettings().rightSegments) {
|
|
328
325
|
const rendered = renderSegment(segId, ctx);
|
|
329
|
-
if (rendered.visible && rendered.content)
|
|
330
|
-
rightParts.push(rendered.content);
|
|
331
|
-
}
|
|
326
|
+
if (rendered.visible && rendered.content) rightParts.push(rendered.content);
|
|
332
327
|
}
|
|
333
328
|
|
|
334
329
|
const topFillWidth = width > 0 ? Math.max(0, width - 4) : 0;
|
|
335
330
|
const left = [...leftParts];
|
|
336
331
|
const right = [...rightParts];
|
|
337
332
|
|
|
338
|
-
const
|
|
339
|
-
const rightSepWidth = visibleWidth(separatorDef.right);
|
|
340
|
-
const leftCapWidth = separatorDef.endCaps ? visibleWidth(separatorDef.endCaps.right) : 0;
|
|
341
|
-
const rightCapWidth = separatorDef.endCaps ? visibleWidth(separatorDef.endCaps.left) : 0;
|
|
342
|
-
|
|
343
|
-
const groupWidth = (parts: string[], capWidth: number, sepWidth: number): number => {
|
|
333
|
+
const groupWidth = (parts: string[], sepWidth: number): number => {
|
|
344
334
|
if (parts.length === 0) return 0;
|
|
345
335
|
const partsWidth = parts.reduce((sum, part) => sum + visibleWidth(part), 0);
|
|
346
336
|
const sepTotal = Math.max(0, parts.length - 1) * (sepWidth + 2);
|
|
347
|
-
return partsWidth + sepTotal + 2
|
|
337
|
+
return partsWidth + sepTotal + 2;
|
|
348
338
|
};
|
|
349
339
|
|
|
350
|
-
let leftWidth = groupWidth(left,
|
|
351
|
-
let rightWidth = groupWidth(right,
|
|
340
|
+
let leftWidth = groupWidth(left, leftSepWidth);
|
|
341
|
+
let rightWidth = groupWidth(right, rightSepWidth);
|
|
352
342
|
const totalWidth = () => leftWidth + rightWidth + (left.length > 0 && right.length > 0 ? 1 : 0);
|
|
353
343
|
|
|
354
344
|
if (topFillWidth > 0) {
|
|
355
345
|
while (totalWidth() > topFillWidth && right.length > 0) {
|
|
356
346
|
right.pop();
|
|
357
|
-
rightWidth = groupWidth(right,
|
|
347
|
+
rightWidth = groupWidth(right, rightSepWidth);
|
|
358
348
|
}
|
|
359
349
|
while (totalWidth() > topFillWidth && left.length > 0) {
|
|
360
350
|
left.pop();
|
|
361
|
-
leftWidth = groupWidth(left,
|
|
351
|
+
leftWidth = groupWidth(left, leftSepWidth);
|
|
362
352
|
}
|
|
363
353
|
}
|
|
364
354
|
|
|
365
355
|
const renderGroup = (parts: string[], direction: "left" | "right"): string => {
|
|
366
356
|
if (parts.length === 0) return "";
|
|
367
357
|
const sep = direction === "left" ? separatorDef.left : separatorDef.right;
|
|
368
|
-
|
|
369
|
-
? direction === "left"
|
|
370
|
-
? separatorDef.endCaps.right
|
|
371
|
-
: separatorDef.endCaps.left
|
|
372
|
-
: "";
|
|
373
|
-
const capPrefix = separatorDef.endCaps?.useBgAsFg ? bgAnsi.replace("\x1b[48;", "\x1b[38;") : bgAnsi + sepAnsi;
|
|
374
|
-
const capText = cap ? `${capPrefix}${cap}\x1b[0m` : "";
|
|
375
|
-
|
|
376
|
-
let content = bgAnsi + fgAnsi;
|
|
377
|
-
content += ` ${parts.join(` ${sepAnsi}${sep}${fgAnsi} `)} `;
|
|
378
|
-
content += "\x1b[0m";
|
|
379
|
-
|
|
380
|
-
if (capText) {
|
|
381
|
-
return direction === "right" ? capText + content : content + capText;
|
|
382
|
-
}
|
|
383
|
-
return content;
|
|
358
|
+
return `${fgAnsi} ${parts.join(` ${sepAnsi}${sep}${fgAnsi} `)} \x1b[0m`;
|
|
384
359
|
};
|
|
385
360
|
|
|
386
361
|
const leftGroup = renderGroup(left, "left");
|
|
@@ -391,8 +366,8 @@ export class StatusLineComponent implements Component {
|
|
|
391
366
|
return leftGroup + (leftGroup && rightGroup ? " " : "") + rightGroup;
|
|
392
367
|
}
|
|
393
368
|
|
|
394
|
-
leftWidth = groupWidth(left,
|
|
395
|
-
rightWidth = groupWidth(right,
|
|
369
|
+
leftWidth = groupWidth(left, leftSepWidth);
|
|
370
|
+
rightWidth = groupWidth(right, rightSepWidth);
|
|
396
371
|
const gapWidth = Math.max(1, topFillWidth - leftWidth - rightWidth);
|
|
397
372
|
return leftGroup + padding(gapWidth) + rightGroup;
|
|
398
373
|
}
|
|
@@ -8,6 +8,7 @@ export class UserMessageComponent extends Container {
|
|
|
8
8
|
constructor(text: string, synthetic = false) {
|
|
9
9
|
super();
|
|
10
10
|
const bgColor = (value: string) => theme.bg("userMessageBg", value);
|
|
11
|
+
const leftBorder = theme.fg("accent", "▎");
|
|
11
12
|
const color = synthetic
|
|
12
13
|
? (value: string) => theme.fg("dim", value)
|
|
13
14
|
: (value: string) => theme.fg("userMessageText", value);
|
|
@@ -16,6 +17,7 @@ export class UserMessageComponent extends Container {
|
|
|
16
17
|
new Markdown(text, 1, 1, getMarkdownTheme(), {
|
|
17
18
|
bgColor,
|
|
18
19
|
color,
|
|
20
|
+
leftBorder,
|
|
19
21
|
}),
|
|
20
22
|
);
|
|
21
23
|
}
|
|
@@ -82,7 +82,7 @@ export class WelcomeComponent implements Component {
|
|
|
82
82
|
...logoColored.map(l => this.#centerText(l, leftCol)),
|
|
83
83
|
"",
|
|
84
84
|
this.#centerText(theme.fg("muted", this.modelName), leftCol),
|
|
85
|
-
this.#centerText(theme.fg("
|
|
85
|
+
this.#centerText(theme.fg("dim", this.providerName), leftCol),
|
|
86
86
|
];
|
|
87
87
|
|
|
88
88
|
// Right column separator
|
|
@@ -175,6 +175,7 @@ export class InteractiveMode implements InteractiveModeContext {
|
|
|
175
175
|
|
|
176
176
|
this.ui = new TUI(new ProcessTerminal(), settings.get("showHardwareCursor"));
|
|
177
177
|
this.ui.setClearOnShrink(settings.get("clearOnShrink"));
|
|
178
|
+
this.ui.setAppBg(theme.getAppBgPackedRgb());
|
|
178
179
|
setMermaidRenderCallback(() => this.ui.requestRender());
|
|
179
180
|
this.chatContainer = new Container();
|
|
180
181
|
this.pendingMessagesContainer = new Container();
|
|
@@ -344,6 +345,7 @@ export class InteractiveMode implements InteractiveModeContext {
|
|
|
344
345
|
// Set up theme file watcher
|
|
345
346
|
onThemeChange(() => {
|
|
346
347
|
this.ui.invalidate();
|
|
348
|
+
this.ui.setAppBg(theme.getAppBgPackedRgb());
|
|
347
349
|
this.updateEditorBorderColor();
|
|
348
350
|
this.ui.requestRender();
|
|
349
351
|
});
|
|
@@ -2,26 +2,22 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/nghyane/arcane/main/packages/coding-agent/theme-schema.json",
|
|
3
3
|
"name": "dark",
|
|
4
4
|
"vars": {
|
|
5
|
-
"cyan": "#
|
|
6
|
-
"blue": "#
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"toolPendingBg": "#1d2129",
|
|
17
|
-
"toolSuccessBg": "#161a1f",
|
|
18
|
-
"toolErrorBg": "#291d1d",
|
|
19
|
-
"customMsgBg": "#2a2530"
|
|
5
|
+
"cyan": "#8fbcbb",
|
|
6
|
+
"blue": "#88c0d0",
|
|
7
|
+
"lightBlue": "#81a1c1",
|
|
8
|
+
"green": "#a3be8c",
|
|
9
|
+
"red": "#d06050",
|
|
10
|
+
"yellow": "#ebcb8b",
|
|
11
|
+
"gray": "#7b88a1",
|
|
12
|
+
"dimGray": "#4c566a",
|
|
13
|
+
"darkGray": "#434c5e",
|
|
14
|
+
"accent": "#d08770",
|
|
15
|
+
"darkGrayBg": "#434c5e"
|
|
20
16
|
},
|
|
21
17
|
"colors": {
|
|
22
18
|
"accent": "accent",
|
|
23
19
|
"border": "blue",
|
|
24
|
-
"borderAccent": "
|
|
20
|
+
"borderAccent": "accent",
|
|
25
21
|
"borderMuted": "darkGray",
|
|
26
22
|
"success": "green",
|
|
27
23
|
"error": "red",
|
|
@@ -30,22 +26,22 @@
|
|
|
30
26
|
"dim": "dimGray",
|
|
31
27
|
"text": "",
|
|
32
28
|
"thinkingText": "gray",
|
|
33
|
-
"selectedBg": "
|
|
34
|
-
"userMessageBg": "
|
|
29
|
+
"selectedBg": "^2",
|
|
30
|
+
"userMessageBg": "^2",
|
|
35
31
|
"userMessageText": "",
|
|
36
|
-
"customMessageBg": "
|
|
32
|
+
"customMessageBg": "^2",
|
|
37
33
|
"customMessageText": "",
|
|
38
|
-
"customMessageLabel": "
|
|
39
|
-
"toolPendingBg": "
|
|
40
|
-
"toolSuccessBg": "
|
|
41
|
-
"toolErrorBg": "
|
|
34
|
+
"customMessageLabel": "accent",
|
|
35
|
+
"toolPendingBg": "^3",
|
|
36
|
+
"toolSuccessBg": "^2",
|
|
37
|
+
"toolErrorBg": "^3",
|
|
42
38
|
"toolTitle": "",
|
|
43
39
|
"toolOutput": "gray",
|
|
44
|
-
"mdHeading": "
|
|
45
|
-
"mdLink": "
|
|
40
|
+
"mdHeading": "accent",
|
|
41
|
+
"mdLink": "blue",
|
|
46
42
|
"mdLinkUrl": "dimGray",
|
|
47
|
-
"mdCode": "
|
|
48
|
-
"mdCodeBlock": "
|
|
43
|
+
"mdCode": "yellow",
|
|
44
|
+
"mdCodeBlock": "green",
|
|
49
45
|
"mdCodeBlockBorder": "darkGray",
|
|
50
46
|
"mdQuote": "gray",
|
|
51
47
|
"mdQuoteBorder": "darkGray",
|
|
@@ -54,42 +50,43 @@
|
|
|
54
50
|
"toolDiffAdded": "green",
|
|
55
51
|
"toolDiffRemoved": "red",
|
|
56
52
|
"toolDiffContext": "gray",
|
|
57
|
-
"link": "
|
|
58
|
-
"syntaxComment": "
|
|
59
|
-
"syntaxKeyword": "
|
|
60
|
-
"syntaxFunction": "
|
|
61
|
-
"syntaxVariable": "
|
|
62
|
-
"syntaxString": "
|
|
63
|
-
"syntaxNumber": "#
|
|
64
|
-
"syntaxType": "
|
|
65
|
-
"syntaxOperator": "
|
|
66
|
-
"syntaxPunctuation": "
|
|
53
|
+
"link": "blue",
|
|
54
|
+
"syntaxComment": "gray",
|
|
55
|
+
"syntaxKeyword": "lightBlue",
|
|
56
|
+
"syntaxFunction": "blue",
|
|
57
|
+
"syntaxVariable": "cyan",
|
|
58
|
+
"syntaxString": "green",
|
|
59
|
+
"syntaxNumber": "#b48ead",
|
|
60
|
+
"syntaxType": "yellow",
|
|
61
|
+
"syntaxOperator": "gray",
|
|
62
|
+
"syntaxPunctuation": "gray",
|
|
67
63
|
"thinkingOff": "darkGray",
|
|
68
64
|
"thinkingMinimal": "dimGray",
|
|
69
|
-
"thinkingLow": "
|
|
70
|
-
"thinkingMedium": "
|
|
71
|
-
"thinkingHigh": "
|
|
72
|
-
"thinkingXhigh": "#
|
|
73
|
-
"bashMode": "
|
|
74
|
-
"statusLineBg": "
|
|
75
|
-
"statusLineSep":
|
|
76
|
-
"statusLineModel": "
|
|
77
|
-
"statusLinePath": "
|
|
78
|
-
"statusLineGitClean": "
|
|
79
|
-
"statusLineGitDirty": "
|
|
80
|
-
"statusLineContext": "
|
|
81
|
-
"statusLineSpend": "
|
|
82
|
-
"statusLineStaged":
|
|
83
|
-
"statusLineDirty":
|
|
84
|
-
"statusLineUntracked":
|
|
85
|
-
"statusLineOutput":
|
|
86
|
-
"statusLineCost":
|
|
65
|
+
"thinkingLow": "blue",
|
|
66
|
+
"thinkingMedium": "cyan",
|
|
67
|
+
"thinkingHigh": "accent",
|
|
68
|
+
"thinkingXhigh": "#c87558",
|
|
69
|
+
"bashMode": "accent",
|
|
70
|
+
"statusLineBg": "^-2",
|
|
71
|
+
"statusLineSep": "dimGray",
|
|
72
|
+
"statusLineModel": "accent",
|
|
73
|
+
"statusLinePath": "blue",
|
|
74
|
+
"statusLineGitClean": "green",
|
|
75
|
+
"statusLineGitDirty": "yellow",
|
|
76
|
+
"statusLineContext": "gray",
|
|
77
|
+
"statusLineSpend": "cyan",
|
|
78
|
+
"statusLineStaged": 179,
|
|
79
|
+
"statusLineDirty": 173,
|
|
80
|
+
"statusLineUntracked": 180,
|
|
81
|
+
"statusLineOutput": 180,
|
|
82
|
+
"statusLineCost": 173,
|
|
87
83
|
"statusLineSubagents": "accent",
|
|
88
|
-
"pythonMode": "yellow"
|
|
84
|
+
"pythonMode": "yellow",
|
|
85
|
+
"appBg": "^0"
|
|
89
86
|
},
|
|
90
87
|
"export": {
|
|
91
|
-
"pageBg": "#
|
|
92
|
-
"cardBg": "#
|
|
93
|
-
"infoBg": "#
|
|
88
|
+
"pageBg": "#242933",
|
|
89
|
+
"cardBg": "#323846",
|
|
90
|
+
"infoBg": "#2d333b"
|
|
94
91
|
}
|
|
95
92
|
}
|
|
@@ -12,96 +12,87 @@
|
|
|
12
12
|
"yellow": "#f9e2af",
|
|
13
13
|
"green": "#a6e3a1",
|
|
14
14
|
"teal": "#94e2d5",
|
|
15
|
-
"sky": "#89dceb",
|
|
16
15
|
"sapphire": "#74c7ec",
|
|
17
16
|
"blue": "#89b4fa",
|
|
18
17
|
"lavender": "#b4befe",
|
|
19
|
-
"text": "#cdd6f4",
|
|
20
|
-
"subtext1": "#bac2de",
|
|
21
18
|
"subtext0": "#a6adc8",
|
|
22
|
-
"overlay2": "#9399b2",
|
|
23
|
-
"overlay1": "#7f849c",
|
|
24
19
|
"overlay0": "#6c7086",
|
|
25
|
-
"surface2": "#585b70",
|
|
26
20
|
"surface1": "#45475a",
|
|
27
|
-
"surface0": "#313244"
|
|
28
|
-
"base": "#1e1e2e",
|
|
29
|
-
"mantle": "#181825",
|
|
30
|
-
"crust": "#11111b"
|
|
21
|
+
"surface0": "#313244"
|
|
31
22
|
},
|
|
32
23
|
"colors": {
|
|
33
|
-
"accent": "
|
|
34
|
-
"border": "
|
|
35
|
-
"borderAccent": "
|
|
36
|
-
"borderMuted": "
|
|
24
|
+
"accent": "mauve",
|
|
25
|
+
"border": "lavender",
|
|
26
|
+
"borderAccent": "mauve",
|
|
27
|
+
"borderMuted": "surface1",
|
|
37
28
|
"success": "green",
|
|
38
29
|
"error": "red",
|
|
39
30
|
"warning": "yellow",
|
|
40
|
-
"muted": "
|
|
41
|
-
"dim": "
|
|
31
|
+
"muted": "overlay0",
|
|
32
|
+
"dim": "surface1",
|
|
42
33
|
"text": "",
|
|
43
|
-
"thinkingText": "
|
|
44
|
-
"selectedBg": "
|
|
45
|
-
"userMessageBg": "
|
|
34
|
+
"thinkingText": "overlay0",
|
|
35
|
+
"selectedBg": "^2",
|
|
36
|
+
"userMessageBg": "^2",
|
|
46
37
|
"userMessageText": "",
|
|
47
|
-
"customMessageBg": "
|
|
38
|
+
"customMessageBg": "^2",
|
|
48
39
|
"customMessageText": "",
|
|
49
40
|
"customMessageLabel": "mauve",
|
|
50
|
-
"toolPendingBg": "
|
|
51
|
-
"toolSuccessBg": "
|
|
52
|
-
"toolErrorBg": "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"mdHeading": "peach",
|
|
41
|
+
"toolPendingBg": "^3",
|
|
42
|
+
"toolSuccessBg": "^2",
|
|
43
|
+
"toolErrorBg": "^3",
|
|
44
|
+
"toolTitle": "",
|
|
45
|
+
"toolOutput": "overlay0",
|
|
46
|
+
"mdHeading": "mauve",
|
|
57
47
|
"mdLink": "blue",
|
|
58
48
|
"mdLinkUrl": "overlay0",
|
|
59
|
-
"mdCode": "
|
|
60
|
-
"mdCodeBlock": "
|
|
61
|
-
"mdCodeBlockBorder": "
|
|
62
|
-
"mdQuote": "
|
|
49
|
+
"mdCode": "peach",
|
|
50
|
+
"mdCodeBlock": "green",
|
|
51
|
+
"mdCodeBlockBorder": "surface1",
|
|
52
|
+
"mdQuote": "overlay0",
|
|
63
53
|
"mdQuoteBorder": "surface0",
|
|
64
|
-
"mdHr": "
|
|
65
|
-
"mdListBullet": "
|
|
54
|
+
"mdHr": "surface1",
|
|
55
|
+
"mdListBullet": "mauve",
|
|
66
56
|
"toolDiffAdded": "green",
|
|
67
57
|
"toolDiffRemoved": "red",
|
|
68
|
-
"toolDiffContext": "
|
|
58
|
+
"toolDiffContext": "overlay0",
|
|
69
59
|
"link": "blue",
|
|
70
60
|
"syntaxComment": "overlay0",
|
|
71
61
|
"syntaxKeyword": "mauve",
|
|
72
62
|
"syntaxFunction": "blue",
|
|
73
|
-
"syntaxVariable": "
|
|
63
|
+
"syntaxVariable": "teal",
|
|
74
64
|
"syntaxString": "green",
|
|
75
65
|
"syntaxNumber": "peach",
|
|
76
66
|
"syntaxType": "yellow",
|
|
77
|
-
"syntaxOperator": "
|
|
78
|
-
"syntaxPunctuation": "
|
|
67
|
+
"syntaxOperator": "subtext0",
|
|
68
|
+
"syntaxPunctuation": "subtext0",
|
|
79
69
|
"thinkingOff": "surface0",
|
|
80
70
|
"thinkingMinimal": "overlay0",
|
|
81
|
-
"thinkingLow": "
|
|
82
|
-
"thinkingMedium": "
|
|
71
|
+
"thinkingLow": "sapphire",
|
|
72
|
+
"thinkingMedium": "blue",
|
|
83
73
|
"thinkingHigh": "mauve",
|
|
84
74
|
"thinkingXhigh": "pink",
|
|
85
|
-
"bashMode": "
|
|
86
|
-
"statusLineBg": "
|
|
75
|
+
"bashMode": "green",
|
|
76
|
+
"statusLineBg": "^-2",
|
|
87
77
|
"statusLineSep": "surface1",
|
|
88
|
-
"statusLineModel": "
|
|
89
|
-
"statusLinePath": "
|
|
78
|
+
"statusLineModel": "mauve",
|
|
79
|
+
"statusLinePath": "blue",
|
|
90
80
|
"statusLineGitClean": "green",
|
|
91
|
-
"statusLineGitDirty": "
|
|
92
|
-
"statusLineContext": "
|
|
93
|
-
"statusLineSpend": "
|
|
94
|
-
"statusLineStaged":
|
|
95
|
-
"statusLineDirty":
|
|
96
|
-
"statusLineUntracked":
|
|
97
|
-
"statusLineOutput":
|
|
98
|
-
"statusLineCost":
|
|
99
|
-
"statusLineSubagents": "
|
|
100
|
-
"pythonMode": "yellow"
|
|
81
|
+
"statusLineGitDirty": "peach",
|
|
82
|
+
"statusLineContext": "overlay0",
|
|
83
|
+
"statusLineSpend": "teal",
|
|
84
|
+
"statusLineStaged": 107,
|
|
85
|
+
"statusLineDirty": 216,
|
|
86
|
+
"statusLineUntracked": 183,
|
|
87
|
+
"statusLineOutput": 183,
|
|
88
|
+
"statusLineCost": 107,
|
|
89
|
+
"statusLineSubagents": "mauve",
|
|
90
|
+
"pythonMode": "yellow",
|
|
91
|
+
"appBg": "^0"
|
|
101
92
|
},
|
|
102
93
|
"export": {
|
|
103
|
-
"pageBg": "
|
|
104
|
-
"cardBg": "
|
|
105
|
-
"infoBg": "
|
|
94
|
+
"pageBg": "#1e1e2e",
|
|
95
|
+
"cardBg": "#24243e",
|
|
96
|
+
"infoBg": "#313244"
|
|
106
97
|
}
|
|
107
98
|
}
|
|
@@ -2,23 +2,15 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/nghyane/arcane/main/packages/coding-agent/theme-schema.json",
|
|
3
3
|
"name": "dark-dracula",
|
|
4
4
|
"vars": {
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"foreground": "#F8F8F2",
|
|
8
|
-
"comment": "#6272A4",
|
|
9
|
-
"cyan": "#8BE9FD",
|
|
10
|
-
"green": "#50FA7B",
|
|
5
|
+
"cyan": "#80d4e8",
|
|
6
|
+
"green": "#5af78e",
|
|
11
7
|
"orange": "#FFB86C",
|
|
12
|
-
"pink": "#
|
|
8
|
+
"pink": "#f286c4",
|
|
13
9
|
"purple": "#BD93F9",
|
|
14
|
-
"red": "#
|
|
15
|
-
"yellow": "#
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"toolPendingBg": "#21222C",
|
|
19
|
-
"toolSuccessBg": "#1a1f1e",
|
|
20
|
-
"toolErrorBg": "#2a2028",
|
|
21
|
-
"customMsgBg": "#2b2640"
|
|
10
|
+
"red": "#f07178",
|
|
11
|
+
"yellow": "#e8d87a",
|
|
12
|
+
"comment": "#6272A4",
|
|
13
|
+
"currentLine": "#44475A"
|
|
22
14
|
},
|
|
23
15
|
"colors": {
|
|
24
16
|
"accent": "purple",
|
|
@@ -29,20 +21,19 @@
|
|
|
29
21
|
"error": "red",
|
|
30
22
|
"warning": "yellow",
|
|
31
23
|
"muted": "comment",
|
|
32
|
-
"dim": "
|
|
24
|
+
"dim": "#5E6490",
|
|
33
25
|
"text": "",
|
|
34
26
|
"thinkingText": "comment",
|
|
35
|
-
"selectedBg": "
|
|
36
|
-
"userMessageBg": "
|
|
27
|
+
"selectedBg": "^2",
|
|
28
|
+
"userMessageBg": "^2",
|
|
37
29
|
"userMessageText": "",
|
|
38
|
-
"customMessageBg": "
|
|
30
|
+
"customMessageBg": "^2",
|
|
39
31
|
"customMessageText": "",
|
|
40
32
|
"customMessageLabel": "purple",
|
|
41
|
-
"toolPendingBg": "
|
|
42
|
-
"toolSuccessBg": "
|
|
43
|
-
"toolErrorBg": "
|
|
44
|
-
"
|
|
45
|
-
"toolTitle": "cyan",
|
|
33
|
+
"toolPendingBg": "^3",
|
|
34
|
+
"toolSuccessBg": "^2",
|
|
35
|
+
"toolErrorBg": "^3",
|
|
36
|
+
"toolTitle": "",
|
|
46
37
|
"toolOutput": "comment",
|
|
47
38
|
"mdHeading": "purple",
|
|
48
39
|
"mdLink": "cyan",
|
|
@@ -66,7 +57,7 @@
|
|
|
66
57
|
"syntaxNumber": "purple",
|
|
67
58
|
"syntaxType": "cyan",
|
|
68
59
|
"syntaxOperator": "pink",
|
|
69
|
-
"syntaxPunctuation": "
|
|
60
|
+
"syntaxPunctuation": "#F8F8F2",
|
|
70
61
|
"thinkingOff": "currentLine",
|
|
71
62
|
"thinkingMinimal": "comment",
|
|
72
63
|
"thinkingLow": "cyan",
|
|
@@ -74,7 +65,7 @@
|
|
|
74
65
|
"thinkingHigh": "pink",
|
|
75
66
|
"thinkingXhigh": "orange",
|
|
76
67
|
"bashMode": "green",
|
|
77
|
-
"statusLineBg": "
|
|
68
|
+
"statusLineBg": "^-2",
|
|
78
69
|
"statusLineSep": "currentLine",
|
|
79
70
|
"statusLineModel": "purple",
|
|
80
71
|
"statusLinePath": "cyan",
|
|
@@ -82,13 +73,14 @@
|
|
|
82
73
|
"statusLineGitDirty": "orange",
|
|
83
74
|
"statusLineContext": "purple",
|
|
84
75
|
"statusLineSpend": "cyan",
|
|
85
|
-
"statusLineStaged":
|
|
86
|
-
"statusLineDirty":
|
|
87
|
-
"statusLineUntracked":
|
|
88
|
-
"statusLineOutput":
|
|
89
|
-
"statusLineCost":
|
|
76
|
+
"statusLineStaged": 179,
|
|
77
|
+
"statusLineDirty": 173,
|
|
78
|
+
"statusLineUntracked": 180,
|
|
79
|
+
"statusLineOutput": 180,
|
|
80
|
+
"statusLineCost": 173,
|
|
90
81
|
"statusLineSubagents": "purple",
|
|
91
|
-
"pythonMode": "yellow"
|
|
82
|
+
"pythonMode": "yellow",
|
|
83
|
+
"appBg": "^0"
|
|
92
84
|
},
|
|
93
85
|
"export": {
|
|
94
86
|
"pageBg": "#1e1f29",
|