ccnow 0.0.1

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 (137) hide show
  1. package/README.md +147 -0
  2. package/dist/cli-parser.d.ts +9 -0
  3. package/dist/cli-parser.js +50 -0
  4. package/dist/cli-parser.js.map +1 -0
  5. package/dist/cli.d.ts +2 -0
  6. package/dist/cli.js +64 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/config.d.ts +2 -0
  9. package/dist/config.js +34 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/dsl/context.d.ts +6 -0
  12. package/dist/dsl/context.js +23 -0
  13. package/dist/dsl/context.js.map +1 -0
  14. package/dist/dsl/cost.d.ts +3 -0
  15. package/dist/dsl/cost.js +6 -0
  16. package/dist/dsl/cost.js.map +1 -0
  17. package/dist/dsl/git.d.ts +6 -0
  18. package/dist/dsl/git.js +23 -0
  19. package/dist/dsl/git.js.map +1 -0
  20. package/dist/dsl/index.d.ts +7 -0
  21. package/dist/dsl/index.js +8 -0
  22. package/dist/dsl/index.js.map +1 -0
  23. package/dist/dsl/model.d.ts +3 -0
  24. package/dist/dsl/model.js +6 -0
  25. package/dist/dsl/model.js.map +1 -0
  26. package/dist/dsl/primitives.d.ts +14 -0
  27. package/dist/dsl/primitives.js +28 -0
  28. package/dist/dsl/primitives.js.map +1 -0
  29. package/dist/dsl/pwd.d.ts +7 -0
  30. package/dist/dsl/pwd.js +11 -0
  31. package/dist/dsl/pwd.js.map +1 -0
  32. package/dist/dsl/session.d.ts +5 -0
  33. package/dist/dsl/session.js +29 -0
  34. package/dist/dsl/session.js.map +1 -0
  35. package/dist/presets/default.d.ts +2 -0
  36. package/dist/presets/default.js +21 -0
  37. package/dist/presets/default.js.map +1 -0
  38. package/dist/presets/full.d.ts +2 -0
  39. package/dist/presets/full.js +32 -0
  40. package/dist/presets/full.js.map +1 -0
  41. package/dist/presets/index.d.ts +3 -0
  42. package/dist/presets/index.js +15 -0
  43. package/dist/presets/index.js.map +1 -0
  44. package/dist/presets/minimal.d.ts +2 -0
  45. package/dist/presets/minimal.js +13 -0
  46. package/dist/presets/minimal.js.map +1 -0
  47. package/dist/providers/context.d.ts +7 -0
  48. package/dist/providers/context.js +33 -0
  49. package/dist/providers/context.js.map +1 -0
  50. package/dist/providers/cost.d.ts +5 -0
  51. package/dist/providers/cost.js +16 -0
  52. package/dist/providers/cost.js.map +1 -0
  53. package/dist/providers/git.d.ts +8 -0
  54. package/dist/providers/git.js +40 -0
  55. package/dist/providers/git.js.map +1 -0
  56. package/dist/providers/index.d.ts +2 -0
  57. package/dist/providers/index.js +15 -0
  58. package/dist/providers/index.js.map +1 -0
  59. package/dist/providers/model.d.ts +5 -0
  60. package/dist/providers/model.js +9 -0
  61. package/dist/providers/model.js.map +1 -0
  62. package/dist/providers/pwd.d.ts +7 -0
  63. package/dist/providers/pwd.js +45 -0
  64. package/dist/providers/pwd.js.map +1 -0
  65. package/dist/providers/session.d.ts +7 -0
  66. package/dist/providers/session.js +24 -0
  67. package/dist/providers/session.js.map +1 -0
  68. package/dist/providers.d.ts +7 -0
  69. package/dist/providers.js +39 -0
  70. package/dist/providers.js.map +1 -0
  71. package/dist/registry.d.ts +6 -0
  72. package/dist/registry.js +10 -0
  73. package/dist/registry.js.map +1 -0
  74. package/dist/render.d.ts +3 -0
  75. package/dist/render.js +53 -0
  76. package/dist/render.js.map +1 -0
  77. package/dist/runner.d.ts +2 -0
  78. package/dist/runner.js +51 -0
  79. package/dist/runner.js.map +1 -0
  80. package/dist/segments/context.percent.d.ts +2 -0
  81. package/dist/segments/context.percent.js +11 -0
  82. package/dist/segments/context.percent.js.map +1 -0
  83. package/dist/segments/context.size.d.ts +2 -0
  84. package/dist/segments/context.size.js +9 -0
  85. package/dist/segments/context.size.js.map +1 -0
  86. package/dist/segments/context.tokens.d.ts +2 -0
  87. package/dist/segments/context.tokens.js +9 -0
  88. package/dist/segments/context.tokens.js.map +1 -0
  89. package/dist/segments/cost.usd.d.ts +2 -0
  90. package/dist/segments/cost.usd.js +9 -0
  91. package/dist/segments/cost.usd.js.map +1 -0
  92. package/dist/segments/git.branch.d.ts +2 -0
  93. package/dist/segments/git.branch.js +9 -0
  94. package/dist/segments/git.branch.js.map +1 -0
  95. package/dist/segments/git.deletions.d.ts +2 -0
  96. package/dist/segments/git.deletions.js +11 -0
  97. package/dist/segments/git.deletions.js.map +1 -0
  98. package/dist/segments/git.insertions.d.ts +2 -0
  99. package/dist/segments/git.insertions.js +11 -0
  100. package/dist/segments/git.insertions.js.map +1 -0
  101. package/dist/segments/index.d.ts +2 -0
  102. package/dist/segments/index.js +33 -0
  103. package/dist/segments/index.js.map +1 -0
  104. package/dist/segments/literal.d.ts +2 -0
  105. package/dist/segments/literal.js +10 -0
  106. package/dist/segments/literal.js.map +1 -0
  107. package/dist/segments/model.name.d.ts +2 -0
  108. package/dist/segments/model.name.js +9 -0
  109. package/dist/segments/model.name.js.map +1 -0
  110. package/dist/segments/pwd.name.d.ts +2 -0
  111. package/dist/segments/pwd.name.js +9 -0
  112. package/dist/segments/pwd.name.js.map +1 -0
  113. package/dist/segments/pwd.path.d.ts +2 -0
  114. package/dist/segments/pwd.path.js +9 -0
  115. package/dist/segments/pwd.path.js.map +1 -0
  116. package/dist/segments/pwd.smart.d.ts +2 -0
  117. package/dist/segments/pwd.smart.js +9 -0
  118. package/dist/segments/pwd.smart.js.map +1 -0
  119. package/dist/segments/session.duration.d.ts +2 -0
  120. package/dist/segments/session.duration.js +9 -0
  121. package/dist/segments/session.duration.js.map +1 -0
  122. package/dist/segments/session.lines-added.d.ts +2 -0
  123. package/dist/segments/session.lines-added.js +11 -0
  124. package/dist/segments/session.lines-added.js.map +1 -0
  125. package/dist/segments/session.lines-removed.d.ts +2 -0
  126. package/dist/segments/session.lines-removed.js +11 -0
  127. package/dist/segments/session.lines-removed.js.map +1 -0
  128. package/dist/session.d.ts +2 -0
  129. package/dist/session.js +18 -0
  130. package/dist/session.js.map +1 -0
  131. package/dist/style.d.ts +3 -0
  132. package/dist/style.js +72 -0
  133. package/dist/style.js.map +1 -0
  134. package/dist/types.d.ts +54 -0
  135. package/dist/types.js +2 -0
  136. package/dist/types.js.map +1 -0
  137. package/package.json +59 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # ccnow
