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,23 @@
1
+ "use strict";
2
+ // src/formatters/progress-bar.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.renderProgressBar = renderProgressBar;
5
+ exports.getProgressColor = getProgressColor;
6
+ function renderProgressBar(percentage, width = 12) {
7
+ const filled = Math.max(0, Math.min(Math.round((percentage / 100) * width), width));
8
+ const empty = width - filled;
9
+ return '█'.repeat(filled) + '░'.repeat(empty);
10
+ }
11
+ function getProgressColor(percentage) {
12
+ const pct = Math.min(100, Math.max(0, percentage));
13
+ if (pct < 30)
14
+ return '#9ece6a';
15
+ if (pct < 50)
16
+ return '#9ece6a';
17
+ if (pct < 70)
18
+ return '#e0af68';
19
+ if (pct < 90)
20
+ return '#ff9e64';
21
+ return '#f7768e';
22
+ }
23
+ //# sourceMappingURL=progress-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/formatters/progress-bar.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAEjC,8CAIC;AAED,4CAOC;AAbD,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface SegmentData {
2
+ text: string;
3
+ fg?: string;
4
+ bg?: string;
5
+ bold?: boolean;
6
+ dim?: boolean;
7
+ icon?: string;
8
+ }
9
+ export declare function renderSegment(data: SegmentData): string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // src/formatters/segment.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.renderSegment = renderSegment;
5
+ const ansi_1 = require("../utils/ansi");
6
+ function renderSegment(data) {
7
+ let ansi = '';
8
+ if (data.fg) {
9
+ ansi += (0, ansi_1.ansiColor)(data.fg);
10
+ }
11
+ if (data.bold)
12
+ ansi += ansi_1.ANSI_BOLD;
13
+ if (data.dim)
14
+ ansi += '\x1b[2m';
15
+ const text = data.icon ? `${data.icon} ${data.text}` : data.text;
16
+ return `${ansi}${text}${ansi_1.ANSI_RESET}`;
17
+ }
18
+ //# sourceMappingURL=segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/formatters/segment.ts"],"names":[],"mappings":";AAAA,4BAA4B;;AAa5B,sCAYC;AAvBD,wCAAiE;AAWjE,SAAgB,aAAa,CAAC,IAAiB;IAC7C,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,IAAI,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,IAAI,gBAAS,CAAC;IACjC,IAAI,IAAI,CAAC,GAAG;QAAE,IAAI,IAAI,SAAS,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACjE,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,iBAAU,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function renderSeparator(sep: string, fg: string): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // src/formatters/separator.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.renderSeparator = renderSeparator;
5
+ const ansi_1 = require("../utils/ansi");
6
+ function renderSeparator(sep, fg) {
7
+ if (!sep)
8
+ return '';
9
+ return (0, ansi_1.ansiColor)(fg) + sep + ansi_1.ANSI_RESET;
10
+ }
11
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../../src/formatters/separator.ts"],"names":[],"mappings":";AAAA,8BAA8B;;AAI9B,0CAGC;AALD,wCAAsD;AAEtD,SAAgB,eAAe,CAAC,GAAW,EAAE,EAAU;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,IAAA,gBAAS,EAAC,EAAE,CAAC,GAAG,GAAG,GAAG,iBAAU,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { zhLabels } from './locales/zh';
2
+ export type LocaleKey = keyof typeof zhLabels;
3
+ export type Language = 'zh' | 'en';
4
+ export declare function getLabel(lang: Language, key: LocaleKey): string;
5
+ export declare function getLabels(lang: Language): Record<string, string>;
6
+ export declare function getAllLanguages(): Language[];
7
+ export declare function isValidLanguage(lang: string): lang is Language;
8
+ export declare function formatIconLabel(lang: Language, key: LocaleKey): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // src/i18n/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getLabel = getLabel;
5
+ exports.getLabels = getLabels;
6
+ exports.getAllLanguages = getAllLanguages;
7
+ exports.isValidLanguage = isValidLanguage;
8
+ exports.formatIconLabel = formatIconLabel;
9
+ const zh_1 = require("./locales/zh");
10
+ const en_1 = require("./locales/en");
11
+ const locales = {
12
+ zh: zh_1.zhLabels,
13
+ en: en_1.enLabels,
14
+ };
15
+ function getLabel(lang, key) {
16
+ return locales[lang]?.[key] ?? locales.zh[key] ?? key;
17
+ }
18
+ function getLabels(lang) {
19
+ return locales[lang] ?? locales.zh;
20
+ }
21
+ function getAllLanguages() {
22
+ return Object.keys(locales);
23
+ }
24
+ function isValidLanguage(lang) {
25
+ return lang in locales;
26
+ }
27
+ function formatIconLabel(lang, key) {
28
+ const label = getLabel(lang, key);
29
+ return `[${label}]`;
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/i18n/index.ts"],"names":[],"mappings":";AAAA,oBAAoB;;AAapB,4BAEC;AAED,8BAEC;AAED,0CAEC;AAED,0CAEC;AAED,0CAGC;AA9BD,qCAAwC;AACxC,qCAAwC;AAKxC,MAAM,OAAO,GAA6C;IACxD,EAAE,EAAE,aAAQ;IACZ,EAAE,EAAE,aAAQ;CACb,CAAC;AAEF,SAAgB,QAAQ,CAAC,IAAc,EAAE,GAAc;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACxD,CAAC;AAED,SAAgB,SAAS,CAAC,IAAc;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAe,CAAC;AAC5C,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,IAAI,OAAO,CAAC;AACzB,CAAC;AAED,SAAgB,eAAe,CAAC,IAAc,EAAE,GAAc;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,IAAI,KAAK,GAAG,CAAC;AACtB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const enLabels: Record<string, string>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // src/i18n/locales/en.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.enLabels = void 0;
5
+ exports.enLabels = {
6
+ model: 'Model',
7
+ context: 'Context',
8
+ git: 'Git',
9
+ cost: 'Cost',
10
+ duration: 'Duration',
11
+ workspace: 'Workspace',
12
+ turns: 'Turns',
13
+ cacheRatio: 'Cache',
14
+ rateLimit: 'Rate',
15
+ weeklyQuota: 'Quota',
16
+ mcpStatus: 'MCP',
17
+ thinking: 'Thinking',
18
+ thinkingOn: 'On',
19
+ thinkingOff: 'Off',
20
+ remaining: 'remaining',
21
+ reset: 'reset',
22
+ outputStyle: 'Style',
23
+ accountUsage: 'Account',
24
+ thirdPartyApi: 'API',
25
+ };
26
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../../src/i18n/locales/en.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;AAEZ,QAAA,QAAQ,GAA2B;IAC9C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,OAAO;IACpB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,KAAK;CACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const zhLabels: Record<string, string>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // src/i18n/locales/zh.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.zhLabels = void 0;
5
+ exports.zhLabels = {
6
+ model: '当前模型',
7
+ context: '上下文使用率',
8
+ git: 'Git 分支',
9
+ cost: '费用',
10
+ duration: '时长',
11
+ workspace: '工作区',
12
+ turns: '轮次',
13
+ cacheRatio: '缓存',
14
+ rateLimit: '限速',
15
+ weeklyQuota: '配额',
16
+ mcpStatus: 'MCP',
17
+ thinking: '思考',
18
+ thinkingOn: '开启',
19
+ thinkingOff: '关闭',
20
+ remaining: '剩余',
21
+ reset: '已重置',
22
+ outputStyle: '风格',
23
+ accountUsage: '账户',
24
+ thirdPartyApi: 'API',
25
+ };
26
+ //# sourceMappingURL=zh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh.js","sourceRoot":"","sources":["../../../../src/i18n/locales/zh.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;AAEZ,QAAA,QAAQ,GAA2B;IAC9C,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,QAAQ;IACjB,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,KAAK;CACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ // src/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const stdin_parser_1 = require("./parser/stdin-parser");
5
+ const loader_1 = require("./config/loader");
6
+ const themes_1 = require("./themes");
7
+ const extractors_1 = require("./extractors");
8
+ const formatters_1 = require("./formatters");
9
+ const progress_bar_1 = require("./formatters/progress-bar");
10
+ const ansi_1 = require("./utils/ansi");
11
+ const logger_1 = require("./utils/logger");
12
+ const HTTP_TIMEOUT_MS = 2000;
13
+ async function main() {
14
+ try {
15
+ const input = (0, stdin_parser_1.parseStdinSync)();
16
+ const config = (0, loader_1.loadConfig)();
17
+ const theme = (0, themes_1.loadTheme)(config.theme, config.iconSet);
18
+ const modules = config.modules;
19
+ (0, logger_1.debug)('Rendering pulse for session:', input.session_id);
20
+ const segments = [];
21
+ // Model
22
+ if (modules.model.enabled) {
23
+ const model = (0, extractors_1.extractModel)(input, theme, modules.model.icon);
24
+ if (model) {
25
+ segments.push({ order: modules.model.order, text: (0, formatters_1.renderSegment)(model) });
26
+ }
27
+ }
28
+ // Context
29
+ if (modules.context.enabled) {
30
+ const ctx = (0, extractors_1.extractContext)(input);
31
+ const barWidth = modules.context.barWidth || 12;
32
+ const bar = (0, progress_bar_1.renderProgressBar)(ctx.percentage, barWidth);
33
+ const ctxIcon = modules.context.icon ?? theme.components.context.icon ?? '';
34
+ const tail = `${bar} ${ctx.percentage.toFixed(0)}%`;
35
+ const ctxText = ctxIcon ? `${ctxIcon} ${tail}` : tail;
36
+ segments.push({ order: modules.context.order, text: (0, ansi_1.colorize)(theme.colors.success, ctxText) });
37
+ }
38
+ // Account usage: refresh first, then render
39
+ if (modules.accountUsage.enabled) {
40
+ const auIcon = modules.accountUsage.icon ?? theme.components.accountUsage.icon ?? '[A]';
41
+ await (0, extractors_1.refreshAccountUsage)(modules.accountUsage, theme, HTTP_TIMEOUT_MS, input.cwd, auIcon, config.language);
42
+ const cachedResults = (0, extractors_1.extractAccountUsageSync)(modules.accountUsage, input.cwd);
43
+ for (const result of cachedResults) {
44
+ const usageIcon = auIcon || result.icon;
45
+ segments.push({
46
+ order: modules.accountUsage.order,
47
+ text: (0, ansi_1.colorize)(result.fg, usageIcon.length > 0 ? `${usageIcon} ${result.text}` : result.text)
48
+ });
49
+ }
50
+ }
51
+ // Git
52
+ if (modules.git.enabled) {
53
+ const gitIcon = modules.git.icon;
54
+ const git = (0, extractors_1.extractGit)(input.cwd, input.session_id, theme, gitIcon);
55
+ if (git) {
56
+ segments.push({ order: modules.git.order, text: (0, ansi_1.colorize)(git.fg, git.text) });
57
+ }
58
+ }
59
+ // Cost
60
+ if (modules.cost.enabled) {
61
+ const cost = (0, extractors_1.extractCost)(input);
62
+ if (cost) {
63
+ const icon = modules.cost.icon ?? theme.components.cost.icon ?? '';
64
+ const line = icon.length > 0 ? `${icon} ${cost.text}` : cost.text;
65
+ segments.push({ order: modules.cost.order, text: (0, ansi_1.colorize)(theme.colors.warning, line) });
66
+ }
67
+ }
68
+ // Duration
69
+ if (modules.duration.enabled) {
70
+ const durIcon = modules.duration.icon;
71
+ const duration = (0, extractors_1.extractSessionDuration)(input.session_id, input.transcript_path, theme, durIcon);
72
+ if (duration) {
73
+ segments.push({ order: modules.duration.order, text: (0, ansi_1.colorize)(theme.colors.muted, duration.text) });
74
+ }
75
+ }
76
+ // Workspace
77
+ if (modules.workspace.enabled) {
78
+ const ws = (0, extractors_1.extractWorkspace)(input);
79
+ const icon = modules.workspace.icon ?? theme.components.workspace.icon ?? '';
80
+ const line = icon.length > 0 ? `${icon} ${ws.text}` : ws.text;
81
+ segments.push({ order: modules.workspace.order, text: (0, ansi_1.colorize)(theme.colors.accent, line) });
82
+ }
83
+ // Turns
84
+ if (modules.turns.enabled) {
85
+ const turnsIcon = modules.turns.icon;
86
+ const turns = (0, extractors_1.extractTurns)(input.transcript_path, theme, turnsIcon);
87
+ if (turns) {
88
+ segments.push({ order: modules.turns.order, text: (0, ansi_1.colorize)(theme.colors.info, turns.text) });
89
+ }
90
+ }
91
+ // Cache ratio
92
+ if (modules.cacheRatio.enabled) {
93
+ const usage = input.context_window.current_usage;
94
+ if (usage && usage.cache_read_input_tokens > 0) {
95
+ const icon = modules.cacheRatio.icon ?? theme.components.cacheRatio.icon ?? '';
96
+ const cached = usage.cache_read_input_tokens;
97
+ const label = cached >= 1_000_000
98
+ ? `${(cached / 1_000_000).toFixed(1)}M`
99
+ : cached >= 1000
100
+ ? `${(cached / 1000).toFixed(1)}K`
101
+ : `${cached}`;
102
+ const line = icon.length > 0 ? `${icon} ${label}` : label;
103
+ segments.push({ order: modules.cacheRatio.order, text: (0, ansi_1.colorize)(theme.colors.accent, line) });
104
+ }
105
+ }
106
+ // Rate limits
107
+ if (modules.rateLimits.enabled) {
108
+ const rlIcon = modules.rateLimits.icon;
109
+ const rl = (0, extractors_1.extractRateLimits)(input, theme, rlIcon);
110
+ if (rl) {
111
+ segments.push({ order: modules.rateLimits.order, text: (0, ansi_1.colorize)(rl.fg, rl.text) });
112
+ }
113
+ }
114
+ // Weekly quota
115
+ if (modules.weeklyQuota.enabled) {
116
+ const wqIcon = modules.weeklyQuota.icon;
117
+ const wq = (0, extractors_1.extractWeeklyQuota)(input, theme, wqIcon);
118
+ if (wq) {
119
+ segments.push({ order: modules.weeklyQuota.order, text: (0, ansi_1.colorize)(wq.fg, wq.text) });
120
+ }
121
+ }
122
+ // MCP status
123
+ if (modules.mcpStatus.enabled) {
124
+ const mcpIcon = modules.mcpStatus.icon;
125
+ const mcp = (0, extractors_1.extractMcpStatus)(theme, mcpIcon);
126
+ if (mcp) {
127
+ segments.push({ order: modules.mcpStatus.order, text: (0, ansi_1.colorize)(theme.colors.muted, mcp.text) });
128
+ }
129
+ }
130
+ // Thinking
131
+ if (modules.thinking.enabled) {
132
+ const thinkingIcon = modules.thinking.icon;
133
+ const thinking = (0, extractors_1.extractThinking)(input, theme, config.language, thinkingIcon);
134
+ if (thinking) {
135
+ segments.push({ order: modules.thinking.order, text: (0, ansi_1.colorize)(theme.colors.accent, thinking.text) });
136
+ }
137
+ }
138
+ // Output style
139
+ if (modules.outputStyle.enabled) {
140
+ const style = (0, extractors_1.extractOutputStyle)(input, theme);
141
+ if (style) {
142
+ segments.push({ order: modules.outputStyle.order, text: (0, ansi_1.colorize)(theme.colors.muted, style.text) });
143
+ }
144
+ }
145
+ // Third-party API usage (async)
146
+ if (modules.thirdPartyApi.enabled) {
147
+ const providers = modules.thirdPartyApi.providers || [];
148
+ if (providers.length > 0) {
149
+ (0, extractors_1.extractThirdPartyApi)(providers, theme, HTTP_TIMEOUT_MS, input.cwd)
150
+ .then((results) => {
151
+ (0, logger_1.debug)(`Third-party API query complete: ${results.length} providers`);
152
+ })
153
+ .catch((err) => (0, logger_1.debug)('Third-party API query error:', err));
154
+ }
155
+ }
156
+ // Sort segments by configured order, then render
157
+ segments.sort((a, b) => a.order - b.order);
158
+ const layoutOpts = {
159
+ separator: config.separator,
160
+ padding: config.padding
161
+ };
162
+ const output = (0, formatters_1.renderLayout)(segments.map((s) => ({ text: s.text })), theme, layoutOpts);
163
+ console.log(output);
164
+ if (config.advanced.debugMode) {
165
+ (0, logger_1.debug)('Rendering complete');
166
+ }
167
+ }
168
+ catch (err) {
169
+ if (process.env.PULSE_DEBUG) {
170
+ console.error('[pulse] Error:', err);
171
+ }
172
+ process.exit(0);
173
+ }
174
+ }
175
+ main().catch(() => process.exit(0));
176
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { PulseInput } from '../types/pulse-input';
2
+ export declare function parseStdin(): Promise<PulseInput>;
3
+ export declare function parseStdinSync(): PulseInput;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // src/parser/stdin-parser.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseStdin = parseStdin;
5
+ exports.parseStdinSync = parseStdinSync;
6
+ function parseStdin() {
7
+ return new Promise((resolve, reject) => {
8
+ if (process.stdin.isTTY) {
9
+ reject(new Error('No stdin data provided'));
10
+ return;
11
+ }
12
+ let raw = '';
13
+ process.stdin.setEncoding('utf8');
14
+ process.stdin.on('data', (chunk) => {
15
+ raw += chunk;
16
+ });
17
+ process.stdin.on('end', () => {
18
+ try {
19
+ const data = JSON.parse(raw.trim());
20
+ resolve(data);
21
+ }
22
+ catch (err) {
23
+ reject(new Error(`Failed to parse stdin JSON: ${err}`));
24
+ }
25
+ });
26
+ process.stdin.on('error', (err) => {
27
+ reject(new Error(`Failed to read stdin: ${err}`));
28
+ });
29
+ });
30
+ }
31
+ function parseStdinSync() {
32
+ const raw = readFileSync(0, 'utf8');
33
+ const trimmed = raw.trim();
34
+ if (!trimmed) {
35
+ throw new Error('No stdin data provided');
36
+ }
37
+ return JSON.parse(trimmed);
38
+ }
39
+ function readFileSync(fd, encoding) {
40
+ const chunks = [];
41
+ const buffer = Buffer.alloc(8192);
42
+ let bytesRead;
43
+ while ((bytesRead = read(fd, buffer, 0, buffer.length, null)) > 0) {
44
+ chunks.push(buffer.subarray(0, bytesRead));
45
+ }
46
+ const combined = Buffer.concat(chunks);
47
+ return combined.toString(encoding);
48
+ }
49
+ function read(fd, buffer, offset, length, position) {
50
+ const fs = require('fs');
51
+ try {
52
+ return fs.readSync(fd, buffer, offset, length, position);
53
+ }
54
+ catch {
55
+ return 0;
56
+ }
57
+ }
58
+ //# sourceMappingURL=stdin-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin-parser.js","sourceRoot":"","sources":["../../../src/parser/stdin-parser.ts"],"names":[],"mappings":";AAAA,6BAA6B;;AAI7B,gCA2BC;AAED,wCAOC;AApCD,SAAgB,UAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,GAAG,IAAI,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAkB,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACvC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,QAAgB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,SAAiB,CAAC;IAEtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAA0B,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,IAAI,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,QAAuB;IAC/F,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Theme } from '../../types/theme';
2
+ export declare const cyberpunkTheme: Theme;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // src/themes/builtin/cyberpunk.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.cyberpunkTheme = void 0;
5
+ exports.cyberpunkTheme = {
6
+ meta: {
7
+ name: 'Cyberpunk',
8
+ author: 'pulse-line',
9
+ version: '1.0.0',
10
+ description: 'Neon cyberpunk aesthetic'
11
+ },
12
+ separator: {
13
+ left: '│',
14
+ right: '',
15
+ color: '#ff79c6'
16
+ },
17
+ colors: {
18
+ background: 'transparent',
19
+ primary: '#00ffff',
20
+ accent: '#ff79c6',
21
+ success: '#50fa7b',
22
+ warning: '#f1fa8c',
23
+ error: '#ff5555',
24
+ info: '#8be9fd',
25
+ muted: '#bd93f9',
26
+ dim: '#6272a4'
27
+ },
28
+ components: {
29
+ model: { fg: '#00ffff', bold: true, icon: '[M]', showIcon: true },
30
+ context: { fg: '#50fa7b', icon: '[C]', showIcon: true },
31
+ contextBar: { fg: '#50fa7b', icon: '', showIcon: false, bg: '#6272a4' },
32
+ git: { fg: '#8be9fd', icon: '[G]', showIcon: true },
33
+ cost: { fg: '#f1fa8c', icon: '[$]', showIcon: true },
34
+ duration: { fg: '#bd93f9', icon: '[T]', showIcon: true },
35
+ workspace: { fg: '#ff79c6', icon: '[W]', showIcon: true },
36
+ turns: { fg: '#8be9fd', icon: '[N]', showIcon: true },
37
+ cacheRatio: { fg: '#ff79c6', icon: '[R]', showIcon: true },
38
+ rateLimit: { fg: '#8be9fd', icon: '[L]', showIcon: true },
39
+ weeklyQuota: { fg: '#f1fa8c', icon: '[Q]', showIcon: true },
40
+ accountUsage: { fg: '#ff79c6', icon: '[A]', showIcon: true },
41
+ mcpStatus: { fg: '#bd93f9', icon: '[MCP]', showIcon: true },
42
+ thinking: { fg: '#ff79c6', icon: '[Think]', showIcon: true },
43
+ outputStyle: { fg: '#bd93f9', icon: '[S]', showIcon: true },
44
+ separator: { fg: '#6272a4', icon: '', showIcon: false, dim: true }
45
+ }
46
+ };
47
+ //# sourceMappingURL=cyberpunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cyberpunk.js","sourceRoot":"","sources":["../../../../src/themes/builtin/cyberpunk.ts"],"names":[],"mappings":";AAAA,kCAAkC;;;AAIrB,QAAA,cAAc,GAAU;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,0BAA0B;KACxC;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 darkTheme: Theme;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // src/themes/builtin/dark.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.darkTheme = void 0;
5
+ exports.darkTheme = {
6
+ meta: {
7
+ name: 'Deep Dark',
8
+ author: 'pulse-line',
9
+ version: '1.0.0',
10
+ description: 'Professional dark theme'
11
+ },
12
+ separator: {
13
+ left: '│',
14
+ right: '',
15
+ color: '#565f89'
16
+ },
17
+ colors: {
18
+ background: 'transparent',
19
+ primary: '#7aa2f7',
20
+ accent: '#bb9af7',
21
+ success: '#9ece6a',
22
+ warning: '#e0af68',
23
+ error: '#f7768e',
24
+ info: '#7dcfff',
25
+ muted: '#a9b1d6',
26
+ dim: '#565f89'
27
+ },
28
+ components: {
29
+ model: { fg: '#7aa2f7', bold: true, icon: '[M]', showIcon: true },
30
+ context: { fg: '#9ece6a', icon: '[C]', showIcon: true },
31
+ contextBar: { fg: '#9ece6a', bg: '#565f89', icon: '', showIcon: false },
32
+ git: { fg: '#7dcfff', icon: '[G]', showIcon: true },
33
+ cost: { fg: '#e0af68', icon: '[$]', showIcon: true },
34
+ duration: { fg: '#a9b1d6', icon: '[T]', showIcon: true },
35
+ workspace: { fg: '#bb9af7', icon: '[W]', showIcon: true },
36
+ turns: { fg: '#7dcfff', icon: '[N]', showIcon: true },
37
+ cacheRatio: { fg: '#bb9af7', icon: '[R]', showIcon: true },
38
+ rateLimit: { fg: '#7dcfff', icon: '[L]', showIcon: true },
39
+ weeklyQuota: { fg: '#e0af68', icon: '[Q]', showIcon: true },
40
+ accountUsage: { fg: '#f7768e', icon: '[A]', showIcon: true },
41
+ mcpStatus: { fg: '#a9b1d6', icon: '[MCP]', showIcon: true },
42
+ thinking: { fg: '#bb9af7', icon: '[Think]', showIcon: true },
43
+ outputStyle: { fg: '#a9b1d6', icon: '[S]', showIcon: true },
44
+ separator: { fg: '#565f89', dim: true, icon: '', showIcon: false }
45
+ }
46
+ };
47
+ //# sourceMappingURL=dark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.js","sourceRoot":"","sources":["../../../../src/themes/builtin/dark.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAIhB,QAAA,SAAS,GAAU;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,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,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,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,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KACnE;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Theme } from '../../types/theme';
2
+ export declare const forestTheme: Theme;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ // src/themes/builtin/forest.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.forestTheme = void 0;
5
+ exports.forestTheme = {
6
+ meta: {
7
+ name: 'Forest',
8
+ author: 'pulse-line',
9
+ version: '1.0.0',
10
+ description: 'Natural forest green palette'
11
+ },
12
+ separator: {
13
+ left: '│',
14
+ right: '',
15
+ color: '#74c69d'
16
+ },
17
+ colors: {
18
+ background: 'transparent',
19
+ primary: '#40916c',
20
+ accent: '#b7e4c7',
21
+ success: '#52b788',
22
+ warning: '#e9c46a',
23
+ error: '#e63946',
24
+ info: '#95d5b2',
25
+ muted: '#d8f3dc',
26
+ dim: '#74c69d'
27
+ },
28
+ components: {
29
+ model: { fg: '#52b788', bold: true, icon: '[M]', showIcon: true },
30
+ context: { fg: '#52b788', icon: '[C]', showIcon: true },
31
+ contextBar: { fg: '#52b788', icon: '', showIcon: false, bg: '#74c69d' },
32
+ git: { fg: '#95d5b2', icon: '[G]', showIcon: true },
33
+ cost: { fg: '#e9c46a', icon: '[$]', showIcon: true },
34
+ duration: { fg: '#d8f3dc', icon: '[T]', showIcon: true },
35
+ workspace: { fg: '#b7e4c7', icon: '[W]', showIcon: true },
36
+ turns: { fg: '#95d5b2', icon: '[N]', showIcon: true },
37
+ cacheRatio: { fg: '#b7e4c7', icon: '[R]', showIcon: true },
38
+ rateLimit: { fg: '#95d5b2', icon: '[L]', showIcon: true },
39
+ weeklyQuota: { fg: '#e9c46a', icon: '[Q]', showIcon: true },
40
+ accountUsage: { fg: '#e9c46a', icon: '[A]', showIcon: true },
41
+ mcpStatus: { fg: '#d8f3dc', icon: '[MCP]', showIcon: true },
42
+ thinking: { fg: '#b7e4c7', icon: '[Think]', showIcon: true },
43
+ outputStyle: { fg: '#d8f3dc', icon: '[S]', showIcon: true },
44
+ separator: { fg: '#74c69d', icon: '', showIcon: false, dim: true }
45
+ }
46
+ };
47
+ //# sourceMappingURL=forest.js.map