dsh-claude-style 0.18.5 → 0.19.0-dev.44

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.
@@ -14,15 +14,15 @@ var CURRENCY_SYMBOL = {
14
14
  };
15
15
 
16
16
  // packages/contracts/src/prefs.ts
17
- var PALETTE_COLORING_BRAND = "brand";
18
- var PALETTE_COLORING_CUSTOM = "custom";
19
- var PALETTE_COLORINGS = [PALETTE_COLORING_BRAND, PALETTE_COLORING_CUSTOM];
20
17
  var BILLING_OFF = "off";
21
18
  var BILLING_CHOICES = [BILLING_OFF, ...CURRENCIES];
22
19
  var BRAND_CLAUDE = "claude";
23
20
  var BRAND_DEEPSEEK = "deepseek";
24
21
  var BRAND_DEEPSEEK_LEGACY = "off";
25
22
  var BRANDS = [BRAND_CLAUDE, BRAND_DEEPSEEK];
23
+ var PALETTE_COLORING_BRAND = "brand";
24
+ var PALETTE_COLORING_CUSTOM = "custom";
25
+ var PALETTE_COLORINGS = [PALETTE_COLORING_BRAND, ...BRANDS, PALETTE_COLORING_CUSTOM];
26
26
  var BRAND_INK_ORIGINAL = "original";
27
27
  var BRAND_INK_ACCENT = "accent";
28
28
  var BRAND_INK_TEXT = "text";
@@ -71,7 +71,21 @@ var ONGOING_INDICATORS = [ONGOING_INDICATOR_BREATHE, ONGOING_INDICATOR_RING];
71
71
  var CHAT_ANIMATIONS_OFF = "off";
72
72
  var STATS_POSITION_INLINE = "inline";
73
73
  var STATS_POSITION_CONTEXT = "context";
74
- var STATS_POSITIONS = [STATS_POSITION_INLINE, STATS_POSITION_CONTEXT];
74
+ var STATS_POSITION_FOOTER = "footer";
75
+ var STATS_POSITIONS = [STATS_POSITION_INLINE, STATS_POSITION_CONTEXT, STATS_POSITION_FOOTER];
76
+ var STATS_FOOTER_ALIGNS = ["left", "center", "right"];
77
+ var CONTEXT_DISPLAY_PIE = "pie";
78
+ var CONTEXT_DISPLAY_RING_RAMP = "ring-ramp";
79
+ var CONTEXT_DISPLAY_RING_BAND = "ring-band";
80
+ var CONTEXT_DISPLAYS = [CONTEXT_DISPLAY_PIE, CONTEXT_DISPLAY_RING_RAMP, CONTEXT_DISPLAY_RING_BAND];
81
+ var CONVERSATION_WIDTH_FULL = "1";
82
+ var CONVERSATION_WIDTH_THREE_QUARTERS = "0.75";
83
+ var CONVERSATION_WIDTH_HALF = "0.5";
84
+ var CONVERSATION_WIDTHS = [CONVERSATION_WIDTH_FULL, CONVERSATION_WIDTH_THREE_QUARTERS, CONVERSATION_WIDTH_HALF];
85
+ var COMPOSER_GAP_COMPACT = "compact";
86
+ var COMPOSER_GAP_THEME = "theme";
87
+ var COMPOSER_GAP_ROOMY = "roomy";
88
+ var COMPOSER_GAPS = [COMPOSER_GAP_COMPACT, COMPOSER_GAP_THEME, COMPOSER_GAP_ROOMY];
75
89
  var BAN_LOCALE_EN = "en";
76
90
  var BAN_LOCALE_ZH = "zh";
77
91
  var BAN_LOCALE_OFF = "off";
