@tekdi/coding-analytics 1.0.1 → 1.0.3
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/dist/analysis/analysis-prompt.d.ts +97 -0
- package/dist/analysis/analysis-prompt.d.ts.map +1 -0
- package/dist/analysis/analysis-prompt.js +312 -0
- package/dist/analysis/analysis-prompt.js.map +1 -0
- package/dist/analysis/feedback-aggregator.d.ts +15 -0
- package/dist/analysis/feedback-aggregator.d.ts.map +1 -0
- package/dist/analysis/feedback-aggregator.js +142 -0
- package/dist/analysis/feedback-aggregator.js.map +1 -0
- package/dist/analysis/llm-provider.d.ts +9 -0
- package/dist/analysis/llm-provider.d.ts.map +1 -0
- package/dist/analysis/llm-provider.js +23 -0
- package/dist/analysis/llm-provider.js.map +1 -0
- package/dist/analysis/providers/claude-provider.d.ts +11 -0
- package/dist/analysis/providers/claude-provider.d.ts.map +1 -0
- package/dist/analysis/providers/claude-provider.js +74 -0
- package/dist/analysis/providers/claude-provider.js.map +1 -0
- package/dist/analysis/providers/gemini-provider.d.ts +11 -0
- package/dist/analysis/providers/gemini-provider.d.ts.map +1 -0
- package/dist/analysis/providers/gemini-provider.js +58 -0
- package/dist/analysis/providers/gemini-provider.js.map +1 -0
- package/dist/analysis/providers/openai-provider.d.ts +11 -0
- package/dist/analysis/providers/openai-provider.d.ts.map +1 -0
- package/dist/analysis/providers/openai-provider.js +66 -0
- package/dist/analysis/providers/openai-provider.js.map +1 -0
- package/dist/analysis/providers/parse-helper.d.ts +7 -0
- package/dist/analysis/providers/parse-helper.d.ts.map +1 -0
- package/dist/analysis/providers/parse-helper.js +27 -0
- package/dist/analysis/providers/parse-helper.js.map +1 -0
- package/dist/analysis/session-analyzer.d.ts +8 -0
- package/dist/analysis/session-analyzer.d.ts.map +1 -0
- package/dist/analysis/session-analyzer.js +115 -0
- package/dist/analysis/session-analyzer.js.map +1 -0
- package/dist/analysis/session-builder.d.ts +19 -0
- package/dist/analysis/session-builder.d.ts.map +1 -0
- package/dist/analysis/session-builder.js +174 -0
- package/dist/analysis/session-builder.js.map +1 -0
- package/dist/analysis/types.d.ts +94 -0
- package/dist/analysis/types.d.ts.map +1 -0
- package/dist/analysis/types.js +3 -0
- package/dist/analysis/types.js.map +1 -0
- package/dist/artifact-extractor.d.ts +55 -0
- package/dist/artifact-extractor.d.ts.map +1 -0
- package/dist/artifact-extractor.js +146 -0
- package/dist/artifact-extractor.js.map +1 -0
- package/dist/claude-hooks-receiver.d.ts +9 -0
- package/dist/claude-hooks-receiver.d.ts.map +1 -1
- package/dist/claude-hooks-receiver.js +175 -2
- package/dist/claude-hooks-receiver.js.map +1 -1
- package/dist/cli.js +242 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/enricher.d.ts +3 -2
- package/dist/enricher.d.ts.map +1 -1
- package/dist/enricher.js +91 -36
- package/dist/enricher.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +16 -8
- package/dist/logger.js.map +1 -1
- package/package.json +10 -4
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,MAAM;IACV,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;gBAEpB,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IAkDtC,MAAM,CAAC,UAAU,IAAI,MAAM;IAK3B,MAAM,CAAC,aAAa,IAAI,MAAM;IAI9B,MAAM,CAAC,IAAI,IAAI,MAAM;IAmBrB,IAAI,IAAI,IAAI;IAYZ,MAAM,IAAI,UAAU;IAWpB,YAAY,IAAI,OAAO;CAGxB"}
|
package/dist/config.js
CHANGED
|
@@ -52,6 +52,9 @@ class Config {
|
|
|
52
52
|
fileContent: data?.capture?.fileContent ?? false,
|
|
53
53
|
filePaths: data?.capture?.filePaths ?? true,
|
|
54
54
|
agentThinking: data?.capture?.agentThinking ?? true,
|
|
55
|
+
// Skill / subagent / slash-command name capture. Names are not secrets,
|
|
56
|
+
// so this is independent of `prompts`. Defaults on — adoption telemetry.
|
|
57
|
+
skills: data?.capture?.skills ?? true,
|
|
55
58
|
};
|
|
56
59
|
this.privacy = {
|
|
57
60
|
hashUserIds: data?.privacy?.hashUserIds ?? true,
|
|
@@ -68,6 +71,16 @@ class Config {
|
|
|
68
71
|
logLevel: data?.system?.logLevel || 'info',
|
|
69
72
|
logPath: data?.system?.logPath || path.join(Config.getDataDir(), 'logs'),
|
|
70
73
|
};
|
|
74
|
+
this.analysis = {
|
|
75
|
+
provider: data?.analysis?.provider || 'claude',
|
|
76
|
+
model: data?.analysis?.model || '',
|
|
77
|
+
apiKey: data?.analysis?.apiKey || '',
|
|
78
|
+
maxOutputTokens: data?.analysis?.maxOutputTokens || 16000,
|
|
79
|
+
posthogQueryApiKey: data?.analysis?.posthogQueryApiKey || '',
|
|
80
|
+
posthogProjectId: data?.analysis?.posthogProjectId || '',
|
|
81
|
+
posthogQueryHost: data?.analysis?.posthogQueryHost || 'https://eu.posthog.com',
|
|
82
|
+
maxSessionsPerReport: data?.analysis?.maxSessionsPerReport || 10,
|
|
83
|
+
};
|
|
71
84
|
}
|
|
72
85
|
static getDataDir() {
|
|
73
86
|
const homeDir = os.homedir();
|
|
@@ -109,6 +122,7 @@ class Config {
|
|
|
109
122
|
privacy: this.privacy,
|
|
110
123
|
storage: this.storage,
|
|
111
124
|
system: this.system,
|
|
125
|
+
analysis: this.analysis,
|
|
112
126
|
};
|
|
113
127
|
}
|
|
114
128
|
isConfigured() {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
|
package/dist/enricher.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Config } from
|
|
2
|
-
import { HookEvent } from
|
|
1
|
+
import { Config } from "./config";
|
|
2
|
+
import { HookEvent } from "./hooks-listener";
|
|
3
3
|
export interface EnrichedEvent {
|
|
4
4
|
event: string;
|
|
5
5
|
distinct_id: string;
|
|
@@ -22,6 +22,7 @@ export declare class Enricher {
|
|
|
22
22
|
private getCursorVersion;
|
|
23
23
|
private getUserId;
|
|
24
24
|
private getClaudeAccountUuid;
|
|
25
|
+
private getClaudeEmail;
|
|
25
26
|
private getCursorEmail;
|
|
26
27
|
private getCursorDbPath;
|
|
27
28
|
private getMachineId;
|
package/dist/enricher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enricher.d.ts","sourceRoot":"","sources":["../enricher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"enricher.d.ts","sourceRoot":"","sources":["../enricher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAqB7C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAE9C,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,cAAc,CAAwB;gBAElC,MAAM,EAAE,MAAM;IAIpB,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;YA6E5C,aAAa;YAWb,eAAe;IA6D7B,OAAO,CAAC,eAAe;YAQT,gBAAgB;YAUhB,gBAAgB;YA4BhB,SAAS;IA6CvB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,eAAe;YAsDT,YAAY;YAcZ,cAAc;IAuB5B,OAAO,CAAC,IAAI;CAOb"}
|
package/dist/enricher.js
CHANGED
|
@@ -45,6 +45,17 @@ const crypto = __importStar(require("crypto"));
|
|
|
45
45
|
const fs = __importStar(require("fs"));
|
|
46
46
|
const path = __importStar(require("path"));
|
|
47
47
|
const child_process_1 = require("child_process");
|
|
48
|
+
// Read package version once at module load
|
|
49
|
+
const packageVersion = (() => {
|
|
50
|
+
try {
|
|
51
|
+
const pkgPath = path.join(__dirname, "..", "package.json");
|
|
52
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
53
|
+
return pkg.version ?? "unknown";
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return "unknown";
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
48
59
|
class Enricher {
|
|
49
60
|
constructor(config) {
|
|
50
61
|
this.cachedUserId = null;
|
|
@@ -59,9 +70,20 @@ class Enricher {
|
|
|
59
70
|
const properties = {
|
|
60
71
|
...hookEvent.data,
|
|
61
72
|
};
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
73
|
+
// For Claude events, resolve user_email from ~/.claude.json if not already set
|
|
74
|
+
if (hookEvent.provider === "claude" && !hookEvent.data.user_email) {
|
|
75
|
+
const claudeEmail = this.getClaudeEmail();
|
|
76
|
+
if (claudeEmail) {
|
|
77
|
+
properties.user_email = claudeEmail;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Add git context — resolve workspace path from provider-specific fields
|
|
81
|
+
const workspacePath = hookEvent.data.workspace_path ||
|
|
82
|
+
hookEvent.data.cwd ||
|
|
83
|
+
(Array.isArray(hookEvent.data.workspace_roots) && hookEvent.data.workspace_roots.length > 0
|
|
84
|
+
? hookEvent.data.workspace_roots[0]
|
|
85
|
+
: undefined) ||
|
|
86
|
+
process.cwd();
|
|
65
87
|
if (workspacePath) {
|
|
66
88
|
const gitContext = await this.getGitContext(workspacePath);
|
|
67
89
|
Object.assign(properties, gitContext);
|
|
@@ -79,7 +101,9 @@ class Enricher {
|
|
|
79
101
|
Object.assign(properties, gitUser);
|
|
80
102
|
// Add prompt quality analysis
|
|
81
103
|
const promptText = hookEvent.data.prompt;
|
|
82
|
-
if (promptText &&
|
|
104
|
+
if (promptText &&
|
|
105
|
+
typeof promptText === "string" &&
|
|
106
|
+
promptText !== "[redacted]") {
|
|
83
107
|
const analysis = this.promptAnalyzer.analyze(promptText);
|
|
84
108
|
Object.assign(properties, {
|
|
85
109
|
prompt_word_count: analysis.word_count,
|
|
@@ -94,14 +118,15 @@ class Enricher {
|
|
|
94
118
|
prompt_missing_dimensions: analysis.missing_dimensions,
|
|
95
119
|
});
|
|
96
120
|
}
|
|
97
|
-
// Get user ID — use email from hook payload
|
|
98
|
-
const userId = await this.getUserId(
|
|
121
|
+
// Get user ID — use email from hook payload or resolved Claude email
|
|
122
|
+
const userId = await this.getUserId(properties.user_email);
|
|
99
123
|
return {
|
|
100
124
|
event: hookEvent.type,
|
|
101
125
|
distinct_id: userId,
|
|
102
126
|
properties: {
|
|
103
127
|
...properties,
|
|
104
|
-
provider: hookEvent.provider ??
|
|
128
|
+
provider: hookEvent.provider ?? "cursor",
|
|
129
|
+
analytics_version: packageVersion,
|
|
105
130
|
},
|
|
106
131
|
timestamp: hookEvent.timestamp,
|
|
107
132
|
};
|
|
@@ -126,7 +151,7 @@ class Enricher {
|
|
|
126
151
|
const branch = await git.branchLocal();
|
|
127
152
|
// Get remote URL
|
|
128
153
|
const remotes = await git.getRemotes(true);
|
|
129
|
-
const origin = remotes.find(r => r.name ===
|
|
154
|
+
const origin = remotes.find((r) => r.name === "origin");
|
|
130
155
|
// Get last commit
|
|
131
156
|
const log = await git.log({ n: 1 });
|
|
132
157
|
const lastCommit = log.latest;
|
|
@@ -135,18 +160,18 @@ class Enricher {
|
|
|
135
160
|
// Extract repo name from remote
|
|
136
161
|
const repository = origin?.refs?.fetch
|
|
137
162
|
? this.extractRepoName(origin.refs.fetch)
|
|
138
|
-
:
|
|
163
|
+
: "unknown";
|
|
139
164
|
// Privacy: Check if repo is allowed
|
|
140
165
|
if (this.config.privacy.allowedRepos.length > 0) {
|
|
141
|
-
const allowed = this.config.privacy.allowedRepos.some(pattern => {
|
|
142
|
-
const regex = new RegExp(pattern.replace(
|
|
166
|
+
const allowed = this.config.privacy.allowedRepos.some((pattern) => {
|
|
167
|
+
const regex = new RegExp(pattern.replace("*", ".*"));
|
|
143
168
|
return regex.test(repository);
|
|
144
169
|
});
|
|
145
170
|
if (!allowed) {
|
|
146
171
|
return {
|
|
147
172
|
git_enabled: true,
|
|
148
|
-
repository:
|
|
149
|
-
branch:
|
|
173
|
+
repository: "[filtered]",
|
|
174
|
+
branch: "[filtered]",
|
|
150
175
|
};
|
|
151
176
|
}
|
|
152
177
|
}
|
|
@@ -184,19 +209,19 @@ class Enricher {
|
|
|
184
209
|
try {
|
|
185
210
|
// Try to read Cursor version from common locations
|
|
186
211
|
const cursorPaths = [
|
|
187
|
-
path.join(os.homedir(),
|
|
188
|
-
path.join(os.homedir(),
|
|
189
|
-
|
|
212
|
+
path.join(os.homedir(), ".cursor", "version"),
|
|
213
|
+
path.join(os.homedir(), "AppData", "Local", "Programs", "Cursor", "version"), // Windows
|
|
214
|
+
"/Applications/Cursor.app/Contents/Resources/app/version", // Mac
|
|
190
215
|
];
|
|
191
216
|
for (const versionPath of cursorPaths) {
|
|
192
217
|
if (fs.existsSync(versionPath)) {
|
|
193
|
-
return fs.readFileSync(versionPath,
|
|
218
|
+
return fs.readFileSync(versionPath, "utf-8").trim();
|
|
194
219
|
}
|
|
195
220
|
}
|
|
196
|
-
return
|
|
221
|
+
return "unknown";
|
|
197
222
|
}
|
|
198
223
|
catch {
|
|
199
|
-
return
|
|
224
|
+
return "unknown";
|
|
200
225
|
}
|
|
201
226
|
}
|
|
202
227
|
async getUserId(emailHint) {
|
|
@@ -205,7 +230,9 @@ class Enricher {
|
|
|
205
230
|
}
|
|
206
231
|
// 0. Email supplied directly by the hook payload (Cursor provides user_email)
|
|
207
232
|
if (emailHint) {
|
|
208
|
-
this.cachedUserId = this.config.privacy.hashUserIds
|
|
233
|
+
this.cachedUserId = this.config.privacy.hashUserIds
|
|
234
|
+
? this.hash(emailHint)
|
|
235
|
+
: emailHint;
|
|
209
236
|
return this.cachedUserId;
|
|
210
237
|
}
|
|
211
238
|
// 1. Claude account UUID — stable, already opaque, no hashing needed
|
|
@@ -217,14 +244,18 @@ class Enricher {
|
|
|
217
244
|
// 2. Cursor cached email from state.vscdb
|
|
218
245
|
const cursorEmail = this.getCursorEmail();
|
|
219
246
|
if (cursorEmail) {
|
|
220
|
-
this.cachedUserId = this.config.privacy.hashUserIds
|
|
247
|
+
this.cachedUserId = this.config.privacy.hashUserIds
|
|
248
|
+
? this.hash(cursorEmail)
|
|
249
|
+
: cursorEmail;
|
|
221
250
|
return this.cachedUserId;
|
|
222
251
|
}
|
|
223
252
|
// 3. Git global email
|
|
224
253
|
try {
|
|
225
254
|
const git = (0, simple_git_1.default)();
|
|
226
|
-
const email = (await git.raw([
|
|
227
|
-
this.cachedUserId = this.config.privacy.hashUserIds
|
|
255
|
+
const email = (await git.raw(["config", "--global", "user.email"])).trim();
|
|
256
|
+
this.cachedUserId = this.config.privacy.hashUserIds
|
|
257
|
+
? this.hash(email)
|
|
258
|
+
: email;
|
|
228
259
|
return this.cachedUserId;
|
|
229
260
|
}
|
|
230
261
|
catch {
|
|
@@ -234,23 +265,37 @@ class Enricher {
|
|
|
234
265
|
}
|
|
235
266
|
getClaudeAccountUuid() {
|
|
236
267
|
try {
|
|
237
|
-
const claudeJsonPath = path.join(os.homedir(),
|
|
268
|
+
const claudeJsonPath = path.join(os.homedir(), ".claude.json");
|
|
238
269
|
if (!fs.existsSync(claudeJsonPath))
|
|
239
270
|
return null;
|
|
240
|
-
const data = JSON.parse(fs.readFileSync(claudeJsonPath,
|
|
271
|
+
const data = JSON.parse(fs.readFileSync(claudeJsonPath, "utf-8"));
|
|
241
272
|
return data?.oauthAccount?.accountUuid ?? null;
|
|
242
273
|
}
|
|
243
274
|
catch {
|
|
244
275
|
return null;
|
|
245
276
|
}
|
|
246
277
|
}
|
|
278
|
+
getClaudeEmail() {
|
|
279
|
+
try {
|
|
280
|
+
const claudeJsonPath = path.join(os.homedir(), ".claude.json");
|
|
281
|
+
if (!fs.existsSync(claudeJsonPath))
|
|
282
|
+
return null;
|
|
283
|
+
const data = JSON.parse(fs.readFileSync(claudeJsonPath, "utf-8"));
|
|
284
|
+
return data?.oauthAccount?.emailAddress ?? null;
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
247
290
|
getCursorEmail() {
|
|
248
291
|
try {
|
|
249
292
|
const dbPath = this.getCursorDbPath();
|
|
250
293
|
if (!dbPath || !fs.existsSync(dbPath))
|
|
251
294
|
return null;
|
|
252
295
|
// sqlite3 CLI ships with macOS and is standard on Linux — no npm dependency needed
|
|
253
|
-
const result = (0, child_process_1.execSync)(`sqlite3 "${dbPath}" "SELECT value FROM ItemTable WHERE key='cursorAuth/cachedEmail';"`, { timeout: 3000, stdio: [
|
|
296
|
+
const result = (0, child_process_1.execSync)(`sqlite3 "${dbPath}" "SELECT value FROM ItemTable WHERE key='cursorAuth/cachedEmail';"`, { timeout: 3000, stdio: ["ignore", "pipe", "ignore"] })
|
|
297
|
+
.toString()
|
|
298
|
+
.trim();
|
|
254
299
|
return result || null;
|
|
255
300
|
}
|
|
256
301
|
catch {
|
|
@@ -261,17 +306,17 @@ class Enricher {
|
|
|
261
306
|
const home = os.homedir();
|
|
262
307
|
const candidates = [];
|
|
263
308
|
switch (os.platform()) {
|
|
264
|
-
case
|
|
265
|
-
candidates.push(path.join(home,
|
|
309
|
+
case "darwin":
|
|
310
|
+
candidates.push(path.join(home, "Library", "Application Support", "Cursor", "User", "globalStorage", "state.vscdb"), path.join(home, ".config", "Cursor", "User", "globalStorage", "state.vscdb"));
|
|
266
311
|
break;
|
|
267
|
-
case
|
|
268
|
-
candidates.push(path.join(home,
|
|
312
|
+
case "linux":
|
|
313
|
+
candidates.push(path.join(home, ".config", "Cursor", "User", "globalStorage", "state.vscdb"));
|
|
269
314
|
break;
|
|
270
|
-
case
|
|
271
|
-
candidates.push(path.join(process.env.APPDATA ??
|
|
315
|
+
case "win32":
|
|
316
|
+
candidates.push(path.join(process.env.APPDATA ?? "", "Cursor", "User", "globalStorage", "state.vscdb"));
|
|
272
317
|
break;
|
|
273
318
|
}
|
|
274
|
-
return candidates.find(p => fs.existsSync(p)) ?? null;
|
|
319
|
+
return candidates.find((p) => fs.existsSync(p)) ?? null;
|
|
275
320
|
}
|
|
276
321
|
async getMachineId() {
|
|
277
322
|
if (this.cachedMachineId) {
|
|
@@ -288,8 +333,14 @@ class Enricher {
|
|
|
288
333
|
try {
|
|
289
334
|
const git = (0, simple_git_1.default)();
|
|
290
335
|
const [email, name] = await Promise.all([
|
|
291
|
-
git
|
|
292
|
-
|
|
336
|
+
git
|
|
337
|
+
.raw(["config", "--global", "user.email"])
|
|
338
|
+
.then((s) => s.trim())
|
|
339
|
+
.catch(() => null),
|
|
340
|
+
git
|
|
341
|
+
.raw(["config", "--global", "user.name"])
|
|
342
|
+
.then((s) => s.trim())
|
|
343
|
+
.catch(() => null),
|
|
293
344
|
]);
|
|
294
345
|
return {
|
|
295
346
|
git_user_email: email && this.config.privacy.hashUserIds ? this.hash(email) : email,
|
|
@@ -301,7 +352,11 @@ class Enricher {
|
|
|
301
352
|
}
|
|
302
353
|
}
|
|
303
354
|
hash(input) {
|
|
304
|
-
return crypto
|
|
355
|
+
return crypto
|
|
356
|
+
.createHash("sha256")
|
|
357
|
+
.update(input)
|
|
358
|
+
.digest("hex")
|
|
359
|
+
.substring(0, 16);
|
|
305
360
|
}
|
|
306
361
|
}
|
|
307
362
|
exports.Enricher = Enricher;
|
package/dist/enricher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enricher.js","sourceRoot":"","sources":["../enricher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enricher.js","sourceRoot":"","sources":["../enricher.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAyB9B,eAAO,MAAM,MAAM,gBAOjB,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -41,19 +41,27 @@ const winston_1 = __importDefault(require("winston"));
|
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const os = __importStar(require("os"));
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const isLambda = !!process.env.AWS_LAMBDA_FUNCTION_NAME;
|
|
45
|
+
let transports;
|
|
46
|
+
if (isLambda) {
|
|
47
|
+
transports = [new winston_1.default.transports.Console()];
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
else {
|
|
50
|
+
const logsDir = path.join(os.homedir(), '.coding-analytics', 'logs');
|
|
51
|
+
if (!fs.existsSync(logsDir)) {
|
|
52
|
+
fs.mkdirSync(logsDir, { recursive: true });
|
|
53
|
+
}
|
|
54
|
+
transports = [
|
|
52
55
|
new winston_1.default.transports.File({
|
|
53
56
|
filename: path.join(logsDir, 'coding-analytics.log'),
|
|
54
57
|
maxsize: 10 * 1024 * 1024, // 10 MB
|
|
55
58
|
maxFiles: 3,
|
|
56
59
|
}),
|
|
57
|
-
]
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
exports.logger = winston_1.default.createLogger({
|
|
63
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
64
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json()),
|
|
65
|
+
transports,
|
|
58
66
|
});
|
|
59
67
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;AAExD,IAAI,UAA+B,CAAC;AAEpC,IAAI,QAAQ,EAAE,CAAC;IACb,UAAU,GAAG,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;KAAM,CAAC;IACN,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,UAAU,GAAG;QACX,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;YACpD,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC;KACH,CAAC;AACJ,CAAC;AAEY,QAAA,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;IACD,UAAU;CACX,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekdi/coding-analytics",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Monitor Cursor & Claude Code usage and send analytics to PostHog. Uses hooks to capture events.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"coding-analytics": "
|
|
7
|
+
"coding-analytics": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/",
|
|
11
11
|
"README.md"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
14
|
+
"build": "tsc -p tsconfig.build.json",
|
|
15
15
|
"dev": "ts-node cli.ts",
|
|
16
16
|
"test": "jest",
|
|
17
17
|
"lint": "eslint **/*.ts",
|
|
@@ -33,6 +33,11 @@
|
|
|
33
33
|
"systeminformation": "^5.21.20",
|
|
34
34
|
"winston": "^3.11.0"
|
|
35
35
|
},
|
|
36
|
+
"optionalDependencies": {
|
|
37
|
+
"@anthropic-ai/sdk": "^0.39.0",
|
|
38
|
+
"@google/generative-ai": "^0.21.0",
|
|
39
|
+
"openai": "^4.77.0"
|
|
40
|
+
},
|
|
36
41
|
"devDependencies": {
|
|
37
42
|
"@types/jest": "^29.5.11",
|
|
38
43
|
"@types/node": "^20.10.6",
|
|
@@ -40,10 +45,11 @@
|
|
|
40
45
|
"@typescript-eslint/parser": "^6.16.0",
|
|
41
46
|
"eslint": "^8.56.0",
|
|
42
47
|
"jest": "^29.7.0",
|
|
48
|
+
"ts-jest": "^29.1.2",
|
|
43
49
|
"ts-node": "^10.9.2",
|
|
44
50
|
"typescript": "^5.3.3"
|
|
45
51
|
},
|
|
46
52
|
"engines": {
|
|
47
53
|
"node": ">=18.0.0"
|
|
48
54
|
}
|
|
49
|
-
}
|
|
55
|
+
}
|