lsd-pi 1.1.2 → 1.1.3
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 +2 -1
- package/dist/bedrock-auth.d.ts +25 -0
- package/dist/bedrock-auth.js +59 -0
- package/dist/headless.js +8 -3
- package/dist/loader.js +1 -0
- package/dist/onboarding-llm.d.ts +37 -0
- package/dist/onboarding-llm.js +64 -0
- package/dist/onboarding.d.ts +2 -14
- package/dist/onboarding.js +146 -71
- package/dist/pi-migration.js +1 -0
- package/dist/resources/extensions/memory/auto-extract.js +21 -3
- package/dist/resources/extensions/memory/dream.js +703 -0
- package/dist/resources/extensions/memory/extension-manifest.json +2 -2
- package/dist/resources/extensions/memory/index.js +115 -8
- package/dist/resources/extensions/slash-commands/extension-manifest.json +10 -10
- package/dist/resources/extensions/slash-commands/index.js +0 -4
- package/dist/resources/extensions/slash-commands/plan.js +181 -45
- package/dist/resources/extensions/subagent/agents.js +14 -1
- package/dist/resources/extensions/subagent/configured-model.js +3 -2
- package/dist/resources/extensions/subagent/index.js +34 -28
- package/dist/resources/extensions/subagent/launch-helpers.js +24 -0
- package/dist/resources/extensions/subagent/model-resolution.js +41 -3
- package/dist/resources/extensions/usage/extension-manifest.json +11 -0
- package/dist/resources/extensions/usage/index.js +346 -0
- package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/SKILL.md +6 -6
- package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/references/custom-tools.md +1 -1
- package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extension-lifecycle.md +2 -2
- package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensioncontext-reference.md +1 -1
- package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/references/key-rules-gotchas.md +4 -4
- package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/packaging-distribution.md +6 -6
- package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/create-extension.md +3 -3
- package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/debug-extension.md +5 -5
- package/dist/resources/skills/teams-debug/SKILL.md +5 -6
- package/dist/resources/skills/teams-document/SKILL.md +1 -2
- package/dist/resources/skills/teams-plan/SKILL.md +3 -4
- package/dist/resources/skills/teams-run/SKILL.md +3 -4
- package/dist/resources/skills/teams-verify/SKILL.md +4 -5
- package/dist/startup-model-validation.js +1 -0
- package/dist/welcome-screen.js +13 -11
- package/dist/wizard.js +12 -0
- package/package.json +1 -1
- package/packages/pi-ai/dist/models.generated.d.ts +688 -409
- package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/packages/pi-ai/dist/models.generated.js +761 -488
- package/packages/pi-ai/dist/models.generated.js.map +1 -1
- package/packages/pi-ai/scripts/generate-models.ts +40 -18
- package/packages/pi-ai/src/models.generated.ts +759 -486
- package/packages/pi-coding-agent/dist/cli/config-selector.js +1 -1
- package/packages/pi-coding-agent/dist/cli/config-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +1 -2
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +6 -30
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +6 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +44 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js +9 -5
- package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.js +3 -2
- package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/main.js +1 -1
- package/packages/pi-coding-agent/dist/main.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +2 -2
- package/packages/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +15 -12
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +6 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +25 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +10 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +31 -22
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +18 -5
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +139 -20
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +4 -0
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/cli/config-selector.ts +1 -1
- package/packages/pi-coding-agent/src/core/agent-session.ts +5 -28
- package/packages/pi-coding-agent/src/core/settings-manager.ts +52 -1
- package/packages/pi-coding-agent/src/core/skill-tool.test.ts +18 -5
- package/packages/pi-coding-agent/src/core/skills.ts +3 -2
- package/packages/pi-coding-agent/src/index.ts +1 -1
- package/packages/pi-coding-agent/src/main.ts +1 -1
- package/packages/pi-coding-agent/src/modes/interactive/components/bash-execution.ts +2 -2
- package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +12 -13
- package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +39 -1
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1 -1
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +10 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts +1 -1
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +46 -20
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +171 -20
- package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +4 -0
- package/packages/pi-tui/dist/components/editor.d.ts +1 -0
- package/packages/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/packages/pi-tui/dist/components/editor.js +23 -0
- package/packages/pi-tui/dist/components/editor.js.map +1 -1
- package/packages/pi-tui/src/components/editor.ts +23 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts +18 -5
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.js +139 -20
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.js +4 -0
- package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/extensions/memory/auto-extract.ts +23 -3
- package/src/resources/extensions/memory/dream.ts +814 -0
- package/src/resources/extensions/memory/extension-manifest.json +2 -2
- package/src/resources/extensions/memory/index.ts +134 -13
- package/src/resources/extensions/memory/tests/auto-extract.test.ts +10 -2
- package/src/resources/extensions/memory/tests/dream.test.ts +142 -0
- package/src/resources/extensions/slash-commands/extension-manifest.json +10 -10
- package/src/resources/extensions/slash-commands/index.ts +3 -7
- package/src/resources/extensions/slash-commands/plan.ts +192 -46
- package/src/resources/extensions/subagent/agents.ts +11 -1
- package/src/resources/extensions/subagent/configured-model.ts +3 -2
- package/src/resources/extensions/subagent/index.ts +38 -30
- package/src/resources/extensions/subagent/launch-helpers.ts +30 -0
- package/src/resources/extensions/subagent/model-resolution.ts +40 -3
- package/src/resources/extensions/usage/extension-manifest.json +11 -0
- package/src/resources/extensions/usage/index.ts +441 -0
- package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/SKILL.md +6 -6
- package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/references/custom-tools.md +1 -1
- package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extension-lifecycle.md +2 -2
- package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensioncontext-reference.md +1 -1
- package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/references/key-rules-gotchas.md +4 -4
- package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/packaging-distribution.md +6 -6
- package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/create-extension.md +3 -3
- package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/debug-extension.md +5 -5
- package/src/resources/skills/teams-debug/SKILL.md +5 -6
- package/src/resources/skills/teams-document/SKILL.md +1 -2
- package/src/resources/skills/teams-plan/SKILL.md +3 -4
- package/src/resources/skills/teams-run/SKILL.md +3 -4
- package/src/resources/skills/teams-verify/SKILL.md +4 -5
- package/dist/resources/extensions/slash-commands/create-extension.js +0 -264
- package/dist/resources/extensions/slash-commands/create-slash-command.js +0 -208
- package/src/resources/extensions/slash-commands/create-extension.ts +0 -297
- package/src/resources/extensions/slash-commands/create-slash-command.ts +0 -234
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/compaction-session-control.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-commands.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-rendering.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-ui.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/events-reference.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensionapi-reference.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/mode-behavior.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/model-provider-management.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/remote-execution-overrides.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/state-management.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/system-prompt-modification.md +0 -0
- /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/add-capability.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/compaction-session-control.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-commands.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-rendering.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-ui.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/events-reference.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensionapi-reference.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/mode-behavior.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/model-provider-management.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/remote-execution-overrides.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/state-management.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/system-prompt-modification.md +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/templates/extension-skeleton.ts +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/templates/stateful-tool-skeleton.ts +0 -0
- /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/add-capability.md +0 -0
|
@@ -143,6 +143,9 @@ export class Editor implements Component, Focusable {
|
|
|
143
143
|
// Border color (can be changed dynamically)
|
|
144
144
|
public borderColor: (str: string) => string;
|
|
145
145
|
|
|
146
|
+
// Optional hint rendered in the bottom border line (right-aligned, already styled)
|
|
147
|
+
public bottomHint: string = "";
|
|
148
|
+
|
|
146
149
|
// Autocomplete support
|
|
147
150
|
private autocompleteProvider?: AutocompleteProvider;
|
|
148
151
|
private autocompleteList?: SelectList;
|
|
@@ -427,6 +430,26 @@ export class Editor implements Component, Focusable {
|
|
|
427
430
|
const indicator = `─── ↓ ${linesBelow} more `;
|
|
428
431
|
const remaining = width - visibleWidth(indicator);
|
|
429
432
|
result.push(this.borderColor(indicator + "─".repeat(Math.max(0, remaining))));
|
|
433
|
+
} else if (this.bottomHint) {
|
|
434
|
+
// Embed hint right-aligned in the bottom border: ─────── hint ─
|
|
435
|
+
// Apply borderColor only to the dashes so the hint's own styling is preserved.
|
|
436
|
+
const hintVisible = visibleWidth(this.bottomHint);
|
|
437
|
+
const minDashes = 1;
|
|
438
|
+
const separatorWidth = 1; // single space on each side of hint
|
|
439
|
+
const totalFixed = hintVisible + separatorWidth * 2 + minDashes * 2;
|
|
440
|
+
if (width >= totalFixed) {
|
|
441
|
+
const leftDashes = Math.floor((width - hintVisible - separatorWidth * 2) * 0.75);
|
|
442
|
+
const rightDashes = Math.max(minDashes, width - hintVisible - separatorWidth * 2 - leftDashes);
|
|
443
|
+
const line =
|
|
444
|
+
this.borderColor("─".repeat(leftDashes)) +
|
|
445
|
+
" " +
|
|
446
|
+
this.bottomHint +
|
|
447
|
+
" " +
|
|
448
|
+
this.borderColor("─".repeat(rightDashes));
|
|
449
|
+
result.push(line);
|
|
450
|
+
} else {
|
|
451
|
+
result.push(horizontal.repeat(width));
|
|
452
|
+
}
|
|
430
453
|
} else {
|
|
431
454
|
result.push(horizontal.repeat(width));
|
|
432
455
|
}
|
|
@@ -12,6 +12,7 @@ declare const ThemeJsonSchema: import("@sinclair/typebox").TObject<{
|
|
|
12
12
|
success: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
13
13
|
error: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
14
14
|
warning: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
15
|
+
violet: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
15
16
|
muted: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
16
17
|
dim: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
17
18
|
text: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger]>;
|
|
@@ -64,9 +65,21 @@ declare const ThemeJsonSchema: import("@sinclair/typebox").TObject<{
|
|
|
64
65
|
}>>;
|
|
65
66
|
}>;
|
|
66
67
|
export type ThemeJson = Static<typeof ThemeJsonSchema>;
|
|
67
|
-
export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" | "success" | "error" | "warning" | "muted" | "dim" | "text" | "thinkingText" | "userMessageText" | "customMessageText" | "customMessageLabel" | "toolTitle" | "toolOutput" | "mdHeading" | "mdLink" | "mdLinkUrl" | "mdCode" | "mdCodeBlock" | "mdCodeBlockBorder" | "mdQuote" | "mdQuoteBorder" | "mdHr" | "mdListBullet" | "toolDiffAdded" | "toolDiffRemoved" | "toolDiffContext" | "syntaxComment" | "syntaxKeyword" | "syntaxFunction" | "syntaxVariable" | "syntaxString" | "syntaxNumber" | "syntaxType" | "syntaxOperator" | "syntaxPunctuation" | "thinkingOff" | "thinkingMinimal" | "thinkingLow" | "thinkingMedium" | "thinkingHigh" | "thinkingXhigh" | "bashMode";
|
|
68
|
+
export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" | "success" | "error" | "warning" | "violet" | "muted" | "dim" | "text" | "thinkingText" | "userMessageText" | "customMessageText" | "customMessageLabel" | "toolTitle" | "toolOutput" | "mdHeading" | "mdLink" | "mdLinkUrl" | "mdCode" | "mdCodeBlock" | "mdCodeBlockBorder" | "mdQuote" | "mdQuoteBorder" | "mdHr" | "mdListBullet" | "toolDiffAdded" | "toolDiffRemoved" | "toolDiffContext" | "syntaxComment" | "syntaxKeyword" | "syntaxFunction" | "syntaxVariable" | "syntaxString" | "syntaxNumber" | "syntaxType" | "syntaxOperator" | "syntaxPunctuation" | "thinkingOff" | "thinkingMinimal" | "thinkingLow" | "thinkingMedium" | "thinkingHigh" | "thinkingXhigh" | "bashMode";
|
|
68
69
|
export type ThemeBg = "selectedBg" | "userMessageBg" | "customMessageBg" | "toolPendingBg" | "toolSuccessBg" | "toolErrorBg";
|
|
69
70
|
type ColorMode = "truecolor" | "256color";
|
|
71
|
+
export declare const THEME_ACCENT_PRESETS: readonly ["default", "golden-yellow", "blue", "green", "violet", "red"];
|
|
72
|
+
export type ThemeAccentPreset = (typeof THEME_ACCENT_PRESETS)[number];
|
|
73
|
+
export interface ThemeAccentInfo {
|
|
74
|
+
label: string;
|
|
75
|
+
description: string;
|
|
76
|
+
accent: string | undefined;
|
|
77
|
+
thinking: readonly string[] | undefined;
|
|
78
|
+
}
|
|
79
|
+
type ResolvedThemeAccentPreset = Exclude<ThemeAccentPreset, "default">;
|
|
80
|
+
export declare function getThemeAccentInfo(accent: ThemeAccentPreset): ThemeAccentInfo;
|
|
81
|
+
export declare function getThemeAccentLabel(accent: ThemeAccentPreset): string;
|
|
82
|
+
export declare function getAvailableThemeAccents(): ThemeAccentPreset[];
|
|
70
83
|
export declare class Theme {
|
|
71
84
|
readonly name?: string;
|
|
72
85
|
readonly sourcePath?: string;
|
|
@@ -96,12 +109,12 @@ export interface ThemeInfo {
|
|
|
96
109
|
path: string | undefined;
|
|
97
110
|
}
|
|
98
111
|
export declare function getAvailableThemesWithPaths(): ThemeInfo[];
|
|
99
|
-
export declare function loadThemeFromPath(themePath: string, mode?: ColorMode): Theme;
|
|
100
|
-
export declare function getThemeByName(name: string): Theme | undefined;
|
|
112
|
+
export declare function loadThemeFromPath(themePath: string, mode?: ColorMode, accent?: ResolvedThemeAccentPreset): Theme;
|
|
113
|
+
export declare function getThemeByName(name: string, accent?: string): Theme | undefined;
|
|
101
114
|
export declare const theme: Theme;
|
|
102
115
|
export declare function setRegisteredThemes(themes: Theme[]): void;
|
|
103
|
-
export declare function initTheme(themeName?: string, enableWatcher?: boolean): void;
|
|
104
|
-
export declare function setTheme(name: string, enableWatcher?: boolean): {
|
|
116
|
+
export declare function initTheme(themeName?: string, enableWatcher?: boolean, accent?: string): void;
|
|
117
|
+
export declare function setTheme(name: string, enableWatcher?: boolean, accent?: string): {
|
|
105
118
|
success: boolean;
|
|
106
119
|
error?: string;
|
|
107
120
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/theme/theme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AA2BtD,QAAA,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/theme/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const ThemeJsonSchema = Type.Object({
|
|
|
30
30
|
success: ColorValueSchema,
|
|
31
31
|
error: ColorValueSchema,
|
|
32
32
|
warning: ColorValueSchema,
|
|
33
|
+
violet: ColorValueSchema,
|
|
33
34
|
muted: ColorValueSchema,
|
|
34
35
|
dim: ColorValueSchema,
|
|
35
36
|
text: ColorValueSchema,
|
|
@@ -88,6 +89,63 @@ const ThemeJsonSchema = Type.Object({
|
|
|
88
89
|
})),
|
|
89
90
|
});
|
|
90
91
|
const validateThemeJson = TypeCompiler.Compile(ThemeJsonSchema);
|
|
92
|
+
export const THEME_ACCENT_PRESETS = ["default", "golden-yellow", "blue", "green", "violet", "red"];
|
|
93
|
+
const THEME_ACCENT_INFO = {
|
|
94
|
+
default: {
|
|
95
|
+
label: "Default",
|
|
96
|
+
description: "Use the active theme’s native accent colors.",
|
|
97
|
+
accent: undefined,
|
|
98
|
+
thinking: undefined,
|
|
99
|
+
},
|
|
100
|
+
"golden-yellow": {
|
|
101
|
+
label: "Golden yellow",
|
|
102
|
+
description: "Warm amber accent (#F59E0B).",
|
|
103
|
+
accent: "#F59E0B",
|
|
104
|
+
thinking: ["#92400E", "#B45309", "#D97706", "#F59E0B", "#FBBF24", "#FCD34D"],
|
|
105
|
+
},
|
|
106
|
+
blue: {
|
|
107
|
+
label: "Blue",
|
|
108
|
+
description: "Bright blue accent (#60A5FA).",
|
|
109
|
+
accent: "#60A5FA",
|
|
110
|
+
thinking: ["#1D4ED8", "#2563EB", "#3B82F6", "#60A5FA", "#93C5FD", "#BFDBFE"],
|
|
111
|
+
},
|
|
112
|
+
green: {
|
|
113
|
+
label: "Green",
|
|
114
|
+
description: "Emerald accent (#34D399).",
|
|
115
|
+
accent: "#34D399",
|
|
116
|
+
thinking: ["#047857", "#059669", "#10B981", "#34D399", "#6EE7B7", "#A7F3D0"],
|
|
117
|
+
},
|
|
118
|
+
violet: {
|
|
119
|
+
label: "Violet",
|
|
120
|
+
description: "Soft violet accent (#A78BFA).",
|
|
121
|
+
accent: "#A78BFA",
|
|
122
|
+
thinking: ["#6D28D9", "#7C3AED", "#8B5CF6", "#A78BFA", "#C4B5FD", "#DDD6FE"],
|
|
123
|
+
},
|
|
124
|
+
red: {
|
|
125
|
+
label: "Red",
|
|
126
|
+
description: "Coral red accent (#F87171).",
|
|
127
|
+
accent: "#F87171",
|
|
128
|
+
thinking: ["#B91C1C", "#DC2626", "#EF4444", "#F87171", "#FCA5A5", "#FECACA"],
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
export function getThemeAccentInfo(accent) {
|
|
132
|
+
return THEME_ACCENT_INFO[accent];
|
|
133
|
+
}
|
|
134
|
+
export function getThemeAccentLabel(accent) {
|
|
135
|
+
return THEME_ACCENT_INFO[accent].label;
|
|
136
|
+
}
|
|
137
|
+
export function getAvailableThemeAccents() {
|
|
138
|
+
return [...THEME_ACCENT_PRESETS];
|
|
139
|
+
}
|
|
140
|
+
function isThemeAccentPreset(value) {
|
|
141
|
+
return value !== undefined && THEME_ACCENT_PRESETS.includes(value);
|
|
142
|
+
}
|
|
143
|
+
function normalizeThemeAccent(accent) {
|
|
144
|
+
if (accent === undefined || accent === "default" || !isThemeAccentPreset(accent)) {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
return accent;
|
|
148
|
+
}
|
|
91
149
|
// ============================================================================
|
|
92
150
|
// Color Utilities
|
|
93
151
|
// ============================================================================
|
|
@@ -440,9 +498,60 @@ function loadThemeJson(name) {
|
|
|
440
498
|
const content = fs.readFileSync(themePath, "utf-8");
|
|
441
499
|
return parseThemeJsonContent(name, content);
|
|
442
500
|
}
|
|
443
|
-
function
|
|
501
|
+
function applyThemeAccent(themeJson, accent) {
|
|
502
|
+
if (!accent) {
|
|
503
|
+
return themeJson;
|
|
504
|
+
}
|
|
505
|
+
const accentColor = THEME_ACCENT_INFO[accent].accent;
|
|
506
|
+
const thinkingPalette = THEME_ACCENT_INFO[accent].thinking;
|
|
507
|
+
const vars = { ...(themeJson.vars ?? {}) };
|
|
508
|
+
const colors = { ...themeJson.colors };
|
|
509
|
+
const originalAccent = resolveVarRefs(themeJson.colors.accent, themeJson.vars ?? {});
|
|
510
|
+
const accentDrivenKeys = [
|
|
511
|
+
"accent",
|
|
512
|
+
"borderAccent",
|
|
513
|
+
"mdCode",
|
|
514
|
+
"mdListBullet",
|
|
515
|
+
"thinkingOff",
|
|
516
|
+
"thinkingMinimal",
|
|
517
|
+
"thinkingLow",
|
|
518
|
+
"thinkingMedium",
|
|
519
|
+
"thinkingHigh",
|
|
520
|
+
"thinkingXhigh",
|
|
521
|
+
];
|
|
522
|
+
if ("accent" in vars) {
|
|
523
|
+
vars.accent = accentColor;
|
|
524
|
+
}
|
|
525
|
+
colors.thinkingOff = thinkingPalette[0];
|
|
526
|
+
colors.thinkingMinimal = thinkingPalette[1];
|
|
527
|
+
colors.thinkingLow = thinkingPalette[2];
|
|
528
|
+
colors.thinkingMedium = thinkingPalette[3];
|
|
529
|
+
colors.thinkingHigh = thinkingPalette[4];
|
|
530
|
+
colors.thinkingXhigh = thinkingPalette[5];
|
|
531
|
+
for (const key of accentDrivenKeys) {
|
|
532
|
+
if (key === "thinkingOff" ||
|
|
533
|
+
key === "thinkingMinimal" ||
|
|
534
|
+
key === "thinkingLow" ||
|
|
535
|
+
key === "thinkingMedium" ||
|
|
536
|
+
key === "thinkingHigh" ||
|
|
537
|
+
key === "thinkingXhigh") {
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
const currentResolved = resolveVarRefs(themeJson.colors[key], themeJson.vars ?? {});
|
|
541
|
+
if (key === "accent" || key === "borderAccent" || currentResolved === originalAccent) {
|
|
542
|
+
colors[key] = accentColor;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
return {
|
|
546
|
+
...themeJson,
|
|
547
|
+
vars,
|
|
548
|
+
colors,
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
function createTheme(themeJson, mode, sourcePath, accent) {
|
|
444
552
|
const colorMode = mode ?? detectColorMode();
|
|
445
|
-
const
|
|
553
|
+
const resolvedThemeJson = applyThemeAccent(themeJson, accent);
|
|
554
|
+
const resolvedColors = resolveThemeColors(resolvedThemeJson.colors, resolvedThemeJson.vars);
|
|
446
555
|
const fgColors = {};
|
|
447
556
|
const bgColors = {};
|
|
448
557
|
const bgColorKeys = new Set([
|
|
@@ -462,26 +571,31 @@ function createTheme(themeJson, mode, sourcePath) {
|
|
|
462
571
|
}
|
|
463
572
|
}
|
|
464
573
|
return new Theme(fgColors, bgColors, colorMode, {
|
|
465
|
-
name:
|
|
574
|
+
name: resolvedThemeJson.name,
|
|
466
575
|
sourcePath,
|
|
467
576
|
});
|
|
468
577
|
}
|
|
469
|
-
export function loadThemeFromPath(themePath, mode) {
|
|
578
|
+
export function loadThemeFromPath(themePath, mode, accent) {
|
|
470
579
|
const content = fs.readFileSync(themePath, "utf-8");
|
|
471
580
|
const themeJson = parseThemeJsonContent(themePath, content);
|
|
472
|
-
return createTheme(themeJson, mode, themePath);
|
|
581
|
+
return createTheme(themeJson, mode, themePath, accent);
|
|
473
582
|
}
|
|
474
|
-
function loadTheme(name, mode) {
|
|
583
|
+
function loadTheme(name, mode, accent) {
|
|
475
584
|
const registeredTheme = registeredThemes.get(name);
|
|
476
585
|
if (registeredTheme) {
|
|
477
|
-
|
|
586
|
+
if (!accent) {
|
|
587
|
+
return registeredTheme;
|
|
588
|
+
}
|
|
589
|
+
if (registeredTheme.sourcePath) {
|
|
590
|
+
return loadThemeFromPath(registeredTheme.sourcePath, mode, accent);
|
|
591
|
+
}
|
|
478
592
|
}
|
|
479
593
|
const themeJson = loadThemeJson(name);
|
|
480
|
-
return createTheme(themeJson, mode);
|
|
594
|
+
return createTheme(themeJson, mode, undefined, accent);
|
|
481
595
|
}
|
|
482
|
-
export function getThemeByName(name) {
|
|
596
|
+
export function getThemeByName(name, accent) {
|
|
483
597
|
try {
|
|
484
|
-
return loadTheme(name);
|
|
598
|
+
return loadTheme(name, undefined, normalizeThemeAccent(accent));
|
|
485
599
|
}
|
|
486
600
|
catch {
|
|
487
601
|
return undefined;
|
|
@@ -523,6 +637,7 @@ function setGlobalTheme(t) {
|
|
|
523
637
|
globalThis[THEME_KEY] = t;
|
|
524
638
|
}
|
|
525
639
|
let currentThemeName;
|
|
640
|
+
let currentThemeAccent;
|
|
526
641
|
let themeWatcher;
|
|
527
642
|
const onThemeChangeCallbacks = new Set();
|
|
528
643
|
const registeredThemes = new Map();
|
|
@@ -534,11 +649,13 @@ export function setRegisteredThemes(themes) {
|
|
|
534
649
|
}
|
|
535
650
|
}
|
|
536
651
|
}
|
|
537
|
-
export function initTheme(themeName, enableWatcher = false) {
|
|
652
|
+
export function initTheme(themeName, enableWatcher = false, accent) {
|
|
538
653
|
const name = themeName ?? getDefaultTheme();
|
|
654
|
+
const normalizedAccent = normalizeThemeAccent(accent);
|
|
539
655
|
currentThemeName = name;
|
|
656
|
+
currentThemeAccent = normalizedAccent;
|
|
540
657
|
try {
|
|
541
|
-
setGlobalTheme(loadTheme(name));
|
|
658
|
+
setGlobalTheme(loadTheme(name, undefined, normalizedAccent));
|
|
542
659
|
if (enableWatcher) {
|
|
543
660
|
startThemeWatcher();
|
|
544
661
|
}
|
|
@@ -546,14 +663,16 @@ export function initTheme(themeName, enableWatcher = false) {
|
|
|
546
663
|
catch (_error) {
|
|
547
664
|
// Theme is invalid - fall back to dark theme silently
|
|
548
665
|
currentThemeName = "dark";
|
|
549
|
-
setGlobalTheme(loadTheme("dark"));
|
|
666
|
+
setGlobalTheme(loadTheme("dark", undefined, normalizedAccent));
|
|
550
667
|
// Don't start watcher for fallback theme
|
|
551
668
|
}
|
|
552
669
|
}
|
|
553
|
-
export function setTheme(name, enableWatcher = false) {
|
|
670
|
+
export function setTheme(name, enableWatcher = false, accent) {
|
|
671
|
+
const normalizedAccent = normalizeThemeAccent(accent);
|
|
554
672
|
currentThemeName = name;
|
|
673
|
+
currentThemeAccent = normalizedAccent;
|
|
555
674
|
try {
|
|
556
|
-
setGlobalTheme(loadTheme(name));
|
|
675
|
+
setGlobalTheme(loadTheme(name, undefined, normalizedAccent));
|
|
557
676
|
if (enableWatcher) {
|
|
558
677
|
startThemeWatcher();
|
|
559
678
|
}
|
|
@@ -563,7 +682,7 @@ export function setTheme(name, enableWatcher = false) {
|
|
|
563
682
|
catch (error) {
|
|
564
683
|
// Theme is invalid - fall back to dark theme
|
|
565
684
|
currentThemeName = "dark";
|
|
566
|
-
setGlobalTheme(loadTheme("dark"));
|
|
685
|
+
setGlobalTheme(loadTheme("dark", undefined, normalizedAccent));
|
|
567
686
|
// Don't start watcher for fallback theme
|
|
568
687
|
return {
|
|
569
688
|
success: false,
|
|
@@ -604,7 +723,7 @@ function startThemeWatcher() {
|
|
|
604
723
|
setTimeout(() => {
|
|
605
724
|
try {
|
|
606
725
|
// Reload the theme
|
|
607
|
-
setGlobalTheme(loadTheme(currentThemeName));
|
|
726
|
+
setGlobalTheme(loadTheme(currentThemeName, undefined, currentThemeAccent));
|
|
608
727
|
// Notify callbacks (to invalidate UI)
|
|
609
728
|
onThemeChangeCallbacks.forEach(cb => cb());
|
|
610
729
|
}
|
|
@@ -618,7 +737,7 @@ function startThemeWatcher() {
|
|
|
618
737
|
setTimeout(() => {
|
|
619
738
|
if (!fs.existsSync(themeFile)) {
|
|
620
739
|
currentThemeName = "dark";
|
|
621
|
-
setGlobalTheme(loadTheme("dark"));
|
|
740
|
+
setGlobalTheme(loadTheme("dark", undefined, currentThemeAccent));
|
|
622
741
|
if (themeWatcher) {
|
|
623
742
|
themeWatcher.close();
|
|
624
743
|
themeWatcher = undefined;
|
|
@@ -692,7 +811,7 @@ function ansi256ToHex(index) {
|
|
|
692
811
|
export function getResolvedThemeColors(themeName) {
|
|
693
812
|
const name = themeName ?? currentThemeName ?? getDefaultTheme();
|
|
694
813
|
const isLight = name === "light";
|
|
695
|
-
const themeJson = loadThemeJson(name);
|
|
814
|
+
const themeJson = applyThemeAccent(loadThemeJson(name), currentThemeAccent);
|
|
696
815
|
const resolved = resolveThemeColors(themeJson.colors, themeJson.vars);
|
|
697
816
|
// Default text color for empty values (terminal uses default fg color)
|
|
698
817
|
const defaultText = isLight ? "#000000" : "#e5e5e7";
|
|
@@ -718,7 +837,7 @@ export function getResolvedThemeColors(themeName) {
|
|
|
718
837
|
export function getThemeExportColors(themeName) {
|
|
719
838
|
const name = themeName ?? currentThemeName ?? getDefaultTheme();
|
|
720
839
|
try {
|
|
721
|
-
const themeJson = loadThemeJson(name);
|
|
840
|
+
const themeJson = applyThemeAccent(loadThemeJson(name), currentThemeAccent);
|
|
722
841
|
const exportSection = themeJson.export;
|
|
723
842
|
if (!exportSection)
|
|
724
843
|
return {};
|