@@ -106,7 +120,7 @@ var PREFS = {
106
120
  brandName: { type: "text", default: "", max: BRAND_NAME_MAX },
107
121
  brandInk: { type: "choice", values: BRAND_INKS, default: BRAND_INK_ORIGINAL },
108
122
  brandAccent: { type: "color", default: "" },
109
- /** Whether the page paints the brand's own colours or the reader's four. */
123
+ /** One brand's card, `brand` to follow the theme style, or the reader's four. */
110
124
  paletteColors: { type: "choice", values: PALETTE_COLORINGS, default: PALETTE_COLORING_BRAND },
111
125
  /** The reader's four colours, empty until picked; each falls back to the card's own. */
112
126
  customAccent: { type: "color", default: "" },
@@ -141,17 +155,26 @@ var PREFS = {
141
155
  homeRipple: { type: "boolean", default: false },
142
156
  palette: { type: "choice", values: PALETTES, default: PALETTE_CLAUDE },
143
157
  typeface: { type: "choice", values: TYPEFACES, default: TYPEFACE_CLAUDE },
158
+ conversationWidth: { type: "choice", values: CONVERSATION_WIDTHS, default: CONVERSATION_WIDTH_FULL },
159
+ composerBottomGap: { type: "choice", values: COMPOSER_GAPS, default: COMPOSER_GAP_THEME },
144
160
  /** The mascot on the composer; the resolved one rides the document. */
145
161
  mascot: { type: "choice", values: MASCOTS, default: MASCOT_BRAND },
146
162
  mascotScope: { type: "choice", values: MASCOT_SCOPES, default: MASCOT_SCOPE_ALL },
147
163
  permissionsControl: { type: "boolean", default: true },
148
164
  statsPosition: { type: "choice", values: STATS_POSITIONS, default: STATS_POSITION_CONTEXT },
165
+ /** The face the context meter is drawn with (CONTEXT_DISPLAYS). */
166
+ contextDisplay: { type: "choice", values: CONTEXT_DISPLAYS, default: CONTEXT_DISPLAY_PIE },
167
+ /** Whether the percentage stands beside that face. */
168
+ contextNumbers: { type: "boolean", default: true },
169
+ statsFooterAlign: { type: "choice", values: STATS_FOOTER_ALIGNS, default: "center" },
149
170
  /** Which official price table the session's cost follows, or off for no figure at all. */
150
171
  billingCurrency: { type: "choice", values: BILLING_CHOICES, default: CURRENCY_CNY },
151
172
  workspaceView: { type: "boolean", default: true },
152
173
  dockCards: { type: "boolean", default: true },
153
174
  sidebarSearch: { type: "boolean", default: true },
154
175
  searchStyle: { type: "choice", values: SEARCH_STYLES, default: SEARCH_STYLE_OVERLAY },
176
+ /** Whether resting the pointer on the collapsed sidebar's toggle opens the sidebar over the page. */
177
+ sidebarPeek: { type: "boolean", default: true },
155
178
  sidebarLayout: { type: "choice", values: SIDEBAR_LAYOUTS, default: SIDEBAR_LAYOUT_RELAXED },
156
179
  ongoingIndicator: { type: "choice", values: ONGOING_INDICATORS, default: ONGOING_INDICATOR_BREATHE },
157
180
  turnNav: { type: "boolean", default: true },
@@ -238,6 +238,28 @@
238
238
  "en": "Optimized for agentic coding in Codex, handling several software tasks in parallel."
239
239
  }
240
240
  },
241
+ {
242
+ "match": "gpt.*astra",
243
+ "note": "Astra, Sol and Luna are GPT-6's model lines, so each reads its own line copy whatever the version (`gpt-6.1-sol`, `gpt-astra-latest`) and whatever the suffix (`-pro`, `-fast`, `:batch`). OpenAI calls Astra its most intelligent model; that superlative is only true of the current generation, so the copy names the work it is built for.",
244
+ "text": {
245
+ "zh": "面向计算机操作、编程、网络安全与科学研究中最艰深的问题。",
246
+ "en": "For the hardest problems in computer use, coding, cybersecurity and science."
247
+ }
248
+ },
249
+ {
250
+ "match": "gpt.*sol",
251
+ "text": {
252
+ "zh": "面向日常工作,擅长写作、编程与分析。",
253
+ "en": "For everyday work: writing, coding and analysis."
254
+ }
255
+ },
256
+ {
257
+ "match": "gpt.*luna",
258
+ "text": {
259
+ "zh": "响应快、成本低,适合高频与可重复的任务。",
260
+ "en": "Optimized for fast responses and high-volume, repeatable work."
261
+ }
262
+ },
241
263
  {
242
264
  "match": "gpt[._-]?5[._-]?4(?!\\d)",
243
265
  "note": "Anchored to the 5.4 generation: native computer use is that model's claim, so a later GPT-5 reads the rule below.",
@@ -275,7 +297,15 @@
275
297
  }
276
298
  },
277
299
  {
278
- "match": "gemini.*(pro|ultra|Argon)",
300
+ "match": "gemini.*argon",
301
+ "note": "Argon is a Gemini model line of its own, outside the Pro and Ultra tiers, so it sits above the Pro rule. The copy is the line's official positioning and carries no version.",
302
+ "text": {
303
+ "zh": "面向真实软件工程、企业知识工作与网络安全防御的前沿模型,擅长长程复杂任务。",
304
+ "en": "A frontier model for real-world software engineering, enterprise knowledge work and cyber defense, built for long-horizon workflows."
305
+ }
306
+ },
307
+ {
308
+ "match": "gemini.*(pro|ultra)",
279
309
  "text": {
280
310
  "zh": "面向复杂任务、深度推理与多模态理解。",
281
311
  "en": "For complex tasks, deep reasoning and multimodal understanding."