@code-insights/cli 3.0.3 → 3.1.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/CHANGELOG.md +8 -0
- package/dashboard-dist/assets/{index-CUWKxcRo.js → index-BuJps5yp.js} +40 -40
- package/dashboard-dist/index.html +1 -1
- package/dist/commands/connect.d.ts +5 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +39 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/insights.d.ts +13 -0
- package/dist/commands/insights.d.ts.map +1 -0
- package/dist/commands/insights.js +87 -0
- package/dist/commands/insights.js.map +1 -0
- package/dist/commands/link.d.ts +8 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +39 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/stats/data/cache.d.ts +29 -0
- package/dist/commands/stats/data/cache.d.ts.map +1 -0
- package/dist/commands/stats/data/cache.js +197 -0
- package/dist/commands/stats/data/cache.js.map +1 -0
- package/dist/commands/stats/data/firestore.d.ts +13 -0
- package/dist/commands/stats/data/firestore.d.ts.map +1 -0
- package/dist/commands/stats/data/firestore.js +170 -0
- package/dist/commands/stats/data/firestore.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +52 -23
- package/dist/commands/sync.js.map +1 -1
- package/dist/db/schema.d.ts +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +1 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/db/write.d.ts +5 -0
- package/dist/db/write.d.ts.map +1 -1
- package/dist/db/write.js +11 -0
- package/dist/db/write.js.map +1 -1
- package/dist/firebase/client.d.ts +45 -0
- package/dist/firebase/client.d.ts.map +1 -0
- package/dist/firebase/client.js +344 -0
- package/dist/firebase/client.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/parser/insights.d.ts +7 -0
- package/dist/parser/insights.d.ts.map +1 -0
- package/dist/parser/insights.js +271 -0
- package/dist/parser/insights.js.map +1 -0
- package/dist/providers/codex.js +31 -0
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/copilot-cli.js +14 -2
- package/dist/providers/copilot-cli.js.map +1 -1
- package/dist/providers/cursor.js +44 -2
- package/dist/providers/cursor.js.map +1 -1
- package/dist/utils/firebase-json.d.ts +87 -0
- package/dist/utils/firebase-json.d.ts.map +1 -0
- package/dist/utils/firebase-json.js +207 -0
- package/dist/utils/firebase-json.js.map +1 -0
- package/dist/utils/telemetry.d.ts.map +1 -1
- package/dist/utils/telemetry.js +28 -3
- package/dist/utils/telemetry.js.map +1 -1
- package/package.json +3 -1
- package/server-dist/index.d.ts +9 -1
- package/server-dist/index.d.ts.map +1 -1
- package/server-dist/index.js +15 -5
- package/server-dist/index.js.map +1 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// ──────────────────────────────────────────────────────
|
|
2
|
+
// Firestore data source for stats commands
|
|
3
|
+
// ──────────────────────────────────────────────────────
|
|
4
|
+
import admin from 'firebase-admin';
|
|
5
|
+
import { initializeFirebase, getDb, getProjects } from '../../../firebase/client.js';
|
|
6
|
+
import { ProjectNotFoundError, FirestoreIndexError } from './types.js';
|
|
7
|
+
import { findSimilarNames } from './fuzzy-match.js';
|
|
8
|
+
// ──────────────────────────────────────────────────────
|
|
9
|
+
// Helpers
|
|
10
|
+
// ──────────────────────────────────────────────────────
|
|
11
|
+
/** Checks if error is a Firestore FAILED_PRECONDITION (missing composite index) */
|
|
12
|
+
function isFirestoreIndexError(error) {
|
|
13
|
+
if (typeof error === 'object' && error !== null && 'code' in error) {
|
|
14
|
+
return error.code === 9;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
/** Extracts the Firebase console index-creation URL from an error message */
|
|
19
|
+
function extractIndexUrl(error) {
|
|
20
|
+
if (typeof error === 'object' && error !== null && 'message' in error) {
|
|
21
|
+
const message = error.message;
|
|
22
|
+
const match = message.match(/(https:\/\/console\.firebase\.google\.com\/[^\s"]+)/);
|
|
23
|
+
return match ? match[1] : null;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
// ──────────────────────────────────────────────────────
|
|
28
|
+
// Document mapper
|
|
29
|
+
// ──────────────────────────────────────────────────────
|
|
30
|
+
/** Maps a Firestore document to the universal SessionRow shape */
|
|
31
|
+
function docToSessionRow(doc) {
|
|
32
|
+
const data = doc.data();
|
|
33
|
+
if (!data)
|
|
34
|
+
throw new Error(`Session document ${doc.id} has no data`);
|
|
35
|
+
return {
|
|
36
|
+
id: doc.id,
|
|
37
|
+
projectId: data.projectId,
|
|
38
|
+
projectName: data.projectName,
|
|
39
|
+
startedAt: data.startedAt?.toDate() ?? new Date(),
|
|
40
|
+
endedAt: data.endedAt?.toDate() ?? new Date(),
|
|
41
|
+
messageCount: data.messageCount ?? 0,
|
|
42
|
+
userMessageCount: data.userMessageCount ?? 0,
|
|
43
|
+
assistantMessageCount: data.assistantMessageCount ?? 0,
|
|
44
|
+
toolCallCount: data.toolCallCount ?? 0,
|
|
45
|
+
estimatedCostUsd: data.estimatedCostUsd,
|
|
46
|
+
totalInputTokens: data.totalInputTokens,
|
|
47
|
+
totalOutputTokens: data.totalOutputTokens,
|
|
48
|
+
cacheCreationTokens: data.cacheCreationTokens,
|
|
49
|
+
cacheReadTokens: data.cacheReadTokens,
|
|
50
|
+
primaryModel: data.primaryModel,
|
|
51
|
+
modelsUsed: data.modelsUsed,
|
|
52
|
+
generatedTitle: data.generatedTitle,
|
|
53
|
+
customTitle: data.customTitle,
|
|
54
|
+
summary: data.summary,
|
|
55
|
+
sessionCharacter: data.sessionCharacter,
|
|
56
|
+
sourceTool: data.sourceTool,
|
|
57
|
+
usageSource: data.usageSource,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// ──────────────────────────────────────────────────────
|
|
61
|
+
// FirestoreDataSource
|
|
62
|
+
// ──────────────────────────────────────────────────────
|
|
63
|
+
export class FirestoreDataSource {
|
|
64
|
+
config;
|
|
65
|
+
name = 'firestore';
|
|
66
|
+
constructor(config) {
|
|
67
|
+
this.config = config;
|
|
68
|
+
}
|
|
69
|
+
async prepare(flags) {
|
|
70
|
+
initializeFirebase(this.config);
|
|
71
|
+
if (!flags.noSync) {
|
|
72
|
+
try {
|
|
73
|
+
const { runSync } = await import('../../sync.js');
|
|
74
|
+
const result = await runSync({ quiet: true });
|
|
75
|
+
if (result.syncedCount > 0) {
|
|
76
|
+
return { message: `Synced ${result.syncedCount} new sessions`, dataChanged: true };
|
|
77
|
+
}
|
|
78
|
+
return { message: 'Up to date', dataChanged: false };
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return { message: 'Sync failed (showing cached data)', dataChanged: false };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { message: 'Sync skipped', dataChanged: false };
|
|
85
|
+
}
|
|
86
|
+
async getSessions(opts) {
|
|
87
|
+
const firestore = getDb();
|
|
88
|
+
let query = firestore.collection('sessions');
|
|
89
|
+
if (opts.projectId) {
|
|
90
|
+
query = query.where('projectId', '==', opts.projectId);
|
|
91
|
+
}
|
|
92
|
+
if (opts.sourceTool) {
|
|
93
|
+
query = query.where('sourceTool', '==', opts.sourceTool);
|
|
94
|
+
}
|
|
95
|
+
if (opts.periodStart) {
|
|
96
|
+
query = query.where('startedAt', '>=', admin.firestore.Timestamp.fromDate(opts.periodStart));
|
|
97
|
+
}
|
|
98
|
+
query = query.orderBy('startedAt', 'desc');
|
|
99
|
+
try {
|
|
100
|
+
const snapshot = await query.get();
|
|
101
|
+
return snapshot.docs.map(docToSessionRow);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (isFirestoreIndexError(error)) {
|
|
105
|
+
const url = extractIndexUrl(error);
|
|
106
|
+
throw new FirestoreIndexError(url
|
|
107
|
+
? `Missing Firestore index. Create it here: ${url}`
|
|
108
|
+
: 'Missing Firestore composite index. Check the error details in Firebase console.', url ?? '');
|
|
109
|
+
}
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async getUsageStats() {
|
|
114
|
+
const firestore = getDb();
|
|
115
|
+
const doc = await firestore.collection('stats').doc('usage').get();
|
|
116
|
+
if (!doc.exists)
|
|
117
|
+
return null;
|
|
118
|
+
const data = doc.data();
|
|
119
|
+
return {
|
|
120
|
+
totalInputTokens: data.totalInputTokens ?? 0,
|
|
121
|
+
totalOutputTokens: data.totalOutputTokens ?? 0,
|
|
122
|
+
cacheCreationTokens: data.cacheCreationTokens ?? 0,
|
|
123
|
+
cacheReadTokens: data.cacheReadTokens ?? 0,
|
|
124
|
+
estimatedCostUsd: data.estimatedCostUsd ?? 0,
|
|
125
|
+
sessionsWithUsage: data.sessionsWithUsage ?? 0,
|
|
126
|
+
lastUpdatedAt: data.lastUpdatedAt?.toDate() ?? new Date(),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
async resolveProjectId(name) {
|
|
130
|
+
const projects = await getProjects();
|
|
131
|
+
// Exact match (case-insensitive)
|
|
132
|
+
const exact = projects.find((p) => p.name.toLowerCase() === name.toLowerCase());
|
|
133
|
+
if (exact)
|
|
134
|
+
return { projectId: exact.id, projectName: exact.name };
|
|
135
|
+
// Substring match
|
|
136
|
+
const substring = projects.filter((p) => p.name.toLowerCase().includes(name.toLowerCase()));
|
|
137
|
+
if (substring.length === 1)
|
|
138
|
+
return { projectId: substring[0].id, projectName: substring[0].name };
|
|
139
|
+
// No match — throw with suggestions
|
|
140
|
+
const suggestions = findSimilarNames(name, projects.map((p) => p.name));
|
|
141
|
+
throw new ProjectNotFoundError(`Project "${name}" not found.`, name, projects.map((p) => ({ name: p.name })), suggestions);
|
|
142
|
+
}
|
|
143
|
+
async getLastSession(opts) {
|
|
144
|
+
const firestore = getDb();
|
|
145
|
+
let query = firestore.collection('sessions');
|
|
146
|
+
if (opts?.sourceTool) {
|
|
147
|
+
query = query.where('sourceTool', '==', opts.sourceTool);
|
|
148
|
+
}
|
|
149
|
+
if (opts?.projectId) {
|
|
150
|
+
query = query.where('projectId', '==', opts.projectId);
|
|
151
|
+
}
|
|
152
|
+
query = query.orderBy('startedAt', 'desc').limit(1);
|
|
153
|
+
try {
|
|
154
|
+
const snapshot = await query.get();
|
|
155
|
+
if (snapshot.empty)
|
|
156
|
+
return null;
|
|
157
|
+
return docToSessionRow(snapshot.docs[0]);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
if (isFirestoreIndexError(error)) {
|
|
161
|
+
const url = extractIndexUrl(error);
|
|
162
|
+
throw new FirestoreIndexError(url
|
|
163
|
+
? `Missing Firestore index. Create it here: ${url}`
|
|
164
|
+
: 'Missing Firestore composite index. Check the error details in Firebase console.', url ?? '');
|
|
165
|
+
}
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=firestore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../../src/commands/stats/data/firestore.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,2CAA2C;AAC3C,yDAAyD;AAEzD,OAAO,KAAK,MAAM,gBAAgB,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAUrF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yDAAyD;AACzD,UAAU;AACV,yDAAyD;AAEzD,mFAAmF;AACnF,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACnE,OAAQ,KAA0B,CAAC,IAAI,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACtE,MAAM,OAAO,GAAI,KAA6B,CAAC,OAAO,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,kBAAkB;AAClB,yDAAyD;AAEzD,kEAAkE;AAClE,SAAS,eAAe,CAAC,GAAqC;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;IACrE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE;QACjD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE;QAC7C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;QACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC;QAC5C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,CAAC;QACtD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;QACtC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,sBAAsB;AACtB,yDAAyD;AAEzD,MAAM,OAAO,mBAAmB;IAGV;IAFX,IAAI,GAAG,WAAW,CAAC;IAE5B,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC7B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,EAAE,OAAO,EAAE,UAAU,MAAM,CAAC,WAAW,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBACrF,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAyB;QACzC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,GAA0B,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/F,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;YACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,IAAI,mBAAmB,CAC3B,GAAG;oBACD,CAAC,CAAC,4CAA4C,GAAG,EAAE;oBACnD,CAAC,CAAC,iFAAiF,EACrF,GAAG,IAAI,EAAE,CACV,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAG,CAAC;QACzB,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC;YAC5C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC;YAC9C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;YAClD,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;YAC1C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC;YAC5C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC;YAC9C,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QAErC,iCAAiC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChF,IAAI,KAAK;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnE,kBAAkB;QAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElG,oCAAoC;QACpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,oBAAoB,CAC5B,YAAY,IAAI,cAAc,EAC9B,IAAI,EACJ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EACvC,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAA4D;QAC/E,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,GAA0B,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpE,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC;YACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAChC,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,IAAI,mBAAmB,CAC3B,GAAG;oBACD,CAAC,CAAC,4CAA4C,GAAG,EAAE;oBACnD,CAAC,CAAC,iFAAiF,EACrF,GAAG,IAAI,EAAE,CACV,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
package/dist/commands/sync.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAcA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwM5E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B1E"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -4,8 +4,7 @@ import chalk from 'chalk';
|
|
|
4
4
|
import ora from 'ora';
|
|
5
5
|
import { loadSyncState, saveSyncState } from '../utils/config.js';
|
|
6
6
|
import { trackEvent } from '../utils/telemetry.js';
|
|
7
|
-
import {
|
|
8
|
-
import { sessionExists } from '../db/read.js';
|
|
7
|
+
import { insertSessionWithProjectAndReturnIsNew, insertMessages, recalculateUsageStats } from '../db/write.js';
|
|
9
8
|
import { getDb } from '../db/client.js';
|
|
10
9
|
import { getAllProviders, getProvider } from '../providers/registry.js';
|
|
11
10
|
import { setProviderVerbose } from '../providers/context.js';
|
|
@@ -25,6 +24,7 @@ export async function runSync(options = {}) {
|
|
|
25
24
|
fail: function () { return this; },
|
|
26
25
|
warn: function () { return this; },
|
|
27
26
|
info: function () { return this; },
|
|
27
|
+
stop: function () { return this; },
|
|
28
28
|
};
|
|
29
29
|
const createSpinner = options.quiet
|
|
30
30
|
? () => noopSpinner
|
|
@@ -88,6 +88,7 @@ export async function runSync(options = {}) {
|
|
|
88
88
|
let totalSyncedCount = 0;
|
|
89
89
|
let totalMessageCount = 0;
|
|
90
90
|
let totalErrorCount = 0;
|
|
91
|
+
let totalUpdatedExisting = 0;
|
|
91
92
|
for (const provider of providers) {
|
|
92
93
|
const providerName = provider.getProviderName();
|
|
93
94
|
try {
|
|
@@ -111,7 +112,11 @@ export async function runSync(options = {}) {
|
|
|
111
112
|
}
|
|
112
113
|
continue;
|
|
113
114
|
}
|
|
114
|
-
// Process files
|
|
115
|
+
// Process files — accumulate per-provider counts, show one summary line after
|
|
116
|
+
let providerSyncedCount = 0;
|
|
117
|
+
let providerUpdatedCount = 0;
|
|
118
|
+
let providerSkippedCount = 0;
|
|
119
|
+
let providerMessageCount = 0;
|
|
115
120
|
for (const filePath of filesToSync) {
|
|
116
121
|
const fileName = path.basename(filePath);
|
|
117
122
|
spinner.start(`Processing ${fileName}...`);
|
|
@@ -119,29 +124,24 @@ export async function runSync(options = {}) {
|
|
|
119
124
|
// Parse session
|
|
120
125
|
const session = await provider.parse(filePath);
|
|
121
126
|
if (!session) {
|
|
122
|
-
|
|
127
|
+
providerSkippedCount++;
|
|
123
128
|
continue;
|
|
124
129
|
}
|
|
125
|
-
// Check if already exists in SQLite (unless force)
|
|
126
|
-
if (!options.force) {
|
|
127
|
-
const exists = sessionExists(session.id);
|
|
128
|
-
if (exists) {
|
|
129
|
-
spinner.info(`Skipped ${fileName} (already synced)`);
|
|
130
|
-
updateSyncState(syncState, filePath, session.id);
|
|
131
|
-
saveSyncState(syncState);
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
130
|
// Write session and messages to SQLite
|
|
136
|
-
|
|
131
|
+
const isNew = insertSessionWithProjectAndReturnIsNew(session, !!options.force);
|
|
137
132
|
insertMessages(session);
|
|
138
133
|
// Update and persist sync state after each file
|
|
139
134
|
// so progress survives crashes
|
|
140
135
|
updateSyncState(syncState, filePath, session.id);
|
|
141
136
|
saveSyncState(syncState);
|
|
137
|
+
if (!isNew && !options.force) {
|
|
138
|
+
providerUpdatedCount++;
|
|
139
|
+
totalUpdatedExisting++;
|
|
140
|
+
}
|
|
141
|
+
providerSyncedCount++;
|
|
142
|
+
providerMessageCount += session.messages.length;
|
|
142
143
|
totalSyncedCount++;
|
|
143
144
|
totalMessageCount += session.messages.length;
|
|
144
|
-
spinner.succeed(`Synced ${fileName} (${session.messages.length} messages)`);
|
|
145
145
|
}
|
|
146
146
|
catch (error) {
|
|
147
147
|
totalErrorCount++;
|
|
@@ -151,6 +151,23 @@ export async function runSync(options = {}) {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
// One summary line per provider instead of per-file noise
|
|
155
|
+
spinner.stop();
|
|
156
|
+
if (providerSyncedCount > 0 || providerSkippedCount > 0) {
|
|
157
|
+
const providerNewCount = providerSyncedCount - providerUpdatedCount;
|
|
158
|
+
const parts = [];
|
|
159
|
+
if (providerNewCount > 0)
|
|
160
|
+
parts.push(`${providerNewCount} new`);
|
|
161
|
+
if (providerUpdatedCount > 0)
|
|
162
|
+
parts.push(`${providerUpdatedCount} updated`);
|
|
163
|
+
if (parts.length === 0)
|
|
164
|
+
parts.push('0 synced');
|
|
165
|
+
const syncedPart = `${parts.join(', ')}${providerMessageCount > 0 ? ` (${providerMessageCount.toLocaleString()} messages)` : ''}`;
|
|
166
|
+
const skippedPart = providerSkippedCount > 0
|
|
167
|
+
? `, ${providerSkippedCount} empty`
|
|
168
|
+
: '';
|
|
169
|
+
log(chalk.gray(` ${syncedPart}${skippedPart}`));
|
|
170
|
+
}
|
|
154
171
|
}
|
|
155
172
|
catch (error) {
|
|
156
173
|
totalErrorCount++;
|
|
@@ -161,7 +178,10 @@ export async function runSync(options = {}) {
|
|
|
161
178
|
}
|
|
162
179
|
}
|
|
163
180
|
// Reconcile usage stats after force sync (skip if nothing changed)
|
|
164
|
-
|
|
181
|
+
const shouldRecalculateUsageStats = options.force
|
|
182
|
+
? (totalSyncedCount > 0 || totalErrorCount > 0)
|
|
183
|
+
: totalUpdatedExisting > 0;
|
|
184
|
+
if (shouldRecalculateUsageStats) {
|
|
165
185
|
spinner.start('Recalculating usage stats...');
|
|
166
186
|
try {
|
|
167
187
|
const result = recalculateUsageStats();
|
|
@@ -181,6 +201,7 @@ export async function runSync(options = {}) {
|
|
|
181
201
|
syncedCount: totalSyncedCount,
|
|
182
202
|
messageCount: totalMessageCount,
|
|
183
203
|
errorCount: totalErrorCount,
|
|
204
|
+
updatedExistingCount: totalUpdatedExisting,
|
|
184
205
|
};
|
|
185
206
|
}
|
|
186
207
|
/**
|
|
@@ -197,7 +218,11 @@ export async function syncCommand(options = {}) {
|
|
|
197
218
|
return;
|
|
198
219
|
}
|
|
199
220
|
log(chalk.cyan('\n Sync Summary'));
|
|
200
|
-
|
|
221
|
+
const newCount = Math.max(result.syncedCount - result.updatedExistingCount, 0);
|
|
222
|
+
log(chalk.white(` Sessions new: ${newCount}`));
|
|
223
|
+
if (result.updatedExistingCount > 0) {
|
|
224
|
+
log(chalk.white(` Sessions updated: ${result.updatedExistingCount}`));
|
|
225
|
+
}
|
|
201
226
|
log(chalk.white(` Messages synced: ${result.messageCount}`));
|
|
202
227
|
if (result.errorCount > 0) {
|
|
203
228
|
log(chalk.red(` Errors: ${result.errorCount}`));
|
|
@@ -227,15 +252,19 @@ function filterFilesToSync(files, syncState, force) {
|
|
|
227
252
|
// If file was never synced, sync it
|
|
228
253
|
if (!fileState)
|
|
229
254
|
return true;
|
|
230
|
-
// For virtual paths (multi-session files), check if this specific session was synced
|
|
231
|
-
if (sessionFragment && fileState.syncedSessionIds) {
|
|
232
|
-
return !fileState.syncedSessionIds.includes(sessionFragment);
|
|
233
|
-
}
|
|
234
|
-
// For regular files, check if modified since last sync
|
|
235
255
|
if (sessionFragment) {
|
|
256
|
+
// Virtual path (multi-session DB).
|
|
257
|
+
// If the DB file changed, re-sync all sessions from it.
|
|
258
|
+
if (fileState.lastModified !== lastModified)
|
|
259
|
+
return true;
|
|
260
|
+
// Otherwise only sync sessions we haven't seen yet.
|
|
261
|
+
if (fileState.syncedSessionIds) {
|
|
262
|
+
return !fileState.syncedSessionIds.includes(sessionFragment);
|
|
263
|
+
}
|
|
236
264
|
// Virtual path but no syncedSessionIds tracked yet — needs sync
|
|
237
265
|
return true;
|
|
238
266
|
}
|
|
267
|
+
// For regular files, check if modified since last sync
|
|
239
268
|
return fileState.lastModified !== lastModified;
|
|
240
269
|
});
|
|
241
270
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const SCHEMA_SQL = "\n-- ============================================================\n-- Projects\n-- ============================================================\nCREATE TABLE IF NOT EXISTS projects (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n path TEXT NOT NULL,\n git_remote_url TEXT,\n project_id_source TEXT NOT NULL DEFAULT 'path-hash',\n session_count INTEGER NOT NULL DEFAULT 0,\n last_activity TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now')),\n total_input_tokens INTEGER DEFAULT 0,\n total_output_tokens INTEGER DEFAULT 0,\n cache_creation_tokens INTEGER DEFAULT 0,\n cache_read_tokens INTEGER DEFAULT 0,\n estimated_cost_usd REAL DEFAULT 0\n);\n\n-- ============================================================\n-- Sessions\n-- ============================================================\nCREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n project_id TEXT NOT NULL REFERENCES projects(id),\n project_name TEXT NOT NULL,\n project_path TEXT NOT NULL,\n git_remote_url TEXT,\n summary TEXT,\n custom_title TEXT,\n generated_title TEXT,\n title_source TEXT,\n session_character TEXT,\n started_at TEXT NOT NULL,\n ended_at TEXT NOT NULL,\n message_count INTEGER NOT NULL DEFAULT 0,\n user_message_count INTEGER NOT NULL DEFAULT 0,\n assistant_message_count INTEGER NOT NULL DEFAULT 0,\n tool_call_count INTEGER NOT NULL DEFAULT 0,\n git_branch TEXT,\n claude_version TEXT,\n source_tool TEXT NOT NULL DEFAULT 'claude-code',\n device_id TEXT,\n device_hostname TEXT,\n device_platform TEXT,\n synced_at TEXT NOT NULL DEFAULT (datetime('now')),\n total_input_tokens INTEGER,\n total_output_tokens INTEGER,\n cache_creation_tokens INTEGER,\n cache_read_tokens INTEGER,\n estimated_cost_usd REAL,\n models_used TEXT,\n primary_model TEXT,\n usage_source TEXT\n);\n\nCREATE INDEX IF NOT EXISTS idx_sessions_project_id ON sessions(project_id);\nCREATE INDEX IF NOT EXISTS idx_sessions_started_at ON sessions(started_at DESC);\nCREATE INDEX IF NOT EXISTS idx_sessions_source_tool ON sessions(source_tool);\n\n-- ============================================================\n-- Messages\n-- ============================================================\nCREATE TABLE IF NOT EXISTS messages (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL REFERENCES sessions(id),\n type TEXT NOT NULL,\n content TEXT NOT NULL DEFAULT '',\n thinking TEXT,\n tool_calls TEXT,\n tool_results TEXT,\n usage TEXT,\n timestamp TEXT NOT NULL,\n parent_id TEXT\n);\n\nCREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id);\nCREATE INDEX IF NOT EXISTS idx_messages_timestamp ON messages(session_id, timestamp ASC);\n\n-- ============================================================\n-- Insights (written by dashboard server, not CLI)\n-- ============================================================\nCREATE TABLE IF NOT EXISTS insights (\n id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL REFERENCES sessions(id),\n project_id TEXT NOT NULL REFERENCES projects(id),\n project_name TEXT NOT NULL,\n type TEXT NOT NULL,\n title TEXT NOT NULL,\n content TEXT NOT NULL,\n summary TEXT NOT NULL,\n bullets TEXT,\n confidence REAL NOT NULL,\n source TEXT NOT NULL DEFAULT 'llm',\n metadata TEXT,\n timestamp TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n scope TEXT NOT NULL DEFAULT 'session',\n analysis_version TEXT NOT NULL DEFAULT '1.0.0',\n linked_insight_ids TEXT\n);\n\nCREATE INDEX IF NOT EXISTS idx_insights_session_id ON insights(session_id);\nCREATE INDEX IF NOT EXISTS idx_insights_project_id ON insights(project_id);\nCREATE INDEX IF NOT EXISTS idx_insights_type ON insights(type);\nCREATE INDEX IF NOT EXISTS idx_insights_timestamp ON insights(timestamp DESC);\n\n-- ============================================================\n-- Global usage stats (singleton row, updated by CLI sync)\n-- ============================================================\nCREATE TABLE IF NOT EXISTS usage_stats (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n total_input_tokens INTEGER DEFAULT 0,\n total_output_tokens INTEGER DEFAULT 0,\n cache_creation_tokens INTEGER DEFAULT 0,\n cache_read_tokens INTEGER DEFAULT 0,\n estimated_cost_usd REAL DEFAULT 0,\n sessions_with_usage INTEGER DEFAULT 0,\n last_updated_at TEXT DEFAULT (datetime('now'))\n);\n";
|
|
2
2
|
export declare const CURRENT_SCHEMA_VERSION = 1;
|
|
3
|
+
export { runMigrations } from './migrate.js';
|
|
3
4
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,m9JA0HtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,m9JA0HtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/db/schema.js
CHANGED
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,uEAAuE;AACvE,uEAAuE;AACvE,wDAAwD;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HzB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,uEAAuE;AACvE,uEAAuE;AACvE,wDAAwD;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HzB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/db/write.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ import type { ParsedSession } from '../types.js';
|
|
|
7
7
|
* incrementally added — they'll be recalculated via recalculateUsageStats().
|
|
8
8
|
*/
|
|
9
9
|
export declare function insertSessionWithProject(session: ParsedSession, isForce?: boolean): void;
|
|
10
|
+
/**
|
|
11
|
+
* Insert a session and return whether it was new to the DB.
|
|
12
|
+
* Lets callers avoid a duplicate sessionExists() query.
|
|
13
|
+
*/
|
|
14
|
+
export declare function insertSessionWithProjectAndReturnIsNew(session: ParsedSession, isForce?: boolean): boolean;
|
|
10
15
|
/**
|
|
11
16
|
* Insert messages for a session.
|
|
12
17
|
* Replaces firebase/client.ts uploadMessages().
|
package/dist/db/write.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/db/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AA4JhE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,UAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/db/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AA4JhE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,UAAQ,GAAG,IAAI,CAEtF;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,UAAQ,GAAG,OAAO,CAEvG;AAiGD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAmC3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAmHpH"}
|
package/dist/db/write.js
CHANGED
|
@@ -150,6 +150,16 @@ function getStmts() {
|
|
|
150
150
|
* incrementally added — they'll be recalculated via recalculateUsageStats().
|
|
151
151
|
*/
|
|
152
152
|
export function insertSessionWithProject(session, isForce = false) {
|
|
153
|
+
insertSessionWithProjectInternal(session, isForce);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Insert a session and return whether it was new to the DB.
|
|
157
|
+
* Lets callers avoid a duplicate sessionExists() query.
|
|
158
|
+
*/
|
|
159
|
+
export function insertSessionWithProjectAndReturnIsNew(session, isForce = false) {
|
|
160
|
+
return insertSessionWithProjectInternal(session, isForce);
|
|
161
|
+
}
|
|
162
|
+
function insertSessionWithProjectInternal(session, isForce) {
|
|
153
163
|
const db = getDb();
|
|
154
164
|
const { projectId, source: projectIdSource, gitRemoteUrl } = generateStableProjectId(session.projectPath);
|
|
155
165
|
const deviceInfo = getDeviceInfo();
|
|
@@ -162,6 +172,7 @@ export function insertSessionWithProject(session, isForce = false) {
|
|
|
162
172
|
}
|
|
163
173
|
});
|
|
164
174
|
tx();
|
|
175
|
+
return isNew;
|
|
165
176
|
}
|
|
166
177
|
function upsertProject(projectId, session, projectIdSource, gitRemoteUrl, isNewSession, isForce) {
|
|
167
178
|
const stmts = getStmts();
|
package/dist/db/write.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/db/write.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/db/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import admin from 'firebase-admin';
|
|
2
|
+
import type { ClaudeInsightConfig, ParsedSession, Project } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Initialize Firebase Admin SDK
|
|
5
|
+
*/
|
|
6
|
+
export declare function initializeFirebase(config: ClaudeInsightConfig): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get Firestore instance
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDb(): admin.firestore.Firestore;
|
|
11
|
+
/**
|
|
12
|
+
* Upload a session to Firestore
|
|
13
|
+
*/
|
|
14
|
+
export declare function uploadSession(session: ParsedSession, isForceSync?: boolean): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Upload messages to Firestore for LLM analysis
|
|
17
|
+
*/
|
|
18
|
+
export declare function uploadMessages(session: ParsedSession): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a session already exists
|
|
21
|
+
*/
|
|
22
|
+
export declare function sessionExists(sessionId: string): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Get all projects
|
|
25
|
+
*/
|
|
26
|
+
export declare function getProjects(): Promise<Project[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Get recent sessions
|
|
29
|
+
*/
|
|
30
|
+
export declare function getRecentSessions(limit?: number): Promise<ParsedSession[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Recalculate usage stats from all sessions in Firestore.
|
|
33
|
+
* Used after --force sync to reconcile totals.
|
|
34
|
+
*/
|
|
35
|
+
export declare function recalculateUsageStats(): Promise<{
|
|
36
|
+
sessionsWithUsage: number;
|
|
37
|
+
totalTokens: number;
|
|
38
|
+
estimatedCostUsd: number;
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Get per-tool session counts grouped by project.
|
|
42
|
+
* Uses select() to only fetch projectId and sourceTool fields (efficient).
|
|
43
|
+
*/
|
|
44
|
+
export declare function getProjectToolCounts(): Promise<Map<string, Map<string, number>>>;
|
|
45
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/firebase/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK/E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAmBpE;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAKjD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkG9F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD1E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIvE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAetD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA8BpF;AAGD;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC,CAwFD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAsBtF"}
|