pi-crew 0.6.3 → 0.7.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/CHANGELOG.md +84 -0
- package/README.md +80 -1
- package/docs/ui-optimization-plan.md +447 -0
- package/package.json +2 -1
- package/src/extension/knowledge-injection.ts +71 -0
- package/src/extension/pi-api.ts +47 -0
- package/src/extension/register.ts +32 -1
- package/src/extension/registration/commands.ts +65 -1
- package/src/extension/registration/compaction-guard.ts +154 -14
- package/src/extension/registration/subagent-tools.ts +8 -3
- package/src/extension/registration/team-tool.ts +18 -11
- package/src/extension/team-tool/handle-settings.ts +57 -0
- package/src/extension/team-tool/inspect.ts +4 -1
- package/src/extension/team-tool/plan.ts +8 -1
- package/src/extension/team-tool/run.ts +4 -3
- package/src/extension/team-tool-types.ts +2 -0
- package/src/runtime/intercom-bridge.ts +5 -1
- package/src/runtime/replace.ts +555 -0
- package/src/runtime/resilient-edit.ts +166 -0
- package/src/runtime/single-agent-compose.ts +87 -0
- package/src/runtime/team-runner.ts +23 -6
- package/src/schema/team-tool-schema.ts +6 -0
- package/src/state/session-state-map.ts +51 -0
- package/src/state/usage.ts +73 -0
- package/src/ui/card-colors.ts +126 -0
- package/src/ui/deploy-bundled-themes.ts +71 -0
- package/src/ui/powerbar-publisher.ts +1 -1
- package/src/ui/render-diff.ts +37 -3
- package/src/ui/settings-overlay.ts +70 -7
- package/src/ui/status-colors.ts +5 -1
- package/src/ui/syntax-highlight.ts +42 -23
- package/src/ui/theme-adapter.ts +80 -1
- package/src/ui/theme-discovery.ts +188 -0
- package/src/ui/tool-progress-formatter.ts +9 -5
- package/src/ui/tool-render.ts +4 -0
- package/src/ui/tool-renderers/brief-mode.ts +207 -0
- package/src/ui/tool-renderers/index.ts +640 -0
- package/src/ui/widget/index.ts +224 -0
- package/src/ui/widget/widget-formatters.ts +148 -0
- package/src/ui/widget/widget-model.ts +90 -0
- package/src/ui/widget/widget-renderer.ts +130 -0
- package/src/ui/widget/widget-types.ts +37 -0
- package/src/utils/guards.ts +110 -0
- package/themes/crew-catppuccin-latte.json +96 -0
- package/themes/crew-catppuccin-mocha.json +93 -0
- package/themes/crew-dark.json +90 -0
- package/themes/crew-dracula.json +83 -0
- package/themes/crew-gruvbox-dark.json +83 -0
- package/themes/crew-gruvbox-light.json +90 -0
- package/themes/crew-nord.json +85 -0
- package/themes/crew-one-dark.json +89 -0
- package/themes/crew-solarized-dark.json +90 -0
- package/themes/crew-solarized-light.json +92 -0
- package/themes/crew-tokyo-night.json +85 -0
- package/src/runtime/budget-tracker.ts +0 -354
- package/src/state/memory-store.ts +0 -244
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized type guard library for pi-crew.
|
|
3
|
+
*
|
|
4
|
+
* Inspired by @ayulab/runtime-core — all unknown-to-narrowed checks
|
|
5
|
+
* go through these helpers instead of inline typeof/instanceof.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// ── Primitive guards ──────────────────────────────────────────────────
|
|
9
|
+
|
|
10
|
+
/** Narrow `unknown` to `Record<string, unknown>`. */
|
|
11
|
+
export function isRecord(value: unknown): value is Record<string, unknown> {
|
|
12
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** Narrow `unknown` to `string`. */
|
|
16
|
+
export function isString(value: unknown): value is string {
|
|
17
|
+
return typeof value === "string";
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Narrow `unknown` to a non-empty string. */
|
|
21
|
+
export function isNonEmptyString(value: unknown): value is string {
|
|
22
|
+
return typeof value === "string" && value.length > 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Narrow `unknown` to `number` (excludes NaN). */
|
|
26
|
+
export function isNumber(value: unknown): value is number {
|
|
27
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Narrow `unknown` to `boolean`. */
|
|
31
|
+
export function isBoolean(value: unknown): value is boolean {
|
|
32
|
+
return typeof value === "boolean";
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Narrow `unknown` to `readonly string[]`. */
|
|
36
|
+
export function isStringArray(value: unknown): value is readonly string[] {
|
|
37
|
+
return Array.isArray(value) && value.every((v) => typeof v === "string");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Higher-order guard: build a guard that checks every element of an array.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const isNumberArray = isArrayOf(isNumber);
|
|
45
|
+
*/
|
|
46
|
+
export function isArrayOf<T>(
|
|
47
|
+
guard: (item: unknown) => item is T,
|
|
48
|
+
): (value: unknown) => value is readonly T[] {
|
|
49
|
+
return (value: unknown): value is readonly T[] =>
|
|
50
|
+
Array.isArray(value) && value.every(guard);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ── Record field extractors ───────────────────────────────────────────
|
|
54
|
+
|
|
55
|
+
/** Extract a string field from a record, returning `undefined` if absent. */
|
|
56
|
+
export function getStringField(value: unknown, key: string): string | undefined {
|
|
57
|
+
if (!isRecord(value)) return undefined;
|
|
58
|
+
const field = value[key];
|
|
59
|
+
return typeof field === "string" ? field : undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Extract a number field from a record, returning `undefined` if absent. */
|
|
63
|
+
export function getNumberField(value: unknown, key: string): number | undefined {
|
|
64
|
+
if (!isRecord(value)) return undefined;
|
|
65
|
+
const field = value[key];
|
|
66
|
+
return typeof field === "number" && !Number.isNaN(field) ? field : undefined;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Extract a boolean field from a record, returning `undefined` if absent. */
|
|
70
|
+
export function getBooleanField(value: unknown, key: string): boolean | undefined {
|
|
71
|
+
if (!isRecord(value)) return undefined;
|
|
72
|
+
const field = value[key];
|
|
73
|
+
return typeof field === "boolean" ? field : undefined;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Extract a nested record field from a record, returning `undefined` if absent. */
|
|
77
|
+
export function getRecordField(value: unknown, key: string): Record<string, unknown> | undefined {
|
|
78
|
+
if (!isRecord(value)) return undefined;
|
|
79
|
+
const field = value[key];
|
|
80
|
+
return isRecord(field) ? field : undefined;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Extract an array field from a record, returning `undefined` if absent. */
|
|
84
|
+
export function getArrayField(value: unknown, key: string): unknown[] | undefined {
|
|
85
|
+
if (!isRecord(value)) return undefined;
|
|
86
|
+
const field = value[key];
|
|
87
|
+
return Array.isArray(field) ? field : undefined;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ── Error helpers ─────────────────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Extract a human-readable message from an unknown error value.
|
|
94
|
+
*
|
|
95
|
+
* Prefer this over manual `instanceof Error` checks to keep error
|
|
96
|
+
* handling uniform across the codebase.
|
|
97
|
+
*/
|
|
98
|
+
export function errorMessage(err: unknown): string {
|
|
99
|
+
return err instanceof Error ? err.message : String(err);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// ── Utility types ─────────────────────────────────────────────────────
|
|
103
|
+
|
|
104
|
+
/** A non-empty readonly array type. */
|
|
105
|
+
export type NonEmptyReadonlyArray<T> = readonly [T, ...T[]];
|
|
106
|
+
|
|
107
|
+
/** Narrow a readonly array to a non-empty readonly array. */
|
|
108
|
+
export function hasItems<T>(items: readonly T[]): items is NonEmptyReadonlyArray<T> {
|
|
109
|
+
return items.length > 0;
|
|
110
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-catppuccin-latte",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#eff1f5",
|
|
6
|
+
"fg": "#4c4f69",
|
|
7
|
+
"mauve": "#8839ef",
|
|
8
|
+
"pink": "#ea76cb",
|
|
9
|
+
"blue": "#1e66f5",
|
|
10
|
+
"green": "#40a02b",
|
|
11
|
+
"teal": "#179299",
|
|
12
|
+
"sky": "#04a5e5",
|
|
13
|
+
"sapphire": "#209fb5",
|
|
14
|
+
"red": "#d20f39",
|
|
15
|
+
"maroon": "#e64553",
|
|
16
|
+
"peach": "#fe640b",
|
|
17
|
+
"yellow": "#df8e1d",
|
|
18
|
+
"rosewater": "#dc8a78",
|
|
19
|
+
"flamingo": "#dd7878",
|
|
20
|
+
"lavender": "#7287fd",
|
|
21
|
+
"gray": "#6c6f85",
|
|
22
|
+
"dimGray": "#9ca0b0",
|
|
23
|
+
"darkGray": "#bcc0cc",
|
|
24
|
+
"darkerGray": "#ccd0da",
|
|
25
|
+
"selection": "#dcd8f5",
|
|
26
|
+
"userMsgBg": "#ccd0da",
|
|
27
|
+
"customMsgBg": "#ccd0da",
|
|
28
|
+
"toolPending": "#e6e9ef",
|
|
29
|
+
"toolSuccess": "#e3f0df",
|
|
30
|
+
"toolError": "#fbe0e3"
|
|
31
|
+
},
|
|
32
|
+
"colors": {
|
|
33
|
+
"accent": "mauve",
|
|
34
|
+
"border": "darkGray",
|
|
35
|
+
"borderAccent": "mauve",
|
|
36
|
+
"borderMuted": "darkerGray",
|
|
37
|
+
"success": "green",
|
|
38
|
+
"error": "red",
|
|
39
|
+
"warning": "peach",
|
|
40
|
+
"muted": "gray",
|
|
41
|
+
"dim": "dimGray",
|
|
42
|
+
"text": "fg",
|
|
43
|
+
"thinkingText": "gray",
|
|
44
|
+
|
|
45
|
+
"selectedBg": "selection",
|
|
46
|
+
"userMessageBg": "userMsgBg",
|
|
47
|
+
"userMessageText": "fg",
|
|
48
|
+
"customMessageBg": "customMsgBg",
|
|
49
|
+
"customMessageText": "fg",
|
|
50
|
+
"customMessageLabel": "lavender",
|
|
51
|
+
"toolPendingBg": "toolPending",
|
|
52
|
+
"toolSuccessBg": "toolSuccess",
|
|
53
|
+
"toolErrorBg": "toolError",
|
|
54
|
+
"toolTitle": "sky",
|
|
55
|
+
"toolOutput": "gray",
|
|
56
|
+
|
|
57
|
+
"mdHeading": "yellow",
|
|
58
|
+
"mdLink": "blue",
|
|
59
|
+
"mdLinkUrl": "dimGray",
|
|
60
|
+
"mdCode": "green",
|
|
61
|
+
"mdCodeBlock": "#179299",
|
|
62
|
+
"mdCodeBlockBorder": "darkGray",
|
|
63
|
+
"mdQuote": "gray",
|
|
64
|
+
"mdQuoteBorder": "darkGray",
|
|
65
|
+
"mdHr": "darkGray",
|
|
66
|
+
"mdListBullet": "blue",
|
|
67
|
+
|
|
68
|
+
"toolDiffAdded": "green",
|
|
69
|
+
"toolDiffRemoved": "red",
|
|
70
|
+
"toolDiffContext": "gray",
|
|
71
|
+
|
|
72
|
+
"syntaxComment": "#9ca0b0",
|
|
73
|
+
"syntaxKeyword": "pink",
|
|
74
|
+
"syntaxFunction": "blue",
|
|
75
|
+
"syntaxVariable": "peach",
|
|
76
|
+
"syntaxString": "green",
|
|
77
|
+
"syntaxNumber": "peach",
|
|
78
|
+
"syntaxType": "yellow",
|
|
79
|
+
"syntaxOperator": "sky",
|
|
80
|
+
"syntaxPunctuation": "fg",
|
|
81
|
+
|
|
82
|
+
"thinkingOff": "darkerGray",
|
|
83
|
+
"thinkingMinimal": "dimGray",
|
|
84
|
+
"thinkingLow": "lavender",
|
|
85
|
+
"thinkingMedium": "mauve",
|
|
86
|
+
"thinkingHigh": "pink",
|
|
87
|
+
"thinkingXhigh": "#c896ff",
|
|
88
|
+
|
|
89
|
+
"bashMode": "green"
|
|
90
|
+
},
|
|
91
|
+
"export": {
|
|
92
|
+
"pageBg": "#eff1f5",
|
|
93
|
+
"cardBg": "#ccd0da",
|
|
94
|
+
"infoBg": "#dcd8f5"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-catppuccin-mocha",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#1e1e2e",
|
|
6
|
+
"fg": "#cdd6f4",
|
|
7
|
+
"mauve": "#cba6f7",
|
|
8
|
+
"blue": "#89b4fa",
|
|
9
|
+
"green": "#a6e3a1",
|
|
10
|
+
"teal": "#94e2d5",
|
|
11
|
+
"red": "#f38ba8",
|
|
12
|
+
"peach": "#fab387",
|
|
13
|
+
"yellow": "#f9e2af",
|
|
14
|
+
"pink": "#f5c2e7",
|
|
15
|
+
"sky": "#89dceb",
|
|
16
|
+
"lavender": "#b4befe",
|
|
17
|
+
"rosewater": "#f5e0dc",
|
|
18
|
+
"gray": "#a6adc8",
|
|
19
|
+
"dimGray": "#6c7086",
|
|
20
|
+
"darkGray": "#45475a",
|
|
21
|
+
"darkerGray": "#313244",
|
|
22
|
+
"selection": "#313244",
|
|
23
|
+
"userMsgBg": "#181825",
|
|
24
|
+
"customMsgBg": "#181825",
|
|
25
|
+
"toolPending": "#11111b",
|
|
26
|
+
"toolSuccess": "#1a2b1f",
|
|
27
|
+
"toolError": "#311d24"
|
|
28
|
+
},
|
|
29
|
+
"colors": {
|
|
30
|
+
"accent": "mauve",
|
|
31
|
+
"border": "darkGray",
|
|
32
|
+
"borderAccent": "mauve",
|
|
33
|
+
"borderMuted": "darkerGray",
|
|
34
|
+
"success": "green",
|
|
35
|
+
"error": "red",
|
|
36
|
+
"warning": "peach",
|
|
37
|
+
"muted": "gray",
|
|
38
|
+
"dim": "dimGray",
|
|
39
|
+
"text": "fg",
|
|
40
|
+
"thinkingText": "gray",
|
|
41
|
+
|
|
42
|
+
"selectedBg": "selection",
|
|
43
|
+
"userMessageBg": "userMsgBg",
|
|
44
|
+
"userMessageText": "fg",
|
|
45
|
+
"customMessageBg": "customMsgBg",
|
|
46
|
+
"customMessageText": "fg",
|
|
47
|
+
"customMessageLabel": "lavender",
|
|
48
|
+
"toolPendingBg": "toolPending",
|
|
49
|
+
"toolSuccessBg": "toolSuccess",
|
|
50
|
+
"toolErrorBg": "toolError",
|
|
51
|
+
"toolTitle": "sky",
|
|
52
|
+
"toolOutput": "gray",
|
|
53
|
+
|
|
54
|
+
"mdHeading": "yellow",
|
|
55
|
+
"mdLink": "blue",
|
|
56
|
+
"mdLinkUrl": "dimGray",
|
|
57
|
+
"mdCode": "green",
|
|
58
|
+
"mdCodeBlock": "#94e2d5",
|
|
59
|
+
"mdCodeBlockBorder": "darkGray",
|
|
60
|
+
"mdQuote": "gray",
|
|
61
|
+
"mdQuoteBorder": "darkGray",
|
|
62
|
+
"mdHr": "darkGray",
|
|
63
|
+
"mdListBullet": "mauve",
|
|
64
|
+
|
|
65
|
+
"toolDiffAdded": "green",
|
|
66
|
+
"toolDiffRemoved": "red",
|
|
67
|
+
"toolDiffContext": "gray",
|
|
68
|
+
|
|
69
|
+
"syntaxComment": "#6c7086",
|
|
70
|
+
"syntaxKeyword": "#cba6f7",
|
|
71
|
+
"syntaxFunction": "#89b4fa",
|
|
72
|
+
"syntaxVariable": "#fab387",
|
|
73
|
+
"syntaxString": "#a6e3a1",
|
|
74
|
+
"syntaxNumber": "#fab387",
|
|
75
|
+
"syntaxType": "#f9e2af",
|
|
76
|
+
"syntaxOperator": "#89dceb",
|
|
77
|
+
"syntaxPunctuation": "#cdd6f4",
|
|
78
|
+
|
|
79
|
+
"thinkingOff": "darkerGray",
|
|
80
|
+
"thinkingMinimal": "#585b70",
|
|
81
|
+
"thinkingLow": "mauve",
|
|
82
|
+
"thinkingMedium": "lavender",
|
|
83
|
+
"thinkingHigh": "pink",
|
|
84
|
+
"thinkingXhigh": "rosewater",
|
|
85
|
+
|
|
86
|
+
"bashMode": "green"
|
|
87
|
+
},
|
|
88
|
+
"export": {
|
|
89
|
+
"pageBg": "#1e1e2e",
|
|
90
|
+
"cardBg": "#181825",
|
|
91
|
+
"infoBg": "#313244"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-dark",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#0d1117",
|
|
6
|
+
"fg": "#c9d1d9",
|
|
7
|
+
"crewBlue": "#58a6ff",
|
|
8
|
+
"deepBlue": "#1f6feb",
|
|
9
|
+
"skyBlue": "#79c0ff",
|
|
10
|
+
"teal": "#39d353",
|
|
11
|
+
"amber": "#e3b341",
|
|
12
|
+
"coral": "#f78166",
|
|
13
|
+
"rose": "#ff7b72",
|
|
14
|
+
"lavender": "#d2a8ff",
|
|
15
|
+
"gray": "#8b949e",
|
|
16
|
+
"dimGray": "#484f58",
|
|
17
|
+
"darkGray": "#30363d",
|
|
18
|
+
"darkerGray": "#21262d",
|
|
19
|
+
"selection": "#1c2541",
|
|
20
|
+
"userMsgBg": "#161b22",
|
|
21
|
+
"customMsgBg": "#161b22",
|
|
22
|
+
"toolPending": "#111820",
|
|
23
|
+
"toolSuccess": "#0d1f0d",
|
|
24
|
+
"toolError": "#2a1215"
|
|
25
|
+
},
|
|
26
|
+
"colors": {
|
|
27
|
+
"accent": "crewBlue",
|
|
28
|
+
"border": "darkGray",
|
|
29
|
+
"borderAccent": "deepBlue",
|
|
30
|
+
"borderMuted": "darkerGray",
|
|
31
|
+
"success": "teal",
|
|
32
|
+
"error": "rose",
|
|
33
|
+
"warning": "amber",
|
|
34
|
+
"muted": "gray",
|
|
35
|
+
"dim": "dimGray",
|
|
36
|
+
"text": "fg",
|
|
37
|
+
"thinkingText": "gray",
|
|
38
|
+
|
|
39
|
+
"selectedBg": "selection",
|
|
40
|
+
"userMessageBg": "userMsgBg",
|
|
41
|
+
"userMessageText": "fg",
|
|
42
|
+
"customMessageBg": "customMsgBg",
|
|
43
|
+
"customMessageText": "fg",
|
|
44
|
+
"customMessageLabel": "lavender",
|
|
45
|
+
"toolPendingBg": "toolPending",
|
|
46
|
+
"toolSuccessBg": "toolSuccess",
|
|
47
|
+
"toolErrorBg": "toolError",
|
|
48
|
+
"toolTitle": "skyBlue",
|
|
49
|
+
"toolOutput": "gray",
|
|
50
|
+
|
|
51
|
+
"mdHeading": "amber",
|
|
52
|
+
"mdLink": "deepBlue",
|
|
53
|
+
"mdLinkUrl": "dimGray",
|
|
54
|
+
"mdCode": "teal",
|
|
55
|
+
"mdCodeBlock": "#56d364",
|
|
56
|
+
"mdCodeBlockBorder": "darkGray",
|
|
57
|
+
"mdQuote": "gray",
|
|
58
|
+
"mdQuoteBorder": "darkGray",
|
|
59
|
+
"mdHr": "darkGray",
|
|
60
|
+
"mdListBullet": "crewBlue",
|
|
61
|
+
|
|
62
|
+
"toolDiffAdded": "teal",
|
|
63
|
+
"toolDiffRemoved": "rose",
|
|
64
|
+
"toolDiffContext": "gray",
|
|
65
|
+
|
|
66
|
+
"syntaxComment": "#6e7681",
|
|
67
|
+
"syntaxKeyword": "#ff7b72",
|
|
68
|
+
"syntaxFunction": "#d2a8ff",
|
|
69
|
+
"syntaxVariable": "#ffa657",
|
|
70
|
+
"syntaxString": "#a5d6ff",
|
|
71
|
+
"syntaxNumber": "#79c0ff",
|
|
72
|
+
"syntaxType": "#ff7b72",
|
|
73
|
+
"syntaxOperator": "#79c0ff",
|
|
74
|
+
"syntaxPunctuation": "#c9d1d9",
|
|
75
|
+
|
|
76
|
+
"thinkingOff": "darkerGray",
|
|
77
|
+
"thinkingMinimal": "#484f58",
|
|
78
|
+
"thinkingLow": "#1f6feb",
|
|
79
|
+
"thinkingMedium": "#58a6ff",
|
|
80
|
+
"thinkingHigh": "#79c0ff",
|
|
81
|
+
"thinkingXhigh": "#d2a8ff",
|
|
82
|
+
|
|
83
|
+
"bashMode": "teal"
|
|
84
|
+
},
|
|
85
|
+
"export": {
|
|
86
|
+
"pageBg": "#0d1117",
|
|
87
|
+
"cardBg": "#161b22",
|
|
88
|
+
"infoBg": "#1c2541"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-dracula",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#282a36",
|
|
6
|
+
"fg": "#f8f8f2",
|
|
7
|
+
"purple": "#bd93f9",
|
|
8
|
+
"pink": "#ff79c6",
|
|
9
|
+
"cyan": "#8be9fd",
|
|
10
|
+
"green": "#50fa7b",
|
|
11
|
+
"orange": "#ffb86c",
|
|
12
|
+
"red": "#ff5555",
|
|
13
|
+
"yellow": "#f1fa8c",
|
|
14
|
+
"gray": "#6272a4",
|
|
15
|
+
"dimGray": "#44475a",
|
|
16
|
+
"darkGray": "#44475a",
|
|
17
|
+
"darkerGray": "#21222c",
|
|
18
|
+
"selection": "#44475a",
|
|
19
|
+
"userMsgBg": "#343746",
|
|
20
|
+
"customMsgBg": "#343746",
|
|
21
|
+
"toolPending": "#343746",
|
|
22
|
+
"toolSuccess": "#1e2d20",
|
|
23
|
+
"toolError": "#2e1a1e"
|
|
24
|
+
},
|
|
25
|
+
"colors": {
|
|
26
|
+
"accent": "purple",
|
|
27
|
+
"border": "darkGray",
|
|
28
|
+
"borderAccent": "purple",
|
|
29
|
+
"borderMuted": "darkerGray",
|
|
30
|
+
"success": "green",
|
|
31
|
+
"error": "red",
|
|
32
|
+
"warning": "orange",
|
|
33
|
+
"muted": "gray",
|
|
34
|
+
"dim": "dimGray",
|
|
35
|
+
"text": "fg",
|
|
36
|
+
"thinkingText": "gray",
|
|
37
|
+
"selectedBg": "selection",
|
|
38
|
+
"userMessageBg": "userMsgBg",
|
|
39
|
+
"userMessageText": "fg",
|
|
40
|
+
"customMessageBg": "customMsgBg",
|
|
41
|
+
"customMessageText": "fg",
|
|
42
|
+
"customMessageLabel": "purple",
|
|
43
|
+
"toolPendingBg": "toolPending",
|
|
44
|
+
"toolSuccessBg": "toolSuccess",
|
|
45
|
+
"toolErrorBg": "toolError",
|
|
46
|
+
"toolTitle": "cyan",
|
|
47
|
+
"toolOutput": "gray",
|
|
48
|
+
"mdHeading": "yellow",
|
|
49
|
+
"mdLink": "purple",
|
|
50
|
+
"mdLinkUrl": "dimGray",
|
|
51
|
+
"mdCode": "green",
|
|
52
|
+
"mdCodeBlock": "#50fa7b",
|
|
53
|
+
"mdCodeBlockBorder": "darkGray",
|
|
54
|
+
"mdQuote": "gray",
|
|
55
|
+
"mdQuoteBorder": "darkGray",
|
|
56
|
+
"mdHr": "darkGray",
|
|
57
|
+
"mdListBullet": "purple",
|
|
58
|
+
"toolDiffAdded": "green",
|
|
59
|
+
"toolDiffRemoved": "red",
|
|
60
|
+
"toolDiffContext": "gray",
|
|
61
|
+
"syntaxComment": "#6272a4",
|
|
62
|
+
"syntaxKeyword": "pink",
|
|
63
|
+
"syntaxFunction": "purple",
|
|
64
|
+
"syntaxVariable": "orange",
|
|
65
|
+
"syntaxString": "yellow",
|
|
66
|
+
"syntaxNumber": "purple",
|
|
67
|
+
"syntaxType": "cyan",
|
|
68
|
+
"syntaxOperator": "pink",
|
|
69
|
+
"syntaxPunctuation": "fg",
|
|
70
|
+
"thinkingOff": "darkerGray",
|
|
71
|
+
"thinkingMinimal": "#44475a",
|
|
72
|
+
"thinkingLow": "purple",
|
|
73
|
+
"thinkingMedium": "#bd93f9",
|
|
74
|
+
"thinkingHigh": "cyan",
|
|
75
|
+
"thinkingXhigh": "pink",
|
|
76
|
+
"bashMode": "green"
|
|
77
|
+
},
|
|
78
|
+
"export": {
|
|
79
|
+
"pageBg": "#282a36",
|
|
80
|
+
"cardBg": "#343746",
|
|
81
|
+
"infoBg": "#44475a"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-gruvbox-dark",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#282828",
|
|
6
|
+
"fg": "#ebdbb2",
|
|
7
|
+
"blue": "#83a598",
|
|
8
|
+
"aqua": "#8ec07c",
|
|
9
|
+
"green": "#b8bb26",
|
|
10
|
+
"yellow": "#fabd2f",
|
|
11
|
+
"orange": "#fe8019",
|
|
12
|
+
"red": "#fb4934",
|
|
13
|
+
"purple": "#d3869b",
|
|
14
|
+
"gray": "#928374",
|
|
15
|
+
"dimGray": "#928374",
|
|
16
|
+
"darkGray": "#3c3836",
|
|
17
|
+
"darkerGray": "#1d2021",
|
|
18
|
+
"selection": "#3c3836",
|
|
19
|
+
"userMsgBg": "#32302f",
|
|
20
|
+
"customMsgBg": "#32302f",
|
|
21
|
+
"toolPending": "#1d2021",
|
|
22
|
+
"toolSuccess": "#1a2a1a",
|
|
23
|
+
"toolError": "#2e1a1a"
|
|
24
|
+
},
|
|
25
|
+
"colors": {
|
|
26
|
+
"accent": "blue",
|
|
27
|
+
"border": "darkGray",
|
|
28
|
+
"borderAccent": "blue",
|
|
29
|
+
"borderMuted": "darkerGray",
|
|
30
|
+
"success": "green",
|
|
31
|
+
"error": "red",
|
|
32
|
+
"warning": "yellow",
|
|
33
|
+
"muted": "gray",
|
|
34
|
+
"dim": "dimGray",
|
|
35
|
+
"text": "fg",
|
|
36
|
+
"thinkingText": "gray",
|
|
37
|
+
"selectedBg": "selection",
|
|
38
|
+
"userMessageBg": "userMsgBg",
|
|
39
|
+
"userMessageText": "fg",
|
|
40
|
+
"customMessageBg": "customMsgBg",
|
|
41
|
+
"customMessageText": "fg",
|
|
42
|
+
"customMessageLabel": "purple",
|
|
43
|
+
"toolPendingBg": "toolPending",
|
|
44
|
+
"toolSuccessBg": "toolSuccess",
|
|
45
|
+
"toolErrorBg": "toolError",
|
|
46
|
+
"toolTitle": "aqua",
|
|
47
|
+
"toolOutput": "gray",
|
|
48
|
+
"mdHeading": "yellow",
|
|
49
|
+
"mdLink": "blue",
|
|
50
|
+
"mdLinkUrl": "dimGray",
|
|
51
|
+
"mdCode": "green",
|
|
52
|
+
"mdCodeBlock": "#b8bb26",
|
|
53
|
+
"mdCodeBlockBorder": "darkGray",
|
|
54
|
+
"mdQuote": "gray",
|
|
55
|
+
"mdQuoteBorder": "darkGray",
|
|
56
|
+
"mdHr": "darkGray",
|
|
57
|
+
"mdListBullet": "blue",
|
|
58
|
+
"toolDiffAdded": "green",
|
|
59
|
+
"toolDiffRemoved": "red",
|
|
60
|
+
"toolDiffContext": "gray",
|
|
61
|
+
"syntaxComment": "#928374",
|
|
62
|
+
"syntaxKeyword": "red",
|
|
63
|
+
"syntaxFunction": "green",
|
|
64
|
+
"syntaxVariable": "orange",
|
|
65
|
+
"syntaxString": "yellow",
|
|
66
|
+
"syntaxNumber": "purple",
|
|
67
|
+
"syntaxType": "aqua",
|
|
68
|
+
"syntaxOperator": "blue",
|
|
69
|
+
"syntaxPunctuation": "fg",
|
|
70
|
+
"thinkingOff": "darkerGray",
|
|
71
|
+
"thinkingMinimal": "#928374",
|
|
72
|
+
"thinkingLow": "blue",
|
|
73
|
+
"thinkingMedium": "#83a598",
|
|
74
|
+
"thinkingHigh": "aqua",
|
|
75
|
+
"thinkingXhigh": "purple",
|
|
76
|
+
"bashMode": "green"
|
|
77
|
+
},
|
|
78
|
+
"export": {
|
|
79
|
+
"pageBg": "#282828",
|
|
80
|
+
"cardBg": "#32302f",
|
|
81
|
+
"infoBg": "#3c3836"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "crew-gruvbox-light",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#fbf1c7",
|
|
6
|
+
"fg": "#3c3836",
|
|
7
|
+
"blue": "#076678",
|
|
8
|
+
"green": "#79740e",
|
|
9
|
+
"aqua": "#427b58",
|
|
10
|
+
"yellow": "#d79921",
|
|
11
|
+
"orange": "#d65d0e",
|
|
12
|
+
"red": "#cc241d",
|
|
13
|
+
"purple": "#8f3f71",
|
|
14
|
+
"fg4": "#7c6f64",
|
|
15
|
+
"gray": "#928374",
|
|
16
|
+
"dimGray": "#a89984",
|
|
17
|
+
"darkGray": "#d5c4a1",
|
|
18
|
+
"darkerGray": "#ebdbb2",
|
|
19
|
+
"selection": "#e8d9a8",
|
|
20
|
+
"userMsgBg": "#ebdbb2",
|
|
21
|
+
"customMsgBg": "#ebdbb2",
|
|
22
|
+
"toolPending": "#ebdbb2",
|
|
23
|
+
"toolSuccess": "#d9e8c0",
|
|
24
|
+
"toolError": "#f0d0c8"
|
|
25
|
+
},
|
|
26
|
+
"colors": {
|
|
27
|
+
"accent": "blue",
|
|
28
|
+
"border": "darkGray",
|
|
29
|
+
"borderAccent": "blue",
|
|
30
|
+
"borderMuted": "darkerGray",
|
|
31
|
+
"success": "green",
|
|
32
|
+
"error": "red",
|
|
33
|
+
"warning": "yellow",
|
|
34
|
+
"muted": "gray",
|
|
35
|
+
"dim": "dimGray",
|
|
36
|
+
"text": "fg",
|
|
37
|
+
"thinkingText": "gray",
|
|
38
|
+
|
|
39
|
+
"selectedBg": "selection",
|
|
40
|
+
"userMessageBg": "userMsgBg",
|
|
41
|
+
"userMessageText": "fg",
|
|
42
|
+
"customMessageBg": "customMsgBg",
|
|
43
|
+
"customMessageText": "fg",
|
|
44
|
+
"customMessageLabel": "purple",
|
|
45
|
+
"toolPendingBg": "toolPending",
|
|
46
|
+
"toolSuccessBg": "toolSuccess",
|
|
47
|
+
"toolErrorBg": "toolError",
|
|
48
|
+
"toolTitle": "aqua",
|
|
49
|
+
"toolOutput": "gray",
|
|
50
|
+
|
|
51
|
+
"mdHeading": "yellow",
|
|
52
|
+
"mdLink": "blue",
|
|
53
|
+
"mdLinkUrl": "dimGray",
|
|
54
|
+
"mdCode": "green",
|
|
55
|
+
"mdCodeBlock": "#427b58",
|
|
56
|
+
"mdCodeBlockBorder": "darkGray",
|
|
57
|
+
"mdQuote": "gray",
|
|
58
|
+
"mdQuoteBorder": "darkGray",
|
|
59
|
+
"mdHr": "darkGray",
|
|
60
|
+
"mdListBullet": "blue",
|
|
61
|
+
|
|
62
|
+
"toolDiffAdded": "green",
|
|
63
|
+
"toolDiffRemoved": "red",
|
|
64
|
+
"toolDiffContext": "gray",
|
|
65
|
+
|
|
66
|
+
"syntaxComment": "#928374",
|
|
67
|
+
"syntaxKeyword": "red",
|
|
68
|
+
"syntaxFunction": "blue",
|
|
69
|
+
"syntaxVariable": "orange",
|
|
70
|
+
"syntaxString": "green",
|
|
71
|
+
"syntaxNumber": "purple",
|
|
72
|
+
"syntaxType": "aqua",
|
|
73
|
+
"syntaxOperator": "aqua",
|
|
74
|
+
"syntaxPunctuation": "fg",
|
|
75
|
+
|
|
76
|
+
"thinkingOff": "darkerGray",
|
|
77
|
+
"thinkingMinimal": "dimGray",
|
|
78
|
+
"thinkingLow": "purple",
|
|
79
|
+
"thinkingMedium": "blue",
|
|
80
|
+
"thinkingHigh": "aqua",
|
|
81
|
+
"thinkingXhigh": "#1498a8",
|
|
82
|
+
|
|
83
|
+
"bashMode": "green"
|
|
84
|
+
},
|
|
85
|
+
"export": {
|
|
86
|
+
"pageBg": "#fbf1c7",
|
|
87
|
+
"cardBg": "#ebdbb2",
|
|
88
|
+
"infoBg": "#e8d9a8"
|
|
89
|
+
}
|
|
90
|
+
}
|