@toddzheng024/dscode-bundle 0.7.11 → 0.7.13
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/THIRD_PARTY_NOTICES.md +3 -3
- package/cordis.patch.yml +1 -1
- package/package.json +5 -4
- package/plugins/i18n/messages.mjs +6 -6
- package/plugins/session-metrics/view.mjs +16 -5
- package/plugins/tui-tools/index.mjs +14 -1
- package/vendor/tui/lib/app.mjs +6674 -0
- package/vendor/tui/lib/approval.mjs +122 -0
- package/vendor/tui/lib/attachments.mjs +218 -0
- package/vendor/tui/lib/authorization-panel.mjs +242 -0
- package/vendor/tui/lib/authorization.mjs +111 -0
- package/vendor/tui/lib/commands.mjs +123 -0
- package/vendor/tui/lib/dscode/chat.mjs +64 -0
- package/vendor/tui/lib/dscode/flags.mjs +32 -0
- package/vendor/tui/lib/dscode/model-search.mjs +68 -0
- package/vendor/tui/lib/dscode/paste.mjs +87 -0
- package/vendor/tui/lib/dscode/telemetry.mjs +82 -0
- package/vendor/tui/lib/dscode/welcome.mjs +100 -0
- package/vendor/tui/lib/editor-keys.mjs +346 -0
- package/vendor/tui/lib/editor.mjs +50 -0
- package/vendor/tui/lib/fork.mjs +24 -0
- package/vendor/tui/lib/git-workflow.mjs +278 -0
- package/vendor/tui/{types/history.d.ts → lib/history.mjs} +69 -26
- package/vendor/tui/{types/i18n.d.ts → lib/i18n.mjs} +23 -15
- package/vendor/tui/lib/index.mjs +2198 -0
- package/vendor/tui/lib/input-split.mjs +170 -0
- package/vendor/tui/lib/internals.mjs +90 -0
- package/vendor/tui/lib/invariant.mjs +22 -0
- package/vendor/tui/lib/kernel-panels.mjs +1265 -0
- package/vendor/tui/lib/keyboard.mjs +283 -0
- package/vendor/tui/lib/language-panel.mjs +41 -0
- package/vendor/tui/lib/locales/en.mjs +495 -0
- package/vendor/tui/lib/locales/zh.mjs +495 -0
- package/vendor/tui/lib/mentions.mjs +150 -0
- package/vendor/tui/lib/model-capabilities.mjs +245 -0
- package/vendor/tui/lib/models.mjs +215 -0
- package/vendor/tui/{types/panel-accent.d.ts → lib/panel-accent.mjs} +11 -7
- package/vendor/tui/lib/permissions.mjs +45 -0
- package/vendor/tui/lib/plugin-inventory.mjs +27 -0
- package/vendor/tui/lib/presets.mjs +46 -0
- package/vendor/tui/lib/provider-settings.mjs +600 -0
- package/vendor/tui/lib/questions.mjs +116 -0
- package/vendor/tui/lib/rainbow.mjs +181 -0
- package/vendor/tui/lib/render/animations.mjs +665 -0
- package/vendor/tui/lib/render/editor.mjs +437 -0
- package/vendor/tui/lib/render/export.mjs +119 -0
- package/vendor/tui/lib/render/fuzzy.mjs +79 -0
- package/vendor/tui/lib/render/ime-cursor.mjs +135 -0
- package/vendor/tui/lib/render/inspector.mjs +93 -0
- package/vendor/tui/lib/render/lines.mjs +538 -0
- package/vendor/tui/lib/render/markdown.mjs +592 -0
- package/vendor/tui/lib/render/projection.mjs +1862 -0
- package/vendor/tui/lib/render/status.mjs +591 -0
- package/vendor/tui/lib/render/text.mjs +157 -0
- package/vendor/tui/lib/render/tool-detail.mjs +187 -0
- package/vendor/tui/lib/render/tool-preview.mjs +79 -0
- package/vendor/tui/lib/render/usage.mjs +336 -0
- package/vendor/tui/lib/render/width.mjs +191 -0
- package/vendor/tui/lib/session-directory.mjs +329 -0
- package/vendor/tui/lib/session-query.mjs +184 -0
- package/vendor/tui/lib/session-switch.mjs +51 -0
- package/vendor/tui/lib/settings-file.mjs +75 -0
- package/vendor/tui/lib/skills.mjs +119 -0
- package/vendor/tui/lib/startup.mjs +111 -0
- package/vendor/tui/lib/store.mjs +129 -0
- package/vendor/tui/lib/subagents.mjs +200 -0
- package/vendor/tui/lib/terminal-title.mjs +186 -0
- package/vendor/tui/lib/theme-panel.mjs +60 -0
- package/vendor/tui/lib/theme.mjs +379 -0
- package/vendor/tui/lib/update-panel.mjs +239 -0
- package/vendor/tui/lib/update.mjs +101 -0
- package/vendor/tui/lib/version.mjs +105 -0
- package/vendor/tui/lib/whale-glyph.mjs +20 -0
- package/vendor/tui/LICENSE +0 -21
- package/vendor/tui/devtools-CdTl3MNy.mjs +0 -3643
- package/vendor/tui/dscode-email/cli.mjs +0 -32
- package/vendor/tui/dscode-email/contacts.mjs +0 -36
- package/vendor/tui/dscode-email/gmail-oauth.mjs +0 -69
- package/vendor/tui/dscode-email/gmail-store.mjs +0 -2
- package/vendor/tui/dscode-email/gmail.mjs +0 -194
- package/vendor/tui/dscode-email/imap.mjs +0 -136
- package/vendor/tui/dscode-email/inbox.d.mts +0 -25
- package/vendor/tui/dscode-email/inbox.mjs +0 -76
- package/vendor/tui/dscode-email/smtp.mjs +0 -69
- package/vendor/tui/dscode-email/store.mjs +0 -32
- package/vendor/tui/dscode-providers/catalog.mjs +0 -136
- package/vendor/tui/dscode-providers/effort.mjs +0 -35
- package/vendor/tui/dscode-providers/openrouter-account.mjs +0 -171
- package/vendor/tui/index.mjs +0 -44483
- package/vendor/tui/invariant.mjs +0 -21
- package/vendor/tui/rolldown-runtime-CMFfr-1z.mjs +0 -26
- package/vendor/tui/session-query.mjs +0 -150
- package/vendor/tui/startup.mjs +0 -109
- package/vendor/tui/theme-7u5Qo3dF.mjs +0 -1265
- package/vendor/tui/types/app.d.ts +0 -348
- package/vendor/tui/types/approval.d.ts +0 -59
- package/vendor/tui/types/attachments.d.ts +0 -52
- package/vendor/tui/types/authorization-panel.d.ts +0 -22
- package/vendor/tui/types/authorization.d.ts +0 -36
- package/vendor/tui/types/commands.d.ts +0 -52
- package/vendor/tui/types/editor-keys.d.ts +0 -105
- package/vendor/tui/types/editor.d.ts +0 -6
- package/vendor/tui/types/fork.d.ts +0 -8
- package/vendor/tui/types/git-workflow.d.ts +0 -121
- package/vendor/tui/types/index.d.ts +0 -223
- package/vendor/tui/types/input-split.d.ts +0 -54
- package/vendor/tui/types/internals.d.ts +0 -26
- package/vendor/tui/types/invariant.d.ts +0 -15
- package/vendor/tui/types/kernel-panels.d.ts +0 -245
- package/vendor/tui/types/keyboard.d.ts +0 -80
- package/vendor/tui/types/language-panel.d.ts +0 -12
- package/vendor/tui/types/locales/en.d.ts +0 -450
- package/vendor/tui/types/locales/zh.d.ts +0 -9
- package/vendor/tui/types/mentions.d.ts +0 -85
- package/vendor/tui/types/model-capabilities.d.ts +0 -82
- package/vendor/tui/types/models.d.ts +0 -133
- package/vendor/tui/types/permissions.d.ts +0 -27
- package/vendor/tui/types/plugin-inventory.d.ts +0 -11
- package/vendor/tui/types/presets.d.ts +0 -22
- package/vendor/tui/types/provider-settings.d.ts +0 -239
- package/vendor/tui/types/questions.d.ts +0 -54
- package/vendor/tui/types/rainbow.d.ts +0 -69
- package/vendor/tui/types/render/animations.d.ts +0 -307
- package/vendor/tui/types/render/editor.d.ts +0 -163
- package/vendor/tui/types/render/export.d.ts +0 -9
- package/vendor/tui/types/render/fuzzy.d.ts +0 -21
- package/vendor/tui/types/render/ime-cursor.d.ts +0 -60
- package/vendor/tui/types/render/inspector.d.ts +0 -62
- package/vendor/tui/types/render/lines.d.ts +0 -86
- package/vendor/tui/types/render/markdown.d.ts +0 -29
- package/vendor/tui/types/render/projection.d.ts +0 -587
- package/vendor/tui/types/render/status.d.ts +0 -196
- package/vendor/tui/types/render/text.d.ts +0 -64
- package/vendor/tui/types/render/tool-detail.d.ts +0 -94
- package/vendor/tui/types/render/tool-preview.d.ts +0 -28
- package/vendor/tui/types/render/usage.d.ts +0 -113
- package/vendor/tui/types/render/width.d.ts +0 -29
- package/vendor/tui/types/session-directory.d.ts +0 -190
- package/vendor/tui/types/session-query.d.ts +0 -92
- package/vendor/tui/types/session-switch.d.ts +0 -17
- package/vendor/tui/types/settings-file.d.ts +0 -41
- package/vendor/tui/types/skills.d.ts +0 -47
- package/vendor/tui/types/startup.d.ts +0 -65
- package/vendor/tui/types/store.d.ts +0 -58
- package/vendor/tui/types/subagents.d.ts +0 -70
- package/vendor/tui/types/terminal-title.d.ts +0 -66
- package/vendor/tui/types/theme-panel.d.ts +0 -24
- package/vendor/tui/types/theme.d.ts +0 -434
- package/vendor/tui/types/update-panel.d.ts +0 -49
- package/vendor/tui/types/update.d.ts +0 -75
- package/vendor/tui/types/version.d.ts +0 -19
- package/vendor/tui/types/whale-glyph.d.ts +0 -6
- /package/vendor/tui/{dscode-clipboard-image → lib/dscode/clipboard-image}/clipboard-image.swift +0 -0
- /package/vendor/tui/{dscode-clipboard-image → lib/dscode/clipboard-image}/index.mjs +0 -0
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `/theme` picker (the Codex `/theme` contract): one bounded list over
|
|
3
|
-
* the three color themes — dark, light, and auto (terminal-sensed; auto
|
|
4
|
-
* falls back to dark until OSC-11 detection lands). Enter applies the row
|
|
5
|
-
* and the runner persists it; Esc closes without changing the theme.
|
|
6
|
-
*
|
|
7
|
-
* @module @deepseek-ai/dsh-tui/theme-panel
|
|
8
|
-
*/
|
|
9
|
-
import { type ReactElement } from 'react';
|
|
10
|
-
import { type ThemeName } from './theme.ts';
|
|
11
|
-
/**
|
|
12
|
-
* The /theme list: one row per theme, the current one marked with ●, the
|
|
13
|
-
* focused one with ›. Enter applies the focused theme (the runner persists
|
|
14
|
-
* it), Esc/q closes without changing anything. Colors read the ACTIVE
|
|
15
|
-
* palette, so the panel itself adapts to a light theme once applied.
|
|
16
|
-
*/
|
|
17
|
-
export declare function ThemePanel({ current, select, close }: {
|
|
18
|
-
/** Theme name in force (the requested name; 'auto' included). */
|
|
19
|
-
current: ThemeName;
|
|
20
|
-
/** Accept one theme name: applied immediately and persisted by the runner. */
|
|
21
|
-
select: (name: ThemeName) => void;
|
|
22
|
-
/** Close without changing the theme. */
|
|
23
|
-
close: () => void;
|
|
24
|
-
}): ReactElement;
|
|
@@ -1,434 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Terminal color tokens for the dsh TUI, mapped from the product design
|
|
3
|
-
* platform's DeepSeek palette
|
|
4
|
-
* (`packages/client/ui-theme/src/styles/design-platform.css`). Truecolor RGB
|
|
5
|
-
* rides chalk, which degrades automatically on terminals without truecolor.
|
|
6
|
-
*
|
|
7
|
-
* Three palettes — `dark` (the default), `light`, and `prismatic` (the
|
|
8
|
-
* neon synthwave skin) — share the same token keys with different values.
|
|
9
|
-
* Painters and the palette accessor read the ACTIVE
|
|
10
|
-
* palette selected through {@link setTheme}, so a theme switch recolors every
|
|
11
|
-
* painted surface on the next render without touching call sites; consumers
|
|
12
|
-
* read colors through {@link getPalette} or the painters below only.
|
|
13
|
-
*
|
|
14
|
-
* @module @deepseek-ai/dsh-tui/theme
|
|
15
|
-
*/
|
|
16
|
-
/** One RGB triple for a palette token. */
|
|
17
|
-
export type RgbTriple = readonly [number, number, number];
|
|
18
|
-
/** Palette token keys shared by every theme. */
|
|
19
|
-
export type ThemeToken = 'brand' | 'brandBright' | 'brandMid' | 'brandDeep' | 'dim' | 'success' | 'error' | 'warn' | 'text' | 'code' | 'composerBand' | 'diffAdd' | 'diffDel' | 'diffAddFg' | 'diffDelFg' | 'surface' | 'prompt' | 'queued' | 'steered';
|
|
20
|
-
/** One full color palette: every token key mapped to an RGB triple. */
|
|
21
|
-
export type ThemePalette = Readonly<Record<ThemeToken, RgbTriple>>;
|
|
22
|
-
/** Selectable theme names: dark, light, prismatic, rainbow, or auto (terminal-sensed). */
|
|
23
|
-
export type ThemeName = 'dark' | 'light' | 'prismatic' | 'rainbow' | 'auto';
|
|
24
|
-
/** Valid theme names in canonical picker order. */
|
|
25
|
-
export declare const THEME_NAMES: readonly ThemeName[];
|
|
26
|
-
/** One /theme picker row: the theme id plus its display copy. */
|
|
27
|
-
export interface ThemeDescriptor {
|
|
28
|
-
/** The selectable theme name. */
|
|
29
|
-
readonly id: ThemeName;
|
|
30
|
-
/** Short row label shown in the picker. */
|
|
31
|
-
readonly label: string;
|
|
32
|
-
/** One-line description shown after the label. */
|
|
33
|
-
readonly description: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Every theme's picker metadata in canonical order — the single source the
|
|
37
|
-
* /theme panel rows derive from; {@link THEME_NAMES} stays the validation
|
|
38
|
-
* list. Adding a theme means adding its palette plus one row here.
|
|
39
|
-
*/
|
|
40
|
-
export declare const THEMES: readonly ThemeDescriptor[];
|
|
41
|
-
/**
|
|
42
|
-
* DeepSeek dark palette: the original TUI colors, one entry per
|
|
43
|
-
* design-platform token in use. Keep names and values in sync with the CSS
|
|
44
|
-
* custom properties cited inline.
|
|
45
|
-
*/
|
|
46
|
-
export declare const DARK_PALETTE: {
|
|
47
|
-
/** Primary brand blue — `--dsw-static-deepseek-500`. */
|
|
48
|
-
readonly brand: readonly [65, 118, 230];
|
|
49
|
-
/** Brighter brand blue for live/streaming emphasis — `--dsw-static-deepseek-400`. */
|
|
50
|
-
readonly brandBright: readonly [103, 158, 254];
|
|
51
|
-
/** Intermediate brand blue between brand and brandBright — `--dsw-static-deepseek-450`. */
|
|
52
|
-
readonly brandMid: readonly [86, 134, 254];
|
|
53
|
-
/** Deep brand blue for secondary chrome — `--dsw-static-deepseek-600`. */
|
|
54
|
-
readonly brandDeep: readonly [72, 104, 178];
|
|
55
|
-
/** Muted caption gray — `--dsw-static-neutral-bluish-600`. */
|
|
56
|
-
readonly dim: readonly [129, 133, 140];
|
|
57
|
-
/** Success green — `--dsw-static-green-500`. */
|
|
58
|
-
readonly success: readonly [34, 197, 94];
|
|
59
|
-
/** Error red — `--dsw-static-red-500`. */
|
|
60
|
-
readonly error: readonly [239, 68, 68];
|
|
61
|
-
/** Warning amber — `--dsw-static-amber-500`. */
|
|
62
|
-
readonly warn: readonly [245, 158, 11];
|
|
63
|
-
/** Default foreground text — `--dsw-static-neutral-50`. */
|
|
64
|
-
readonly text: readonly [236, 240, 246];
|
|
65
|
-
/** Inline/fenced code — soft sky blue, distinct from brand accents. */
|
|
66
|
-
readonly code: readonly [125, 211, 252];
|
|
67
|
-
/** Composer three-row band base — neutral light gray, hue-free so wave tints read on it. */
|
|
68
|
-
readonly composerBand: readonly [46, 48, 52];
|
|
69
|
-
/** Diff added-line background — Codex's muted dark green tint (#213A2B). */
|
|
70
|
-
readonly diffAdd: readonly [33, 58, 43];
|
|
71
|
-
/** Diff removed-line background — Codex's muted dark red tint (#4A221D). */
|
|
72
|
-
readonly diffDel: readonly [74, 34, 29];
|
|
73
|
-
/** Diff added-line foreground — green-500, 5.4:1 on the diffAdd tint. */
|
|
74
|
-
readonly diffAddFg: readonly [34, 197, 94];
|
|
75
|
-
/** Diff removed-line foreground — red-400, 4.9:1 on the diffDel tint (error's red-500 sinks to 3.6:1 on it). */
|
|
76
|
-
readonly diffDelFg: readonly [248, 113, 113];
|
|
77
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
78
|
-
readonly surface: readonly [0, 0, 0];
|
|
79
|
-
/**
|
|
80
|
-
* The three prompt-row colors, one per delivery kind. They are the palette's
|
|
81
|
-
* own accents (bright brand, warning amber, violet) rather than fixed RGBs,
|
|
82
|
-
* and every row's bar is these colors laid over {@link surface}.
|
|
83
|
-
*/
|
|
84
|
-
readonly prompt: readonly [103, 158, 254];
|
|
85
|
-
readonly queued: readonly [245, 158, 11];
|
|
86
|
-
readonly steered: readonly [167, 139, 250];
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Light palette tuned for white terminals: the same token keys as dark with
|
|
90
|
-
* contrast-driven values (AA on a white background). Brand keeps its dark
|
|
91
|
-
* value (≈4.2:1 on white — reserved for bold/accent spans; body-size brand
|
|
92
|
-
* text uses brandBright at ≈5.4:1); the bright/mid/deep blues, muted grays,
|
|
93
|
-
* and status colors deepen so they stay legible on bright backgrounds.
|
|
94
|
-
*/
|
|
95
|
-
export declare const LIGHT_PALETTE: {
|
|
96
|
-
/** Primary brand blue — unchanged design-platform value; ≈4.2:1 on white, so bold/accent spans only (body-size brand text uses brandBright). */
|
|
97
|
-
readonly brand: readonly [65, 118, 230];
|
|
98
|
-
/** Brighter brand blue deepened for white backgrounds (was 2.7:1). */
|
|
99
|
-
readonly brandBright: readonly [72, 104, 178];
|
|
100
|
-
/** Intermediate brand blue — Tailwind blue-500. */
|
|
101
|
-
readonly brandMid: readonly [59, 130, 246];
|
|
102
|
-
/** Deep brand blue for secondary chrome — `--dsw-static-deepseek-700`. */
|
|
103
|
-
readonly brandDeep: readonly [47, 76, 143];
|
|
104
|
-
/** Muted caption gray deepened for white backgrounds. */
|
|
105
|
-
readonly dim: readonly [101, 103, 107];
|
|
106
|
-
/** Success green — Tailwind green-700. */
|
|
107
|
-
readonly success: readonly [21, 128, 61];
|
|
108
|
-
/** Error red — Tailwind red-600. */
|
|
109
|
-
readonly error: readonly [236, 19, 19];
|
|
110
|
-
/** Warning amber — Tailwind amber-700. */
|
|
111
|
-
readonly warn: readonly [180, 83, 9];
|
|
112
|
-
/** Default foreground text — near-black. */
|
|
113
|
-
readonly text: readonly [21, 21, 23];
|
|
114
|
-
/** Inline/fenced code — Tailwind cyan-700, distinct from brand accents. */
|
|
115
|
-
readonly code: readonly [14, 116, 144];
|
|
116
|
-
/** Composer three-row band base — neutral light gray, hue-free so wave tints read on it. */
|
|
117
|
-
readonly composerBand: readonly [229, 231, 235];
|
|
118
|
-
/** Diff added-line background — GitHub's pastel green (#dafbe1), Codex's light pick. */
|
|
119
|
-
readonly diffAdd: readonly [218, 251, 225];
|
|
120
|
-
/** Diff removed-line background — GitHub's pastel red (#ffebe9), Codex's light pick. */
|
|
121
|
-
readonly diffDel: readonly [255, 235, 233];
|
|
122
|
-
/** Diff added-line foreground — green-800, 6.4:1 on the pastel tint (green-700 clears 4.5:1 by a hair). */
|
|
123
|
-
readonly diffAddFg: readonly [22, 101, 52];
|
|
124
|
-
/** Diff removed-line foreground — red-700, 5.6:1 on the pastel tint (error's red-600 is 3.9:1). */
|
|
125
|
-
readonly diffDelFg: readonly [185, 28, 28];
|
|
126
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
127
|
-
readonly surface: readonly [255, 255, 255];
|
|
128
|
-
/**
|
|
129
|
-
* Prompt-row colors deepened for white: the amber and violet the dark theme
|
|
130
|
-
* uses sit at the AA edge on their own pastel bars, so each kind carries a
|
|
131
|
-
* value that clears 4.5:1 both on the bar and on plain white.
|
|
132
|
-
*/
|
|
133
|
-
readonly prompt: readonly [47, 76, 143];
|
|
134
|
-
readonly queued: readonly [124, 53, 10];
|
|
135
|
-
readonly steered: readonly [109, 40, 217];
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* Prismatic palette — the neon synthwave skin (docs/prismatic-theme-design.md):
|
|
139
|
-
* electric violet replaces the brand blues, neon fuchsia carries live
|
|
140
|
-
* emphasis, neon cyan paints code, and a lavender gray dims captions. Paints
|
|
141
|
-
* on a black terminal; every value meets the same WCAG thresholds as the
|
|
142
|
-
* other palettes (body tokens ≥4.5:1, accents ≥3:1 on pure black). Semantic
|
|
143
|
-
* colors — success/error/warn and the four diff tokens — reuse the dark
|
|
144
|
-
* values verbatim so green still means added and red still means removed.
|
|
145
|
-
*/
|
|
146
|
-
export declare const PRISMATIC_PALETTE: {
|
|
147
|
-
/** Primary electric purple — violet-500 (#8B5CF6), 5.0:1 on black. */
|
|
148
|
-
readonly brand: readonly [139, 92, 246];
|
|
149
|
-
/** Live/streaming emphasis — neon fuchsia-300 (#F0ABFC), 11.9:1 on black. */
|
|
150
|
-
readonly brandBright: readonly [240, 171, 252];
|
|
151
|
-
/** Intermediate violet — violet-400 (#A78BFA), 7.7:1 on black. */
|
|
152
|
-
readonly brandMid: readonly [167, 139, 250];
|
|
153
|
-
/** Deep secondary chrome — violet-600 (#7C3AED), 3.7:1 on black (violet-700 misses 3:1). */
|
|
154
|
-
readonly brandDeep: readonly [124, 58, 237];
|
|
155
|
-
/** Muted captions — lavender gray (#A6A3B8), 8.6:1 on black. */
|
|
156
|
-
readonly dim: readonly [166, 163, 184];
|
|
157
|
-
/** Success green — unchanged from dark. */
|
|
158
|
-
readonly success: readonly [34, 197, 94];
|
|
159
|
-
/** Error red — unchanged from dark. */
|
|
160
|
-
readonly error: readonly [239, 68, 68];
|
|
161
|
-
/** Warning amber — unchanged from dark. */
|
|
162
|
-
readonly warn: readonly [245, 158, 11];
|
|
163
|
-
/** Default foreground text — white with a lavender cast (#F0EEF9). */
|
|
164
|
-
readonly text: readonly [240, 238, 249];
|
|
165
|
-
/** Inline/fenced code — neon cyan-300 (#67E8F9), 14.5:1 on black. */
|
|
166
|
-
readonly code: readonly [103, 232, 249];
|
|
167
|
-
/** Composer three-row band base — neutral dark gray, hue-free so wave tints read on it. */
|
|
168
|
-
readonly composerBand: readonly [46, 46, 52];
|
|
169
|
-
/** Diff added-line background — unchanged from dark. */
|
|
170
|
-
readonly diffAdd: readonly [33, 58, 43];
|
|
171
|
-
/** Diff removed-line background — unchanged from dark. */
|
|
172
|
-
readonly diffDel: readonly [74, 34, 29];
|
|
173
|
-
/** Diff added-line foreground — unchanged from dark. */
|
|
174
|
-
readonly diffAddFg: readonly [34, 197, 94];
|
|
175
|
-
/** Diff removed-line foreground — unchanged from dark. */
|
|
176
|
-
readonly diffDelFg: readonly [248, 113, 113];
|
|
177
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
178
|
-
readonly surface: readonly [0, 0, 0];
|
|
179
|
-
/** Prompt rows in the skin's own neon: fuchsia, amber, cyan. */
|
|
180
|
-
readonly prompt: readonly [240, 171, 252];
|
|
181
|
-
readonly queued: readonly [245, 158, 11];
|
|
182
|
-
readonly steered: readonly [103, 232, 249];
|
|
183
|
-
};
|
|
184
|
-
/**
|
|
185
|
-
* Every STATIC palette by theme name; auto resolves through {@link resolveTheme}
|
|
186
|
-
* and rainbow is rolled per launch ({@link rainbowRoll}), so neither lives
|
|
187
|
-
* here — {@link setTheme} resolves both through the same key space.
|
|
188
|
-
*/
|
|
189
|
-
export declare const PALETTES: {
|
|
190
|
-
readonly dark: {
|
|
191
|
-
/** Primary brand blue — `--dsw-static-deepseek-500`. */
|
|
192
|
-
readonly brand: readonly [65, 118, 230];
|
|
193
|
-
/** Brighter brand blue for live/streaming emphasis — `--dsw-static-deepseek-400`. */
|
|
194
|
-
readonly brandBright: readonly [103, 158, 254];
|
|
195
|
-
/** Intermediate brand blue between brand and brandBright — `--dsw-static-deepseek-450`. */
|
|
196
|
-
readonly brandMid: readonly [86, 134, 254];
|
|
197
|
-
/** Deep brand blue for secondary chrome — `--dsw-static-deepseek-600`. */
|
|
198
|
-
readonly brandDeep: readonly [72, 104, 178];
|
|
199
|
-
/** Muted caption gray — `--dsw-static-neutral-bluish-600`. */
|
|
200
|
-
readonly dim: readonly [129, 133, 140];
|
|
201
|
-
/** Success green — `--dsw-static-green-500`. */
|
|
202
|
-
readonly success: readonly [34, 197, 94];
|
|
203
|
-
/** Error red — `--dsw-static-red-500`. */
|
|
204
|
-
readonly error: readonly [239, 68, 68];
|
|
205
|
-
/** Warning amber — `--dsw-static-amber-500`. */
|
|
206
|
-
readonly warn: readonly [245, 158, 11];
|
|
207
|
-
/** Default foreground text — `--dsw-static-neutral-50`. */
|
|
208
|
-
readonly text: readonly [236, 240, 246];
|
|
209
|
-
/** Inline/fenced code — soft sky blue, distinct from brand accents. */
|
|
210
|
-
readonly code: readonly [125, 211, 252];
|
|
211
|
-
/** Composer three-row band base — neutral light gray, hue-free so wave tints read on it. */
|
|
212
|
-
readonly composerBand: readonly [46, 48, 52];
|
|
213
|
-
/** Diff added-line background — Codex's muted dark green tint (#213A2B). */
|
|
214
|
-
readonly diffAdd: readonly [33, 58, 43];
|
|
215
|
-
/** Diff removed-line background — Codex's muted dark red tint (#4A221D). */
|
|
216
|
-
readonly diffDel: readonly [74, 34, 29];
|
|
217
|
-
/** Diff added-line foreground — green-500, 5.4:1 on the diffAdd tint. */
|
|
218
|
-
readonly diffAddFg: readonly [34, 197, 94];
|
|
219
|
-
/** Diff removed-line foreground — red-400, 4.9:1 on the diffDel tint (error's red-500 sinks to 3.6:1 on it). */
|
|
220
|
-
readonly diffDelFg: readonly [248, 113, 113];
|
|
221
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
222
|
-
readonly surface: readonly [0, 0, 0];
|
|
223
|
-
/**
|
|
224
|
-
* The three prompt-row colors, one per delivery kind. They are the palette's
|
|
225
|
-
* own accents (bright brand, warning amber, violet) rather than fixed RGBs,
|
|
226
|
-
* and every row's bar is these colors laid over {@link surface}.
|
|
227
|
-
*/
|
|
228
|
-
readonly prompt: readonly [103, 158, 254];
|
|
229
|
-
readonly queued: readonly [245, 158, 11];
|
|
230
|
-
readonly steered: readonly [167, 139, 250];
|
|
231
|
-
};
|
|
232
|
-
readonly light: {
|
|
233
|
-
/** Primary brand blue — unchanged design-platform value; ≈4.2:1 on white, so bold/accent spans only (body-size brand text uses brandBright). */
|
|
234
|
-
readonly brand: readonly [65, 118, 230];
|
|
235
|
-
/** Brighter brand blue deepened for white backgrounds (was 2.7:1). */
|
|
236
|
-
readonly brandBright: readonly [72, 104, 178];
|
|
237
|
-
/** Intermediate brand blue — Tailwind blue-500. */
|
|
238
|
-
readonly brandMid: readonly [59, 130, 246];
|
|
239
|
-
/** Deep brand blue for secondary chrome — `--dsw-static-deepseek-700`. */
|
|
240
|
-
readonly brandDeep: readonly [47, 76, 143];
|
|
241
|
-
/** Muted caption gray deepened for white backgrounds. */
|
|
242
|
-
readonly dim: readonly [101, 103, 107];
|
|
243
|
-
/** Success green — Tailwind green-700. */
|
|
244
|
-
readonly success: readonly [21, 128, 61];
|
|
245
|
-
/** Error red — Tailwind red-600. */
|
|
246
|
-
readonly error: readonly [236, 19, 19];
|
|
247
|
-
/** Warning amber — Tailwind amber-700. */
|
|
248
|
-
readonly warn: readonly [180, 83, 9];
|
|
249
|
-
/** Default foreground text — near-black. */
|
|
250
|
-
readonly text: readonly [21, 21, 23];
|
|
251
|
-
/** Inline/fenced code — Tailwind cyan-700, distinct from brand accents. */
|
|
252
|
-
readonly code: readonly [14, 116, 144];
|
|
253
|
-
/** Composer three-row band base — neutral light gray, hue-free so wave tints read on it. */
|
|
254
|
-
readonly composerBand: readonly [229, 231, 235];
|
|
255
|
-
/** Diff added-line background — GitHub's pastel green (#dafbe1), Codex's light pick. */
|
|
256
|
-
readonly diffAdd: readonly [218, 251, 225];
|
|
257
|
-
/** Diff removed-line background — GitHub's pastel red (#ffebe9), Codex's light pick. */
|
|
258
|
-
readonly diffDel: readonly [255, 235, 233];
|
|
259
|
-
/** Diff added-line foreground — green-800, 6.4:1 on the pastel tint (green-700 clears 4.5:1 by a hair). */
|
|
260
|
-
readonly diffAddFg: readonly [22, 101, 52];
|
|
261
|
-
/** Diff removed-line foreground — red-700, 5.6:1 on the pastel tint (error's red-600 is 3.9:1). */
|
|
262
|
-
readonly diffDelFg: readonly [185, 28, 28];
|
|
263
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
264
|
-
readonly surface: readonly [255, 255, 255];
|
|
265
|
-
/**
|
|
266
|
-
* Prompt-row colors deepened for white: the amber and violet the dark theme
|
|
267
|
-
* uses sit at the AA edge on their own pastel bars, so each kind carries a
|
|
268
|
-
* value that clears 4.5:1 both on the bar and on plain white.
|
|
269
|
-
*/
|
|
270
|
-
readonly prompt: readonly [47, 76, 143];
|
|
271
|
-
readonly queued: readonly [124, 53, 10];
|
|
272
|
-
readonly steered: readonly [109, 40, 217];
|
|
273
|
-
};
|
|
274
|
-
readonly prismatic: {
|
|
275
|
-
/** Primary electric purple — violet-500 (#8B5CF6), 5.0:1 on black. */
|
|
276
|
-
readonly brand: readonly [139, 92, 246];
|
|
277
|
-
/** Live/streaming emphasis — neon fuchsia-300 (#F0ABFC), 11.9:1 on black. */
|
|
278
|
-
readonly brandBright: readonly [240, 171, 252];
|
|
279
|
-
/** Intermediate violet — violet-400 (#A78BFA), 7.7:1 on black. */
|
|
280
|
-
readonly brandMid: readonly [167, 139, 250];
|
|
281
|
-
/** Deep secondary chrome — violet-600 (#7C3AED), 3.7:1 on black (violet-700 misses 3:1). */
|
|
282
|
-
readonly brandDeep: readonly [124, 58, 237];
|
|
283
|
-
/** Muted captions — lavender gray (#A6A3B8), 8.6:1 on black. */
|
|
284
|
-
readonly dim: readonly [166, 163, 184];
|
|
285
|
-
/** Success green — unchanged from dark. */
|
|
286
|
-
readonly success: readonly [34, 197, 94];
|
|
287
|
-
/** Error red — unchanged from dark. */
|
|
288
|
-
readonly error: readonly [239, 68, 68];
|
|
289
|
-
/** Warning amber — unchanged from dark. */
|
|
290
|
-
readonly warn: readonly [245, 158, 11];
|
|
291
|
-
/** Default foreground text — white with a lavender cast (#F0EEF9). */
|
|
292
|
-
readonly text: readonly [240, 238, 249];
|
|
293
|
-
/** Inline/fenced code — neon cyan-300 (#67E8F9), 14.5:1 on black. */
|
|
294
|
-
readonly code: readonly [103, 232, 249];
|
|
295
|
-
/** Composer three-row band base — neutral dark gray, hue-free so wave tints read on it. */
|
|
296
|
-
readonly composerBand: readonly [46, 46, 52];
|
|
297
|
-
/** Diff added-line background — unchanged from dark. */
|
|
298
|
-
readonly diffAdd: readonly [33, 58, 43];
|
|
299
|
-
/** Diff removed-line background — unchanged from dark. */
|
|
300
|
-
readonly diffDel: readonly [74, 34, 29];
|
|
301
|
-
/** Diff added-line foreground — unchanged from dark. */
|
|
302
|
-
readonly diffAddFg: readonly [34, 197, 94];
|
|
303
|
-
/** Diff removed-line foreground — unchanged from dark. */
|
|
304
|
-
readonly diffDelFg: readonly [248, 113, 113];
|
|
305
|
-
/** Terminal background this palette is designed against; row tints blend toward it. */
|
|
306
|
-
readonly surface: readonly [0, 0, 0];
|
|
307
|
-
/** Prompt rows in the skin's own neon: fuchsia, amber, cyan. */
|
|
308
|
-
readonly prompt: readonly [240, 171, 252];
|
|
309
|
-
readonly queued: readonly [245, 158, 11];
|
|
310
|
-
readonly steered: readonly [103, 232, 249];
|
|
311
|
-
};
|
|
312
|
-
};
|
|
313
|
-
/**
|
|
314
|
-
* Resolve a theme name to the palette actually in use. `auto` detection
|
|
315
|
-
* (OSC 11 terminal background query) is a later enhancement; until it lands,
|
|
316
|
-
* auto falls back to the dark palette (prismatic and rainbow are always
|
|
317
|
-
* explicit choices, never auto-resolved).
|
|
318
|
-
* @param name - the requested theme name.
|
|
319
|
-
* @returns 'dark', 'light', 'prismatic', or 'rainbow' — the palette key.
|
|
320
|
-
*/
|
|
321
|
-
export declare function resolveTheme(name: ThemeName): 'dark' | 'light' | 'prismatic' | 'rainbow';
|
|
322
|
-
/**
|
|
323
|
-
* Switch the active theme: painters and {@link getPalette} reflect the new
|
|
324
|
-
* palette from the next render onward. The default is dark, so a process
|
|
325
|
-
* that never calls this paints exactly as before.
|
|
326
|
-
* @param name - the theme to activate ('auto' resolves to dark for now).
|
|
327
|
-
*/
|
|
328
|
-
export declare function setTheme(name: ThemeName): void;
|
|
329
|
-
/**
|
|
330
|
-
* The theme name in force. Returns the requested name ('auto' included) so
|
|
331
|
-
* the /theme picker and persistence can round-trip the user's choice; the
|
|
332
|
-
* palette actually used is {@link getPalette}.
|
|
333
|
-
*/
|
|
334
|
-
export declare function getTheme(): ThemeName;
|
|
335
|
-
/** The palette in force; theme-aware call sites read colors through it. */
|
|
336
|
-
export declare function getPalette(): ThemePalette;
|
|
337
|
-
/**
|
|
338
|
-
* Parse a persisted theme name: only names in {@link THEME_NAMES} survive;
|
|
339
|
-
* anything else (missing, corrupt, or unknown) falls back to the dark default.
|
|
340
|
-
* @param value - the raw parsed JSON value (expected string).
|
|
341
|
-
* @returns a valid theme name.
|
|
342
|
-
*/
|
|
343
|
-
export declare function parseThemeName(value: unknown): ThemeName;
|
|
344
|
-
/** Ink `color` string for one RGB triple. */
|
|
345
|
-
export declare function inkColor(triple: RgbTriple): string;
|
|
346
|
-
/**
|
|
347
|
-
* Diff-line background as an Ink `backgroundColor` string, theme-aware and
|
|
348
|
-
* depth-gated (the Codex diff renderer's rule): 16-color terminals paint
|
|
349
|
-
* backgrounds from the saturated system palette, which drowns the text, so
|
|
350
|
-
* they keep the foreground-only look; 256-color and truecolor terminals get
|
|
351
|
-
* the palette's tint (chalk quantizes the RGB form down automatically).
|
|
352
|
-
* @param token - which diff background, added or removed lines.
|
|
353
|
-
* @returns the Ink background color, or undefined to paint foreground-only.
|
|
354
|
-
*/
|
|
355
|
-
export declare function diffBackground(token: 'diffAdd' | 'diffDel'): string | undefined;
|
|
356
|
-
/** One prompt-row color: the palette token whose color paints the row. */
|
|
357
|
-
export interface PromptRowTokens {
|
|
358
|
-
readonly fg: 'prompt' | 'queued' | 'steered';
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* The color family one prompt row wears, chosen by how it was delivered: the
|
|
362
|
-
* ordinary brand accent, the warning amber for a queued prompt, and the
|
|
363
|
-
* palette's own third accent for a steered one. The bar behind it is derived
|
|
364
|
-
* from that same color, so every theme — including a freshly rolled rainbow —
|
|
365
|
-
* carries its own look instead of a fixed triple.
|
|
366
|
-
* @param delivery - how the prompt was delivered; undefined is an ordinary one.
|
|
367
|
-
* @returns the palette token whose color paints the row.
|
|
368
|
-
*/
|
|
369
|
-
export declare function promptRowTokens(delivery: 'queued' | 'steered' | undefined): PromptRowTokens;
|
|
370
|
-
/**
|
|
371
|
-
* Blended prompt-row background for one row color: the palette color laid
|
|
372
|
-
* over the surface the palette is designed for (dark themes over black, light
|
|
373
|
-
* over white), depth-gated exactly like {@link diffBackground} — a 16-color
|
|
374
|
-
* terminal keeps the foreground-only look rather than painting a saturated
|
|
375
|
-
* system background behind the text.
|
|
376
|
-
* @param color - the row's palette token.
|
|
377
|
-
* @returns the Ink background color, or undefined to paint foreground-only.
|
|
378
|
-
*/
|
|
379
|
-
export declare function rowBackground(color: PromptRowTokens['fg']): string | undefined;
|
|
380
|
-
/**
|
|
381
|
-
* The prismatic surface ring: four neon accents panels cycle through by
|
|
382
|
-
* mount order (cyan → fuchsia → violet → lime), all ≥3:1 on black. Dark and
|
|
383
|
-
* light ignore the ring — {@link surfaceAccent} falls back to the passed-in
|
|
384
|
-
* base color so those themes stay pixel-identical.
|
|
385
|
-
*/
|
|
386
|
-
export declare const ACCENT_RING: readonly RgbTriple[];
|
|
387
|
-
/**
|
|
388
|
-
* The prismatic flow anchors: brand violet → neon fuchsia → neon cyan. All
|
|
389
|
-
* three clear 4.5:1 on black, so a flowing foreground stays AA throughout
|
|
390
|
-
* the oscillation (render/animations.ts walks the triangle).
|
|
391
|
-
*/
|
|
392
|
-
export declare const FLOW_ANCHORS: readonly RgbTriple[];
|
|
393
|
-
/**
|
|
394
|
-
* Whether the active theme is prismatic (the neon skin with surface rings
|
|
395
|
-
* and flowing accents).
|
|
396
|
-
*/
|
|
397
|
-
export declare function isPrismatic(): boolean;
|
|
398
|
-
/** Whether the active theme is rainbow (the per-launch carnival roll). */
|
|
399
|
-
export declare function isRainbow(): boolean;
|
|
400
|
-
/** The active theme's flow walk, if it has one (anchors plus phase offset). */
|
|
401
|
-
export interface ThemeFlow {
|
|
402
|
-
/** Anchor colors walked in order over one 2.4s lap. */
|
|
403
|
-
readonly anchors: readonly RgbTriple[];
|
|
404
|
-
/** Phase offset into the lap, milliseconds (0 for prismatic). */
|
|
405
|
-
readonly phaseMs: number;
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* The flowing theme's anchor walk: prismatic rides the fixed violet→fuchsia→
|
|
409
|
-
* cyan triangle; rainbow rides its rolled full-spectrum anchors with a random
|
|
410
|
-
* phase; dark and light have no flow (undefined) and keep static accents.
|
|
411
|
-
*/
|
|
412
|
-
export declare function themeFlow(): ThemeFlow | undefined;
|
|
413
|
-
/**
|
|
414
|
-
* The accent for one surface slot: prismatic rotates the {@link ACCENT_RING}
|
|
415
|
-
* by slot index; every other theme gets the caller's base color back.
|
|
416
|
-
* @param index - the slot's position in the mount-order sequence.
|
|
417
|
-
* @param base - the color to use outside prismatic (the surface's usual one).
|
|
418
|
-
* @returns the accent to paint the surface's border/title with.
|
|
419
|
-
*/
|
|
420
|
-
export declare function surfaceAccent(index: number, base: RgbTriple): RgbTriple;
|
|
421
|
-
/** Paint with the primary brand blue: whale, wordmark, tool names, accents. */
|
|
422
|
-
export declare function brand(text: string): string;
|
|
423
|
-
/** Paint with the bright brand blue: streaming output and active spinners. */
|
|
424
|
-
export declare function brandBright(text: string): string;
|
|
425
|
-
/** Paint with the deep brand blue: borders and secondary chrome. */
|
|
426
|
-
export declare function brandDeep(text: string): string;
|
|
427
|
-
/** Paint muted captions, hints, and meta lines. */
|
|
428
|
-
export declare function dim(text: string): string;
|
|
429
|
-
/** Paint completed tool results and confirmations. */
|
|
430
|
-
export declare function success(text: string): string;
|
|
431
|
-
/** Paint failures and error entries. */
|
|
432
|
-
export declare function error(text: string): string;
|
|
433
|
-
/** Paint warnings. */
|
|
434
|
-
export declare function warn(text: string): string;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The /update panel: one bounded surface over the launcher update
|
|
3
|
-
* pipeline. The panel never decides versions itself — it renders the
|
|
4
|
-
* launcher `update --json` probe (plan plus refusals), takes one
|
|
5
|
-
* confirmation, then streams `update --apply` progress and reports the
|
|
6
|
-
* result with a restart hint. Every alignment guarantee (host pinned to
|
|
7
|
-
* the release peers line, companion plugins carried, downgrade and
|
|
8
|
-
* local-checkout refusals) lives in the launcher and is only displayed
|
|
9
|
-
* here.
|
|
10
|
-
*/
|
|
11
|
-
import { type ReactElement } from 'react';
|
|
12
|
-
import type { LauncherUpdateStatus } from './update.ts';
|
|
13
|
-
/** Retained apply-progress lines (ring tail; npm output is ephemeral). */
|
|
14
|
-
export declare const UPDATE_OUTPUT_CAP = 800;
|
|
15
|
-
/** Keep the newest UPDATE_OUTPUT_CAP lines of streamed update output. */
|
|
16
|
-
export declare function clipUpdateLines(lines: readonly string[]): readonly string[];
|
|
17
|
-
/** One display row of the update surface. */
|
|
18
|
-
export interface UpdateRow {
|
|
19
|
-
readonly key: string;
|
|
20
|
-
readonly text: string;
|
|
21
|
-
readonly tone?: 'ok' | 'warn' | 'error' | 'dim';
|
|
22
|
-
}
|
|
23
|
-
/** The plan view derived from one probe: facts to show and whether apply may run. */
|
|
24
|
-
export interface UpdatePlanView {
|
|
25
|
-
readonly rows: readonly UpdateRow[];
|
|
26
|
-
readonly runnable: boolean;
|
|
27
|
-
}
|
|
28
|
-
/** Rendered facts of one probe: current/target versions, actions, refusals. */
|
|
29
|
-
export declare function updatePlanView(status: LauncherUpdateStatus): UpdatePlanView;
|
|
30
|
-
/** Panel lifecycle phases; the footer names the keys each phase accepts. */
|
|
31
|
-
export type UpdatePhase = 'probe' | 'error' | 'plan' | 'apply' | 'done';
|
|
32
|
-
/** Footer hint line per phase; the plan phase names the confirm key only when runnable. */
|
|
33
|
-
export declare function updateFooter(phase: UpdatePhase, runnable: boolean, upToDate: boolean, aheadOfRegistry?: boolean): string;
|
|
34
|
-
/**
|
|
35
|
-
* The /update surface: probe on open (and on r), confirm with enter/y,
|
|
36
|
-
* stream the aligned apply, and land on a bounded result view. Escape is
|
|
37
|
-
* locked while the apply child runs — killing npm mid-install is exactly
|
|
38
|
-
* the half-updated state this command exists to prevent.
|
|
39
|
-
*/
|
|
40
|
-
export declare function UpdatePanel({ probe, apply, close, notify }: {
|
|
41
|
-
/** Read-only probe of the launcher update status (never installs). */
|
|
42
|
-
probe: () => Promise<LauncherUpdateStatus>;
|
|
43
|
-
/** Run the aligned update; streams sanitized progress lines. */
|
|
44
|
-
apply: (onLine: (line: string) => void, plan: LauncherUpdateStatus['plan']) => Promise<number>;
|
|
45
|
-
/** Close the panel (App keeps ownership of the flag). */
|
|
46
|
-
close: () => void;
|
|
47
|
-
/** One bounded cross-surface notice (phase completions). */
|
|
48
|
-
notify: (text: string, tone?: 'info' | 'warning' | 'error') => void;
|
|
49
|
-
}): ReactElement;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Child-process adapter for the launcher update pipeline. The launcher
|
|
3
|
-
* (bin/deepseek.mjs) stays the single owner of update semantics — plan,
|
|
4
|
-
* guards, and the aligned install sequence — so the TUI only spawns
|
|
5
|
-
* `update --json` (read-only probe) and `update --apply` (streamed run)
|
|
6
|
-
* and never re-implements version-line decisions.
|
|
7
|
-
*/
|
|
8
|
-
import { type ChildProcess } from 'node:child_process';
|
|
9
|
-
/** Spawn double acceptable to the adapter (tests inject an EventEmitter). */
|
|
10
|
-
export type SpawnLike = (command: string, args: readonly string[], options: {
|
|
11
|
-
readonly stdio: readonly string[];
|
|
12
|
-
readonly windowsHide: boolean;
|
|
13
|
-
}) => ChildProcess;
|
|
14
|
-
/** Structured `update --json` payload; mirrors the launcher buildUpdateStatus. */
|
|
15
|
-
export interface LauncherUpdateStatus {
|
|
16
|
-
readonly code: {
|
|
17
|
-
readonly running: string;
|
|
18
|
-
readonly latest: string | null;
|
|
19
|
-
};
|
|
20
|
-
readonly host: {
|
|
21
|
-
readonly installed: string | null;
|
|
22
|
-
readonly targetLine: string | null;
|
|
23
|
-
};
|
|
24
|
-
readonly profile: {
|
|
25
|
-
readonly spec: string | null;
|
|
26
|
-
readonly mounted: string | null;
|
|
27
|
-
readonly localCheckout: boolean;
|
|
28
|
-
};
|
|
29
|
-
readonly plan: {
|
|
30
|
-
readonly dshSpec: string;
|
|
31
|
-
readonly codeSpec: string;
|
|
32
|
-
readonly pluginSpecs: readonly string[];
|
|
33
|
-
};
|
|
34
|
-
readonly blockers: {
|
|
35
|
-
readonly registry: string | null;
|
|
36
|
-
readonly downgrade: boolean;
|
|
37
|
-
readonly localCheckout: readonly string[] | null;
|
|
38
|
-
};
|
|
39
|
-
readonly upToDate: boolean;
|
|
40
|
-
/** True when this install is newer than npm latest (apply would downgrade). */
|
|
41
|
-
readonly aheadOfRegistry?: boolean;
|
|
42
|
-
}
|
|
43
|
-
/** Exact specs the TUI confirmed; apply must install these, not re-query latest. */
|
|
44
|
-
export interface LauncherUpdatePlan {
|
|
45
|
-
readonly dshSpec: string;
|
|
46
|
-
readonly codeSpec: string;
|
|
47
|
-
readonly pluginSpecs: readonly string[];
|
|
48
|
-
}
|
|
49
|
-
/** The launcher entrypoint that ships beside this bundle (lib/../bin). */
|
|
50
|
-
export declare function launcherUpdateCommand(args: readonly string[], moduleUrl?: string): {
|
|
51
|
-
readonly command: string;
|
|
52
|
-
readonly args: string[];
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Split a streamed chunk sequence into complete display lines: CR is
|
|
56
|
-
* stripped, a chunk boundary may split a line, and the trailing partial
|
|
57
|
-
* stays pending until its newline arrives (npm writes whole lines, but a
|
|
58
|
-
* pipe may cut anywhere). Blank lines carry no progress information and
|
|
59
|
-
* are dropped so the panel budget is not spent on gaps.
|
|
60
|
-
*/
|
|
61
|
-
export declare function createLineSplitter(onLine: (line: string) => void): (chunk: string) => void;
|
|
62
|
-
/**
|
|
63
|
-
* Probe the aligned update status. Read-only: `update --json` never
|
|
64
|
-
* installs anything. The probe is bounded (npm view may hang on a broken
|
|
65
|
-
* network) and resolves with the parsed status.
|
|
66
|
-
*/
|
|
67
|
-
export declare function probeLauncherUpdate(spawnProcess?: SpawnLike): Promise<LauncherUpdateStatus>;
|
|
68
|
-
/**
|
|
69
|
-
* Run the aligned update (`update --apply`) as a child process and stream
|
|
70
|
-
* its sanitized progress lines to the caller. Resolves with the child
|
|
71
|
-
* exit code (0 success); rejects only when the process could not start.
|
|
72
|
-
* No timeout: an npm install may legitimately take minutes.
|
|
73
|
-
*/
|
|
74
|
-
export declare function applyPlanArgs(plan: LauncherUpdatePlan): string[];
|
|
75
|
-
export declare function applyLauncherUpdate(onLine: (line: string) => void, spawnProcess?: SpawnLike, plan?: LauncherUpdatePlan): Promise<number>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/** Installed dsh-code version exposed by the terminal header. */
|
|
2
|
-
/** Version of the installed dsh-code package. */
|
|
3
|
-
export declare const DSH_CODE_VERSION: string;
|
|
4
|
-
/**
|
|
5
|
-
* Resolve the running dsh CLI host's version from its entry file
|
|
6
|
-
* (`process.argv[1]`, e.g. `.../@deepseek-ai/dsh/lib/bin.js` or a PATH
|
|
7
|
-
* symlink `.../bin/dsh` → that file). Only a manifest literally named
|
|
8
|
-
* `@deepseek-ai/dsh` counts, so an unrelated entry (vitest, a plain node
|
|
9
|
-
* script) resolves to undefined instead of faking a kernel version.
|
|
10
|
-
*/
|
|
11
|
-
export declare function resolveDshHostVersion(entry?: string | undefined): string | undefined;
|
|
12
|
-
/**
|
|
13
|
-
* The dsh kernel version the TUI runs on, memoized after the first probe: the
|
|
14
|
-
* host process never changes within a run, and the header reads this on every
|
|
15
|
-
* Static replay.
|
|
16
|
-
*/
|
|
17
|
-
export declare function dshKernelVersion(): string | undefined;
|
|
18
|
-
/** Test-only: forget the memoized kernel version so a new argv can be probed. */
|
|
19
|
-
export declare function _resetDshKernelVersionForTests(): void;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/** Half-block whale glyph rows; render with the brand color. */
|
|
2
|
-
export declare const WHALE_GLYPH: readonly string[];
|
|
3
|
-
/** Fixed glyph width in terminal columns. */
|
|
4
|
-
export declare const WHALE_GLYPH_COLUMNS = 26;
|
|
5
|
-
/** Fixed glyph height in half-block rows. */
|
|
6
|
-
export declare const WHALE_GLYPH_ROWS = 8;
|
/package/vendor/tui/{dscode-clipboard-image → lib/dscode/clipboard-image}/clipboard-image.swift
RENAMED
|
File without changes
|
|
File without changes
|