2
+
3
+ A composable, spaceship-style statusline for [Claude Code](https://claude.ai/code).
4
+
5
+ Zero dependencies. Raw ANSI. Segment tree architecture.
6
+
7
+ ## Quick Start
8
+
9
+ Ask Claude Code:
10
+
11
+ > Set my statusline to use the default preset from https://github.com/jheddings/ccnow
12
+
13
+ Or add to your `~/.claude/settings.json` manually:
14
+
15
+ ```json
16
+ {
17
+ "statusLine": {
18
+ "type": "command",
19
+ "command": "npx -y ccnow",
20
+ "padding": 0
21
+ }
22
+ }
23
+ ```
24
+
25
+ ## Presets
26
+
27
+ **default** — smart path, git branch + diffs, context usage, session duration
28
+
29
+ ```
30
+ ~/Projects/ccnow | main · +5 -3 | 360K (36%) · 2h 15m
31
+ ```
32
+
33
+ **minimal** — folder name, branch, token usage
34
+
35
+ ```
36
+ ccnow | main | 360K/1M
37
+ ```
38
+
39
+ **full** — everything: path, git, model, context, cost, duration, session lines
40
+
41
+ ```
42
+ ~/Projects/ccnow | main · +5 -3 | Opus 4.6 · 360K/1M (36%) · $12.50 · 2h 15m · +1200 -85
43
+ ```
44
+
45
+ Select a preset:
46
+
47
+ ```sh
48
+ npx -y ccnow --preset=minimal
49
+ npx -y ccnow --preset=full
50
+ ```
51
+
52
+ ## JSON Config
53
+
54
+ Use `--config` for full customization:
55
+
56
+ ```sh
57
+ npx -y ccnow --config ~/.claude/ccnow.json
58
+ ```
59
+
60
+ ```json
61
+ {
62
+ "segments": [
63
+ {
64
+ "segment": "pwd.smart",
65
+ "style": { "color": "31" }
66
+ },
67
+ {
68
+ "segment": "pwd.name",
69
+ "style": { "color": "39", "bold": true }
70
+ },
71
+ {
72
+ "segment": "git",
73
+ "style": { "prefix": " | ", "color": "240" },
74
+ "children": [
75
+ {
76
+ "segment": "git.branch",
77
+ "style": { "color": "whiteBright", "bold": true, "prefix": "\ue0a0 " }
78
+ },
79
+ {
80
+ "segment": "git.insertions",
81
+ "style": { "color": "green", "prefix": " +" }
82
+ },
83
+ {
84
+ "segment": "git.deletions",
85
+ "style": { "color": "red", "prefix": " -" }
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ ```
92
+
93
+ ## Segments
94
+
95
+ | Segment | Provider | Description |
96
+ | ----------------------- | -------- | --------------------------------- |
97
+ | `pwd.name` | pwd | Directory basename |
98
+ | `pwd.path` | pwd | Full path prefix |
99
+ | `pwd.smart` | pwd | Smart-truncated path prefix |
100
+ | `git.branch` | git | Current branch name |
101
+ | `git.insertions` | git | Lines added (staged + unstaged) |
102
+ | `git.deletions` | git | Lines removed (staged + unstaged) |
103
+ | `context.tokens` | context | Token count (24K, 1.2M) |
104
+ | `context.size` | context | Context window capacity |
105
+ | `context.percent` | context | Usage percentage |
106
+ | `model.name` | model | Model display name |
107
+ | `cost.usd` | cost | Session cost in USD |
108
+ | `session.duration` | session | Session wall-clock time |
109
+ | `session.lines-added` | session | Lines added this session |
110
+ | `session.lines-removed` | session | Lines removed this session |
111
+ | `literal` | — | Static text |
112
+
113
+ ### Colors
114
+
115
+ Colors support three formats:
116
+
117
+ - **Named**: `cyan`, `whiteBright`, `red`, `green`, etc. (16 ANSI colors)
118
+ - **256-color**: `"39"`, `"240"` (numeric string)
119
+ - **Truecolor**: `"#00afff"` (hex)
120
+
121
+ ### Style Attributes
122
+
123
+ | Attribute | Type | Description |
124
+ | --------- | ------- | ------------------------------- |
125
+ | `color` | string | Text color (named, 256, or hex) |
126
+ | `bold` | boolean | Bold text |
127
+ | `italic` | boolean | Italic text |
128
+ | `prefix` | string | Text before the value |
129
+ | `suffix` | string | Text after the value |
130
+
131
+ ## CLI Options
132
+
133
+ ```
134
+ Usage: ccnow [options]
135
+
136
+ Options:
137
+ --preset <name> Use a named preset (default, minimal, full)
138
+ --config <path> Load JSON config file
139
+ --format <type> Output format: ansi (default), plain
140
+ --tee <path> Write raw stdin JSON to file before processing
141
+ --help Show help
142
+ --version Show version
143
+ ```
144
+
145
+ ## License
146
+
147
+ MIT
@@ -0,0 +1,9 @@
1
+ export interface CliArgs {
2
+ preset: string;
3
+ config?: string;
4
+ format: 'ansi' | 'plain';
5
+ tee?: string;
6
+ help?: boolean;
7
+ version?: boolean;
8
+ }
9
+ export declare function parseArgs(argv: string[]): CliArgs;
@@ -0,0 +1,50 @@
1
+ const VALUE_FLAGS = new Set(['preset', 'config', 'format', 'tee']);
2
+ export function parseArgs(argv) {
3
+ const result = {
4
+ preset: 'default',
5
+ format: 'ansi',
6
+ };
7
+ const resultRecord = result;
8
+ let i = 0;
9
+ while (i < argv.length) {
10
+ const arg = argv[i];
11
+ if (arg === '--help') {
12
+ result.help = true;
13
+ i++;
14
+ continue;
15
+ }
16
+ if (arg === '--version') {
17
+ result.version = true;
18
+ i++;
19
+ continue;
20
+ }
21
+ // Handle --key=value syntax
22
+ const eqMatch = arg.match(/^--(\w[\w-]*)=(.+)$/);
23
+ if (eqMatch) {
24
+ const [, key, value] = eqMatch;
25
+ if (VALUE_FLAGS.has(key)) {
26
+ resultRecord[key] = value;
27
+ }
28
+ i++;
29
+ continue;
30
+ }
31
+ // Handle --key value syntax for value flags
32
+ const flagMatch = arg.match(/^--(\w[\w-]*)$/);
33
+ if (flagMatch) {
34
+ const key = flagMatch[1];
35
+ if (VALUE_FLAGS.has(key)) {
36
+ const value = argv[i + 1];
37
+ if (value !== undefined) {
38
+ resultRecord[key] = value;
39
+ i += 2;
40
+ continue;
41
+ }
42
+ }
43
+ i++;
44
+ continue;
45
+ }
46
+ i++;
47
+ }
48
+ return result;
49
+ }
50
+ //# sourceMappingURL=cli-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-parser.js","sourceRoot":"","sources":["../src/cli-parser.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnE,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,MAAM,GAAY;QACtB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,MAAM,YAAY,GAAG,MAA4C,CAAC;IAElE,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;YAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC1B,CAAC,IAAI,CAAC,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YAED,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync, writeFileSync } from 'node:fs';
3
+ import { parseArgs } from './cli-parser.js';
4
+ import { run } from './runner.js';
5
+ const HELP = `Usage: ccnow [options]
6
+
7
+ Composable statusline for Claude Code.
8
+ Reads session JSON from stdin, outputs styled statusline to stdout.
9
+
10
+ Options:
11
+ --preset <name> Use a named preset (default, minimal, full)
12
+ --config <path> Load JSON config file
13
+ --format <type> Output format: ansi (default), plain
14
+ --tee <path> Write raw stdin JSON to file before processing
15
+ --help Show help
16
+ --version Show version
17
+
18
+ Examples:
19
+ npx -y ccnow
20
+ npx -y ccnow --preset=minimal
21
+ npx -y ccnow --config ~/.claude/ccnow.json
22
+ `;
23
+ async function main() {
24
+ const args = parseArgs(process.argv.slice(2));
25
+ if (args.help) {
26
+ process.stdout.write(HELP);
27
+ return;
28
+ }
29
+ if (args.version) {
30
+ try {
31
+ const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
32
+ process.stdout.write(`${pkg.version}\n`);
33
+ }
34
+ catch {
35
+ process.stdout.write('unknown\n');
36
+ }
37
+ return;
38
+ }
39
+ // Read stdin
40
+ let stdin;
41
+ try {
42
+ stdin = readFileSync(0, 'utf-8');
43
+ }
44
+ catch {
45
+ stdin = '';
46
+ }
47
+ // Tee: write raw stdin to file before processing
48
+ if (args.tee) {
49
+ try {
50
+ writeFileSync(args.tee, stdin, 'utf-8');
51
+ }
52
+ catch (err) {
53
+ process.stderr.write(`ccnow: failed to write tee file: ${err}\n`);
54
+ }
55
+ }
56
+ const output = await run(args, stdin);
57
+ if (output)
58
+ process.stdout.write(output);
59
+ }
60
+ main().catch((err) => {
61
+ process.stderr.write(`ccnow: ${err}\n`);
62
+ process.exit(1);
63
+ });
64
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;CAiBZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,OAAO;IACT,CAAC;IAED,aAAa;IACb,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SegmentNode } from './types.js';
2
+ export declare function parseConfig(config: Record<string, unknown>): SegmentNode[];
package/dist/config.js ADDED
@@ -0,0 +1,34 @@
1
+ const NO_PROVIDER = new Set(['literal', 'sep']);
2
+ function inferProvider(type) {
3
+ if (NO_PROVIDER.has(type))
4
+ return undefined;
5
+ const dotIndex = type.indexOf('.');
6
+ if (dotIndex > 0)
7
+ return type.slice(0, dotIndex);
8
+ return undefined;
9
+ }
10
+ function mapSegment(json) {
11
+ const node = {
12
+ type: json.segment,
13
+ };
14
+ const provider = inferProvider(json.segment);
15
+ if (provider)
16
+ node.provider = provider;
17
+ if (json.style)
18
+ node.style = json.style;
19
+ if (json.props)
20
+ node.props = json.props;
21
+ if (json.enabled !== undefined)
22
+ node.enabled = json.enabled;
23
+ if (json.children) {
24
+ node.children = json.children.map(mapSegment);
25
+ }
26
+ return node;
27
+ }
28
+ export function parseConfig(config) {
29
+ const typed = config;
30
+ if (!typed.segments || !Array.isArray(typed.segments))
31
+ return [];
32
+ return typed.segments.map(mapSegment);
33
+ }
34
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhD,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,MAAM,IAAI,GAAgB;QACxB,IAAI,EAAE,IAAI,CAAC,OAAO;KACnB,CAAC;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEvC,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAC;IACtD,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA+B;IACzD,MAAM,KAAK,GAAG,MAAoB,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps, type CompositeProps } from './primitives.js';
3
+ export declare function ContextGroup(props?: CompositeProps): (children: () => SegmentNode[]) => SegmentNode;
4
+ export declare function ContextTokens(props?: BaseProps): SegmentNode;
5
+ export declare function ContextSize(props?: BaseProps): SegmentNode;
6
+ export declare function ContextPercent(props?: BaseProps): SegmentNode;
@@ -0,0 +1,23 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function ContextGroup(props = {}) {
3
+ const { enabled, ...styleProps } = props;
4
+ return (children) => ({
5
+ type: 'context',
6
+ enabled,
7
+ style: extractStyle(styleProps),
8
+ children: children(),
9
+ });
10
+ }
11
+ export function ContextTokens(props = {}) {
12
+ const { enabled, ...styleProps } = props;
13
+ return { type: 'context.tokens', provider: 'context', enabled, style: extractStyle(styleProps) };
14
+ }
15
+ export function ContextSize(props = {}) {
16
+ const { enabled, ...styleProps } = props;
17
+ return { type: 'context.size', provider: 'context', enabled, style: extractStyle(styleProps) };
18
+ }
19
+ export function ContextPercent(props = {}) {
20
+ const { enabled, ...styleProps } = props;
21
+ return { type: 'context.percent', provider: 'context', enabled, style: extractStyle(styleProps) };
22
+ }
23
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/dsl/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAuC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpF,MAAM,UAAU,YAAY,CAC1B,QAAwB,EAAE;IAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,SAAS;QACf,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;QAC/B,QAAQ,EAAE,QAAQ,EAAE;KACrB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAmB,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAmB,EAAE;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAmB,EAAE;IAClD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AACpG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps } from './primitives.js';
3
+ export declare function CostUSD(props?: BaseProps): SegmentNode;
@@ -0,0 +1,6 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function CostUSD(props = {}) {
3
+ const { enabled, ...styleProps } = props;
4
+ return { type: 'cost.usd', provider: 'cost', enabled, style: extractStyle(styleProps) };
5
+ }
6
+ //# sourceMappingURL=cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/dsl/cost.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,UAAU,OAAO,CAAC,QAAmB,EAAE;IAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps, type CompositeProps } from './primitives.js';
3
+ export declare function GitGroup(props?: CompositeProps): (children: () => SegmentNode[]) => SegmentNode;
4
+ export declare function GitBranch(props?: BaseProps): SegmentNode;
5
+ export declare function GitInsertions(props?: BaseProps): SegmentNode;
6
+ export declare function GitDeletions(props?: BaseProps): SegmentNode;
@@ -0,0 +1,23 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function GitGroup(props = {}) {
3
+ const { enabled, ...styleProps } = props;
4
+ return (children) => ({
5
+ type: 'git',
6
+ enabled,
7
+ style: extractStyle(styleProps),
8
+ children: children(),
9
+ });
10
+ }
11
+ export function GitBranch(props = {}) {
12
+ const { enabled, ...styleProps } = props;
13
+ return { type: 'git.branch', provider: 'git', enabled, style: extractStyle(styleProps) };
14
+ }
15
+ export function GitInsertions(props = {}) {
16
+ const { enabled, ...styleProps } = props;
17
+ return { type: 'git.insertions', provider: 'git', enabled, style: extractStyle(styleProps) };
18
+ }
19
+ export function GitDeletions(props = {}) {
20
+ const { enabled, ...styleProps } = props;
21
+ return { type: 'git.deletions', provider: 'git', enabled, style: extractStyle(styleProps) };
22
+ }
23
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/dsl/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAuC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpF,MAAM,UAAU,QAAQ,CACtB,QAAwB,EAAE;IAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK;QACX,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;QAC/B,QAAQ,EAAE,QAAQ,EAAE;KACrB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAmB,EAAE;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAmB,EAAE;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAmB,EAAE;IAChD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { Literal, Group, StatusLine } from './primitives.js';
2
+ export { Pwd } from './pwd.js';
3
+ export { GitGroup, GitBranch, GitInsertions, GitDeletions } from './git.js';
4
+ export { ContextGroup, ContextTokens, ContextSize, ContextPercent } from './context.js';
5
+ export { ModelName } from './model.js';
6
+ export { CostUSD } from './cost.js';
7
+ export { SessionDuration, SessionLinesAdded, SessionLinesRemoved } from './session.js';
@@ -0,0 +1,8 @@
1
+ export { Literal, Group, StatusLine } from './primitives.js';
2
+ export { Pwd } from './pwd.js';
3
+ export { GitGroup, GitBranch, GitInsertions, GitDeletions } from './git.js';
4
+ export { ContextGroup, ContextTokens, ContextSize, ContextPercent } from './context.js';
5
+ export { ModelName } from './model.js';
6
+ export { CostUSD } from './cost.js';
7
+ export { SessionDuration, SessionLinesAdded, SessionLinesRemoved } from './session.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps } from './primitives.js';
3
+ export declare function ModelName(props?: BaseProps): SegmentNode;
@@ -0,0 +1,6 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function ModelName(props = {}) {
3
+ const { enabled, ...styleProps } = props;
4
+ return { type: 'model.name', provider: 'model', enabled, style: extractStyle(styleProps) };
5
+ }
6
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/dsl/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,UAAU,SAAS,CAAC,QAAmB,EAAE;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { SegmentNode, EnabledFn, StyleAttrs } from '../types.js';
2
+ export interface BaseProps extends Partial<StyleAttrs> {
3
+ enabled?: boolean | EnabledFn;
4
+ }
5
+ export interface CompositeProps extends BaseProps {
6
+ }
7
+ interface LiteralProps {
8
+ text: string;
9
+ }
10
+ export declare function extractStyle(props: Partial<StyleAttrs>): StyleAttrs | undefined;
11
+ export declare function Literal(props: LiteralProps): SegmentNode;
12
+ export declare function Group(props?: CompositeProps): (children: () => SegmentNode[]) => SegmentNode;
13
+ export declare function StatusLine(children: () => SegmentNode[]): SegmentNode[];
14
+ export {};
@@ -0,0 +1,28 @@
1
+ export function extractStyle(props) {
2
+ const style = {};
3
+ let hasStyle = false;
4
+ for (const key of ['color', 'bold', 'italic', 'prefix', 'suffix']) {
5
+ if (props[key] !== undefined) {
6
+ const styleRecord = style;
7
+ styleRecord[key] = props[key];
8
+ hasStyle = true;
9
+ }
10
+ }
11
+ return hasStyle ? style : undefined;
12
+ }
13
+ export function Literal(props) {
14
+ return { type: 'literal', props: { text: props.text } };
15
+ }
16
+ export function Group(props = {}) {
17
+ const { enabled, ...styleProps } = props;
18
+ return (children) => ({
19
+ type: 'group',
20
+ enabled,
21
+ style: extractStyle(styleProps),
22
+ children: children(),
23
+ });
24
+ }
25
+ export function StatusLine(children) {
26
+ return children();
27
+ }
28
+ //# sourceMappingURL=primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/dsl/primitives.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,YAAY,CAAC,KAA0B;IACrD,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC3E,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,KAAgC,CAAC;YACrD,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,QAAwB,EAAE;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,OAAO;QACb,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;QAC/B,QAAQ,EAAE,QAAQ,EAAE;KACrB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAA6B;IACtD,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps } from './primitives.js';
3
+ interface PwdProps extends BaseProps {
4
+ style?: 'name' | 'path' | 'smart';
5
+ }
6
+ export declare function Pwd(props?: PwdProps): SegmentNode;
7
+ export {};
@@ -0,0 +1,11 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function Pwd(props = {}) {
3
+ const { style: variant = 'smart', enabled, ...styleProps } = props;
4
+ return {
5
+ type: `pwd.${variant}`,
6
+ provider: 'pwd',
7
+ enabled,
8
+ style: extractStyle(styleProps),
9
+ };
10
+ }
11
+ //# sourceMappingURL=pwd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../src/dsl/pwd.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/D,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,OAAO,OAAO,EAAE;QACtB,QAAQ,EAAE,KAAK;QACf,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ import { type BaseProps } from './primitives.js';
3
+ export declare function SessionDuration(props?: BaseProps): SegmentNode;
4
+ export declare function SessionLinesAdded(props?: BaseProps): SegmentNode;
5
+ export declare function SessionLinesRemoved(props?: BaseProps): SegmentNode;
@@ -0,0 +1,29 @@
1
+ import { extractStyle } from './primitives.js';
2
+ export function SessionDuration(props = {}) {
3
+ const { enabled, ...styleProps } = props;
4
+ return {
5
+ type: 'session.duration',
6
+ provider: 'session',
7
+ enabled,
8
+ style: extractStyle(styleProps),
9
+ };
10
+ }
11
+ export function SessionLinesAdded(props = {}) {
12
+ const { enabled, ...styleProps } = props;
13
+ return {
14
+ type: 'session.lines-added',
15
+ provider: 'session',
16
+ enabled,
17
+ style: extractStyle(styleProps),
18
+ };
19
+ }
20
+ export function SessionLinesRemoved(props = {}) {
21
+ const { enabled, ...styleProps } = props;
22
+ return {
23
+ type: 'session.lines-removed',
24
+ provider: 'session',
25
+ enabled,
26
+ style: extractStyle(styleProps),
27
+ };
28
+ }
29
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/dsl/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,QAAmB,EAAE;IACnD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,SAAS;QACnB,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAmB,EAAE;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,SAAS;QACnB,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAmB,EAAE;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,SAAS;QACnB,OAAO;QACP,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ export declare const defaultPreset: SegmentNode[];
@@ -0,0 +1,21 @@
1
+ import { StatusLine, Group, GitGroup, GitBranch, GitInsertions, GitDeletions, ContextGroup, ContextTokens, ContextPercent, Literal, SessionDuration, } from '../dsl/index.js';
2
+ export const defaultPreset = StatusLine(() => [
3
+ { type: 'pwd.smart', provider: 'pwd', style: { color: '31' } },
4
+ { type: 'pwd.name', provider: 'pwd', style: { color: '39', bold: true } },
5
+ GitGroup({ prefix: ' | ', color: '240' })(() => [
6
+ GitBranch({ color: 'whiteBright', bold: true, prefix: '\ue0a0 ' }),
7
+ Group({ prefix: ' ·' })(() => [
8
+ GitInsertions({ color: 'green', prefix: ' +' }),
9
+ GitDeletions({ color: 'red', prefix: ' -' }),
10
+ ]),
11
+ ]),
12
+ ContextGroup({ prefix: ' | ', color: '240' })(() => [
13
+ ContextTokens({ color: 'white', bold: true }),
14
+ Literal({ text: ' (' }),
15
+ ContextPercent({ color: 'white' }),
16
+ Literal({ text: ')' }),
17
+ ]),
18
+ { type: 'literal', props: { text: ' · ' } },
19
+ SessionDuration({ color: 'magenta' }),
20
+ ]);
21
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/presets/default.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAC,MAAM,aAAa,GAAkB,UAAU,CAAC,GAAG,EAAE,CAAC;IAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACzE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9C,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAClE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5B,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/C,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC7C,CAAC;KACH,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAClD,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;KACvB,CAAC;IACF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAC3C,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;CACtC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SegmentNode } from '../types.js';
2
+ export declare const fullPreset: SegmentNode[];
@@ -0,0 +1,32 @@
1
+ import { StatusLine, Group, GitGroup, GitBranch, GitInsertions, GitDeletions, ContextGroup, ContextTokens, ContextSize, ContextPercent, Literal, ModelName, CostUSD, SessionDuration, SessionLinesAdded, SessionLinesRemoved, } from '../dsl/index.js';
2
+ export const fullPreset = StatusLine(() => [
3
+ { type: 'pwd.smart', provider: 'pwd', style: { color: '31' } },
4
+ { type: 'pwd.name', provider: 'pwd', style: { color: '39', bold: true } },
5
+ GitGroup({ prefix: ' | ', color: '240' })(() => [
6
+ GitBranch({ color: 'whiteBright', bold: true, prefix: '\ue0a0 ' }),
7
+ Group({ prefix: ' ·' })(() => [
8
+ GitInsertions({ color: 'green', prefix: ' +' }),
9
+ GitDeletions({ color: 'red', prefix: ' -' }),
10
+ ]),
11
+ ]),
12
+ { type: 'literal', props: { text: ' | ' }, style: { color: '240' } },
13
+ ModelName({ color: '240' }),
14
+ { type: 'literal', props: { text: ' · ' } },
15
+ ContextGroup()(() => [
16
+ ContextTokens({ color: 'white', bold: true }),
17
+ Literal({ text: '/' }),
18
+ ContextSize({ color: 'white' }),
19
+ Literal({ text: ' (' }),
20
+ ContextPercent({ color: 'white' }),
21
+ Literal({ text: ')' }),
22
+ ]),
23
+ { type: 'literal', props: { text: ' · ' } },
24
+ CostUSD({ color: 'yellow', bold: true }),
25
+ { type: 'literal', props: { text: ' · ' } },
26
+ SessionDuration({ color: 'magenta' }),
27
+ Group({ prefix: ' ·' })(() => [
28
+ SessionLinesAdded({ color: 'green', prefix: ' +' }),
29
+ SessionLinesRemoved({ color: 'red', prefix: ' -' }),
30
+ ]),
31
+ ]);
32
+ //# sourceMappingURL=full.js.map