@bismawy/pi-arnative 0.4.0 → 0.5.1

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/lib/ansi.ts CHANGED
@@ -38,16 +38,38 @@ export function setActiveTheme<T>(th: T | null): void {
38
38
  else delete (globalThis as Record<symbol, T>)[THEME_PROXY_KEY];
39
39
  }
40
40
 
41
- /** Painter for the `accentSoft` token, which only arnative themes define; other themes fall back to accent (probed once). */
42
- export function accentSoftOf(th: { fg?(c: string, t: string): string } | null): (s: string) => string {
41
+ /**
42
+ * Painter for arnative's soft accent (`accentSoft`).
43
+ *
44
+ * Pi <=1.1.0 let a theme declare extra tokens in `colors`, so `accentSoft` was
45
+ * addressable directly. 1.2.0 validates `colors` with `additionalProperties: false`
46
+ * and rejects the whole theme if it carries one, so the token now lives only in
47
+ * `vars` and `fg("accentSoft")` throws. The soft accent stays available through the
48
+ * resolved `accent` color (1.2.0 exposes `theme.colors`): its hue and chroma are
49
+ * softened to the generator's `*Soft` recipe, which keeps the two-tone look instead
50
+ * of collapsing to grey. Falls back to `muted`, then `accent`, on any older theme.
51
+ */
52
+ export function softOf(th: {
53
+ fg?(c: string, t: string): string;
54
+ style?(t: string, o: { fg: unknown }): string;
55
+ colors?: Record<string, { kind?: string; c?: number; h?: number }>;
56
+ } | null): (s: string) => string {
43
57
  const fg = th?.fg?.bind(th);
44
58
  if (!fg) return (s) => s;
45
59
  try {
46
60
  fg("accentSoft", "");
47
61
  return (s) => fg("accentSoft", s);
48
62
  } catch {
49
- return (s) => fg("accent", s);
63
+ // 1.2.0+ rejects `accentSoft`: derive the soft tint from the resolved accent.
50
64
  }
65
+ const accent = th?.colors?.accent;
66
+ const style = th?.style?.bind(th);
67
+ if (accent?.kind === "oklch" && style) {
68
+ // The generator's `*Soft` recipe: lightness 0.82, a fifth of the accent chroma.
69
+ const soft = { kind: "oklch" as const, l: 0.82, c: (accent.c ?? 0) * 0.18, h: accent.h ?? 0 };
70
+ return (s) => style(s, { fg: soft });
71
+ }
72
+ return (s) => fg("muted", s);
51
73
  }
52
74
 
53
75
  /** pi defines one theme slot per thinking level (`thinkingOff`…`thinkingMax`), so a box
@@ -98,15 +120,26 @@ if (isMain(import.meta.url)) {
98
120
  assert(getActiveTheme<object>() === null, "clearing the active theme leaves no stale slot");
99
121
 
100
122
  const tag = { fg: (c: string, t: string) => `<${c}>${t}</${c}>` };
101
- assert(accentSoftOf(tag)("x") === "<accentSoft>x</accentSoft>", "accentSoftOf uses accentSoft when the theme defines it");
123
+ assert(softOf(tag)("x") === "<accentSoft>x</accentSoft>", "softOf uses accentSoft when the theme defines it");
102
124
  const noSoft = {
103
125
  fg: (c: string, t: string) => {
104
126
  if (c === "accentSoft") throw new Error("Unknown theme color: accentSoft");
105
127
  return `<${c}>${t}</${c}>`;
106
128
  },
107
129
  };
108
- assert(accentSoftOf(noSoft)("x") === "<accent>x</accent>", "accentSoftOf falls back to accent without the token");
109
- assert(accentSoftOf(null)("x") === "x", "accentSoftOf without a theme is identity");
130
+ assert(softOf(noSoft)("x") === "<muted>x</muted>", "softOf falls back to muted without the token or colors");
131
+ assert(softOf(null)("x") === "x", "softOf without a theme is identity");
132
+ // Pi 1.2.0: acentSoft is rejected, so the soft tint is derived from `colors.accent`.
133
+ const modern = {
134
+ fg: (c: string, t: string) => {
135
+ throw new Error(`Unknown theme color: ${c}`);
136
+ },
137
+ style: (t: string, o: { fg: unknown }) => `<soft:${JSON.stringify(o.fg)}>${t}</soft>`,
138
+ colors: { accent: { kind: "oklch", c: 0.2, h: 355 } },
139
+ };
140
+ const modernOut = softOf(modern)("x");
141
+ assert(modernOut.includes('"l":0.82') && modernOut.includes('"c":0.036'), "softOf derives the soft tint from accent (l=0.82, c=accent*0.18)");
142
+ assert(modernOut.includes("x"), "softOf keeps the text");
110
143
 
111
144
  assert(thinkingColorSlot("off") === "thinkingOff", "thinking off maps to thinkingOff");
112
145
  assert(thinkingColorSlot(undefined) === "thinkingOff", "missing level falls back to thinkingOff");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bismawy/pi-arnative",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Refined aesthetics. Cohesive tools. Built for Pi. Warm themes, rounded tool boxes, tabbed header, compact footer and a /usage dashboard.",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "arnative-cyberpunk",
4
4
  "appearance": "dark",
5
5
  "vars": {
@@ -7,19 +7,20 @@
7
7
  "fgMuted": "oklch(72% 0.02 275)",
8
8
  "fgDim": "oklch(61% 0.02 275)",
9
9
  "fgFaint": "oklch(49% 0.02 275)",
10
- "accent": "oklch(78% 0.144 357)",
11
- "accentSoft": "oklch(82% 0.036 357)",
12
- "accentBorder": "oklch(82% 0.113 357)",
10
+ "primary": "oklch(88% 0.18 95)",
11
+ "secondary": "oklch(82% 0.139 200)",
12
+ "accent": "oklch(78% 0.146 355)",
13
+ "accentSoft": "oklch(82% 0.026 355)",
14
+ "accentBorder": "oklch(82% 0.114 355)",
13
15
  "success": "oklch(78% 0.15 145)",
14
16
  "error": "oklch(76% 0.143 25)",
15
17
  "warning": "oklch(86% 0.14 85)",
16
- "surfaceMsg": "oklch(16% 0.01 275)"
18
+ "surfaceMsg": "oklch(24% 0.035 200)"
17
19
  },
18
20
  "colors": {
19
21
  "accent": "accent",
20
- "accentSoft": "accentSoft",
21
- "border": "oklch(55% 0.07 357)",
22
- "borderAccent": "accentBorder",
22
+ "border": "oklch(55% 0.07 200)",
23
+ "borderAccent": "secondary",
23
24
  "borderMuted": "fgFaint",
24
25
  "success": "success",
25
26
  "error": "error",
@@ -29,58 +30,58 @@
29
30
  "text": "fg",
30
31
 
31
32
  "thinkingText": "fgMuted",
32
- "selectedBg": "oklch(23% 0.05 357)",
33
+ "selectedBg": "oklch(31% 0.05 200)",
33
34
  "scrollbarTrack": "fgFaint",
34
35
  "scrollbarThumb": "accentSoft",
35
- "searchMatchBg": "oklch(30% 0.09 357)",
36
+ "searchMatchBg": "oklch(38% 0.078 95)",
36
37
  "searchMatchText": "fg",
37
38
  "userMessageBg": "surfaceMsg",
38
39
  "userMessageText": "fg",
39
- "customMessageBg": "oklch(17% 0.03 190)",
40
+ "customMessageBg": "oklch(25% 0.043 200)",
40
41
  "customMessageText": "fg",
41
- "customMessageLabel": "oklch(78% 0.135 190)",
42
- "toolPendingBg": "oklch(14% 0.059 357)",
43
- "toolSuccessBg": "oklch(13% 0.043 145)",
44
- "toolErrorBg": "oklch(13% 0.055 25)",
42
+ "customMessageLabel": "oklch(78% 0.133 200)",
43
+ "toolPendingBg": "oklch(22% 0.05 355)",
44
+ "toolSuccessBg": "oklch(21% 0.06 145)",
45
+ "toolErrorBg": "oklch(21% 0.06 25)",
45
46
  "toolTitle": "fg",
46
47
 
47
48
  "toolOutput": "fgMuted",
48
- "mdHeading": "oklch(88% 0.079 60)",
49
- "mdLink": "oklch(80% 0.138 190)",
49
+ "mdHeading": "primary",
50
+ "mdLink": "oklch(80% 0.136 200)",
50
51
  "mdLinkUrl": "fgDim",
51
- "mdCode": "oklch(80% 0.128 357)",
52
+ "mdCode": "secondary",
52
53
  "mdCodeBlock": "success",
53
54
  "mdCodeBlockBorder": "fgMuted",
54
55
  "mdQuote": "fgMuted",
55
56
  "mdQuoteBorder": "fgMuted",
56
57
  "mdHr": "fgFaint",
57
58
 
58
- "mdListBullet": "oklch(80% 0.128 357)",
59
+ "mdListBullet": "primary",
59
60
  "toolDiffAdded": "success",
60
61
  "toolDiffRemoved": "error",
61
62
  "toolDiffContext": "fgMuted",
62
63
  "syntaxComment": "fgDim",
63
- "syntaxKeyword": "oklch(80% 0.128 357)",
64
- "syntaxFunction": "oklch(86% 0.094 60)",
65
- "syntaxVariable": "oklch(84% 0.11 320)",
66
- "syntaxString": "oklch(82% 0.14 320)",
67
- "syntaxNumber": "oklch(80% 0.115 30)",
68
- "syntaxType": "oklch(80% 0.16 150)",
64
+ "syntaxKeyword": "secondary",
65
+ "syntaxFunction": "oklch(86% 0.16 95)",
66
+ "syntaxVariable": "oklch(84% 0.1 355)",
67
+ "syntaxString": "oklch(82% 0.14 140)",
68
+ "syntaxNumber": "oklch(80% 0.122 45)",
69
+ "syntaxType": "oklch(80% 0.136 200)",
69
70
  "syntaxOperator": "fg",
70
71
 
71
72
  "syntaxPunctuation": "fgMuted",
72
73
  "thinkingOff": "oklch(40% 0.02 275)",
73
- "thinkingMinimal": "oklch(47% 0.05 357)",
74
- "thinkingLow": "oklch(55% 0.08 357)",
75
- "thinkingMedium": "oklch(63% 0.12 357)",
76
- "thinkingHigh": "oklch(71% 0.16 357)",
77
- "thinkingXhigh": "oklch(79% 0.136 357)",
74
+ "thinkingMinimal": "oklch(47% 0.05 355)",
75
+ "thinkingLow": "oklch(55% 0.08 355)",
76
+ "thinkingMedium": "oklch(63% 0.12 355)",
77
+ "thinkingHigh": "oklch(71% 0.16 355)",
78
+ "thinkingXhigh": "oklch(79% 0.138 355)",
78
79
  "thinkingMax": "accent",
79
80
  "bashMode": "success"
80
81
  },
81
82
  "export": {
82
- "pageBg": "oklch(10% 0.02 275)",
83
- "cardBg": "oklch(13% 0.02 275)",
84
- "infoBg": "oklch(21% 0.05 357)"
83
+ "pageBg": "oklch(18% 0.02 275)",
84
+ "cardBg": "oklch(21% 0.02 275)",
85
+ "infoBg": "oklch(29% 0.05 355)"
85
86
  }
86
87
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "arnative-dracula",
4
4
  "appearance": "dark",
5
5
  "vars": {
@@ -7,9 +7,11 @@
7
7
  "fgMuted": "oklch(72% 0.012 285)",
8
8
  "fgDim": "oklch(61% 0.012 285)",
9
9
  "fgFaint": "oklch(49% 0.012 285)",
10
- "accent": "oklch(78% 0.135 302)",
11
- "accentSoft": "oklch(82% 0.025 302)",
12
- "accentBorder": "oklch(82% 0.084 302)",
10
+ "primary": "oklch(78% 0.125 295)",
11
+ "secondary": "oklch(82% 0.13 190)",
12
+ "accent": "oklch(78% 0.14 330)",
13
+ "accentSoft": "oklch(82% 0.025 330)",
14
+ "accentBorder": "oklch(82% 0.084 330)",
13
15
  "success": "oklch(78% 0.14 145)",
14
16
  "error": "oklch(76% 0.14 25)",
15
17
  "warning": "oklch(86% 0.14 85)",
@@ -17,9 +19,8 @@
17
19
  },
18
20
  "colors": {
19
21
  "accent": "accent",
20
- "accentSoft": "accentSoft",
21
- "border": "oklch(55% 0.049 302)",
22
- "borderAccent": "accentBorder",
22
+ "border": "oklch(55% 0.049 295)",
23
+ "borderAccent": "secondary",
23
24
  "borderMuted": "fgFaint",
24
25
  "success": "success",
25
26
  "error": "error",
@@ -29,58 +30,58 @@
29
30
  "text": "fg",
30
31
 
31
32
  "thinkingText": "fgMuted",
32
- "selectedBg": "oklch(36% 0.035 302)",
33
+ "selectedBg": "oklch(36% 0.035 295)",
33
34
  "scrollbarTrack": "fgFaint",
34
35
  "scrollbarThumb": "accentSoft",
35
- "searchMatchBg": "oklch(43% 0.063 302)",
36
+ "searchMatchBg": "oklch(43% 0.063 85)",
36
37
  "searchMatchText": "fg",
37
38
  "userMessageBg": "surfaceMsg",
38
39
  "userMessageText": "fg",
39
- "customMessageBg": "oklch(30% 0.056 330)",
40
+ "customMessageBg": "oklch(30% 0.05 190)",
40
41
  "customMessageText": "fg",
41
- "customMessageLabel": "oklch(78% 0.098 330)",
42
- "toolPendingBg": "oklch(27% 0.042 302)",
42
+ "customMessageLabel": "oklch(78% 0.098 190)",
43
+ "toolPendingBg": "oklch(27% 0.042 330)",
43
44
  "toolSuccessBg": "oklch(26% 0.056 145)",
44
45
  "toolErrorBg": "oklch(26% 0.056 25)",
45
46
  "toolTitle": "fg",
46
47
 
47
48
  "toolOutput": "fgMuted",
48
- "mdHeading": "oklch(88% 0.079 60)",
49
+ "mdHeading": "oklch(88% 0.084 85)",
49
50
  "mdLink": "oklch(80% 0.098 190)",
50
51
  "mdLinkUrl": "fgDim",
51
- "mdCode": "oklch(80% 0.098 302)",
52
+ "mdCode": "secondary",
52
53
  "mdCodeBlock": "success",
53
54
  "mdCodeBlockBorder": "fgMuted",
54
55
  "mdQuote": "fgMuted",
55
56
  "mdQuoteBorder": "fgMuted",
56
57
  "mdHr": "fgFaint",
57
58
 
58
- "mdListBullet": "oklch(80% 0.098 302)",
59
+ "mdListBullet": "accent",
59
60
  "toolDiffAdded": "success",
60
61
  "toolDiffRemoved": "error",
61
62
  "toolDiffContext": "fgMuted",
62
63
  "syntaxComment": "fgDim",
63
- "syntaxKeyword": "oklch(80% 0.098 302)",
64
- "syntaxFunction": "oklch(86% 0.112 135)",
64
+ "syntaxKeyword": "oklch(80% 0.098 330)",
65
+ "syntaxFunction": "oklch(86% 0.112 140)",
65
66
  "syntaxVariable": "oklch(84% 0.077 190)",
66
- "syntaxString": "oklch(82% 0.098 60)",
67
- "syntaxNumber": "oklch(80% 0.098 265)",
67
+ "syntaxString": "oklch(82% 0.098 85)",
68
+ "syntaxNumber": "oklch(80% 0.098 295)",
68
69
  "syntaxType": "oklch(80% 0.112 190)",
69
70
  "syntaxOperator": "fg",
70
71
 
71
72
  "syntaxPunctuation": "fgMuted",
72
73
  "thinkingOff": "oklch(40% 0.012 285)",
73
- "thinkingMinimal": "oklch(47% 0.035 302)",
74
- "thinkingLow": "oklch(55% 0.056 302)",
75
- "thinkingMedium": "oklch(63% 0.084 302)",
76
- "thinkingHigh": "oklch(71% 0.112 302)",
77
- "thinkingXhigh": "oklch(79% 0.128 302)",
74
+ "thinkingMinimal": "oklch(47% 0.035 330)",
75
+ "thinkingLow": "oklch(55% 0.056 330)",
76
+ "thinkingMedium": "oklch(63% 0.084 330)",
77
+ "thinkingHigh": "oklch(71% 0.112 330)",
78
+ "thinkingXhigh": "oklch(79% 0.14 330)",
78
79
  "thinkingMax": "accent",
79
80
  "bashMode": "success"
80
81
  },
81
82
  "export": {
82
83
  "pageBg": "oklch(23% 0.012 285)",
83
84
  "cardBg": "oklch(26% 0.012 285)",
84
- "infoBg": "oklch(34% 0.035 302)"
85
+ "infoBg": "oklch(34% 0.035 330)"
85
86
  }
86
87
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "arnative-emerald",
4
4
  "appearance": "dark",
5
5
  "vars": {
@@ -7,6 +7,8 @@
7
7
  "fgMuted": "oklch(72% 0.012 165)",
8
8
  "fgDim": "oklch(61% 0.012 165)",
9
9
  "fgFaint": "oklch(49% 0.012 165)",
10
+ "primary": "oklch(84% 0.13 165)",
11
+ "secondary": "oklch(78% 0.1 195)",
10
12
  "accent": "oklch(78% 0.12 165)",
11
13
  "accentSoft": "oklch(82% 0.022 165)",
12
14
  "accentBorder": "oklch(82% 0.072 165)",
@@ -17,8 +19,7 @@
17
19
  },
18
20
  "colors": {
19
21
  "accent": "accent",
20
- "accentSoft": "accentSoft",
21
- "border": "oklch(55% 0.042 165)",
22
+ "border": "oklch(55% 0.042 0)",
22
23
  "borderAccent": "accentBorder",
23
24
  "borderMuted": "fgFaint",
24
25
  "success": "success",
@@ -29,10 +30,10 @@
29
30
  "text": "fg",
30
31
 
31
32
  "thinkingText": "fgMuted",
32
- "selectedBg": "oklch(34% 0.03 165)",
33
+ "selectedBg": "oklch(34% 0.03 0)",
33
34
  "scrollbarTrack": "fgFaint",
34
35
  "scrollbarThumb": "accentSoft",
35
- "searchMatchBg": "oklch(41% 0.054 165)",
36
+ "searchMatchBg": "oklch(41% 0.054 0)",
36
37
  "searchMatchText": "fg",
37
38
  "userMessageBg": "surfaceMsg",
38
39
  "userMessageText": "fg",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "arnative-gruvbox",
4
4
  "appearance": "dark",
5
5
  "vars": {
@@ -7,9 +7,11 @@
7
7
  "fgMuted": "oklch(72% 0.015 70)",
8
8
  "fgDim": "oklch(61% 0.015 70)",
9
9
  "fgFaint": "oklch(49% 0.015 70)",
10
- "accent": "oklch(78% 0.14 83)",
11
- "accentSoft": "oklch(82% 0.025 83)",
12
- "accentBorder": "oklch(82% 0.084 83)",
10
+ "primary": "oklch(84% 0.14 83)",
11
+ "secondary": "oklch(78% 0.1 175)",
12
+ "accent": "oklch(78% 0.137 45)",
13
+ "accentSoft": "oklch(82% 0.025 45)",
14
+ "accentBorder": "oklch(82% 0.084 45)",
13
15
  "success": "oklch(78% 0.14 145)",
14
16
  "error": "oklch(76% 0.14 25)",
15
17
  "warning": "oklch(86% 0.14 85)",
@@ -17,9 +19,8 @@
17
19
  },
18
20
  "colors": {
19
21
  "accent": "accent",
20
- "accentSoft": "accentSoft",
21
22
  "border": "oklch(55% 0.049 83)",
22
- "borderAccent": "accentBorder",
23
+ "borderAccent": "secondary",
23
24
  "borderMuted": "fgFaint",
24
25
  "success": "success",
25
26
  "error": "error",
@@ -36,51 +37,51 @@
36
37
  "searchMatchText": "fg",
37
38
  "userMessageBg": "surfaceMsg",
38
39
  "userMessageText": "fg",
39
- "customMessageBg": "oklch(25% 0.056 330)",
40
+ "customMessageBg": "oklch(25% 0.047 175)",
40
41
  "customMessageText": "fg",
41
- "customMessageLabel": "oklch(78% 0.098 330)",
42
- "toolPendingBg": "oklch(22% 0.042 83)",
42
+ "customMessageLabel": "oklch(78% 0.098 175)",
43
+ "toolPendingBg": "oklch(22% 0.042 45)",
43
44
  "toolSuccessBg": "oklch(21% 0.056 145)",
44
45
  "toolErrorBg": "oklch(21% 0.056 25)",
45
46
  "toolTitle": "fg",
46
47
 
47
48
  "toolOutput": "fgMuted",
48
- "mdHeading": "oklch(88% 0.068 45)",
49
- "mdLink": "oklch(80% 0.098 200)",
49
+ "mdHeading": "primary",
50
+ "mdLink": "oklch(80% 0.098 175)",
50
51
  "mdLinkUrl": "fgDim",
51
- "mdCode": "oklch(80% 0.098 83)",
52
+ "mdCode": "secondary",
52
53
  "mdCodeBlock": "success",
53
54
  "mdCodeBlockBorder": "fgMuted",
54
55
  "mdQuote": "fgMuted",
55
56
  "mdQuoteBorder": "fgMuted",
56
57
  "mdHr": "fgFaint",
57
58
 
58
- "mdListBullet": "oklch(80% 0.098 83)",
59
+ "mdListBullet": "accent",
59
60
  "toolDiffAdded": "success",
60
61
  "toolDiffRemoved": "error",
61
62
  "toolDiffContext": "fgMuted",
62
63
  "syntaxComment": "fgDim",
63
- "syntaxKeyword": "oklch(80% 0.098 83)",
64
- "syntaxFunction": "oklch(86% 0.109 70)",
65
- "syntaxVariable": "oklch(84% 0.077 200)",
66
- "syntaxString": "oklch(82% 0.098 70)",
67
- "syntaxNumber": "oklch(80% 0.098 330)",
68
- "syntaxType": "oklch(80% 0.112 45)",
64
+ "syntaxKeyword": "oklch(80% 0.098 45)",
65
+ "syntaxFunction": "oklch(86% 0.112 83)",
66
+ "syntaxVariable": "oklch(84% 0.077 175)",
67
+ "syntaxString": "oklch(82% 0.098 145)",
68
+ "syntaxNumber": "oklch(80% 0.098 45)",
69
+ "syntaxType": "oklch(80% 0.112 83)",
69
70
  "syntaxOperator": "fg",
70
71
 
71
72
  "syntaxPunctuation": "fgMuted",
72
73
  "thinkingOff": "oklch(40% 0.015 70)",
73
- "thinkingMinimal": "oklch(47% 0.035 83)",
74
- "thinkingLow": "oklch(55% 0.056 83)",
75
- "thinkingMedium": "oklch(63% 0.084 83)",
76
- "thinkingHigh": "oklch(71% 0.112 83)",
77
- "thinkingXhigh": "oklch(79% 0.14 83)",
74
+ "thinkingMinimal": "oklch(47% 0.035 45)",
75
+ "thinkingLow": "oklch(55% 0.056 45)",
76
+ "thinkingMedium": "oklch(63% 0.084 45)",
77
+ "thinkingHigh": "oklch(71% 0.112 45)",
78
+ "thinkingXhigh": "oklch(79% 0.13 45)",
78
79
  "thinkingMax": "accent",
79
80
  "bashMode": "success"
80
81
  },
81
82
  "export": {
82
83
  "pageBg": "oklch(18% 0.015 70)",
83
84
  "cardBg": "oklch(21% 0.015 70)",
84
- "infoBg": "oklch(29% 0.035 83)"
85
+ "infoBg": "oklch(29% 0.035 45)"
85
86
  }
86
87
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "arnative-matrix",
4
4
  "appearance": "dark",
5
5
  "vars": {
@@ -7,18 +7,19 @@
7
7
  "fgMuted": "oklch(72% 0.02 145)",
8
8
  "fgDim": "oklch(61% 0.02 145)",
9
9
  "fgFaint": "oklch(49% 0.02 145)",
10
+ "primary": "oklch(88% 0.24 145)",
11
+ "secondary": "oklch(76% 0.16 165)",
10
12
  "accent": "oklch(78% 0.22 144)",
11
13
  "accentSoft": "oklch(82% 0.04 144)",
12
14
  "accentBorder": "oklch(82% 0.132 144)",
13
15
  "success": "oklch(78% 0.15 145)",
14
16
  "error": "oklch(76% 0.143 25)",
15
17
  "warning": "oklch(86% 0.14 85)",
16
- "surfaceMsg": "oklch(15% 0.01 145)"
18
+ "surfaceMsg": "oklch(24% 0.035 145)"
17
19
  },
18
20
  "colors": {
19
21
  "accent": "accent",
20
- "accentSoft": "accentSoft",
21
- "border": "oklch(55% 0.077 144)",
22
+ "border": "oklch(55% 0.077 0)",
22
23
  "borderAccent": "accentBorder",
23
24
  "borderMuted": "fgFaint",
24
25
  "success": "success",
@@ -29,43 +30,43 @@
29
30
  "text": "fg",
30
31
 
31
32
  "thinkingText": "fgMuted",
32
- "selectedBg": "oklch(22% 0.055 144)",
33
+ "selectedBg": "oklch(31% 0.055 0)",
33
34
  "scrollbarTrack": "fgFaint",
34
35
  "scrollbarThumb": "accentSoft",
35
- "searchMatchBg": "oklch(29% 0.093 144)",
36
+ "searchMatchBg": "oklch(38% 0.099 0)",
36
37
  "searchMatchText": "fg",
37
38
  "userMessageBg": "surfaceMsg",
38
39
  "userMessageText": "fg",
39
- "customMessageBg": "oklch(16% 0.052 145)",
40
+ "customMessageBg": "oklch(25% 0.05 145)",
40
41
  "customMessageText": "fg",
41
- "customMessageLabel": "oklch(78% 0.154 145)",
42
- "toolPendingBg": "oklch(13% 0.044 144)",
43
- "toolSuccessBg": "oklch(12% 0.04 145)",
44
- "toolErrorBg": "oklch(12% 0.051 25)",
42
+ "customMessageLabel": "oklch(78% 0.14 145)",
43
+ "toolPendingBg": "oklch(22% 0.05 144)",
44
+ "toolSuccessBg": "oklch(21% 0.06 145)",
45
+ "toolErrorBg": "oklch(21% 0.06 25)",
45
46
  "toolTitle": "fg",
46
47
 
47
48
  "toolOutput": "fgMuted",
48
49
  "mdHeading": "oklch(88% 0.132 145)",
49
- "mdLink": "oklch(80% 0.154 145)",
50
+ "mdLink": "oklch(80% 0.14 145)",
50
51
  "mdLinkUrl": "fgDim",
51
- "mdCode": "oklch(80% 0.154 144)",
52
+ "mdCode": "oklch(80% 0.14 144)",
52
53
  "mdCodeBlock": "success",
53
54
  "mdCodeBlockBorder": "fgMuted",
54
55
  "mdQuote": "fgMuted",
55
56
  "mdQuoteBorder": "fgMuted",
56
57
  "mdHr": "fgFaint",
57
58
 
58
- "mdListBullet": "oklch(80% 0.154 144)",
59
+ "mdListBullet": "oklch(80% 0.14 144)",
59
60
  "toolDiffAdded": "success",
60
61
  "toolDiffRemoved": "error",
61
62
  "toolDiffContext": "fgMuted",
62
63
  "syntaxComment": "fgDim",
63
- "syntaxKeyword": "oklch(80% 0.154 144)",
64
- "syntaxFunction": "oklch(86% 0.176 145)",
64
+ "syntaxKeyword": "oklch(80% 0.14 144)",
65
+ "syntaxFunction": "oklch(86% 0.16 145)",
65
66
  "syntaxVariable": "oklch(84% 0.121 145)",
66
67
  "syntaxString": "oklch(82% 0.154 145)",
67
- "syntaxNumber": "oklch(80% 0.154 145)",
68
- "syntaxType": "oklch(80% 0.176 145)",
68
+ "syntaxNumber": "oklch(80% 0.15 145)",
69
+ "syntaxType": "oklch(80% 0.16 145)",
69
70
  "syntaxOperator": "fg",
70
71
 
71
72
  "syntaxPunctuation": "fgMuted",
@@ -79,8 +80,8 @@
79
80
  "bashMode": "success"
80
81
  },
81
82
  "export": {
82
- "pageBg": "oklch(9% 0.02 145)",
83
- "cardBg": "oklch(12% 0.02 145)",
84
- "infoBg": "oklch(20% 0.055 144)"
83
+ "pageBg": "oklch(18% 0.02 145)",
84
+ "cardBg": "oklch(21% 0.02 145)",
85
+ "infoBg": "oklch(29% 0.055 144)"
85
86
  }
86
87
  }