dsh-code 1.0.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.en.md +70 -24
  2. package/README.md +71 -25
  3. package/bin/deepseek.mjs +202 -39
  4. package/cordis.patch.yml +13 -4
  5. package/lib/index.mjs +4063 -844
  6. package/lib/session-query.mjs +3 -2
  7. package/lib/startup.mjs +4 -4
  8. package/lib/{theme-DCT8Y2xf.mjs → theme-7u5Qo3dF.mjs} +657 -20
  9. package/lib/types/app.d.ts +100 -63
  10. package/lib/types/authorization-panel.d.ts +3 -3
  11. package/lib/types/git-workflow.d.ts +91 -2
  12. package/lib/types/i18n.d.ts +39 -0
  13. package/lib/types/index.d.ts +73 -1
  14. package/lib/types/input-split.d.ts +1 -1
  15. package/lib/types/kernel-panels.d.ts +86 -31
  16. package/lib/types/language-panel.d.ts +12 -0
  17. package/lib/types/locales/en.d.ts +450 -0
  18. package/lib/types/locales/zh.d.ts +9 -0
  19. package/lib/types/mentions.d.ts +7 -3
  20. package/lib/types/models.d.ts +14 -0
  21. package/lib/types/panel-accent.d.ts +28 -0
  22. package/lib/types/rainbow.d.ts +69 -0
  23. package/lib/types/render/animations.d.ts +42 -0
  24. package/lib/types/render/inspector.d.ts +26 -0
  25. package/lib/types/render/lines.d.ts +21 -1
  26. package/lib/types/render/markdown.d.ts +1 -1
  27. package/lib/types/render/projection.d.ts +95 -4
  28. package/lib/types/render/status.d.ts +8 -8
  29. package/lib/types/render/text.d.ts +6 -0
  30. package/lib/types/render/usage.d.ts +113 -0
  31. package/lib/types/session-directory.d.ts +17 -0
  32. package/lib/types/startup.d.ts +1 -1
  33. package/lib/types/terminal-title.d.ts +8 -0
  34. package/lib/types/theme-panel.d.ts +2 -2
  35. package/lib/types/theme.d.ts +271 -52
  36. package/lib/types/update-panel.d.ts +5 -5
  37. package/lib/types/update.d.ts +10 -1
  38. package/lib/types/version.d.ts +4 -3
  39. package/package.json +24 -7
  40. package/src/app.ts +1155 -478
  41. package/src/approval.ts +166 -166
  42. package/src/authorization-panel.ts +19 -16
  43. package/src/editor-keys.ts +371 -371
  44. package/src/git-workflow.ts +229 -3
  45. package/src/i18n.ts +68 -0
  46. package/src/index.ts +412 -76
  47. package/src/input-split.ts +3 -3
  48. package/src/kernel-panels.ts +471 -89
  49. package/src/keyboard.ts +5 -4
  50. package/src/language-panel.ts +53 -0
  51. package/src/locales/en.ts +489 -0
  52. package/src/locales/zh.ts +488 -0
  53. package/src/mentions.ts +8 -4
  54. package/src/models.ts +264 -212
  55. package/src/panel-accent.ts +41 -0
  56. package/src/presets.ts +1 -1
  57. package/src/provider-settings.ts +1 -1
  58. package/src/rainbow.ts +208 -0
  59. package/src/render/animations.ts +104 -6
  60. package/src/render/editor.ts +20 -20
  61. package/src/render/export.ts +116 -95
  62. package/src/render/inspector.ts +42 -0
  63. package/src/render/lines.ts +628 -415
  64. package/src/render/markdown.ts +15 -3
  65. package/src/render/projection.ts +429 -19
  66. package/src/render/status.ts +41 -35
  67. package/src/render/text.ts +14 -0
  68. package/src/render/tool-preview.ts +77 -77
  69. package/src/render/usage.ts +430 -0
  70. package/src/render/width.ts +2 -2
  71. package/src/session-directory.ts +8 -6
  72. package/src/session-query.ts +8 -4
  73. package/src/startup.ts +3 -3
  74. package/src/subagents.ts +229 -229
  75. package/src/terminal-title.ts +22 -5
  76. package/src/theme-panel.ts +17 -21
  77. package/src/theme.ts +281 -33
  78. package/src/update-panel.ts +37 -27
  79. package/src/update.ts +19 -3
  80. package/src/version.ts +58 -20
  81. package/src/whale-glyph.ts +23 -23
@@ -12,7 +12,7 @@
12
12
  import { graphemeWidth, splitGraphemes, stringWidth } from './width.ts'
13
13
 
14
14
  /** Style classes the renderer emits; the app maps them to colors/props. */
15
- export type MdStyle = 'plain' | 'bold' | 'italic' | 'boldItalic' | 'code' | 'accent' | 'accentBold' | 'dim' | 'strike'
15
+ export type MdStyle = 'plain' | 'bold' | 'italic' | 'boldItalic' | 'code' | 'accent' | 'accentBold' | 'dim' | 'strike' | 'diffAdd' | 'diffDel'
16
16
 
17
17
  /** One styled run of text. */
18
18
  export interface MdSegment {
@@ -319,7 +319,7 @@ function segmentsWidth(segments: readonly MdSegment[]): number {
319
319
  function trimLeadingSpaces(segments: readonly MdSegment[]): readonly MdSegment[] {
320
320
  const trimmed = segments.map(segment => ({ ...segment }))
321
321
  while (trimmed[0]?.text.startsWith(' ') === true) {
322
- const first = trimmed[0]!
322
+ const first = trimmed[0]
323
323
  const text = first.text.replace(/^ +/u, '')
324
324
  if (text === '') trimmed.shift()
325
325
  else trimmed[0] = { ...first, text }
@@ -563,12 +563,24 @@ export function renderMarkdown(
563
563
  }
564
564
 
565
565
  // Fenced code block: verbatim lines in code style, language label first.
566
+ // A ```diff fence keeps the same classification the /diff panel uses
567
+ // (shared rule: lines.ts diffLineStyle) so pasted review diffs render
568
+ // with the added/removed tints everywhere markdown does.
566
569
  const fence = FENCE.exec(line)
567
570
  if (fence !== null) {
568
571
  const language = fence[1] ?? ''
572
+ const diffFence = language === 'diff' || language === 'patch'
569
573
  if (language !== '') push([seg(` ${language}`, 'dim')])
570
574
  while (index < source.length && !FENCE.test(source[index] ?? '')) {
571
- push([seg(` ${source[index] ?? ''}`, 'code')])
575
+ const source_ = source[index] ?? ''
576
+ const style: MdStyle = !diffFence
577
+ ? 'code'
578
+ : source_.startsWith('+') && !source_.startsWith('+++')
579
+ ? 'diffAdd'
580
+ : source_.startsWith('-') && !source_.startsWith('---')
581
+ ? 'diffDel'
582
+ : 'code'
583
+ push([seg(` ${source_}`, style)])
572
584
  index += 1
573
585
  }
574
586
  index += 1 // closing fence