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.
- package/README.md +147 -0
- package/dist/cli-parser.d.ts +9 -0
- package/dist/cli-parser.js +50 -0
- package/dist/cli-parser.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +34 -0
- package/dist/config.js.map +1 -0
- package/dist/dsl/context.d.ts +6 -0
- package/dist/dsl/context.js +23 -0
- package/dist/dsl/context.js.map +1 -0
- package/dist/dsl/cost.d.ts +3 -0
- package/dist/dsl/cost.js +6 -0
- package/dist/dsl/cost.js.map +1 -0
- package/dist/dsl/git.d.ts +6 -0
- package/dist/dsl/git.js +23 -0
- package/dist/dsl/git.js.map +1 -0
- package/dist/dsl/index.d.ts +7 -0
- package/dist/dsl/index.js +8 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl/model.d.ts +3 -0
- package/dist/dsl/model.js +6 -0
- package/dist/dsl/model.js.map +1 -0
- package/dist/dsl/primitives.d.ts +14 -0
- package/dist/dsl/primitives.js +28 -0
- package/dist/dsl/primitives.js.map +1 -0
- package/dist/dsl/pwd.d.ts +7 -0
- package/dist/dsl/pwd.js +11 -0
- package/dist/dsl/pwd.js.map +1 -0
- package/dist/dsl/session.d.ts +5 -0
- package/dist/dsl/session.js +29 -0
- package/dist/dsl/session.js.map +1 -0
- package/dist/presets/default.d.ts +2 -0
- package/dist/presets/default.js +21 -0
- package/dist/presets/default.js.map +1 -0
- package/dist/presets/full.d.ts +2 -0
- package/dist/presets/full.js +32 -0
- package/dist/presets/full.js.map +1 -0
- package/dist/presets/index.d.ts +3 -0
- package/dist/presets/index.js +15 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/minimal.d.ts +2 -0
- package/dist/presets/minimal.js +13 -0
- package/dist/presets/minimal.js.map +1 -0
- package/dist/providers/context.d.ts +7 -0
- package/dist/providers/context.js +33 -0
- package/dist/providers/context.js.map +1 -0
- package/dist/providers/cost.d.ts +5 -0
- package/dist/providers/cost.js +16 -0
- package/dist/providers/cost.js.map +1 -0
- package/dist/providers/git.d.ts +8 -0
- package/dist/providers/git.js +40 -0
- package/dist/providers/git.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +15 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/model.d.ts +5 -0
- package/dist/providers/model.js +9 -0
- package/dist/providers/model.js.map +1 -0
- package/dist/providers/pwd.d.ts +7 -0
- package/dist/providers/pwd.js +45 -0
- package/dist/providers/pwd.js.map +1 -0
- package/dist/providers/session.d.ts +7 -0
- package/dist/providers/session.js +24 -0
- package/dist/providers/session.js.map +1 -0
- package/dist/providers.d.ts +7 -0
- package/dist/providers.js +39 -0
- package/dist/providers.js.map +1 -0
- package/dist/registry.d.ts +6 -0
- package/dist/registry.js +10 -0
- package/dist/registry.js.map +1 -0
- package/dist/render.d.ts +3 -0
- package/dist/render.js +53 -0
- package/dist/render.js.map +1 -0
- package/dist/runner.d.ts +2 -0
- package/dist/runner.js +51 -0
- package/dist/runner.js.map +1 -0
- package/dist/segments/context.percent.d.ts +2 -0
- package/dist/segments/context.percent.js +11 -0
- package/dist/segments/context.percent.js.map +1 -0
- package/dist/segments/context.size.d.ts +2 -0
- package/dist/segments/context.size.js +9 -0
- package/dist/segments/context.size.js.map +1 -0
- package/dist/segments/context.tokens.d.ts +2 -0
- package/dist/segments/context.tokens.js +9 -0
- package/dist/segments/context.tokens.js.map +1 -0
- package/dist/segments/cost.usd.d.ts +2 -0
- package/dist/segments/cost.usd.js +9 -0
- package/dist/segments/cost.usd.js.map +1 -0
- package/dist/segments/git.branch.d.ts +2 -0
- package/dist/segments/git.branch.js +9 -0
- package/dist/segments/git.branch.js.map +1 -0
- package/dist/segments/git.deletions.d.ts +2 -0
- package/dist/segments/git.deletions.js +11 -0
- package/dist/segments/git.deletions.js.map +1 -0
- package/dist/segments/git.insertions.d.ts +2 -0
- package/dist/segments/git.insertions.js +11 -0
- package/dist/segments/git.insertions.js.map +1 -0
- package/dist/segments/index.d.ts +2 -0
- package/dist/segments/index.js +33 -0
- package/dist/segments/index.js.map +1 -0
- package/dist/segments/literal.d.ts +2 -0
- package/dist/segments/literal.js +10 -0
- package/dist/segments/literal.js.map +1 -0
- package/dist/segments/model.name.d.ts +2 -0
- package/dist/segments/model.name.js +9 -0
- package/dist/segments/model.name.js.map +1 -0
- package/dist/segments/pwd.name.d.ts +2 -0
- package/dist/segments/pwd.name.js +9 -0
- package/dist/segments/pwd.name.js.map +1 -0
- package/dist/segments/pwd.path.d.ts +2 -0
- package/dist/segments/pwd.path.js +9 -0
- package/dist/segments/pwd.path.js.map +1 -0
- package/dist/segments/pwd.smart.d.ts +2 -0
- package/dist/segments/pwd.smart.js +9 -0
- package/dist/segments/pwd.smart.js.map +1 -0
- package/dist/segments/session.duration.d.ts +2 -0
- package/dist/segments/session.duration.js +9 -0
- package/dist/segments/session.duration.js.map +1 -0
- package/dist/segments/session.lines-added.d.ts +2 -0
- package/dist/segments/session.lines-added.js +11 -0
- package/dist/segments/session.lines-added.js.map +1 -0
- package/dist/segments/session.lines-removed.d.ts +2 -0
- package/dist/segments/session.lines-removed.js +11 -0
- package/dist/segments/session.lines-removed.js.map +1 -0
- package/dist/session.d.ts +2 -0
- package/dist/session.js +18 -0
- package/dist/session.js.map +1 -0
- package/dist/style.d.ts +3 -0
- package/dist/style.js +72 -0
- package/dist/style.js.map +1 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.branch.js","sourceRoot":"","sources":["../../src/segments/git.branch.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,OAAO,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;IAC9B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.deletions.js","sourceRoot":"","sources":["../../src/segments/git.deletions.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAY;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,SAAS;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const gitInsertionsSegment = {
|
|
2
|
+
name: 'git.insertions',
|
|
3
|
+
provider: 'git',
|
|
4
|
+
render(context) {
|
|
5
|
+
const data = context.provider;
|
|
6
|
+
if (!data?.insertions)
|
|
7
|
+
return null;
|
|
8
|
+
return `${data.insertions}`;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=git.insertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.insertions.js","sourceRoot":"","sources":["../../src/segments/git.insertions.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oBAAoB,GAAY;IAC3C,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,UAAU;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { literalSegment } from './literal.js';
|
|
2
|
+
import { pwdNameSegment } from './pwd.name.js';
|
|
3
|
+
import { pwdPathSegment } from './pwd.path.js';
|
|
4
|
+
import { pwdSmartSegment } from './pwd.smart.js';
|
|
5
|
+
import { gitBranchSegment } from './git.branch.js';
|
|
6
|
+
import { gitInsertionsSegment } from './git.insertions.js';
|
|
7
|
+
import { gitDeletionsSegment } from './git.deletions.js';
|
|
8
|
+
import { contextTokensSegment } from './context.tokens.js';
|
|
9
|
+
import { contextSizeSegment } from './context.size.js';
|
|
10
|
+
import { contextPercentSegment } from './context.percent.js';
|
|
11
|
+
import { modelNameSegment } from './model.name.js';
|
|
12
|
+
import { costUsdSegment } from './cost.usd.js';
|
|
13
|
+
import { sessionDurationSegment } from './session.duration.js';
|
|
14
|
+
import { sessionLinesAddedSegment } from './session.lines-added.js';
|
|
15
|
+
import { sessionLinesRemovedSegment } from './session.lines-removed.js';
|
|
16
|
+
export function registerBuiltinSegments(registry) {
|
|
17
|
+
registry.register(literalSegment);
|
|
18
|
+
registry.register(pwdNameSegment);
|
|
19
|
+
registry.register(pwdPathSegment);
|
|
20
|
+
registry.register(pwdSmartSegment);
|
|
21
|
+
registry.register(gitBranchSegment);
|
|
22
|
+
registry.register(gitInsertionsSegment);
|
|
23
|
+
registry.register(gitDeletionsSegment);
|
|
24
|
+
registry.register(contextTokensSegment);
|
|
25
|
+
registry.register(contextSizeSegment);
|
|
26
|
+
registry.register(contextPercentSegment);
|
|
27
|
+
registry.register(modelNameSegment);
|
|
28
|
+
registry.register(costUsdSegment);
|
|
29
|
+
registry.register(sessionDurationSegment);
|
|
30
|
+
registry.register(sessionLinesAddedSegment);
|
|
31
|
+
registry.register(sessionLinesRemovedSegment);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/segments/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,uBAAuB,CAAC,QAAyB;IAC/D,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../src/segments/literal.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,IAAI,EAAE,SAAS;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.name.js","sourceRoot":"","sources":["../../src/segments/model.name.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,OAAO;IACjB,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAiC,CAAC;QACvD,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pwd.name.js","sourceRoot":"","sources":["../../src/segments/pwd.name.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pwd.path.js","sourceRoot":"","sources":["../../src/segments/pwd.path.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pwd.smart.js","sourceRoot":"","sources":["../../src/segments/pwd.smart.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAY;IACtC,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,KAAK;IACf,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+B,CAAC;QACrD,OAAO,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;IAC7B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.duration.js","sourceRoot":"","sources":["../../src/segments/session.duration.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAY;IAC7C,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,SAAS;IACnB,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAsC,CAAC;QAC5D,OAAO,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAChC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const sessionLinesAddedSegment = {
|
|
2
|
+
name: 'session.lines-added',
|
|
3
|
+
provider: 'session',
|
|
4
|
+
render(context) {
|
|
5
|
+
const data = context.provider;
|
|
6
|
+
if (!data?.linesAdded)
|
|
7
|
+
return null;
|
|
8
|
+
return `${data.linesAdded}`;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=session.lines-added.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.lines-added.js","sourceRoot":"","sources":["../../src/segments/session.lines-added.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,wBAAwB,GAAY;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,QAAQ,EAAE,SAAS;IACnB,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAsC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,UAAU;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const sessionLinesRemovedSegment = {
|
|
2
|
+
name: 'session.lines-removed',
|
|
3
|
+
provider: 'session',
|
|
4
|
+
render(context) {
|
|
5
|
+
const data = context.provider;
|
|
6
|
+
if (!data?.linesRemoved)
|
|
7
|
+
return null;
|
|
8
|
+
return `${data.linesRemoved}`;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=session.lines-removed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.lines-removed.js","sourceRoot":"","sources":["../../src/segments/session.lines-removed.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,0BAA0B,GAAY;IACjD,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,SAAS;IACnB,MAAM,CAAC,OAAuB;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAsC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,YAAY;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;CACF,CAAC"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function parseSession(input) {
|
|
2
|
+
if (!input.trim())
|
|
3
|
+
return null;
|
|
4
|
+
let parsed;
|
|
5
|
+
try {
|
|
6
|
+
parsed = JSON.parse(input);
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
12
|
+
return null;
|
|
13
|
+
const obj = parsed;
|
|
14
|
+
if (typeof obj.cwd !== 'string')
|
|
15
|
+
return null;
|
|
16
|
+
return obj;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE7C,OAAO,GAAkB,CAAC;AAC5B,CAAC"}
|
package/dist/style.d.ts
ADDED
package/dist/style.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const RESET = '\x1b[0m';
|
|
2
|
+
const COLORS = {
|
|
3
|
+
black: '\x1b[30m',
|
|
4
|
+
red: '\x1b[31m',
|
|
5
|
+
green: '\x1b[32m',
|
|
6
|
+
yellow: '\x1b[33m',
|
|
7
|
+
blue: '\x1b[34m',
|
|
8
|
+
magenta: '\x1b[35m',
|
|
9
|
+
cyan: '\x1b[36m',
|
|
10
|
+
white: '\x1b[37m',
|
|
11
|
+
blackBright: '\x1b[90m',
|
|
12
|
+
redBright: '\x1b[91m',
|
|
13
|
+
greenBright: '\x1b[92m',
|
|
14
|
+
yellowBright: '\x1b[93m',
|
|
15
|
+
blueBright: '\x1b[94m',
|
|
16
|
+
magentaBright: '\x1b[95m',
|
|
17
|
+
cyanBright: '\x1b[96m',
|
|
18
|
+
whiteBright: '\x1b[97m',
|
|
19
|
+
};
|
|
20
|
+
const BOLD = '\x1b[1m';
|
|
21
|
+
const ITALIC = '\x1b[3m';
|
|
22
|
+
let colorsEnabled = true;
|
|
23
|
+
export function setColorLevel(level) {
|
|
24
|
+
colorsEnabled = level > 0;
|
|
25
|
+
}
|
|
26
|
+
function resolveColor(color) {
|
|
27
|
+
// Named color: lookup in table
|
|
28
|
+
const named = COLORS[color];
|
|
29
|
+
if (named)
|
|
30
|
+
return named;
|
|
31
|
+
// Hex color: #RRGGBB → truecolor \e[38;2;R;G;Bm
|
|
32
|
+
if (color.startsWith('#') && color.length === 7) {
|
|
33
|
+
const r = parseInt(color.slice(1, 3), 16);
|
|
34
|
+
const g = parseInt(color.slice(3, 5), 16);
|
|
35
|
+
const b = parseInt(color.slice(5, 7), 16);
|
|
36
|
+
if (!isNaN(r) && !isNaN(g) && !isNaN(b)) {
|
|
37
|
+
return `\x1b[38;2;${r};${g};${b}m`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Numeric string: 256-color index → \e[38;5;Nm
|
|
41
|
+
const num = parseInt(color, 10);
|
|
42
|
+
if (!isNaN(num) && num >= 0 && num <= 255) {
|
|
43
|
+
return `\x1b[38;5;${num}m`;
|
|
44
|
+
}
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
export function applyStyle(value, style) {
|
|
48
|
+
if (!style)
|
|
49
|
+
return value;
|
|
50
|
+
// Build the decorated string: prefix + value + suffix
|
|
51
|
+
let result = value;
|
|
52
|
+
if (style.prefix)
|
|
53
|
+
result = style.prefix + result;
|
|
54
|
+
if (style.suffix)
|
|
55
|
+
result = result + style.suffix;
|
|
56
|
+
if (colorsEnabled) {
|
|
57
|
+
// Build ANSI open sequence: reset first, then modifiers, then color
|
|
58
|
+
let open = '';
|
|
59
|
+
if (style.bold)
|
|
60
|
+
open += BOLD;
|
|
61
|
+
if (style.italic)
|
|
62
|
+
open += ITALIC;
|
|
63
|
+
if (style.color) {
|
|
64
|
+
open += resolveColor(style.color);
|
|
65
|
+
}
|
|
66
|
+
if (open) {
|
|
67
|
+
result = RESET + open + result + RESET;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface SessionData {
|
|
2
|
+
cwd: string;
|
|
3
|
+
model?: {
|
|
4
|
+
id: string;
|
|
5
|
+
display_name: string;
|
|
6
|
+
};
|
|
7
|
+
cost?: {
|
|
8
|
+
total_cost_usd: number;
|
|
9
|
+
total_duration_ms: number;
|
|
10
|
+
total_api_duration_ms: number;
|
|
11
|
+
total_lines_added: number;
|
|
12
|
+
total_lines_removed: number;
|
|
13
|
+
};
|
|
14
|
+
context_window?: {
|
|
15
|
+
used_percentage: number;
|
|
16
|
+
context_window_size?: number;
|
|
17
|
+
current_usage?: {
|
|
18
|
+
input_tokens: number;
|
|
19
|
+
cache_creation_input_tokens: number;
|
|
20
|
+
cache_read_input_tokens: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface StyleAttrs {
|
|
26
|
+
color?: string;
|
|
27
|
+
bold?: boolean;
|
|
28
|
+
italic?: boolean;
|
|
29
|
+
prefix?: string;
|
|
30
|
+
suffix?: string;
|
|
31
|
+
}
|
|
32
|
+
export type EnabledFn = (session: SessionData) => boolean;
|
|
33
|
+
export interface SegmentNode {
|
|
34
|
+
type: string;
|
|
35
|
+
provider?: string;
|
|
36
|
+
enabled?: boolean | EnabledFn;
|
|
37
|
+
style?: StyleAttrs;
|
|
38
|
+
props?: Record<string, unknown>;
|
|
39
|
+
children?: SegmentNode[];
|
|
40
|
+
}
|
|
41
|
+
export interface SegmentContext {
|
|
42
|
+
session: SessionData;
|
|
43
|
+
provider?: unknown;
|
|
44
|
+
props?: Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
export interface Segment {
|
|
47
|
+
name: string;
|
|
48
|
+
provider?: string;
|
|
49
|
+
render(context: SegmentContext): string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface DataProvider {
|
|
52
|
+
name: string;
|
|
53
|
+
resolve(session: SessionData): Promise<unknown>;
|
|
54
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ccnow",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Composable, spaceship-inspired status line for Claude Code",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/cli.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"ccnow": "dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
13
|
+
"prepare": "husky"
|
|
14
|
+
},
|
|
15
|
+
"lint-staged": {
|
|
16
|
+
"*.{ts,json,yaml,yml,md}": [
|
|
17
|
+
"prettier --check"
|
|
18
|
+
],
|
|
19
|
+
"*.ts": [
|
|
20
|
+
"eslint"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
26
|
+
"keywords": [
|
|
27
|
+
"claude",
|
|
28
|
+
"claude-code",
|
|
29
|
+
"statusline",
|
|
30
|
+
"cli"
|
|
31
|
+
],
|
|
32
|
+
"author": "Jason Heddings",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/jheddings/ccnow.git"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://github.com/jheddings/ccnow",
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@eslint/js": "^10.0.1",
|
|
44
|
+
"@types/jest": "^29.5.0",
|
|
45
|
+
"@types/node": "^20.19.37",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^8.57.0",
|
|
47
|
+
"@typescript-eslint/parser": "^8.57.0",
|
|
48
|
+
"eslint": "^10.0.3",
|
|
49
|
+
"git-cliff": "^2.12.0",
|
|
50
|
+
"globals": "^17.4.0",
|
|
51
|
+
"husky": "^9.1.7",
|
|
52
|
+
"jest": "^29.7.0",
|
|
53
|
+
"lint-staged": "^16.4.0",
|
|
54
|
+
"prettier": "^3.8.1",
|
|
55
|
+
"ts-jest": "^29.2.0",
|
|
56
|
+
"ts-node": "^10.9.2",
|
|
57
|
+
"typescript": "^5.5.0"
|
|
58
|
+
}
|
|
59
|
+
}
|