@ccview/core 0.1.0 → 0.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.
@@ -1,3 +1,2 @@
1
- import type { ModelName } from '../types.js';
2
- export declare function calculateCost(tokensIn: number, tokensOut: number, model: ModelName): number;
1
+ export { estimateCost as calculateCost } from '../parser/token-estimator.js';
3
2
  //# sourceMappingURL=cost-calculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost-calculator.d.ts","sourceRoot":"","sources":["../../src/analyzer/cost-calculator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAK3F"}
1
+ {"version":3,"file":"cost-calculator.d.ts","sourceRoot":"","sources":["../../src/analyzer/cost-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA"}
@@ -1,8 +1,2 @@
1
- import { DEFAULT_PRICING } from '../types.js';
2
- export function calculateCost(tokensIn, tokensOut, model) {
3
- const pricing = DEFAULT_PRICING[model];
4
- const inputCost = (tokensIn / 1_000_000) * pricing.inputPer1M;
5
- const outputCost = (tokensOut / 1_000_000) * pricing.outputPer1M;
6
- return Math.round((inputCost + outputCost) * 1_000_000) / 1_000_000;
7
- }
1
+ export { estimateCost as calculateCost } from '../parser/token-estimator.js';
8
2
  //# sourceMappingURL=cost-calculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost-calculator.js","sourceRoot":"","sources":["../../src/analyzer/cost-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAAgB;IACjF,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAA;IAC7D,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAA;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;AACrE,CAAC"}
1
+ {"version":3,"file":"cost-calculator.js","sourceRoot":"","sources":["../../src/analyzer/cost-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAQrC,wBAAgB,YAAY,CAAC,MAAM,SAAkB,GAAG,QAAQ,CAAC,QAAQ,CAsBxE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAQrC,wBAAgB,YAAY,CAAC,MAAM,SAAkB,GAAG,QAAQ,CAAC,QAAQ,CAgBxE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
package/dist/db/index.js CHANGED
@@ -12,12 +12,9 @@ export function openDatabase(dbPath = DEFAULT_DB_PATH) {
12
12
  const db = new Database(dbPath);
13
13
  db.pragma('journal_mode = WAL');
14
14
  db.pragma('foreign_keys = ON');
15
- const tableExists = db
16
- .prepare(`SELECT COUNT(*) as cnt FROM sqlite_master WHERE type='table' AND name='sessions'`)
17
- .get();
18
- if (!tableExists || tableExists.cnt === 0) {
19
- initSchema(db);
20
- }
15
+ // Esegui sempre initSchema: i CREATE TABLE IF NOT EXISTS sono idempotenti
16
+ // e runMigrations controlla internamente quali migrazioni sono già state applicate
17
+ initSchema(db);
21
18
  return db;
22
19
  }
23
20
  export { Database };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAEvE,MAAM,UAAU,YAAY,CAAC,MAAM,GAAG,eAAe;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE9B,MAAM,WAAW,GAAG,EAAE;SACnB,OAAO,CACN,kFAAkF,CACnF;SACA,GAAG,EAAE,CAAA;IAER,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QAC1C,UAAU,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAEvE,MAAM,UAAU,YAAY,CAAC,MAAM,GAAG,eAAe;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE9B,0EAA0E;IAC1E,mFAAmF;IACnF,UAAU,CAAC,EAAE,CAAC,CAAA;IAEd,OAAO,EAAE,CAAA;AACX,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,eAAO,MAAM,UAAU,ssIAwItB,CAAA;AAID,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CActD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAG1C,eAAO,MAAM,UAAU,ssIAwItB,CAAA;AAKD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAgBtD"}
package/dist/db/schema.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { getPricingForModel } from '../types.js';
1
2
  export const SCHEMA_SQL = `
2
3
  CREATE TABLE IF NOT EXISTS _migrations (
3
4
  id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -136,6 +137,7 @@ GROUP BY DATE(started_at)
136
137
  ORDER BY day DESC;
137
138
  `;
138
139
  const INITIAL_VERSION = 1;
140
+ const RECALCULATE_COSTS_VERSION = 2;
139
141
  export function initSchema(db) {
140
142
  db.exec(SCHEMA_SQL);
141
143
  const hasVersion = db
@@ -144,5 +146,37 @@ export function initSchema(db) {
144
146
  if (!hasVersion) {
145
147
  db.prepare(`INSERT INTO _migrations (version, name) VALUES (?, ?)`).run(INITIAL_VERSION, 'initial_schema');
146
148
  }
149
+ runMigrations(db);
150
+ }
151
+ function runMigrations(db) {
152
+ // Migration 2: ricalcola i costi con il nuovo pricing per modello
153
+ const hasMigration2 = db
154
+ .prepare(`SELECT version FROM _migrations WHERE version = ?`)
155
+ .get(RECALCULATE_COSTS_VERSION);
156
+ if (!hasMigration2) {
157
+ const sessions = db
158
+ .prepare(`SELECT id, model, total_tokens_in, total_tokens_out FROM sessions`)
159
+ .all();
160
+ const updateSession = db.prepare(`UPDATE sessions SET total_cost_usd = ? WHERE id = ?`);
161
+ const txn = db.transaction(() => {
162
+ for (const s of sessions) {
163
+ const pricing = getPricingForModel(s.model);
164
+ const cost = (s.total_tokens_in / 1_000_000) * pricing.inputPer1M +
165
+ (s.total_tokens_out / 1_000_000) * pricing.outputPer1M;
166
+ updateSession.run(Math.round(cost * 1_000_000) / 1_000_000, s.id);
167
+ }
168
+ // Ricalcola i totali dei progetti
169
+ db.prepare(`
170
+ UPDATE projects
171
+ SET total_cost_usd = (
172
+ SELECT COALESCE(SUM(total_cost_usd), 0)
173
+ FROM sessions
174
+ WHERE project_path = projects.path
175
+ )
176
+ `).run();
177
+ db.prepare(`INSERT INTO _migrations (version, name) VALUES (?, ?)`).run(RECALCULATE_COSTS_VERSION, 'recalculate_costs_with_updated_pricing');
178
+ });
179
+ txn();
180
+ }
147
181
  }
148
182
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwIzB,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAEnB,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN,mDAAmD,CACpD;SACA,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,EAAE,CAAC,OAAO,CACR,uDAAuD,CACxD,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwIzB,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,CAAA;AACzB,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAEnC,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAEnB,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN,mDAAmD,CACpD;SACA,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,EAAE,CAAC,OAAO,CACR,uDAAuD,CACxD,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;IAC1C,CAAC;IAED,aAAa,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB;IAC1C,kEAAkE;IAClE,MAAM,aAAa,GAAG,EAAE;SACrB,OAAO,CAAgC,mDAAmD,CAAC;SAC3F,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAEjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE;aAChB,OAAO,CACN,mEAAmE,CACpE;aACA,GAAG,EAAE,CAAA;QAER,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B,qDAAqD,CACtD,CAAA;QAED,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC9B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC3C,MAAM,IAAI,GACR,CAAC,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU;oBACpD,CAAC,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAA;gBACxD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YACnE,CAAC;YAED,kCAAkC;YAClC,EAAE,CAAC,OAAO,CAAC;;;;;;;OAOV,CAAC,CAAC,GAAG,EAAE,CAAA;YAER,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,CACrE,yBAAyB,EACzB,wCAAwC,CACzC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,GAAG,EAAE,CAAA;IACP,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"log-scanner.d.ts","sourceRoot":"","sources":["../../src/parser/log-scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAKrE,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED,iBAAe,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhE;AAED,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC,CA4C5B;AAED,iBAAe,eAAe,CAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ7B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAsDrB;AAED,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"log-scanner.d.ts","sourceRoot":"","sources":["../../src/parser/log-scanner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAIrE,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED,iBAAe,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhE;AAED,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC,CA4C5B;AAED,iBAAe,eAAe,CAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ7B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAmDrB;AAED,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AAC7D,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
@@ -5,7 +5,6 @@ import { join } from 'node:path';
5
5
  import { homedir } from 'node:os';
6
6
  import { parseSession } from './session-parser.js';
7
7
  import { estimateCost } from './token-estimator.js';
8
- import { DEFAULT_PRICING } from '../types.js';
9
8
  async function computeFileHash(filePath) {
10
9
  return new Promise((resolve, reject) => {
11
10
  const hash = createHash('sha256');
@@ -91,10 +90,7 @@ export async function scanClaudeDirectory(options = {}) {
91
90
  }
92
91
  const parsed = await parseSession(file.filePath);
93
92
  // Apply cost estimation
94
- if (parsed.session.model) {
95
- const pricing = DEFAULT_PRICING[parsed.session.model];
96
- parsed.session.totalCostUsd = estimateCost(parsed.session.totalTokensIn, parsed.session.totalTokensOut, pricing);
97
- }
93
+ parsed.session.totalCostUsd = estimateCost(parsed.session.totalTokensIn, parsed.session.totalTokensOut, parsed.session.model);
98
94
  newSessions++;
99
95
  }
100
96
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"log-scanner.js","sourceRoot":"","sources":["../../src/parser/log-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-scanner.js","sourceRoot":"","sources":["../../src/parser/log-scanner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-parser.d.ts","sourceRoot":"","sources":["../../src/parser/session-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AAYlE,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkI5E"}
1
+ {"version":3,"file":"session-parser.d.ts","sourceRoot":"","sources":["../../src/parser/session-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAQ,MAAM,aAAa,CAAA;AAIvD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkI5E"}
@@ -2,21 +2,11 @@ import { createReadStream } from 'node:fs';
2
2
  import { createInterface } from 'node:readline';
3
3
  import { parseStep, extractModel, extractUsage } from './step-parser.js';
4
4
  import { extractFileImpacts } from './file-impact.js';
5
- function resolveModelName(raw) {
6
- const lower = raw.toLowerCase();
7
- if (lower.includes('opus'))
8
- return 'opus';
9
- if (lower.includes('sonnet'))
10
- return 'sonnet';
11
- if (lower.includes('haiku'))
12
- return 'haiku';
13
- return 'unknown';
14
- }
15
5
  export async function parseSession(filePath) {
16
6
  const steps = [];
17
7
  let totalTokensIn = 0;
18
8
  let totalTokensOut = 0;
19
- let model = null;
9
+ let rawModelId = null;
20
10
  let projectPath = null;
21
11
  let startedAt = null;
22
12
  let endedAt = null;
@@ -52,8 +42,8 @@ export async function parseSession(filePath) {
52
42
  }
53
43
  // Extract model
54
44
  const rawModel = extractModel(entry);
55
- if (rawModel && !model) {
56
- model = resolveModelName(rawModel);
45
+ if (rawModel && !rawModelId) {
46
+ rawModelId = rawModel; // Salva la stringa esatta dal log
57
47
  }
58
48
  // Extract usage from final assistant entries
59
49
  const usage = extractUsage(entry);
@@ -120,7 +110,7 @@ export async function parseSession(filePath) {
120
110
  toolCallCount,
121
111
  errorCount,
122
112
  retryCount: 0,
123
- model,
113
+ model: rawModelId,
124
114
  summary,
125
115
  rawLogPath: filePath,
126
116
  },
@@ -1 +1 @@
1
- {"version":3,"file":"session-parser.js","sourceRoot":"","sources":["../../src/parser/session-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-parser.js","sourceRoot":"","sources":["../../src/parser/session-parser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import type { PricingModel } from '../types.js';
2
1
  /**
3
2
  * Heuristic token estimation from text.
4
3
  * ~4 chars/token for natural language, ~3 chars/token for code.
5
4
  */
6
5
  export declare function estimateTokens(text: string, type: 'natural' | 'code'): number;
7
6
  /**
8
- * Estimate cost in USD from token counts and pricing model.
7
+ * Estimate cost in USD from token counts and model ID string.
9
8
  */
10
- export declare function estimateCost(tokensIn: number, tokensOut: number, pricing: PricingModel): number;
9
+ export declare function estimateCost(tokensIn: number, tokensOut: number, modelId: string | null): number;
11
10
  //# sourceMappingURL=token-estimator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-estimator.d.ts","sourceRoot":"","sources":["../../src/parser/token-estimator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAI7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,MAAM,CAIR"}
1
+ {"version":3,"file":"token-estimator.d.ts","sourceRoot":"","sources":["../../src/parser/token-estimator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAI7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,CAKR"}
@@ -1,3 +1,4 @@
1
+ import { getPricingForModel } from '../types.js';
1
2
  /**
2
3
  * Heuristic token estimation from text.
3
4
  * ~4 chars/token for natural language, ~3 chars/token for code.
@@ -9,11 +10,12 @@ export function estimateTokens(text, type) {
9
10
  return Math.ceil(text.length / charsPerToken);
10
11
  }
11
12
  /**
12
- * Estimate cost in USD from token counts and pricing model.
13
+ * Estimate cost in USD from token counts and model ID string.
13
14
  */
14
- export function estimateCost(tokensIn, tokensOut, pricing) {
15
+ export function estimateCost(tokensIn, tokensOut, modelId) {
16
+ const pricing = getPricingForModel(modelId);
15
17
  const inputCost = (tokensIn / 1_000_000) * pricing.inputPer1M;
16
18
  const outputCost = (tokensOut / 1_000_000) * pricing.outputPer1M;
17
- return inputCost + outputCost;
19
+ return Math.round((inputCost + outputCost) * 1_000_000) / 1_000_000;
18
20
  }
19
21
  //# sourceMappingURL=token-estimator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/parser/token-estimator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAwB;IACnE,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,MAAM,aAAa,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,SAAiB,EACjB,OAAqB;IAErB,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAA;IAC7D,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAA;IAChE,OAAO,SAAS,GAAG,UAAU,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/parser/token-estimator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAwB;IACnE,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,MAAM,aAAa,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,SAAiB,EACjB,OAAsB;IAEtB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAA;IAC7D,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAA;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;AACrE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export type StepType = 'user_prompt' | 'assistant_response' | 'tool_call' | 'tool_result' | 'error';
2
2
  export type ToolSubtype = 'file_edit' | 'bash' | 'read_file' | 'search' | 'glob' | 'other';
3
3
  export type FileAction = 'create' | 'edit' | 'delete' | 'read' | 'rename';
4
- export type ModelName = 'opus' | 'sonnet' | 'haiku' | 'unknown';
4
+ export type ModelTier = 'opus' | 'sonnet' | 'haiku' | 'unknown';
5
+ export type ModelId = 'claude-opus-4-6-20260401' | 'claude-sonnet-4-6-20260401' | 'claude-opus-4-5-20260301' | 'claude-sonnet-4-5-20241022' | 'claude-haiku-4-5-20251001' | 'claude-opus-4-20250514' | 'claude-sonnet-4-20250514' | 'claude-opus-4-1-20250414' | 'claude-3-7-sonnet-20250219' | 'claude-3-opus-20240229' | 'claude-3-5-sonnet-20241022' | 'claude-3-5-sonnet-20240620' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | string;
5
6
  export interface Session {
6
7
  id: string;
7
8
  projectPath: string | null;
@@ -16,7 +17,7 @@ export interface Session {
16
17
  toolCallCount: number;
17
18
  errorCount: number;
18
19
  retryCount: number;
19
- model: ModelName | null;
20
+ model: string | null;
20
21
  summary: string | null;
21
22
  rawLogPath: string;
22
23
  }
@@ -82,9 +83,21 @@ export interface ScanError {
82
83
  error: string;
83
84
  }
84
85
  export interface PricingModel {
85
- model: ModelName;
86
+ id: ModelId;
87
+ tier: ModelTier;
88
+ label: string;
86
89
  inputPer1M: number;
90
+ cacheWrite5mPer1M: number;
91
+ cacheWrite1hPer1M: number;
92
+ cacheHitPer1M: number;
87
93
  outputPer1M: number;
88
94
  }
89
- export declare const DEFAULT_PRICING: Record<ModelName, PricingModel>;
95
+ export declare const MODEL_PRICING: PricingModel[];
96
+ export declare const PRICING_BY_ID: Map<string, PricingModel>;
97
+ export declare const TIER_FALLBACK_PRICING: Record<ModelTier, Omit<PricingModel, 'id' | 'tier' | 'label'>>;
98
+ /**
99
+ * Trova il pricing per un model string dai log.
100
+ * Cerca prima match esatto, poi match parziale per tier, poi fallback.
101
+ */
102
+ export declare function getPricingForModel(rawModelString: string | null): PricingModel;
90
103
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -2,10 +2,69 @@
2
2
  // ccview — Shared Types
3
3
  // Core data model — allineato con lo schema SQLite in db/schema.ts
4
4
  // ============================================================
5
- export const DEFAULT_PRICING = {
6
- opus: { model: 'opus', inputPer1M: 15, outputPer1M: 75 },
7
- sonnet: { model: 'sonnet', inputPer1M: 3, outputPer1M: 15 },
8
- haiku: { model: 'haiku', inputPer1M: 0.25, outputPer1M: 1.25 },
9
- unknown: { model: 'unknown', inputPer1M: 3, outputPer1M: 15 },
5
+ // Pricing ufficiale Anthropic — fonte: https://platform.claude.com/docs/en/about-claude/pricing
6
+ // Ultimo aggiornamento: Aprile 2026
7
+ export const MODEL_PRICING = [
8
+ // ── Claude 4.6 ──
9
+ { id: 'claude-opus-4-6-20260401', tier: 'opus', label: 'Opus 4.6', inputPer1M: 5, cacheWrite5mPer1M: 6.25, cacheWrite1hPer1M: 10, cacheHitPer1M: 0.50, outputPer1M: 25 },
10
+ { id: 'claude-sonnet-4-6-20260401', tier: 'sonnet', label: 'Sonnet 4.6', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
11
+ // ── Claude 4.5 ──
12
+ { id: 'claude-opus-4-5-20260301', tier: 'opus', label: 'Opus 4.5', inputPer1M: 5, cacheWrite5mPer1M: 6.25, cacheWrite1hPer1M: 10, cacheHitPer1M: 0.50, outputPer1M: 25 },
13
+ { id: 'claude-sonnet-4-5-20241022', tier: 'sonnet', label: 'Sonnet 4.5', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
14
+ { id: 'claude-haiku-4-5-20251001', tier: 'haiku', label: 'Haiku 4.5', inputPer1M: 1, cacheWrite5mPer1M: 1.25, cacheWrite1hPer1M: 2, cacheHitPer1M: 0.10, outputPer1M: 5 },
15
+ // ── Claude 4.x ──
16
+ { id: 'claude-opus-4-20250514', tier: 'opus', label: 'Opus 4', inputPer1M: 15, cacheWrite5mPer1M: 18.75, cacheWrite1hPer1M: 30, cacheHitPer1M: 1.50, outputPer1M: 75 },
17
+ { id: 'claude-sonnet-4-20250514', tier: 'sonnet', label: 'Sonnet 4', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
18
+ { id: 'claude-opus-4-1-20250414', tier: 'opus', label: 'Opus 4.1', inputPer1M: 15, cacheWrite5mPer1M: 18.75, cacheWrite1hPer1M: 30, cacheHitPer1M: 1.50, outputPer1M: 75 },
19
+ // ── Claude 3.x legacy ──
20
+ { id: 'claude-3-7-sonnet-20250219', tier: 'sonnet', label: 'Sonnet 3.7', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
21
+ { id: 'claude-3-opus-20240229', tier: 'opus', label: 'Opus 3', inputPer1M: 15, cacheWrite5mPer1M: 18.75, cacheWrite1hPer1M: 30, cacheHitPer1M: 1.50, outputPer1M: 75 },
22
+ { id: 'claude-3-5-sonnet-20241022', tier: 'sonnet', label: 'Sonnet 3.5 v2', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
23
+ { id: 'claude-3-5-sonnet-20240620', tier: 'sonnet', label: 'Sonnet 3.5', inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
24
+ { id: 'claude-3-5-haiku-20241022', tier: 'haiku', label: 'Haiku 3.5', inputPer1M: 0.80, cacheWrite5mPer1M: 1, cacheWrite1hPer1M: 1.6, cacheHitPer1M: 0.08, outputPer1M: 4 },
25
+ { id: 'claude-3-haiku-20240307', tier: 'haiku', label: 'Haiku 3', inputPer1M: 0.25, cacheWrite5mPer1M: 0.30, cacheWrite1hPer1M: 0.50, cacheHitPer1M: 0.03, outputPer1M: 1.25 },
26
+ ];
27
+ // Lookup veloce per model ID esatto
28
+ export const PRICING_BY_ID = new Map(MODEL_PRICING.map(p => [p.id, p]));
29
+ // Fallback per tier quando il model ID esatto non è trovato
30
+ export const TIER_FALLBACK_PRICING = {
31
+ opus: { inputPer1M: 5, cacheWrite5mPer1M: 6.25, cacheWrite1hPer1M: 10, cacheHitPer1M: 0.50, outputPer1M: 25 },
32
+ sonnet: { inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
33
+ haiku: { inputPer1M: 1, cacheWrite5mPer1M: 1.25, cacheWrite1hPer1M: 2, cacheHitPer1M: 0.10, outputPer1M: 5 },
34
+ unknown: { inputPer1M: 3, cacheWrite5mPer1M: 3.75, cacheWrite1hPer1M: 6, cacheHitPer1M: 0.30, outputPer1M: 15 },
10
35
  };
36
+ /**
37
+ * Trova il pricing per un model string dai log.
38
+ * Cerca prima match esatto, poi match parziale per tier, poi fallback.
39
+ */
40
+ export function getPricingForModel(rawModelString) {
41
+ if (!rawModelString) {
42
+ return { id: 'unknown', tier: 'unknown', label: 'Unknown', ...TIER_FALLBACK_PRICING.unknown };
43
+ }
44
+ // 1. Match esatto
45
+ const exact = PRICING_BY_ID.get(rawModelString);
46
+ if (exact)
47
+ return exact;
48
+ // 2. Match parziale — il log potrebbe avere alias o versioni future
49
+ const lower = rawModelString.toLowerCase();
50
+ const tier = resolveModelTier(lower);
51
+ // 3. Cerca il modello più recente del tier come best guess
52
+ const tierMatch = MODEL_PRICING.find(p => p.tier === tier);
53
+ if (tierMatch) {
54
+ return { ...tierMatch, id: rawModelString, label: `${tierMatch.label} (matched)` };
55
+ }
56
+ // 4. Fallback
57
+ const fb = TIER_FALLBACK_PRICING[tier];
58
+ return { id: rawModelString, tier, label: rawModelString, ...fb };
59
+ }
60
+ /** Risolvi tier da una model string lowercase */
61
+ function resolveModelTier(lower) {
62
+ if (lower.includes('opus'))
63
+ return 'opus';
64
+ if (lower.includes('sonnet'))
65
+ return 'sonnet';
66
+ if (lower.includes('haiku'))
67
+ return 'haiku';
68
+ return 'unknown';
69
+ }
11
70
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAwB;AACxB,mEAAmE;AACnE,+DAA+D;AAoG/D,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC9D,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxD,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3D,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC9D,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;CAC9D,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ccview/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Core parser and database for ccview — Claude Code session analytics",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -15,14 +15,6 @@
15
15
  "files": [
16
16
  "dist"
17
17
  ],
18
- "scripts": {
19
- "build": "tsc",
20
- "build:watch": "tsc --watch",
21
- "test": "vitest run",
22
- "test:watch": "vitest",
23
- "typecheck": "tsc --noEmit",
24
- "clean": "rm -rf dist"
25
- },
26
18
  "dependencies": {
27
19
  "better-sqlite3": "^12.8.0"
28
20
  },
@@ -34,5 +26,13 @@
34
26
  },
35
27
  "engines": {
36
28
  "node": ">=18.0.0"
29
+ },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "build:watch": "tsc --watch",
33
+ "test": "vitest run",
34
+ "test:watch": "vitest",
35
+ "typecheck": "tsc --noEmit",
36
+ "clean": "rm -rf dist"
37
37
  }
38
- }
38
+ }