claude-scope 0.1.3 → 0.1.4

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 (64) hide show
  1. package/dist/core/renderer.d.ts +33 -3
  2. package/dist/core/renderer.d.ts.map +1 -1
  3. package/dist/core/renderer.js +48 -7
  4. package/dist/core/renderer.js.map +1 -1
  5. package/dist/data/stdin-provider.d.ts +44 -0
  6. package/dist/data/stdin-provider.d.ts.map +1 -0
  7. package/dist/data/stdin-provider.js +83 -0
  8. package/dist/data/stdin-provider.js.map +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +56 -64
  11. package/dist/index.js.map +1 -1
  12. package/dist/providers/git-provider.d.ts +53 -46
  13. package/dist/providers/git-provider.d.ts.map +1 -1
  14. package/dist/providers/git-provider.js +53 -107
  15. package/dist/providers/git-provider.js.map +1 -1
  16. package/dist/providers/stdin-provider.d.ts +16 -15
  17. package/dist/providers/stdin-provider.d.ts.map +1 -1
  18. package/dist/providers/stdin-provider.js +35 -66
  19. package/dist/providers/stdin-provider.js.map +1 -1
  20. package/dist/schemas/stdin-schema.d.ts +123 -0
  21. package/dist/schemas/stdin-schema.d.ts.map +1 -0
  22. package/dist/schemas/stdin-schema.js +81 -0
  23. package/dist/schemas/stdin-schema.js.map +1 -0
  24. package/dist/types.d.ts +6 -63
  25. package/dist/types.d.ts.map +1 -1
  26. package/dist/types.js +3 -0
  27. package/dist/types.js.map +1 -1
  28. package/dist/ui/utils/colors.d.ts +52 -0
  29. package/dist/ui/utils/colors.d.ts.map +1 -0
  30. package/dist/ui/utils/colors.js +54 -0
  31. package/dist/ui/utils/colors.js.map +1 -0
  32. package/dist/ui/utils/formatters.d.ts +56 -0
  33. package/dist/ui/utils/formatters.d.ts.map +1 -0
  34. package/dist/ui/utils/formatters.js +114 -0
  35. package/dist/ui/utils/formatters.js.map +1 -0
  36. package/dist/widgets/context-widget.d.ts +3 -3
  37. package/dist/widgets/context-widget.d.ts.map +1 -1
  38. package/dist/widgets/context-widget.js +9 -5
  39. package/dist/widgets/context-widget.js.map +1 -1
  40. package/dist/widgets/core/stdin-data-widget.d.ts +93 -0
  41. package/dist/widgets/core/stdin-data-widget.d.ts.map +1 -0
  42. package/dist/widgets/core/stdin-data-widget.js +84 -0
  43. package/dist/widgets/core/stdin-data-widget.js.map +1 -0
  44. package/dist/widgets/cost-widget.d.ts +4 -4
  45. package/dist/widgets/cost-widget.d.ts.map +1 -1
  46. package/dist/widgets/cost-widget.js +6 -5
  47. package/dist/widgets/cost-widget.js.map +1 -1
  48. package/dist/widgets/duration-widget.d.ts +3 -3
  49. package/dist/widgets/duration-widget.d.ts.map +1 -1
  50. package/dist/widgets/duration-widget.js +5 -4
  51. package/dist/widgets/duration-widget.js.map +1 -1
  52. package/dist/widgets/git/git-changes-widget.d.ts +38 -0
  53. package/dist/widgets/git/git-changes-widget.d.ts.map +1 -0
  54. package/dist/widgets/git/git-changes-widget.js +91 -0
  55. package/dist/widgets/git/git-changes-widget.js.map +1 -0
  56. package/dist/widgets/git/git-widget.d.ts +37 -0
  57. package/dist/widgets/git/git-widget.d.ts.map +1 -0
  58. package/dist/widgets/git/git-widget.js +67 -0
  59. package/dist/widgets/git/git-widget.js.map +1 -0
  60. package/dist/widgets/model-widget.d.ts +3 -3
  61. package/dist/widgets/model-widget.d.ts.map +1 -1
  62. package/dist/widgets/model-widget.js +2 -3
  63. package/dist/widgets/model-widget.js.map +1 -1
  64. package/package.json +8 -6
