osdy-pi 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -6,11 +6,12 @@ Osdy Pi gives [Pi](https://github.com/earendil-works/pi) a themed, responsive te
|
|
|
6
6
|
|
|
7
7
|
## Release highlights
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**1.9.0 adds Halloween and Halloween Killer**, bringing the bundle to **20 themes**. The table below summarizes these additions and existing features.
|
|
10
10
|
|
|
11
11
|
| Area | What ships |
|
|
12
12
|
| --- | --- |
|
|
13
|
-
| New themes (
|
|
13
|
+
| New themes (1.9.0) | Halloween and Halloween Killer add two dark palettes, bringing the bundle to 20 themes. |
|
|
14
|
+
| Themes introduced in 1.8.0 | Gruvbox Dark, Nord, Rosé Pine base dark, and Daniela Cute. |
|
|
14
15
|
| Message cards | Pi-native colored user cards without emojis and plain assistant Markdown preceded by a separate `🦝` transcript row. |
|
|
15
16
|
| Header and mascot | A theme-aware `neon` header and selectable `bts` mascot, both responsive and persisted independently. |
|
|
16
17
|
| Accounts | `/osdy-account` switches Codex profiles in place with atomic activation, rollback, bounded auth files, and process-safe locks. |
|
|
@@ -45,7 +46,7 @@ The **1.8.0 release candidate** includes the changes below; npm publication is n
|
|
|
45
46
|
pi
|
|
46
47
|
```
|
|
47
48
|
|
|
48
|
-
Osdy Pi's own extension and themes are bundled—do not install them separately.
|
|
49
|
+
Osdy Pi's own extension and themes are bundled—do not install them separately. Version **1.9.0** bundles **20 themes**: Gruvbox Dark, Nord, Rosé Pine base dark, and Daniela Cute were introduced in 1.8.0; Halloween and Halloween Killer are added in 1.9.0. Check your installed npm version to see which themes are available. Launch through `osdy-pi` (or `npm run pi:dev`) to activate a valid Osdy default account into Pi's shared agent directory before Pi starts. With no default, Pi remains unmanaged; run `/osdy-account` to create a profile and establish a default. On session start, Osdy Pi restores its persisted enabled state when a UI is available and preserves your selected Pi theme. When disabled, it leaves Gentle Shell (or Pi's native UI) untouched.
|
|
49
50
|
|
|
50
51
|
### Optional: isolated `osdy` command
|
|
51
52
|
|
|
@@ -249,7 +250,7 @@ Before rename or removal, close this Pi process when it uses the target and **ma
|
|
|
249
250
|
|
|
250
251
|
| Area | Included behavior |
|
|
251
252
|
| --- | --- |
|
|
252
|
-
| Themes |
|
|
253
|
+
| Themes | 20 built-in themes, including Osdy, Kanagawa, Dracula, Gruvbox, Nord, Rosé Pine, Daniela Cute, Halloween, Halloween Killer, Catppuccin, Matrix, and Lucent Orange palettes |
|
|
253
254
|
| Header and mascot | Independently selectable `osdy-theme`/`neon` headers and `current`/`bts` mascots |
|
|
254
255
|
| Messages | Native colored user cards without emojis and plain assistant Markdown with a separate assistant `🦝` row |
|
|
255
256
|
| Input | Responsive auto editor by default, with selectable simple Pi-native or extended framed modes |
|
|
@@ -263,10 +264,10 @@ Before rename or removal, close this Pi process when it uses the target and **ma
|
|
|
263
264
|
|
|
264
265
|
### Themes
|
|
265
266
|
|
|
266
|
-
|
|
267
|
+
Version **1.9.0** contains **20 themes**. Gruvbox Dark, Nord, Rosé Pine base dark, and Daniela Cute were introduced in **1.8.0**; **1.9.0** adds Halloween and Halloween Killer. To try the themes from a checkout:
|
|
267
268
|
|
|
268
|
-
1. Run `npm run pi:dev` from the 1.
|
|
269
|
-
2. Open `/settings` → **Theme** and select `osdy-pi-gruvbox-dark`, `osdy-pi-nord`, `osdy-pi-rose-pine`, `osdy-pi-daniela-cute`, or another name below.
|
|
269
|
+
1. Run `npm run pi:dev` from the 1.9.0 checkout, or `/reload` if that checkout is already loaded in Pi.
|
|
270
|
+
2. Open `/settings` → **Theme** and select `osdy-pi-gruvbox-dark`, `osdy-pi-nord`, `osdy-pi-rose-pine`, `osdy-pi-daniela-cute`, `osdy-pi-halloween`, `osdy-pi-halloween-killer`, or another name below.
|
|
270
271
|
|
|
271
272
|
| Theme | Use |
|
|
272
273
|
| --- | --- |
|
|
@@ -282,6 +283,8 @@ The bundle contains **18 themes**; Gruvbox Dark, Nord, Rosé Pine base dark, and
|
|
|
282
283
|
| `osdy-pi-nord` | [Nord](https://www.nordtheme.com/docs/colors-and-palettes) dark palette: cool, restrained Polar Night, Snow Storm, Frost, and Aurora colors. |
|
|
283
284
|
| `osdy-pi-rose-pine` | [Rosé Pine](https://rosepinetheme.com/palette/ingredients/) base dark palette: soft colors, not Moon or Dawn. |
|
|
284
285
|
| `osdy-pi-daniela-cute` | Daniela Cute: navy panels/export page (`#0B1220`), blue cards (`#111F33`), borders (`#253A55`), blue accents (`#3584E4`), main text (`#D8E2EF`), secondary text (`#93A6BE`), and selection (`#193655`). Distinct status and syntax colors remain; the terminal background remains unchanged. |
|
|
286
|
+
| `osdy-pi-halloween` | Pumpkin orange, spectral violet, and lime accents on dark plum panels, with warm text and distinct success/error colors. |
|
|
287
|
+
| `osdy-pi-halloween-killer` | Gothic/slasher dark palette: near-black panels, blood-red and violet accents, bone-colored text, and sage success indicators distinct from red errors. |
|
|
285
288
|
| `osdy-pi-catppuccin-latte` | Catppuccin Latte light palette. |
|
|
286
289
|
| `osdy-pi-catppuccin-frappe` | Catppuccin Frappé dark palette. |
|
|
287
290
|
| `osdy-pi-catppuccin-macchiato` | Catppuccin Macchiato dark palette. |
|
|
@@ -408,8 +408,8 @@ void test("every registered theme defines native user message colors", () => {
|
|
|
408
408
|
readFileSync(new URL("../../package.json", import.meta.url), "utf8"),
|
|
409
409
|
) as { pi: { themes: string[] } };
|
|
410
410
|
|
|
411
|
-
assert.equal(manifest.pi.themes.length,
|
|
412
|
-
assert.equal(new Set(manifest.pi.themes).size,
|
|
411
|
+
assert.equal(manifest.pi.themes.length, 20);
|
|
412
|
+
assert.equal(new Set(manifest.pi.themes).size, 20, "theme registrations must be unique");
|
|
413
413
|
for (const themePath of manifest.pi.themes) {
|
|
414
414
|
const theme = JSON.parse(
|
|
415
415
|
readFileSync(
|
|
@@ -438,17 +438,21 @@ void test("new dark themes are explicitly registered with unique matching names"
|
|
|
438
438
|
return theme.name;
|
|
439
439
|
});
|
|
440
440
|
assert.equal(new Set(names).size, names.length, "theme names must be unique");
|
|
441
|
-
for (const name of ["osdy-pi-gruvbox-dark", "osdy-pi-nord", "osdy-pi-rose-pine", "osdy-pi-daniela-cute"]) {
|
|
441
|
+
for (const name of ["osdy-pi-gruvbox-dark", "osdy-pi-nord", "osdy-pi-rose-pine", "osdy-pi-daniela-cute", "osdy-pi-halloween", "osdy-pi-halloween-killer"]) {
|
|
442
442
|
assert.equal(manifest.pi.themes.filter((path) => path === `./themes/${name}.json`).length, 1);
|
|
443
443
|
assert.equal(names.filter((registered) => registered === name).length, 1);
|
|
444
444
|
}
|
|
445
445
|
});
|
|
446
446
|
|
|
447
|
-
void test("README documents all
|
|
447
|
+
void test("README documents all 20 themes including both Halloween palettes", () => {
|
|
448
448
|
const readme = readFileSync(new URL("../../README.md", import.meta.url), "utf8");
|
|
449
|
-
assert.match(readme, /\*\*
|
|
450
|
-
assert.match(readme, /
|
|
449
|
+
assert.match(readme, /\*\*20 themes\*\*/);
|
|
450
|
+
assert.match(readme, /20 built-in themes/);
|
|
451
|
+
assert.doesNotMatch(readme, /\b18 (?:built-in )?themes\b/);
|
|
452
|
+
assert.equal(readme.match(/^\| `osdy-pi-[^`]+` \|/gm)?.length, 20);
|
|
451
453
|
assert.match(readme, /\| `osdy-pi-daniela-cute` \| Daniela Cute/);
|
|
454
|
+
assert.match(readme, /\| `osdy-pi-halloween` \|.*[Pp]umpkin.*violet.*lime/);
|
|
455
|
+
assert.match(readme, /\| `osdy-pi-halloween-killer` \|.*[Gg]othic.*blood.red.*violet/);
|
|
452
456
|
});
|
|
453
457
|
|
|
454
458
|
void test("Tokyo Night retains its approved native user card colors", () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "osdy-pi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Osdy Pi package: themes, header, and custom editor for Pi.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"./themes/osdy-pi-nord.json",
|
|
46
46
|
"./themes/osdy-pi-rose-pine.json",
|
|
47
47
|
"./themes/osdy-pi-daniela-cute.json",
|
|
48
|
+
"./themes/osdy-pi-halloween.json",
|
|
49
|
+
"./themes/osdy-pi-halloween-killer.json",
|
|
48
50
|
"./themes/osdy-pi-catppuccin-latte.json",
|
|
49
51
|
"./themes/osdy-pi-catppuccin-frappe.json",
|
|
50
52
|
"./themes/osdy-pi-catppuccin-macchiato.json",
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "osdy-pi-halloween-killer",
|
|
4
|
+
"appearance": "dark",
|
|
5
|
+
"vars": {
|
|
6
|
+
"black": "#09080D",
|
|
7
|
+
"card": "#2D1C26",
|
|
8
|
+
"border": "#854356",
|
|
9
|
+
"borderMuted": "#482B3A",
|
|
10
|
+
"selection": "#321D35",
|
|
11
|
+
"pending": "#16111C",
|
|
12
|
+
"successBg": "#15221D",
|
|
13
|
+
"errorBg": "#2D111B",
|
|
14
|
+
"bone": "#EEE5E1",
|
|
15
|
+
"muted": "#BFAFBF",
|
|
16
|
+
"dim": "#A38BA9",
|
|
17
|
+
"blood": "#F2677A",
|
|
18
|
+
"violet": "#BCA0ED",
|
|
19
|
+
"sage": "#96C9A2",
|
|
20
|
+
"amber": "#E9BC78",
|
|
21
|
+
"rose": "#DF96BA",
|
|
22
|
+
"silver": "#BCC4D8"
|
|
23
|
+
},
|
|
24
|
+
"colors": {
|
|
25
|
+
"accent": "blood",
|
|
26
|
+
"border": "border",
|
|
27
|
+
"borderAccent": "blood",
|
|
28
|
+
"borderMuted": "borderMuted",
|
|
29
|
+
"success": "sage",
|
|
30
|
+
"error": "blood",
|
|
31
|
+
"warning": "amber",
|
|
32
|
+
"muted": "muted",
|
|
33
|
+
"dim": "dim",
|
|
34
|
+
"text": "bone",
|
|
35
|
+
"thinkingText": "muted",
|
|
36
|
+
"selectedBg": "selection",
|
|
37
|
+
"scrollbarTrack": "borderMuted",
|
|
38
|
+
"scrollbarThumb": "blood",
|
|
39
|
+
"searchMatchBg": "violet",
|
|
40
|
+
"searchMatchText": "black",
|
|
41
|
+
"userMessageBg": "card",
|
|
42
|
+
"userMessageText": "bone",
|
|
43
|
+
"customMessageBg": "card",
|
|
44
|
+
"customMessageText": "bone",
|
|
45
|
+
"customMessageLabel": "violet",
|
|
46
|
+
"toolPendingBg": "pending",
|
|
47
|
+
"toolSuccessBg": "successBg",
|
|
48
|
+
"toolErrorBg": "errorBg",
|
|
49
|
+
"toolTitle": "blood",
|
|
50
|
+
"toolOutput": "bone",
|
|
51
|
+
"mdHeading": "blood",
|
|
52
|
+
"mdLink": "violet",
|
|
53
|
+
"mdLinkUrl": "muted",
|
|
54
|
+
"mdCode": "rose",
|
|
55
|
+
"mdCodeBlock": "bone",
|
|
56
|
+
"mdCodeBlockBorder": "border",
|
|
57
|
+
"mdQuote": "muted",
|
|
58
|
+
"mdQuoteBorder": "violet",
|
|
59
|
+
"mdHr": "border",
|
|
60
|
+
"mdListBullet": "blood",
|
|
61
|
+
"toolDiffAdded": "sage",
|
|
62
|
+
"toolDiffRemoved": "blood",
|
|
63
|
+
"toolDiffContext": "muted",
|
|
64
|
+
"syntaxComment": "dim",
|
|
65
|
+
"syntaxKeyword": "violet",
|
|
66
|
+
"syntaxFunction": "blood",
|
|
67
|
+
"syntaxVariable": "bone",
|
|
68
|
+
"syntaxString": "sage",
|
|
69
|
+
"syntaxNumber": "rose",
|
|
70
|
+
"syntaxType": "silver",
|
|
71
|
+
"syntaxOperator": "blood",
|
|
72
|
+
"syntaxPunctuation": "muted",
|
|
73
|
+
"thinkingOff": "dim",
|
|
74
|
+
"thinkingMinimal": "silver",
|
|
75
|
+
"thinkingLow": "sage",
|
|
76
|
+
"thinkingMedium": "violet",
|
|
77
|
+
"thinkingHigh": "rose",
|
|
78
|
+
"thinkingXhigh": "blood",
|
|
79
|
+
"thinkingMax": "amber",
|
|
80
|
+
"bashMode": "violet"
|
|
81
|
+
},
|
|
82
|
+
"export": {
|
|
83
|
+
"pageBg": "black",
|
|
84
|
+
"cardBg": "card",
|
|
85
|
+
"infoBg": "pending"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "osdy-pi-halloween",
|
|
4
|
+
"appearance": "dark",
|
|
5
|
+
"vars": {
|
|
6
|
+
"night": "#140F1D",
|
|
7
|
+
"card": "#302039",
|
|
8
|
+
"border": "#75568C",
|
|
9
|
+
"borderMuted": "#493650",
|
|
10
|
+
"selection": "#3B2547",
|
|
11
|
+
"pending": "#211829",
|
|
12
|
+
"successBg": "#1C291B",
|
|
13
|
+
"errorBg": "#321922",
|
|
14
|
+
"text": "#F5EBDD",
|
|
15
|
+
"muted": "#C3B0CC",
|
|
16
|
+
"dim": "#AA94B6",
|
|
17
|
+
"pumpkin": "#FFAA55",
|
|
18
|
+
"violet": "#C7A0FF",
|
|
19
|
+
"lime": "#B8E66B",
|
|
20
|
+
"red": "#FF8391",
|
|
21
|
+
"yellow": "#FFD580",
|
|
22
|
+
"pink": "#EF9ED5"
|
|
23
|
+
},
|
|
24
|
+
"colors": {
|
|
25
|
+
"accent": "pumpkin",
|
|
26
|
+
"border": "border",
|
|
27
|
+
"borderAccent": "pumpkin",
|
|
28
|
+
"borderMuted": "borderMuted",
|
|
29
|
+
"success": "lime",
|
|
30
|
+
"error": "red",
|
|
31
|
+
"warning": "yellow",
|
|
32
|
+
"muted": "muted",
|
|
33
|
+
"dim": "dim",
|
|
34
|
+
"text": "text",
|
|
35
|
+
"thinkingText": "muted",
|
|
36
|
+
"selectedBg": "selection",
|
|
37
|
+
"scrollbarTrack": "borderMuted",
|
|
38
|
+
"scrollbarThumb": "pumpkin",
|
|
39
|
+
"searchMatchBg": "yellow",
|
|
40
|
+
"searchMatchText": "night",
|
|
41
|
+
"userMessageBg": "card",
|
|
42
|
+
"userMessageText": "text",
|
|
43
|
+
"customMessageBg": "card",
|
|
44
|
+
"customMessageText": "text",
|
|
45
|
+
"customMessageLabel": "violet",
|
|
46
|
+
"toolPendingBg": "pending",
|
|
47
|
+
"toolSuccessBg": "successBg",
|
|
48
|
+
"toolErrorBg": "errorBg",
|
|
49
|
+
"toolTitle": "pumpkin",
|
|
50
|
+
"toolOutput": "text",
|
|
51
|
+
"mdHeading": "pumpkin",
|
|
52
|
+
"mdLink": "violet",
|
|
53
|
+
"mdLinkUrl": "muted",
|
|
54
|
+
"mdCode": "lime",
|
|
55
|
+
"mdCodeBlock": "text",
|
|
56
|
+
"mdCodeBlockBorder": "border",
|
|
57
|
+
"mdQuote": "muted",
|
|
58
|
+
"mdQuoteBorder": "violet",
|
|
59
|
+
"mdHr": "border",
|
|
60
|
+
"mdListBullet": "pumpkin",
|
|
61
|
+
"toolDiffAdded": "lime",
|
|
62
|
+
"toolDiffRemoved": "red",
|
|
63
|
+
"toolDiffContext": "muted",
|
|
64
|
+
"syntaxComment": "dim",
|
|
65
|
+
"syntaxKeyword": "violet",
|
|
66
|
+
"syntaxFunction": "pumpkin",
|
|
67
|
+
"syntaxVariable": "text",
|
|
68
|
+
"syntaxString": "lime",
|
|
69
|
+
"syntaxNumber": "pumpkin",
|
|
70
|
+
"syntaxType": "yellow",
|
|
71
|
+
"syntaxOperator": "pink",
|
|
72
|
+
"syntaxPunctuation": "muted",
|
|
73
|
+
"thinkingOff": "dim",
|
|
74
|
+
"thinkingMinimal": "pumpkin",
|
|
75
|
+
"thinkingLow": "yellow",
|
|
76
|
+
"thinkingMedium": "lime",
|
|
77
|
+
"thinkingHigh": "violet",
|
|
78
|
+
"thinkingXhigh": "pink",
|
|
79
|
+
"thinkingMax": "red",
|
|
80
|
+
"bashMode": "lime"
|
|
81
|
+
},
|
|
82
|
+
"export": {
|
|
83
|
+
"pageBg": "night",
|
|
84
|
+
"cardBg": "card",
|
|
85
|
+
"infoBg": "pending"
|
|
86
|
+
}
|
|
87
|
+
}
|