pulse-line 1.0.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 (211) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.claude-plugin/plugin.json +27 -0
  3. package/LICENSE +21 -0
  4. package/README.md +316 -0
  5. package/bin/pulse-line.js +12 -0
  6. package/commands/clear-cache.md +23 -0
  7. package/commands/config.md +25 -0
  8. package/commands/debug.md +25 -0
  9. package/commands/disable.md +27 -0
  10. package/commands/enable.md +27 -0
  11. package/commands/install.md +25 -0
  12. package/commands/language.md +27 -0
  13. package/commands/reload.md +23 -0
  14. package/commands/theme.md +27 -0
  15. package/commands/themes.md +23 -0
  16. package/commands/uninstall.md +23 -0
  17. package/dist/src/cli.d.ts +2 -0
  18. package/dist/src/cli.js +242 -0
  19. package/dist/src/cli.js.map +1 -0
  20. package/dist/src/config/defaults.d.ts +2 -0
  21. package/dist/src/config/defaults.js +7 -0
  22. package/dist/src/config/defaults.js.map +1 -0
  23. package/dist/src/config/loader.d.ts +6 -0
  24. package/dist/src/config/loader.js +146 -0
  25. package/dist/src/config/loader.js.map +1 -0
  26. package/dist/src/config/migrate-config.d.ts +2 -0
  27. package/dist/src/config/migrate-config.js +22 -0
  28. package/dist/src/config/migrate-config.js.map +1 -0
  29. package/dist/src/config/validator.d.ts +2 -0
  30. package/dist/src/config/validator.js +7 -0
  31. package/dist/src/config/validator.js.map +1 -0
  32. package/dist/src/extractors/account-usage.d.ts +20 -0
  33. package/dist/src/extractors/account-usage.js +293 -0
  34. package/dist/src/extractors/account-usage.js.map +1 -0
  35. package/dist/src/extractors/context.d.ts +7 -0
  36. package/dist/src/extractors/context.js +20 -0
  37. package/dist/src/extractors/context.js.map +1 -0
  38. package/dist/src/extractors/cost.d.ts +5 -0
  39. package/dist/src/extractors/cost.js +13 -0
  40. package/dist/src/extractors/cost.js.map +1 -0
  41. package/dist/src/extractors/git.d.ts +6 -0
  42. package/dist/src/extractors/git.js +35 -0
  43. package/dist/src/extractors/git.js.map +1 -0
  44. package/dist/src/extractors/index.d.ts +25 -0
  45. package/dist/src/extractors/index.js +33 -0
  46. package/dist/src/extractors/index.js.map +1 -0
  47. package/dist/src/extractors/mcp.d.ts +5 -0
  48. package/dist/src/extractors/mcp.js +72 -0
  49. package/dist/src/extractors/mcp.js.map +1 -0
  50. package/dist/src/extractors/model.d.ts +9 -0
  51. package/dist/src/extractors/model.js +20 -0
  52. package/dist/src/extractors/model.js.map +1 -0
  53. package/dist/src/extractors/output-style.d.ts +9 -0
  54. package/dist/src/extractors/output-style.js +13 -0
  55. package/dist/src/extractors/output-style.js.map +1 -0
  56. package/dist/src/extractors/rate-limits.d.ts +8 -0
  57. package/dist/src/extractors/rate-limits.js +39 -0
  58. package/dist/src/extractors/rate-limits.js.map +1 -0
  59. package/dist/src/extractors/session.d.ts +5 -0
  60. package/dist/src/extractors/session.js +67 -0
  61. package/dist/src/extractors/session.js.map +1 -0
  62. package/dist/src/extractors/thinking.d.ts +10 -0
  63. package/dist/src/extractors/thinking.js +16 -0
  64. package/dist/src/extractors/thinking.js.map +1 -0
  65. package/dist/src/extractors/third-party-api.d.ts +13 -0
  66. package/dist/src/extractors/third-party-api.js +193 -0
  67. package/dist/src/extractors/third-party-api.js.map +1 -0
  68. package/dist/src/extractors/transcript.d.ts +5 -0
  69. package/dist/src/extractors/transcript.js +67 -0
  70. package/dist/src/extractors/transcript.js.map +1 -0
  71. package/dist/src/extractors/workspace.d.ts +9 -0
  72. package/dist/src/extractors/workspace.js +43 -0
  73. package/dist/src/extractors/workspace.js.map +1 -0
  74. package/dist/src/formatters/duration.d.ts +1 -0
  75. package/dist/src/formatters/duration.js +19 -0
  76. package/dist/src/formatters/duration.js.map +1 -0
  77. package/dist/src/formatters/index.d.ts +7 -0
  78. package/dist/src/formatters/index.js +16 -0
  79. package/dist/src/formatters/index.js.map +1 -0
  80. package/dist/src/formatters/layout.d.ts +10 -0
  81. package/dist/src/formatters/layout.js +38 -0
  82. package/dist/src/formatters/layout.js.map +1 -0
  83. package/dist/src/formatters/progress-bar.d.ts +2 -0
  84. package/dist/src/formatters/progress-bar.js +23 -0
  85. package/dist/src/formatters/progress-bar.js.map +1 -0
  86. package/dist/src/formatters/segment.d.ts +9 -0
  87. package/dist/src/formatters/segment.js +18 -0
  88. package/dist/src/formatters/segment.js.map +1 -0
  89. package/dist/src/formatters/separator.d.ts +1 -0
  90. package/dist/src/formatters/separator.js +11 -0
  91. package/dist/src/formatters/separator.js.map +1 -0
  92. package/dist/src/i18n/index.d.ts +8 -0
  93. package/dist/src/i18n/index.js +31 -0
  94. package/dist/src/i18n/index.js.map +1 -0
  95. package/dist/src/i18n/locales/en.d.ts +1 -0
  96. package/dist/src/i18n/locales/en.js +26 -0
  97. package/dist/src/i18n/locales/en.js.map +1 -0
  98. package/dist/src/i18n/locales/zh.d.ts +1 -0
  99. package/dist/src/i18n/locales/zh.js +26 -0
  100. package/dist/src/i18n/locales/zh.js.map +1 -0
  101. package/dist/src/index.d.ts +1 -0
  102. package/dist/src/index.js +176 -0
  103. package/dist/src/index.js.map +1 -0
  104. package/dist/src/parser/stdin-parser.d.ts +3 -0
  105. package/dist/src/parser/stdin-parser.js +58 -0
  106. package/dist/src/parser/stdin-parser.js.map +1 -0
  107. package/dist/src/themes/builtin/cyberpunk.d.ts +2 -0
  108. package/dist/src/themes/builtin/cyberpunk.js +47 -0
  109. package/dist/src/themes/builtin/cyberpunk.js.map +1 -0
  110. package/dist/src/themes/builtin/dark.d.ts +2 -0
  111. package/dist/src/themes/builtin/dark.js +47 -0
  112. package/dist/src/themes/builtin/dark.js.map +1 -0
  113. package/dist/src/themes/builtin/forest.d.ts +2 -0
  114. package/dist/src/themes/builtin/forest.js +47 -0
  115. package/dist/src/themes/builtin/forest.js.map +1 -0
  116. package/dist/src/themes/builtin/light.d.ts +2 -0
  117. package/dist/src/themes/builtin/light.js +47 -0
  118. package/dist/src/themes/builtin/light.js.map +1 -0
  119. package/dist/src/themes/builtin/ocean.d.ts +2 -0
  120. package/dist/src/themes/builtin/ocean.js +47 -0
  121. package/dist/src/themes/builtin/ocean.js.map +1 -0
  122. package/dist/src/themes/icon-provider.d.ts +2 -0
  123. package/dist/src/themes/icon-provider.js +10 -0
  124. package/dist/src/themes/icon-provider.js.map +1 -0
  125. package/dist/src/themes/icon-sets/nerd.d.ts +17 -0
  126. package/dist/src/themes/icon-sets/nerd.js +20 -0
  127. package/dist/src/themes/icon-sets/nerd.js.map +1 -0
  128. package/dist/src/themes/icon-sets/text.d.ts +17 -0
  129. package/dist/src/themes/icon-sets/text.js +21 -0
  130. package/dist/src/themes/icon-sets/text.js.map +1 -0
  131. package/dist/src/themes/index.d.ts +4 -0
  132. package/dist/src/themes/index.js +56 -0
  133. package/dist/src/themes/index.js.map +1 -0
  134. package/dist/src/types/pulse-config.d.ts +58 -0
  135. package/dist/src/types/pulse-config.js +50 -0
  136. package/dist/src/types/pulse-config.js.map +1 -0
  137. package/dist/src/types/pulse-input.d.ts +83 -0
  138. package/dist/src/types/pulse-input.js +4 -0
  139. package/dist/src/types/pulse-input.js.map +1 -0
  140. package/dist/src/types/theme.d.ts +50 -0
  141. package/dist/src/types/theme.js +4 -0
  142. package/dist/src/types/theme.js.map +1 -0
  143. package/dist/src/utils/ansi.d.ts +6 -0
  144. package/dist/src/utils/ansi.js +31 -0
  145. package/dist/src/utils/ansi.js.map +1 -0
  146. package/dist/src/utils/cache.d.ts +11 -0
  147. package/dist/src/utils/cache.js +128 -0
  148. package/dist/src/utils/cache.js.map +1 -0
  149. package/dist/src/utils/claude-settings-env.d.ts +11 -0
  150. package/dist/src/utils/claude-settings-env.js +108 -0
  151. package/dist/src/utils/claude-settings-env.js.map +1 -0
  152. package/dist/src/utils/constants.d.ts +3 -0
  153. package/dist/src/utils/constants.js +43 -0
  154. package/dist/src/utils/constants.js.map +1 -0
  155. package/dist/src/utils/display-sanitize.d.ts +7 -0
  156. package/dist/src/utils/display-sanitize.js +69 -0
  157. package/dist/src/utils/display-sanitize.js.map +1 -0
  158. package/dist/src/utils/fs.d.ts +5 -0
  159. package/dist/src/utils/fs.js +79 -0
  160. package/dist/src/utils/fs.js.map +1 -0
  161. package/dist/src/utils/git.d.ts +7 -0
  162. package/dist/src/utils/git.js +56 -0
  163. package/dist/src/utils/git.js.map +1 -0
  164. package/dist/src/utils/logger.d.ts +9 -0
  165. package/dist/src/utils/logger.js +53 -0
  166. package/dist/src/utils/logger.js.map +1 -0
  167. package/dist/src/utils/model-display-env.d.ts +12 -0
  168. package/dist/src/utils/model-display-env.js +53 -0
  169. package/dist/src/utils/model-display-env.js.map +1 -0
  170. package/dist/src/utils/provider-credentials.d.ts +12 -0
  171. package/dist/src/utils/provider-credentials.js +145 -0
  172. package/dist/src/utils/provider-credentials.js.map +1 -0
  173. package/dist/test/advanced-extractors.test.d.ts +1 -0
  174. package/dist/test/advanced-extractors.test.js +96 -0
  175. package/dist/test/advanced-extractors.test.js.map +1 -0
  176. package/dist/test/benchmark.d.ts +1 -0
  177. package/dist/test/benchmark.js +67 -0
  178. package/dist/test/benchmark.js.map +1 -0
  179. package/dist/test/display-sanitize.test.d.ts +1 -0
  180. package/dist/test/display-sanitize.test.js +28 -0
  181. package/dist/test/display-sanitize.test.js.map +1 -0
  182. package/dist/test/extractors.test.d.ts +1 -0
  183. package/dist/test/extractors.test.js +261 -0
  184. package/dist/test/extractors.test.js.map +1 -0
  185. package/dist/test/formatters.test.d.ts +1 -0
  186. package/dist/test/formatters.test.js +62 -0
  187. package/dist/test/formatters.test.js.map +1 -0
  188. package/dist/test/git.test.d.ts +1 -0
  189. package/dist/test/git.test.js +85 -0
  190. package/dist/test/git.test.js.map +1 -0
  191. package/dist/test/migrate-config.test.d.ts +1 -0
  192. package/dist/test/migrate-config.test.js +23 -0
  193. package/dist/test/migrate-config.test.js.map +1 -0
  194. package/dist/test/model-display-env.test.d.ts +1 -0
  195. package/dist/test/model-display-env.test.js +125 -0
  196. package/dist/test/model-display-env.test.js.map +1 -0
  197. package/dist/test/parser.test.d.ts +1 -0
  198. package/dist/test/parser.test.js +108 -0
  199. package/dist/test/parser.test.js.map +1 -0
  200. package/dist/test/provider-credentials.test.d.ts +1 -0
  201. package/dist/test/provider-credentials.test.js +62 -0
  202. package/dist/test/provider-credentials.test.js.map +1 -0
  203. package/dist/test/themes.test.d.ts +1 -0
  204. package/dist/test/themes.test.js +83 -0
  205. package/dist/test/themes.test.js.map +1 -0
  206. package/dist/test/third-party-api.test.d.ts +1 -0
  207. package/dist/test/third-party-api.test.js +99 -0
  208. package/dist/test/third-party-api.test.js.map +1 -0
  209. package/dist/tsconfig.tsbuildinfo +1 -0
  210. package/package.json +43 -0
  211. package/skills/pulse-configuration/SKILL.md +267 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forest.js","sourceRoot":"","sources":["../../../../src/themes/builtin/forest.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAIlB,QAAA,WAAW,GAAU;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8BAA8B;KAC5C;IACD,SAAS,EAAE;QACT,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf;IACD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;QACvE,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;KACnE;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Theme } from '../../types/theme';