@@ -1,127 +1,73 @@
1
1
  /**
2
- * Git operations provider
3
- * Wraps simple-git for dependency injection
2
+ * Git provider interface and implementation
3
+ *
4
+ * Uses native Node.js child_process to execute git commands,
5
+ * avoiding external dependencies like simple-git.
4
6
  */
5
- import { simpleGit } from 'simple-git';
7
+ import { execFile } from 'node:child_process';
8
+ import { promisify } from 'node:util';
9
+ const execFileAsync = promisify(execFile);
6
10
  /**
7
- * Git provider for repository operations
11
+ * Native git implementation using child_process
12
+ *
13
+ * Executes real git commands on the system.
14
+ * Requires git to be installed and available in PATH.
8
15
  */
9
- export class GitProvider {
10
- git;
11
- repoPath;
12
- _isRepo = false;
13
- constructor(deps) {
14
- this.git = deps.git;
15
- this.repoPath = '';
16
+ export class NativeGit {
17
+ cwd;
18
+ constructor(cwd) {
19
+ this.cwd = cwd;
16
20
  }
17
- /**
18
- * Initialize provider with repository path
19
- */
20
- async init(path) {
21
- this.repoPath = path;
22
- this._isRepo = await this.git.checkIsRepo();
23
- }
24
- /**
25
- * Get current branch name
26
- * @returns Branch name or null if not in repo
27
- */
28
- async getBranch() {
29
- if (!this._isRepo) {
30
- return null;
31
- }
32
- const result = await this.git.branch();
33
- return result.current;
34
- }
35
- /**
36
- * Get git diff statistics
37
- * @returns Changes with insertions and deletions, or null if not a repo
38
- */
39
- async getChanges() {
40
- if (!this._isRepo) {
41
- return null;
42
- }
43
- const stats = await this.git.diffStats();
44
- if (!stats) {
45
- return null;
46
- }
47
- return {
48
- insertions: stats.insertions,
49
- deletions: stats.deletions
50
- };
51
- }
52
- /**
53
- * Check if current path is a git repository
54
- */
55
- isRepo() {
56
- return this._isRepo;
57
- }
58
- /**
59
- * Get complete git info
60
- */
61
- async getInfo() {
62
- return {
63
- branch: await this.getBranch(),
64
- isRepo: this.isRepo()
65
- };
66
- }
67
- }
68
- /**
69
- * Adapter to wrap simple-git with our IGit interface
70
- */
71
- class SimpleGitAdapter {
72
- git;
73
- constructor(git) {
74
- this.git = git;
75
- }
76
- async checkIsRepo() {
21
+ async status() {
77
22
  try {
78
- await this.git.status();
79
- return true;
23
+ const { stdout } = await execFileAsync('git', ['status', '--branch', '--short'], {
24
+ cwd: this.cwd,
25
+ });
26
+ // Parse output like: "## main" or "## feature-branch"
27
+ const match = stdout.match(/^##\s+(\S+)/m);
28
+ const current = match ? match[1] : null;
29
+ return { current };
80
30
  }
81
31
  catch {
82
- return false;
32
+ // Not in a git repo or git not available
33
+ return { current: null };
83
34
  }
84
35
  }
85
- async branch() {
86
- const branches = await this.git.branch();
87
- return {
88
- current: branches.current || null,
89
- all: branches.all
90
- };
91
- }
92
- async diffStats() {
36
+ async diffSummary(options) {
37
+ const args = ['diff', '--shortstat'];
38
+ if (options) {
39
+ args.push(...options);
40
+ }
93
41
  try {
94
- const summary = await this.git.diffSummary(['--shortstat']);
95
- // Parse the summary object
96
- let insertions = 0;
97
- let deletions = 0;
98
- if (summary.files && summary.files.length > 0) {
99
- for (const file of summary.files) {
100
- if ('insertions' in file && typeof file.insertions === 'number') {
101
- insertions += file.insertions;
102
- }
103
- if ('deletions' in file && typeof file.deletions === 'number') {
104
- deletions += file.deletions;
105
- }
106
- }
107
- }
108
- if (insertions === 0 && deletions === 0) {
109
- return null;
110
- }
111
- return { insertions, deletions };
42
+ const { stdout } = await execFileAsync('git', args, {
43
+ cwd: this.cwd,
44
+ });
45
+ // Parse output like: " 5 file(s) changed, 12 insertions(+), 3 deletions(-)"
46
+ // or: " 2 insertions(+), 1 deletion(-)"
47
+ const insertionMatch = stdout.match(/(\d+)\s+insertion/);
48
+ const deletionMatch = stdout.match(/(\d+)\s+deletion/);
49
+ const insertions = insertionMatch ? parseInt(insertionMatch[1], 10) : 0;
50
+ const deletions = deletionMatch ? parseInt(deletionMatch[1], 10) : 0;
51
+ // Return a single "file" entry representing total changes
52
+ // This matches the simple-git behavior we had before
53
+ const files = insertions > 0 || deletions > 0
54
+ ? [{ file: '(total)', insertions, deletions }]
55
+ : [];
56
+ return { files };
112
57
  }
113
58
  catch {
114
- return null;
59
+ // Not in a git repo or git not available
60
+ return { files: [] };
115
61
  }
116
62
  }
117
63
  }
118
64
  /**
119
- * Factory method to create an IGit instance from simple-git
120
- * @param gitInstance - Optional simple-git instance (creates default if not provided)
121
- * @returns IGit implementation
65
+ * Factory function to create NativeGit instance
66
+ *
67
+ * @param cwd - Working directory for git operations
68
+ * @returns IGit instance
122
69
  */
123
- export function createGitAdapter(gitInstance) {
124
- const git = gitInstance ?? simpleGit();
125
- return new SimpleGitAdapter(git);
70
+ export function createGit(cwd) {
71
+ return new NativeGit(cwd);
126
72
  }
127
73
  //# sourceMappingURL=git-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-provider.js","sourceRoot":"","sources":["../../src/providers/git-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-provider.js","sourceRoot":"","sources":["../../src/providers/git-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAoD1C;;;;;GAKG;AACH,MAAM,OAAO,SAAS;IACZ,GAAG,CAAS;IAEpB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;gBAC/E,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAC;YAEH,sDAAsD;YACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAExC,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;YACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAkB;QAClC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;gBAClD,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAC;YAEH,4EAA4E;YAC5E,wCAAwC;YACxC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAEvD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,0DAA0D;YAC1D,qDAAqD;YACrD,MAAM,KAAK,GACT,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;gBAC7B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC9C,CAAC,CAAC,EAAE,CAAC;YAET,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;YACzC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Stdin provider for parsing JSON data from stdin
3
- * Parses and validates Claude Code session data
3
+ * Parses and validates Claude Code session data using Zod
4
4
  */
5
5
  import type { StdinData } from '../types.js';
6
6
  /**
@@ -16,28 +16,29 @@ export declare class StdinValidationError extends Error {
16
16
  constructor(message: string);
17
17
  }
18
18
  /**
19
- * Stdin provider for parsing JSON data
19
+ * Stdin provider for parsing and validating JSON data
20
20
  */
21
21
  export declare class StdinProvider {
22
22
  /**
23
- * Parse JSON string from stdin
23
+ * Parse and validate JSON string from stdin
24
24
  * @param input JSON string to parse
25
- * @returns Parsed StdinData object
25
+ * @returns Validated StdinData object
26
26
  * @throws StdinParseError if JSON is malformed
27
- * @throws StdinValidationError if data is invalid
27
+ * @throws StdinValidationError if data doesn't match schema
28
28
  */
29
29
  parse(input: string): Promise<StdinData>;
30
30
  /**
31
- * Validate stdin data structure
32
- * @param data Data to validate
33
- * @returns true if valid, false otherwise
34
- */
35
- validate(data: unknown): data is StdinData;
36
- /**
37
- * Validate stdin data and return detailed error message
38
- * @param data Data to validate
39
- * @returns Error message if invalid, null if valid
31
+ * Safe parse that returns result instead of throwing
32
+ * Useful for testing and optional validation
33
+ * @param input JSON string to parse
34
+ * @returns Result object with success flag
40
35
  */
41
- private getValidationError;
36
+ safeParse(input: string): Promise<{
37
+ success: true;
38
+ data: StdinData;
39
+ } | {
40
+ success: false;
41
+ error: string;
42
+ }>;
42
43
  }
43
44
  //# sourceMappingURL=stdin-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdin-provider.d.ts","sourceRoot":"","sources":["../../src/providers/stdin-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAuB9C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,SAAS;IAmC1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA+B3B"}
1
+ {"version":3,"file":"stdin-provider.d.ts","sourceRoot":"","sources":["../../src/providers/stdin-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAmC9C;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAQhH"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Stdin provider for parsing JSON data from stdin
3
- * Parses and validates Claude Code session data
3
+ * Parses and validates Claude Code session data using Zod
4
4
  */
5
+ import { z } from 'zod';
6
+ import { StdinDataSchema } from '../schemas/stdin-schema.js';
5
7
  /**
6
8
  * Error thrown when stdin parsing fails
7
9
  */
@@ -21,15 +23,15 @@ export class StdinValidationError extends Error {
21
23
  }
22
24
  }
23
25
  /**
24
- * Stdin provider for parsing JSON data
26
+ * Stdin provider for parsing and validating JSON data
25
27
  */
26
28
  export class StdinProvider {
27
29
  /**
28
- * Parse JSON string from stdin
30
+ * Parse and validate JSON string from stdin
29
31
  * @param input JSON string to parse
30
- * @returns Parsed StdinData object
32
+ * @returns Validated StdinData object
31
33
  * @throws StdinParseError if JSON is malformed
32
- * @throws StdinValidationError if data is invalid
34
+ * @throws StdinValidationError if data doesn't match schema
33
35
  */
34
36
  async parse(input) {
35
37
  // Check for empty input
@@ -41,74 +43,41 @@ export class StdinProvider {
41
43
  try {
42
44
  data = JSON.parse(input);
43
45
  }
44
- catch {
45
- throw new StdinParseError('Failed to parse stdin data: Invalid JSON');
46
+ catch (error) {
47
+ throw new StdinParseError(`Invalid JSON: ${error.message}`);
46
48
  }
47
- // Validate data structure
48
- if (!this.validate(data)) {
49
- const error = this.getValidationError(data);
50
- throw new StdinValidationError(`stdin data validation failed: ${error}`);
51
- }
52
- return data;
53
- }
54
- /**
55
- * Validate stdin data structure
56
- * @param data Data to validate
57
- * @returns true if valid, false otherwise
58
- */
59
- validate(data) {
60
- // Basic type check
61
- if (typeof data !== 'object' || data === null) {
62
- return false;
63
- }
64
- const obj = data;
65
- // Check required top-level fields
66
- if (typeof obj.session_id !== 'string') {
67
- return false;
68
- }
69
- if (typeof obj.cwd !== 'string') {
70
- return false;
71
- }
72
- // Check model object
73
- if (typeof obj.model !== 'object' || obj.model === null) {
74
- return false;
75
- }
76
- const model = obj.model;
77
- if (typeof model.id !== 'string') {
78
- return false;
79
- }
80
- if (typeof model.display_name !== 'string') {
81
- return false;
49
+ // Validate with Zod
50
+ try {
51
+ return StdinDataSchema.parse(data);
52
+ }
53
+ catch (error) {
54
+ if (error instanceof z.ZodError) {
55
+ // Format error messages nicely
56
+ const errorDetails = error.issues
57
+ .map((e) => {
58
+ const path = e.path.length > 0 ? e.path.join('.') : 'root';
59
+ return `${path}: ${e.message}`;
60
+ })
61
+ .join(', ');
62
+ throw new StdinValidationError(`Validation failed: ${errorDetails}`);
63
+ }
64
+ throw error;
82
65
  }
83
- return true;
84
66
  }
85
67
  /**
86
- * Validate stdin data and return detailed error message
87
- * @param data Data to validate
88
- * @returns Error message if invalid, null if valid
68
+ * Safe parse that returns result instead of throwing
69
+ * Useful for testing and optional validation
70
+ * @param input JSON string to parse
71
+ * @returns Result object with success flag
89
72
  */
90
- getValidationError(data) {
91
- if (typeof data !== 'object' || data === null) {
92
- return 'stdin data must be an object';
93
- }
94
- const obj = data;
95
- if (typeof obj.session_id !== 'string') {
96
- return 'missing session_id';
97
- }
98
- if (typeof obj.cwd !== 'string') {
99
- return 'missing cwd';
100
- }
101
- if (typeof obj.model !== 'object' || obj.model === null) {
102
- return 'missing model';
103
- }
104
- const model = obj.model;
105
- if (typeof model.id !== 'string') {
106
- return 'missing model.id';
73
+ async safeParse(input) {
74
+ try {
75
+ const data = await this.parse(input);
76
+ return { success: true, data };
107
77
  }
108
- if (typeof model.display_name !== 'string') {
109
- return 'missing model.display_name';
78
+ catch (error) {
79
+ return { success: false, error: error.message };
110
80
  }
111
- return null;
112
81
  }
113
82
  }
114
83
  //# sourceMappingURL=stdin-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdin-provider.js","sourceRoot":"","sources":["../../src/providers/stdin-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdin-provider.js","sourceRoot":"","sources":["../../src/providers/stdin-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,wBAAwB;QACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;QACnD,CAAC;QAED,aAAa;QACb,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,iBAAkB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC;YACH,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,+BAA+B;gBAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM;qBAC9B,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE;oBACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3D,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjC,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEd,MAAM,IAAI,oBAAoB,CAC5B,sBAAsB,YAAY,EAAE,CACrC,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Runtime type-safe schema for Claude Code stdin data
3
+ *
4
+ * This schema validates incoming JSON from Claude Code statusline API
5
+ * and provides TypeScript types automatically via inference.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Context usage schema
10
+ * Details about current token usage in the context window
11
+ */
12
+ export declare const ContextUsageSchema: z.ZodObject<{
13
+ input_tokens: z.ZodNumber;
14
+ output_tokens: z.ZodNumber;
15
+ cache_creation_input_tokens: z.ZodNumber;
16
+ cache_read_input_tokens: z.ZodNumber;
17
+ }, z.core.$strip>;
18
+ /**
19
+ * Cost info schema
20
+ * Details about session cost and duration
21
+ */
22
+ export declare const CostInfoSchema: z.ZodObject<{
23
+ total_cost_usd: z.ZodOptional<z.ZodNumber>;
24
+ total_duration_ms: z.ZodOptional<z.ZodNumber>;
25
+ total_api_duration_ms: z.ZodOptional<z.ZodNumber>;
26
+ total_lines_added: z.ZodOptional<z.ZodNumber>;
27
+ total_lines_removed: z.ZodOptional<z.ZodNumber>;
28
+ }, z.core.$strip>;
29
+ /**
30
+ * Context window schema
31
+ * Information about token usage and limits
32
+ */
33
+ export declare const ContextWindowSchema: z.ZodObject<{
34
+ total_input_tokens: z.ZodNumber;
35
+ total_output_tokens: z.ZodNumber;
36
+ context_window_size: z.ZodNumber;
37
+ current_usage: z.ZodNullable<z.ZodObject<{
38
+ input_tokens: z.ZodNumber;
39
+ output_tokens: z.ZodNumber;
40
+ cache_creation_input_tokens: z.ZodNumber;
41
+ cache_read_input_tokens: z.ZodNumber;
42
+ }, z.core.$strip>>;
43
+ }, z.core.$strip>;
44
+ /**
45
+ * Model info schema
46
+ * Information about the Claude model being used
47
+ */
48
+ export declare const ModelInfoSchema: z.ZodObject<{
49
+ id: z.ZodString;
50
+ display_name: z.ZodString;
51
+ }, z.core.$strip>;
52
+ /**
53
+ * Workspace schema
54
+ * Information about current working directory
55
+ */
56
+ export declare const WorkspaceSchema: z.ZodObject<{
57
+ current_dir: z.ZodString;
58
+ project_dir: z.ZodString;
59
+ }, z.core.$strip>;
60
+ /**
61
+ * Output style schema
62
+ * Information about current output style
63
+ */
64
+ export declare const OutputStyleSchema: z.ZodObject<{
65
+ name: z.ZodString;
66
+ }, z.core.$strip>;
67
+ /**
68
+ * Main stdin data schema
69
+ *
70
+ * This is the primary schema for validating Claude Code statusline data.
71
+ * All fields are validated at runtime, and TypeScript types are inferred
72
+ * automatically.
73
+ */
74
+ export declare const StdinDataSchema: z.ZodObject<{
75
+ hook_event_name: z.ZodLiteral<"Status">;
76
+ session_id: z.ZodString;
77
+ transcript_path: z.ZodString;
78
+ cwd: z.ZodString;
79
+ model: z.ZodObject<{
80
+ id: z.ZodString;
81
+ display_name: z.ZodString;
82
+ }, z.core.$strip>;
83
+ workspace: z.ZodObject<{
84
+ current_dir: z.ZodString;
85
+ project_dir: z.ZodString;
86
+ }, z.core.$strip>;
87
+ version: z.ZodString;
88
+ output_style: z.ZodObject<{
89
+ name: z.ZodString;
90
+ }, z.core.$strip>;
91
+ cost: z.ZodOptional<z.ZodObject<{
92
+ total_cost_usd: z.ZodOptional<z.ZodNumber>;
93
+ total_duration_ms: z.ZodOptional<z.ZodNumber>;
94
+ total_api_duration_ms: z.ZodOptional<z.ZodNumber>;
95
+ total_lines_added: z.ZodOptional<z.ZodNumber>;
96
+ total_lines_removed: z.ZodOptional<z.ZodNumber>;
97
+ }, z.core.$strip>>;
98
+ context_window: z.ZodObject<{
99
+ total_input_tokens: z.ZodNumber;
100
+ total_output_tokens: z.ZodNumber;
101
+ context_window_size: z.ZodNumber;
102
+ current_usage: z.ZodNullable<z.ZodObject<{
103
+ input_tokens: z.ZodNumber;
104
+ output_tokens: z.ZodNumber;
105
+ cache_creation_input_tokens: z.ZodNumber;
106
+ cache_read_input_tokens: z.ZodNumber;
107
+ }, z.core.$strip>>;
108
+ }, z.core.$strip>;
109
+ }, z.core.$strip>;
110
+ /**
111
+ * Type inference from schema
112
+ *
113
+ * These types are automatically inferred from the Zod schemas,
114
+ * ensuring compile-time and run-time type safety are in sync.
115
+ */
116
+ export type StdinData = z.infer<typeof StdinDataSchema>;
117
+ export type ContextUsage = z.infer<typeof ContextUsageSchema>;
118
+ export type CostInfo = z.infer<typeof CostInfoSchema>;
119
+ export type ContextWindow = z.infer<typeof ContextWindowSchema>;
120
+ export type ModelInfo = z.infer<typeof ModelInfoSchema>;
121
+ export type Workspace = z.infer<typeof WorkspaceSchema>;
122
+ export type OutputStyle = z.infer<typeof OutputStyleSchema>;
123
+ //# sourceMappingURL=stdin-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/stdin-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;iBAMf,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAK9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW1B,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Runtime type-safe schema for Claude Code stdin data
3
+ *
4
+ * This schema validates incoming JSON from Claude Code statusline API
5
+ * and provides TypeScript types automatically via inference.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Context usage schema
10
+ * Details about current token usage in the context window
11
+ */
12
+ export const ContextUsageSchema = z.object({
13
+ input_tokens: z.number(),
14
+ output_tokens: z.number(),
15
+ cache_creation_input_tokens: z.number(),
16
+ cache_read_input_tokens: z.number()
17
+ });
18
+ /**
19
+ * Cost info schema
20
+ * Details about session cost and duration
21
+ */
22
+ export const CostInfoSchema = z.object({
23
+ total_cost_usd: z.number(),
24
+ total_duration_ms: z.number(),
25
+ total_api_duration_ms: z.number(),
26
+ total_lines_added: z.number(),
27
+ total_lines_removed: z.number()
28
+ }).partial(); // Make all fields optional for backwards compatibility
29
+ /**
30
+ * Context window schema
31
+ * Information about token usage and limits
32
+ */
33
+ export const ContextWindowSchema = z.object({
34
+ total_input_tokens: z.number(),
35
+ total_output_tokens: z.number(),
36
+ context_window_size: z.number(),
37
+ current_usage: ContextUsageSchema.nullable()
38
+ });
39
+ /**
40
+ * Model info schema
41
+ * Information about the Claude model being used
42
+ */
43
+ export const ModelInfoSchema = z.object({
44
+ id: z.string(),
45
+ display_name: z.string()
46
+ });
47
+ /**
48
+ * Workspace schema
49
+ * Information about current working directory
50
+ */
51
+ export const WorkspaceSchema = z.object({
52
+ current_dir: z.string(),
53
+ project_dir: z.string()
54
+ });
55
+ /**
56
+ * Output style schema
57
+ * Information about current output style
58
+ */
59
+ export const OutputStyleSchema = z.object({
60
+ name: z.string()
61
+ });
62
+ /**
63
+ * Main stdin data schema
64
+ *
65
+ * This is the primary schema for validating Claude Code statusline data.
66
+ * All fields are validated at runtime, and TypeScript types are inferred
67
+ * automatically.
68
+ */
69
+ export const StdinDataSchema = z.object({
70
+ hook_event_name: z.literal('Status'),
71
+ session_id: z.string(),
72
+ transcript_path: z.string(),
73
+ cwd: z.string(),
74
+ model: ModelInfoSchema,
75
+ workspace: WorkspaceSchema,
76
+ version: z.string(),
77
+ output_style: OutputStyleSchema,
78
+ cost: CostInfoSchema.optional(),
79
+ context_window: ContextWindowSchema
80
+ });
81
+ //# sourceMappingURL=stdin-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin-schema.js","sourceRoot":"","sources":["../../src/schemas/stdin-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE;IACvC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;CACpC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;IACjC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;CAChC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAE,uDAAuD;AAEtE;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,aAAa,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,eAAe;IACtB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,iBAAiB;IAC/B,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,mBAAmB;CACpC,CAAC,CAAC"}