2
+ export declare const lightTheme: Theme;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // src/themes/builtin/light.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.lightTheme = void 0;
5
+ exports.lightTheme = {
6
+ meta: {
7
+ name: 'Minimal Light',
8
+ author: 'pulse-line',
9
+ version: '1.0.0',
10
+ description: 'Clean light theme for light terminals'
11
+ },
12
+ separator: {
13
+ left: '│',
14
+ right: '',
15
+ color: '#a1a1aa'
16
+ },
17
+ colors: {
18
+ background: 'transparent',
19
+ primary: '#0369a1',
20
+ accent: '#7c3aed',
21
+ success: '#16a34a',
22
+ warning: '#ca8a04',
23
+ error: '#dc2626',
24
+ info: '#0891b2',
25
+ muted: '#71717a',
26
+ dim: '#a1a1aa'
27
+ },
28
+ components: {
29
+ model: { fg: '#0369a1', bold: true, icon: '[M]', showIcon: true },
30
+ context: { fg: '#16a34a', icon: '[C]', showIcon: true },
31
+ contextBar: { fg: '#16a34a', icon: '', showIcon: false, bg: '#e4e4e7' },
32
+ git: { fg: '#0891b2', icon: '[G]', showIcon: true },
33
+ cost: { fg: '#ca8a04', icon: '[$]', showIcon: true },
34
+ duration: { fg: '#71717a', icon: '[T]', showIcon: true },
35
+ workspace: { fg: '#7c3aed', icon: '[W]', showIcon: true },
36
+ turns: { fg: '#0891b2', icon: '[N]', showIcon: true },
37
+ cacheRatio: { fg: '#7c3aed', icon: '[R]', showIcon: true },
38
+ rateLimit: { fg: '#0891b2', icon: '[L]', showIcon: true },
39
+ weeklyQuota: { fg: '#ca8a04', icon: '[Q]', showIcon: true },
40
+ accountUsage: { fg: '#7c3aed', icon: '[A]', showIcon: true },
41
+ mcpStatus: { fg: '#71717a', icon: '[MCP]', showIcon: true },
42
+ thinking: { fg: '#7c3aed', icon: '[Think]', showIcon: true },
43
+ outputStyle: { fg: '#71717a', icon: '[S]', showIcon: true },
44
+ separator: { fg: '#a1a1aa', icon: '', showIcon: false, dim: true }
45
+ }
46
+ };
47
+ //# sourceMappingURL=light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../../../../src/themes/builtin/light.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAIjB,QAAA,UAAU,GAAU;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,uCAAuC;KACrD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf;IACD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;QACvE,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;KACnE;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Theme } from '../../types/theme';
2
+ export declare const oceanTheme: Theme;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // src/themes/builtin/ocean.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.oceanTheme = void 0;
5
+ exports.oceanTheme = {
6
+ meta: {
7
+ name: 'Ocean',
8
+ author: 'pulse-line',
9
+ version: '1.0.0',
10
+ description: 'Deep ocean blue palette'
11
+ },
12
+ separator: {
13
+ left: '│',
14
+ right: '',
15
+ color: '#38bdf8'
16
+ },
17
+ colors: {
18
+ background: 'transparent',
19
+ primary: '#38bdf8',
20
+ accent: '#818cf8',
21
+ success: '#34d399',
22
+ warning: '#fbbf24',
23
+ error: '#fb7185',
24
+ info: '#67e8f9',
25
+ muted: '#e0f2fe',
26
+ dim: '#7dd3fc'
27
+ },
28
+ components: {
29
+ model: { fg: '#38bdf8', bold: true, icon: '[M]', showIcon: true },
30
+ context: { fg: '#34d399', icon: '[C]', showIcon: true },
31
+ contextBar: { fg: '#34d399', icon: '', showIcon: false, bg: '#7dd3fc' },
32
+ git: { fg: '#67e8f9', icon: '[G]', showIcon: true },
33
+ cost: { fg: '#fbbf24', icon: '[$]', showIcon: true },
34
+ duration: { fg: '#e0f2fe', icon: '[T]', showIcon: true },
35
+ workspace: { fg: '#818cf8', icon: '[W]', showIcon: true },
36
+ turns: { fg: '#67e8f9', icon: '[N]', showIcon: true },
37
+ cacheRatio: { fg: '#818cf8', icon: '[R]', showIcon: true },
38
+ rateLimit: { fg: '#67e8f9', icon: '[L]', showIcon: true },
39
+ weeklyQuota: { fg: '#fbbf24', icon: '[Q]', showIcon: true },
40
+ accountUsage: { fg: '#fb7185', icon: '[A]', showIcon: true },
41
+ mcpStatus: { fg: '#e0f2fe', icon: '[MCP]', showIcon: true },
42
+ thinking: { fg: '#818cf8', icon: '[Think]', showIcon: true },
43
+ outputStyle: { fg: '#e0f2fe', icon: '[S]', showIcon: true },
44
+ separator: { fg: '#7dd3fc', icon: '', showIcon: false, dim: true }
45
+ }
46
+ };
47
+ //# sourceMappingURL=ocean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocean.js","sourceRoot":"","sources":["../../../../src/themes/builtin/ocean.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAIjB,QAAA,UAAU,GAAU;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,yBAAyB;KACvC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf;IACD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;QACvE,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;KACnE;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IconSet } from './icon-sets/nerd';
2
+ export declare function getIconSet(iconSetType: 'nerd' | 'text'): IconSet;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // src/themes/icon-provider.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getIconSet = getIconSet;
5
+ const nerd_1 = require("./icon-sets/nerd");
6
+ const text_1 = require("./icon-sets/text");
7
+ function getIconSet(iconSetType) {
8
+ return iconSetType === 'nerd' ? nerd_1.nerdIconSet : text_1.textIconSet;
9
+ }
10
+ //# sourceMappingURL=icon-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-provider.js","sourceRoot":"","sources":["../../../src/themes/icon-provider.ts"],"names":[],"mappings":";AAAA,8BAA8B;;AAM9B,gCAEC;AAND,2CAA+C;AAC/C,2CAA+C;AAG/C,SAAgB,UAAU,CAAC,WAA4B;IACrD,OAAO,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAW,CAAC,CAAC,CAAC,kBAAW,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface IconSet {
2
+ model: string;
3
+ context: string;
4
+ git: string;
5
+ cost: string;
6
+ duration: string;
7
+ workspace: string;
8
+ turns: string;
9
+ cacheRatio: string;
10
+ rateLimit: string;
11
+ weeklyQuota: string;
12
+ mcpStatus: string;
13
+ thinking: string;
14
+ outputStyle: string;
15
+ accountUsage: string;
16
+ }
17
+ export declare const nerdIconSet: IconSet;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nerdIconSet = void 0;
4
+ exports.nerdIconSet = {
5
+ model: "󰀹",
6
+ context: "󰂅",
7
+ git: "󰂀",
8
+ cost: "󰀪",
9
+ duration: "󰀙",
10
+ workspace: "󰀻",
11
+ turns: "󰀔",
12
+ cacheRatio: "󰃒",
13
+ rateLimit: "󰀋",
14
+ weeklyQuota: "󰀰",
15
+ mcpStatus: "󰃦",
16
+ thinking: "󰂲",
17
+ outputStyle: "󰀺",
18
+ accountUsage: "󰃦"
19
+ };
20
+ //# sourceMappingURL=nerd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nerd.js","sourceRoot":"","sources":["../../../../src/themes/icon-sets/nerd.ts"],"names":[],"mappings":";;;AAkBa,QAAA,WAAW,GAAY;IAClC,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;CACnB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface IconSet {
2
+ model: string;
3
+ context: string;
4
+ git: string;
5
+ cost: string;
6
+ duration: string;
7
+ workspace: string;
8
+ turns: string;
9
+ cacheRatio: string;
10
+ rateLimit: string;
11
+ weeklyQuota: string;
12
+ mcpStatus: string;
13
+ thinking: string;
14
+ outputStyle: string;
15
+ accountUsage: string;
16
+ }
17
+ export declare const textIconSet: IconSet;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // src/themes/icon-sets/text.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.textIconSet = void 0;
5
+ exports.textIconSet = {
6
+ model: '[M]',
7
+ context: '[C]',
8
+ git: '[G]',
9
+ cost: '[$]',
10
+ duration: '[T]',
11
+ workspace: '[W]',
12
+ turns: '[N]',
13
+ cacheRatio: '[R]',
14
+ rateLimit: '[L]',
15
+ weeklyQuota: '[Q]',
16
+ mcpStatus: '[P]',
17
+ thinking: '[Think]',
18
+ outputStyle: '[S]',
19
+ accountUsage: '[A]'
20
+ };
21
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/themes/icon-sets/text.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAmBlB,QAAA,WAAW,GAAY;IAClC,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;CACpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Theme } from '../types/theme';
2
+ export declare function loadTheme(name: string, iconSet: 'nerd' | 'text'): Theme;
3
+ export declare function getBuiltinThemeNames(): string[];
4
+ export declare function getAllThemes(): Theme[];
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ // src/themes/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.loadTheme = loadTheme;
5
+ exports.getBuiltinThemeNames = getBuiltinThemeNames;
6
+ exports.getAllThemes = getAllThemes;
7
+ const dark_1 = require("./builtin/dark");
8
+ const light_1 = require("./builtin/light");
9
+ const cyberpunk_1 = require("./builtin/cyberpunk");
10
+ const forest_1 = require("./builtin/forest");
11
+ const ocean_1 = require("./builtin/ocean");
12
+ const nerd_1 = require("./icon-sets/nerd");
13
+ const BUILTIN_THEMES = {
14
+ dark: dark_1.darkTheme,
15
+ light: light_1.lightTheme,
16
+ cyberpunk: cyberpunk_1.cyberpunkTheme,
17
+ forest: forest_1.forestTheme,
18
+ ocean: ocean_1.oceanTheme
19
+ };
20
+ function cloneTheme(theme) {
21
+ return JSON.parse(JSON.stringify(theme));
22
+ }
23
+ function overlayNerdIcons(theme) {
24
+ const n = nerd_1.nerdIconSet;
25
+ theme.components.model.icon = n.model;
26
+ theme.components.context.icon = n.context;
27
+ theme.components.git.icon = n.git;
28
+ theme.components.cost.icon = n.cost;
29
+ theme.components.duration.icon = n.duration;
30
+ theme.components.workspace.icon = n.workspace;
31
+ theme.components.turns.icon = n.turns;
32
+ theme.components.cacheRatio.icon = n.cacheRatio;
33
+ theme.components.rateLimit.icon = n.rateLimit;
34
+ theme.components.weeklyQuota.icon = n.weeklyQuota;
35
+ theme.components.accountUsage.icon = n.accountUsage;
36
+ theme.components.mcpStatus.icon = n.mcpStatus;
37
+ theme.components.thinking.icon = n.thinking;
38
+ theme.components.outputStyle.icon = n.outputStyle;
39
+ theme.separator.left = '\u{e0b0}';
40
+ return theme;
41
+ }
42
+ function loadTheme(name, iconSet) {
43
+ const base = BUILTIN_THEMES[name] || dark_1.darkTheme;
44
+ const t = cloneTheme(base);
45
+ if (iconSet === 'nerd') {
46
+ overlayNerdIcons(t);
47
+ }
48
+ return t;
49
+ }
50
+ function getBuiltinThemeNames() {
51
+ return Object.keys(BUILTIN_THEMES);
52
+ }
53
+ function getAllThemes() {
54
+ return Object.values(BUILTIN_THEMES);
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/themes/index.ts"],"names":[],"mappings":";AAAA,sBAAsB;;AA0CtB,8BAOC;AAED,oDAEC;AAED,oCAEC;AAtDD,yCAA2C;AAC3C,2CAA6C;AAC7C,mDAAqD;AACrD,6CAA+C;AAC/C,2CAA6C;AAC7C,2CAA+C;AAE/C,MAAM,cAAc,GAA0B;IAC5C,IAAI,EAAE,gBAAS;IACf,KAAK,EAAE,kBAAU;IACjB,SAAS,EAAE,0BAAc;IACzB,MAAM,EAAE,oBAAW;IACnB,KAAK,EAAE,kBAAU;CAClB,CAAC;AAEF,SAAS,UAAU,CAAC,KAAY;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAU,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY;IACpC,MAAM,CAAC,GAAG,kBAAW,CAAC;IACtB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IACtC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;IAC1C,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;IAClC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5C,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;IAC9C,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IACtC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;IAChD,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;IAC9C,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;IAClD,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC;IACpD,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;IAC9C,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5C,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;IAClD,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,OAAwB;IAC9D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,gBAAS,CAAC;IAC/C,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,58 @@
1
+ export type Language = 'zh' | 'en';
2
+ export interface PulseConfig {
3
+ theme: string;
4
+ separator: string;
5
+ padding: number;
6
+ refreshInterval: number;
7
+ iconSet: 'nerd' | 'text';
8
+ language: Language;
9
+ /** Bumped when a one-time default migration applies (omit in older files). */
10
+ schemaVersion?: number;
11
+ modules: {
12
+ model: ModuleConfig;
13
+ context: ContextModuleConfig;
14
+ git: GitModuleConfig;
15
+ cost: ModuleConfig;
16
+ duration: ModuleConfig;
17
+ workspace: ModuleConfig;
18
+ turns: ModuleConfig;
19
+ cacheRatio: ModuleConfig;
20
+ rateLimits: RateLimitModuleConfig;
21
+ weeklyQuota: RateLimitModuleConfig;
22
+ mcpStatus: ModuleConfig;
23
+ thinking: ModuleConfig;
24
+ outputStyle: ModuleConfig;
25
+ thirdPartyApi: ThirdPartyApiConfig;
26
+ accountUsage: AccountUsageModuleConfig;
27
+ };
28
+ advanced: {
29
+ cacheEnabled: boolean;
30
+ cacheTTL: number;
31
+ gitTimeout: number;
32
+ debugMode: boolean;
33
+ customThemePath: string | null;
34
+ };
35
+ }
36
+ export interface ModuleConfig {
37
+ enabled: boolean;
38
+ order: number;
39
+ icon?: string;
40
+ }
41
+ export interface ContextModuleConfig extends ModuleConfig {
42
+ showBar?: boolean;
43
+ showTokens?: boolean;
44
+ barWidth?: number;
45
+ }
46
+ export interface GitModuleConfig extends ModuleConfig {
47
+ showUpstream?: boolean;
48
+ }
49
+ export interface RateLimitModuleConfig extends ModuleConfig {
50
+ showCountdown?: boolean;
51
+ }
52
+ export interface ThirdPartyApiConfig extends ModuleConfig {
53
+ providers?: string[];
54
+ }
55
+ export interface AccountUsageModuleConfig extends ModuleConfig {
56
+ providers?: string[];
57
+ }
58
+ export declare const DEFAULT_CONFIG: PulseConfig;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // src/types/pulse-config.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DEFAULT_CONFIG = void 0;
5
+ exports.DEFAULT_CONFIG = {
6
+ theme: 'dark',
7
+ separator: ' │ ',
8
+ padding: 1,
9
+ refreshInterval: 5,
10
+ iconSet: 'text',
11
+ language: 'en',
12
+ schemaVersion: 4,
13
+ modules: {
14
+ model: { enabled: true, order: 1, icon: '[当前模型]' },
15
+ git: {
16
+ enabled: true,
17
+ order: 2,
18
+ showUpstream: false,
19
+ icon: '[Git 分支]'
20
+ },
21
+ workspace: { enabled: true, order: 3, icon: '[工作区]' },
22
+ context: {
23
+ enabled: true,
24
+ order: 4,
25
+ showBar: true,
26
+ showTokens: false,
27
+ barWidth: 12,
28
+ icon: '[上下文使用率]'
29
+ },
30
+ cacheRatio: { enabled: true, order: 5, icon: '[缓存]' },
31
+ mcpStatus: { enabled: true, order: 6, icon: '[MCP]' },
32
+ accountUsage: { enabled: true, order: 7, icon: '[账户]', providers: ['zhipu', 'deepseek'] },
33
+ turns: { enabled: true, order: 8, icon: '[轮次]' },
34
+ thinking: { enabled: true, order: 9, icon: '[思考]' },
35
+ cost: { enabled: false, order: 10, icon: '[费用]' },
36
+ duration: { enabled: false, order: 11, icon: '[时长]' },
37
+ rateLimits: { enabled: false, order: 12, icon: '[限速]', showCountdown: true },
38
+ weeklyQuota: { enabled: false, order: 13, icon: '[配额]', showCountdown: true },
39
+ outputStyle: { enabled: false, order: 14, icon: '[风格]' },
40
+ thirdPartyApi: { enabled: false, order: 15, icon: '[API]', providers: [] }
41
+ },
42
+ advanced: {
43
+ cacheEnabled: true,
44
+ cacheTTL: 300,
45
+ gitTimeout: 200,
46
+ debugMode: false,
47
+ customThemePath: null
48
+ }
49
+ };
50
+ //# sourceMappingURL=pulse-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-config.js","sourceRoot":"","sources":["../../../src/types/pulse-config.ts"],"names":[],"mappings":";AAAA,4BAA4B;;;AAmEf,QAAA,cAAc,GAAgB;IACzC,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClD,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,UAAU;SACjB;QACD,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;QACrD,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,UAAU;SACjB;QACD,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QACrD,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;QACrD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;QACzF,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QAChD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;QACnD,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACrD,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;QAC5E,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;QAC7E,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxD,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;KAC3E;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,KAAK;QAChB,eAAe,EAAE,IAAI;KACtB;CACF,CAAC"}
@@ -0,0 +1,83 @@
1
+ export interface PulseInput {
2
+ cwd: string;
3
+ session_id: string;
4
+ session_name?: string;
5
+ transcript_path: string;
6
+ model: ModelInfo;
7
+ workspace: WorkspaceInfo;
8
+ version: string;
9
+ output_style: {
10
+ name: string;
11
+ };
12
+ cost: CostInfo;
13
+ context_window: ContextWindow;
14
+ exceeds_200k_tokens: boolean;
15
+ effort?: {
16
+ level: string;
17
+ };
18
+ thinking?: {
19
+ enabled: boolean;
20
+ };
21
+ rate_limits?: RateLimits;
22
+ vim?: {
23
+ mode: string;
24
+ };
25
+ agent?: {
26
+ name: string;
27
+ };
28
+ worktree?: WorktreeInfo;
29
+ }
30
+ export interface ModelInfo {
31
+ id: string;
32
+ display_name: string;
33
+ }
34
+ export interface ContextWindow {
35
+ total_input_tokens: number;
36
+ total_output_tokens: number;
37
+ context_window_size: number;
38
+ used_percentage: number;
39
+ remaining_percentage: number;
40
+ current_usage?: CurrentUsage;
41
+ }
42
+ export interface CurrentUsage {
43
+ input_tokens: number;
44
+ output_tokens: number;
45
+ cache_creation_input_tokens: number;
46
+ cache_read_input_tokens: number;
47
+ }
48
+ export interface WorkspaceInfo {
49
+ current_dir: string;
50
+ project_dir?: string;
51
+ project_name?: string;
52
+ read_only: boolean;
53
+ }
54
+ export interface CostInfo {
55
+ total_cost_usd: number;
56
+ input_cost_usd: number;
57
+ output_cost_usd: number;
58
+ current_usage?: CurrentUsage;
59
+ }
60
+ export interface RateLimits {
61
+ five_hour: {
62
+ requests_used: number;
63
+ requests_limit: number;
64
+ input_tokens_used: number;
65
+ input_tokens_limit: number;
66
+ output_tokens_used: number;
67
+ output_tokens_limit: number;
68
+ resets_at: string;
69
+ };
70
+ seven_day?: {
71
+ requests_used: number;
72
+ requests_limit: number;
73
+ input_tokens_used: number;
74
+ input_tokens_limit: number;
75
+ output_tokens_used: number;
76
+ output_tokens_limit: number;
77
+ resets_at: string;
78
+ };
79
+ }
80
+ export interface WorktreeInfo {
81
+ worktree_path: string;
82
+ base_path: string;
83
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // src/types/pulse-input.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=pulse-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-input.js","sourceRoot":"","sources":["../../../src/types/pulse-input.ts"],"names":[],"mappings":";AAAA,2BAA2B"}
@@ -0,0 +1,50 @@
1
+ export interface Theme {
2
+ meta: {
3
+ name: string;
4
+ author: string;
5
+ version: string;
6
+ description: string;
7
+ };
8
+ separator: {
9
+ left: string;
10
+ right: string;
11
+ color: string;
12
+ };
13
+ colors: {
14
+ background: string;
15
+ primary: string;
16
+ accent: string;
17
+ success: string;
18
+ warning: string;
19
+ error: string;
20
+ info: string;
21
+ muted: string;
22
+ dim: string;
23
+ };
24
+ components: {
25
+ model: ComponentStyle;
26
+ context: ComponentStyle;
27
+ contextBar: ComponentStyle;
28
+ git: ComponentStyle;
29
+ cost: ComponentStyle;
30
+ duration: ComponentStyle;
31
+ workspace: ComponentStyle;
32
+ turns: ComponentStyle;
33
+ cacheRatio: ComponentStyle;
34
+ rateLimit: ComponentStyle;
35
+ weeklyQuota: ComponentStyle;
36
+ mcpStatus: ComponentStyle;
37
+ thinking: ComponentStyle;
38
+ outputStyle: ComponentStyle;
39
+ accountUsage: ComponentStyle;
40
+ separator: ComponentStyle;
41
+ };
42
+ }
43
+ export interface ComponentStyle {
44
+ fg: string;
45
+ bg?: string;
46
+ bold?: boolean;
47
+ dim?: boolean;
48
+ icon: string;
49
+ showIcon?: boolean;
50
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // src/types/theme.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/types/theme.ts"],"names":[],"mappings":";AAAA,qBAAqB"}
@@ -0,0 +1,6 @@
1
+ export declare function ansiColor(hex: string): string;
2
+ export declare function ansiColor256(hex: string): string;
3
+ export declare const ANSI_RESET = "\u001B[0m";
4
+ export declare const ANSI_BOLD = "\u001B[1m";
5
+ export declare const ANSI_DIM = "\u001B[2m";
6
+ export declare function colorize(hex: string, text: string, bold?: boolean, dim?: boolean): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // src/utils/ansi.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ANSI_DIM = exports.ANSI_BOLD = exports.ANSI_RESET = void 0;
5
+ exports.ansiColor = ansiColor;
6
+ exports.ansiColor256 = ansiColor256;
7
+ exports.colorize = colorize;
8
+ function ansiColor(hex) {
9
+ const r = parseInt(hex.slice(1, 3), 16);
10
+ const g = parseInt(hex.slice(3, 5), 16);
11
+ const b = parseInt(hex.slice(5, 7), 16);
12
+ return `\x1b[38;2;${r};${g};${b}m`;
13
+ }
14
+ function ansiColor256(hex) {
15
+ const r = parseInt(hex.slice(1, 3), 16);
16
+ const g = parseInt(hex.slice(3, 5), 16);
17
+ const b = parseInt(hex.slice(5, 7), 16);
18
+ return `\x1b[38;2;${r};${g};${b}m`;
19
+ }
20
+ exports.ANSI_RESET = '\x1b[0m';
21
+ exports.ANSI_BOLD = '\x1b[1m';
22
+ exports.ANSI_DIM = '\x1b[2m';
23
+ function colorize(hex, text, bold = false, dim = false) {
24
+ let ansi = ansiColor(hex);
25
+ if (bold)
26
+ ansi += exports.ANSI_BOLD;
27
+ if (dim)
28
+ ansi += exports.ANSI_DIM;
29
+ return `${ansi}${text}${exports.ANSI_RESET}`;
30
+ }
31
+ //# sourceMappingURL=ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../../src/utils/ansi.ts"],"names":[],"mappings":";AAAA,oBAAoB;;;AAEpB,8BAKC;AAED,oCAKC;AAMD,4BAKC;AAvBD,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAEY,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,SAAS,GAAG,SAAS,CAAC;AACtB,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC,SAAgB,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK;IAC3E,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,IAAI;QAAE,IAAI,IAAI,iBAAS,CAAC;IAC5B,IAAI,GAAG;QAAE,IAAI,IAAI,gBAAQ,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,kBAAU,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare class TTLCache<T> {
2
+ private cache;
3
+ get(key: string): T | null;
4
+ set(key: string, value: T, ttl: number): void;
5
+ has(key: string): boolean;
6
+ clear(): void;
7
+ }
8
+ export declare function getSessionCachePath(sessionId: string): string;
9
+ export declare function loadSessionCache<T>(sessionId: string, key: string): T | null;
10
+ export declare function saveSessionCache<T>(sessionId: string, key: string, value: T, ttl: number): void;
11
+ export declare function removeSessionCacheKey(sessionId: string, key: string): void;