@lim324/my-claude-code-viewer 0.0.2 → 0.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/lib/cost-breakdown.d.ts +42 -0
- package/dist/lib/cost-breakdown.d.ts.map +1 -0
- package/dist/lib/cost-breakdown.js +146 -0
- package/dist/lib/cost-breakdown.js.map +1 -0
- package/dist/lib/cost-calculator.d.ts.map +1 -1
- package/dist/lib/cost-calculator.js +13 -0
- package/dist/lib/cost-calculator.js.map +1 -1
- package/dist/lib/jsonl-parser.d.ts +1 -0
- package/dist/lib/jsonl-parser.d.ts.map +1 -1
- package/dist/lib/jsonl-parser.js.map +1 -1
- package/dist/lib/pricing.d.ts +2 -0
- package/dist/lib/pricing.d.ts.map +1 -1
- package/dist/lib/pricing.js +106 -15
- package/dist/lib/pricing.js.map +1 -1
- package/dist/routes/api.d.ts.map +1 -1
- package/dist/routes/api.js +32 -0
- package/dist/routes/api.js.map +1 -1
- package/dist/routes/views.d.ts.map +1 -1
- package/dist/routes/views.js +532 -450
- package/dist/routes/views.js.map +1 -1
- package/dist/server/session-analyzer.d.ts +14 -2
- package/dist/server/session-analyzer.d.ts.map +1 -1
- package/dist/server/session-analyzer.js +141 -39
- package/dist/server/session-analyzer.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface CostBreakdown {
|
|
2
|
+
totalUsd: number;
|
|
3
|
+
breakdown: {
|
|
4
|
+
inputTokensUsd: number;
|
|
5
|
+
outputTokensUsd: number;
|
|
6
|
+
cacheCreationUsd: number;
|
|
7
|
+
cacheReadUsd: number;
|
|
8
|
+
};
|
|
9
|
+
tokenUsage: {
|
|
10
|
+
inputTokens: number;
|
|
11
|
+
outputTokens: number;
|
|
12
|
+
cacheCreationTokens: number;
|
|
13
|
+
cacheReadTokens: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface SessionCostBreakdown {
|
|
17
|
+
main: CostBreakdown;
|
|
18
|
+
subagents: CostBreakdown;
|
|
19
|
+
total: CostBreakdown;
|
|
20
|
+
}
|
|
21
|
+
export interface SubagentInfo {
|
|
22
|
+
agentId: string;
|
|
23
|
+
firstMessage: string | null;
|
|
24
|
+
cost: CostBreakdown;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Calculate cost for a single session content
|
|
28
|
+
*/
|
|
29
|
+
export declare function calculateSingleSessionCost(content: string): CostBreakdown;
|
|
30
|
+
/**
|
|
31
|
+
* Calculate cost breakdown for main session and subagents separately
|
|
32
|
+
*/
|
|
33
|
+
export declare function calculateSessionCostBreakdown(mainContent: string, agentContents: string[]): SessionCostBreakdown;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate cost for each subagent individually
|
|
36
|
+
*/
|
|
37
|
+
export declare function calculateSubagentCosts(agentContents: {
|
|
38
|
+
agentId: string;
|
|
39
|
+
content: string;
|
|
40
|
+
firstMessage: string | null;
|
|
41
|
+
}[]): SubagentInfo[];
|
|
42
|
+
//# sourceMappingURL=cost-breakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-breakdown.d.ts","sourceRoot":"","sources":["../../src/lib/cost-breakdown.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAwEzE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,GACtB,oBAAoB,CAgEtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GACjF,YAAY,EAAE,CAMhB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateSingleSessionCost = calculateSingleSessionCost;
|
|
4
|
+
exports.calculateSessionCostBreakdown = calculateSessionCostBreakdown;
|
|
5
|
+
exports.calculateSubagentCosts = calculateSubagentCosts;
|
|
6
|
+
const jsonl_parser_1 = require("./jsonl-parser");
|
|
7
|
+
const pricing_1 = require("./pricing");
|
|
8
|
+
/**
|
|
9
|
+
* Calculate cost for a single session content
|
|
10
|
+
*/
|
|
11
|
+
function calculateSingleSessionCost(content) {
|
|
12
|
+
let totalInputTokens = 0;
|
|
13
|
+
let totalOutputTokens = 0;
|
|
14
|
+
let totalCacheCreationTokens = 0;
|
|
15
|
+
let totalCacheReadTokens = 0;
|
|
16
|
+
let totalInputTokensUsd = 0;
|
|
17
|
+
let totalOutputTokensUsd = 0;
|
|
18
|
+
let totalCacheCreationUsd = 0;
|
|
19
|
+
let totalCacheReadUsd = 0;
|
|
20
|
+
// Track processed message IDs to avoid double counting
|
|
21
|
+
// When Claude responds with both text and tool_use, they appear as separate
|
|
22
|
+
// JSON entries with unique UUIDs but the same message ID
|
|
23
|
+
const processedMessageIds = new Set();
|
|
24
|
+
const conversations = (0, jsonl_parser_1.parseJsonl)(content);
|
|
25
|
+
for (const conversation of conversations) {
|
|
26
|
+
if (conversation.type === "assistant") {
|
|
27
|
+
const assistantConv = conversation;
|
|
28
|
+
const usage = assistantConv.message.usage;
|
|
29
|
+
const modelName = assistantConv.message.model;
|
|
30
|
+
const messageId = assistantConv.message.id;
|
|
31
|
+
if (!usage)
|
|
32
|
+
continue;
|
|
33
|
+
// Skip if we've already processed this message ID
|
|
34
|
+
// This prevents double counting when a message has both text and tool_use
|
|
35
|
+
if (messageId) {
|
|
36
|
+
if (processedMessageIds.has(messageId)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
processedMessageIds.add(messageId);
|
|
40
|
+
}
|
|
41
|
+
const messageCost = (0, pricing_1.calculateTokenCost)({
|
|
42
|
+
input_tokens: usage.input_tokens,
|
|
43
|
+
output_tokens: usage.output_tokens,
|
|
44
|
+
cache_creation_input_tokens: usage.cache_creation_input_tokens ?? 0,
|
|
45
|
+
cache_read_input_tokens: usage.cache_read_input_tokens ?? 0,
|
|
46
|
+
}, modelName || "claude-3.5-sonnet");
|
|
47
|
+
totalInputTokens += usage.input_tokens;
|
|
48
|
+
totalOutputTokens += usage.output_tokens;
|
|
49
|
+
totalCacheCreationTokens += usage.cache_creation_input_tokens ?? 0;
|
|
50
|
+
totalCacheReadTokens += usage.cache_read_input_tokens ?? 0;
|
|
51
|
+
totalInputTokensUsd += messageCost.breakdown.inputTokensUsd;
|
|
52
|
+
totalOutputTokensUsd += messageCost.breakdown.outputTokensUsd;
|
|
53
|
+
totalCacheCreationUsd += messageCost.breakdown.cacheCreationUsd;
|
|
54
|
+
totalCacheReadUsd += messageCost.breakdown.cacheReadUsd;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
totalUsd: totalInputTokensUsd + totalOutputTokensUsd + totalCacheCreationUsd + totalCacheReadUsd,
|
|
59
|
+
breakdown: {
|
|
60
|
+
inputTokensUsd: totalInputTokensUsd,
|
|
61
|
+
outputTokensUsd: totalOutputTokensUsd,
|
|
62
|
+
cacheCreationUsd: totalCacheCreationUsd,
|
|
63
|
+
cacheReadUsd: totalCacheReadUsd,
|
|
64
|
+
},
|
|
65
|
+
tokenUsage: {
|
|
66
|
+
inputTokens: totalInputTokens,
|
|
67
|
+
outputTokens: totalOutputTokens,
|
|
68
|
+
cacheCreationTokens: totalCacheCreationTokens,
|
|
69
|
+
cacheReadTokens: totalCacheReadTokens,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate cost breakdown for main session and subagents separately
|
|
75
|
+
*/
|
|
76
|
+
function calculateSessionCostBreakdown(mainContent, agentContents) {
|
|
77
|
+
// Calculate main session cost
|
|
78
|
+
const mainCost = calculateSingleSessionCost(mainContent);
|
|
79
|
+
// Calculate all subagents costs
|
|
80
|
+
let subagentInputTokens = 0;
|
|
81
|
+
let subagentOutputTokens = 0;
|
|
82
|
+
let subagentCacheCreationTokens = 0;
|
|
83
|
+
let subagentCacheReadTokens = 0;
|
|
84
|
+
let subagentInputTokensUsd = 0;
|
|
85
|
+
let subagentOutputTokensUsd = 0;
|
|
86
|
+
let subagentCacheCreationUsd = 0;
|
|
87
|
+
let subagentCacheReadUsd = 0;
|
|
88
|
+
for (const content of agentContents) {
|
|
89
|
+
const cost = calculateSingleSessionCost(content);
|
|
90
|
+
subagentInputTokens += cost.tokenUsage.inputTokens;
|
|
91
|
+
subagentOutputTokens += cost.tokenUsage.outputTokens;
|
|
92
|
+
subagentCacheCreationTokens += cost.tokenUsage.cacheCreationTokens;
|
|
93
|
+
subagentCacheReadTokens += cost.tokenUsage.cacheReadTokens;
|
|
94
|
+
subagentInputTokensUsd += cost.breakdown.inputTokensUsd;
|
|
95
|
+
subagentOutputTokensUsd += cost.breakdown.outputTokensUsd;
|
|
96
|
+
subagentCacheCreationUsd += cost.breakdown.cacheCreationUsd;
|
|
97
|
+
subagentCacheReadUsd += cost.breakdown.cacheReadUsd;
|
|
98
|
+
}
|
|
99
|
+
const subagentCost = {
|
|
100
|
+
totalUsd: subagentInputTokensUsd + subagentOutputTokensUsd + subagentCacheCreationUsd + subagentCacheReadUsd,
|
|
101
|
+
breakdown: {
|
|
102
|
+
inputTokensUsd: subagentInputTokensUsd,
|
|
103
|
+
outputTokensUsd: subagentOutputTokensUsd,
|
|
104
|
+
cacheCreationUsd: subagentCacheCreationUsd,
|
|
105
|
+
cacheReadUsd: subagentCacheReadUsd,
|
|
106
|
+
},
|
|
107
|
+
tokenUsage: {
|
|
108
|
+
inputTokens: subagentInputTokens,
|
|
109
|
+
outputTokens: subagentOutputTokens,
|
|
110
|
+
cacheCreationTokens: subagentCacheCreationTokens,
|
|
111
|
+
cacheReadTokens: subagentCacheReadTokens,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
// Calculate total
|
|
115
|
+
const totalCost = {
|
|
116
|
+
totalUsd: mainCost.totalUsd + subagentCost.totalUsd,
|
|
117
|
+
breakdown: {
|
|
118
|
+
inputTokensUsd: mainCost.breakdown.inputTokensUsd + subagentCost.breakdown.inputTokensUsd,
|
|
119
|
+
outputTokensUsd: mainCost.breakdown.outputTokensUsd + subagentCost.breakdown.outputTokensUsd,
|
|
120
|
+
cacheCreationUsd: mainCost.breakdown.cacheCreationUsd + subagentCost.breakdown.cacheCreationUsd,
|
|
121
|
+
cacheReadUsd: mainCost.breakdown.cacheReadUsd + subagentCost.breakdown.cacheReadUsd,
|
|
122
|
+
},
|
|
123
|
+
tokenUsage: {
|
|
124
|
+
inputTokens: mainCost.tokenUsage.inputTokens + subagentCost.tokenUsage.inputTokens,
|
|
125
|
+
outputTokens: mainCost.tokenUsage.outputTokens + subagentCost.tokenUsage.outputTokens,
|
|
126
|
+
cacheCreationTokens: mainCost.tokenUsage.cacheCreationTokens + subagentCost.tokenUsage.cacheCreationTokens,
|
|
127
|
+
cacheReadTokens: mainCost.tokenUsage.cacheReadTokens + subagentCost.tokenUsage.cacheReadTokens,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
return {
|
|
131
|
+
main: mainCost,
|
|
132
|
+
subagents: subagentCost,
|
|
133
|
+
total: totalCost,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Calculate cost for each subagent individually
|
|
138
|
+
*/
|
|
139
|
+
function calculateSubagentCosts(agentContents) {
|
|
140
|
+
return agentContents.map(({ agentId, content, firstMessage }) => ({
|
|
141
|
+
agentId,
|
|
142
|
+
firstMessage,
|
|
143
|
+
cost: calculateSingleSessionCost(content),
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=cost-breakdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-breakdown.js","sourceRoot":"","sources":["../../src/lib/cost-breakdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-calculator.d.ts","sourceRoot":"","sources":["../../src/lib/cost-calculator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,GACrB,cAAc,
|
|
1
|
+
{"version":3,"file":"cost-calculator.d.ts","sourceRoot":"","sources":["../../src/lib/cost-calculator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,GACrB,cAAc,CAoFhB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAEjE"}
|
|
@@ -17,6 +17,10 @@ function aggregateTokenUsageAndCost(fileContents) {
|
|
|
17
17
|
let totalCacheCreationUsd = 0;
|
|
18
18
|
let totalCacheReadUsd = 0;
|
|
19
19
|
let lastModelName = "claude-3.5-sonnet";
|
|
20
|
+
// Track processed message IDs to avoid double counting
|
|
21
|
+
// When Claude responds with both text and tool_use, they appear as separate
|
|
22
|
+
// JSON entries with unique UUIDs but the same message ID
|
|
23
|
+
const processedMessageIds = new Set();
|
|
20
24
|
for (const content of fileContents) {
|
|
21
25
|
const conversations = (0, jsonl_parser_1.parseJsonl)(content);
|
|
22
26
|
for (const conversation of conversations) {
|
|
@@ -24,8 +28,17 @@ function aggregateTokenUsageAndCost(fileContents) {
|
|
|
24
28
|
const assistantConv = conversation;
|
|
25
29
|
const usage = assistantConv.message.usage;
|
|
26
30
|
const modelName = assistantConv.message.model;
|
|
31
|
+
const messageId = assistantConv.message.id;
|
|
27
32
|
if (!usage)
|
|
28
33
|
continue;
|
|
34
|
+
// Skip if we've already processed this message ID
|
|
35
|
+
// This prevents double counting when a message has both text and tool_use
|
|
36
|
+
if (messageId) {
|
|
37
|
+
if (processedMessageIds.has(messageId)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
processedMessageIds.add(messageId);
|
|
41
|
+
}
|
|
29
42
|
const messageCost = (0, pricing_1.calculateTokenCost)({
|
|
30
43
|
input_tokens: usage.input_tokens,
|
|
31
44
|
output_tokens: usage.output_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-calculator.js","sourceRoot":"","sources":["../../src/lib/cost-calculator.ts"],"names":[],"mappings":";;AAuBA,
|
|
1
|
+
{"version":3,"file":"cost-calculator.js","sourceRoot":"","sources":["../../src/lib/cost-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-parser.d.ts","sourceRoot":"","sources":["../../src/lib/jsonl-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxD,KAAK,CAAC,EAAE;YACN,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE7D;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAmBlE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,oBAAoB,EAAE,GACpC,MAAM,GAAG,IAAI,CAoBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,oBAAoB,EAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBpE"}
|
|
1
|
+
{"version":3,"file":"jsonl-parser.d.ts","sourceRoot":"","sources":["../../src/lib/jsonl-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxD,KAAK,CAAC,EAAE;YACN,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE7D;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAmBlE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,oBAAoB,EAAE,GACpC,MAAM,GAAG,IAAI,CAoBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,oBAAoB,EAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-parser.js","sourceRoot":"","sources":["../../src/lib/jsonl-parser.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"jsonl-parser.js","sourceRoot":"","sources":["../../src/lib/jsonl-parser.ts"],"names":[],"mappings":";;AAiCA,gCAmBC;AAKD,0DAsBC;AAKD,sCAoBC;AA1ED;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO;SAClB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAExC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,MAAsB,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,SAAS,GAAe;gBAC5B,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,UAAU,EAAE,KAAK,GAAG,CAAC;aACtB,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,aAAqC;IAErC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QAC9C,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAE3C,MAAM,OAAO,GAAI,YAA6B,CAAC,OAAO,CAAC,OAAO,CAAC;QAE/D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,OAAO,YAAY,CAAC,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,aAAqC;IAErC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAE9D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QAE9C,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,IACE,YAAY,CAAC,IAAI,KAAK,MAAM;YAC5B,YAAY,CAAC,IAAI,KAAK,WAAW;YACjC,YAAY,CAAC,IAAI,KAAK,QAAQ,EAC9B,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,IAAuC,CAAC,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/lib/pricing.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/lib/pricing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/lib/pricing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAqGtD,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAqC,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AAEnD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAoE/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAG/D;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,GAChB,qBAAqB,CA+BvB"}
|
package/dist/lib/pricing.js
CHANGED
|
@@ -1,45 +1,108 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model pricing per 1M tokens in USD
|
|
4
|
+
* Source: https://platform.claude.com/docs/en/about-claude/pricing
|
|
5
|
+
* Updated: 2026-03-04
|
|
6
|
+
*/
|
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
8
|
exports.DEFAULT_MODEL_PRICING = exports.MODEL_PRICING = void 0;
|
|
4
9
|
exports.normalizeModelName = normalizeModelName;
|
|
5
10
|
exports.getModelPricing = getModelPricing;
|
|
6
11
|
exports.calculateTokenCost = calculateTokenCost;
|
|
7
12
|
exports.MODEL_PRICING = {
|
|
13
|
+
// Claude Opus 4.x series
|
|
14
|
+
"claude-opus-4.6": {
|
|
15
|
+
input: 5.0,
|
|
16
|
+
output: 25.0,
|
|
17
|
+
cache_creation: 6.25, // 5-minute cache write
|
|
18
|
+
cache_read: 0.50,
|
|
19
|
+
},
|
|
8
20
|
"claude-opus-4.5": {
|
|
21
|
+
input: 5.0,
|
|
22
|
+
output: 25.0,
|
|
23
|
+
cache_creation: 6.25,
|
|
24
|
+
cache_read: 0.50,
|
|
25
|
+
},
|
|
26
|
+
"claude-opus-4.1": {
|
|
9
27
|
input: 15.0,
|
|
10
28
|
output: 75.0,
|
|
11
29
|
cache_creation: 18.75,
|
|
12
|
-
cache_read: 1.
|
|
30
|
+
cache_read: 1.50,
|
|
13
31
|
},
|
|
14
|
-
"claude-opus-4
|
|
32
|
+
"claude-opus-4": {
|
|
15
33
|
input: 15.0,
|
|
16
34
|
output: 75.0,
|
|
17
35
|
cache_creation: 18.75,
|
|
18
|
-
cache_read: 1.
|
|
36
|
+
cache_read: 1.50,
|
|
37
|
+
},
|
|
38
|
+
// Claude Sonnet 4.x series
|
|
39
|
+
"claude-sonnet-4.6": {
|
|
40
|
+
input: 3.0,
|
|
41
|
+
output: 15.0,
|
|
42
|
+
cache_creation: 3.75,
|
|
43
|
+
cache_read: 0.30,
|
|
19
44
|
},
|
|
20
45
|
"claude-sonnet-4.5": {
|
|
21
|
-
input:
|
|
22
|
-
output:
|
|
23
|
-
cache_creation:
|
|
24
|
-
cache_read: 0.
|
|
46
|
+
input: 3.0,
|
|
47
|
+
output: 15.0,
|
|
48
|
+
cache_creation: 3.75,
|
|
49
|
+
cache_read: 0.30,
|
|
50
|
+
},
|
|
51
|
+
"claude-sonnet-4": {
|
|
52
|
+
input: 3.0,
|
|
53
|
+
output: 15.0,
|
|
54
|
+
cache_creation: 3.75,
|
|
55
|
+
cache_read: 0.30,
|
|
25
56
|
},
|
|
57
|
+
// Claude Haiku series
|
|
26
58
|
"claude-haiku-4.5": {
|
|
27
59
|
input: 1.0,
|
|
28
60
|
output: 5.0,
|
|
29
61
|
cache_creation: 1.25,
|
|
30
|
-
cache_read: 0.
|
|
62
|
+
cache_read: 0.10,
|
|
63
|
+
},
|
|
64
|
+
"claude-haiku-3.5": {
|
|
65
|
+
input: 0.80,
|
|
66
|
+
output: 4.0,
|
|
67
|
+
cache_creation: 1.0,
|
|
68
|
+
cache_read: 0.08,
|
|
69
|
+
},
|
|
70
|
+
"claude-haiku-3": {
|
|
71
|
+
input: 0.25,
|
|
72
|
+
output: 1.25,
|
|
73
|
+
cache_creation: 0.30,
|
|
74
|
+
cache_read: 0.03,
|
|
75
|
+
},
|
|
76
|
+
// Legacy models (deprecated)
|
|
77
|
+
"claude-opus-3": {
|
|
78
|
+
input: 15.0,
|
|
79
|
+
output: 75.0,
|
|
80
|
+
cache_creation: 18.75,
|
|
81
|
+
cache_read: 1.50,
|
|
82
|
+
},
|
|
83
|
+
"claude-sonnet-3.7": {
|
|
84
|
+
input: 3.0,
|
|
85
|
+
output: 15.0,
|
|
86
|
+
cache_creation: 3.75,
|
|
87
|
+
cache_read: 0.30,
|
|
88
|
+
},
|
|
89
|
+
"claude-sonnet-3": {
|
|
90
|
+
input: 3.0,
|
|
91
|
+
output: 15.0,
|
|
92
|
+
cache_creation: 3.75,
|
|
93
|
+
cache_read: 0.30,
|
|
31
94
|
},
|
|
32
95
|
"claude-3.5-sonnet": {
|
|
33
96
|
input: 3.0,
|
|
34
97
|
output: 15.0,
|
|
35
98
|
cache_creation: 3.75,
|
|
36
|
-
cache_read: 0.
|
|
99
|
+
cache_read: 0.30,
|
|
37
100
|
},
|
|
38
101
|
"claude-3-opus": {
|
|
39
102
|
input: 15.0,
|
|
40
103
|
output: 75.0,
|
|
41
104
|
cache_creation: 18.75,
|
|
42
|
-
cache_read: 1.
|
|
105
|
+
cache_read: 1.50,
|
|
43
106
|
},
|
|
44
107
|
"claude-3-haiku": {
|
|
45
108
|
input: 0.25,
|
|
@@ -48,27 +111,54 @@ exports.MODEL_PRICING = {
|
|
|
48
111
|
cache_read: 0.025,
|
|
49
112
|
},
|
|
50
113
|
};
|
|
51
|
-
exports.DEFAULT_MODEL_PRICING = exports.MODEL_PRICING["claude-
|
|
114
|
+
exports.DEFAULT_MODEL_PRICING = exports.MODEL_PRICING["claude-sonnet-4.5"];
|
|
52
115
|
/**
|
|
53
116
|
* Normalizes Claude API model names to standard model identifiers
|
|
54
117
|
*/
|
|
55
118
|
function normalizeModelName(modelName) {
|
|
56
119
|
const normalized = modelName.toLowerCase();
|
|
120
|
+
// Claude Opus 4.6
|
|
121
|
+
if (normalized.includes("opus-4-6") || normalized.includes("opus-4.6")) {
|
|
122
|
+
return "claude-opus-4.6";
|
|
123
|
+
}
|
|
124
|
+
// Claude Opus 4.5
|
|
57
125
|
if (normalized.includes("opus-4-5") || normalized.includes("opus-4.5")) {
|
|
58
126
|
return "claude-opus-4.5";
|
|
59
127
|
}
|
|
128
|
+
// Claude Opus 4.1
|
|
60
129
|
if (normalized.includes("opus-4-1") || normalized.includes("opus-4.1")) {
|
|
61
130
|
return "claude-opus-4.1";
|
|
62
131
|
}
|
|
132
|
+
// Claude Opus 4
|
|
133
|
+
if (normalized.includes("opus-4") || normalized.includes("opus-4-0")) {
|
|
134
|
+
return "claude-opus-4";
|
|
135
|
+
}
|
|
136
|
+
// Claude Sonnet 4.6
|
|
137
|
+
if (normalized.includes("sonnet-4-6") || normalized.includes("sonnet-4.6")) {
|
|
138
|
+
return "claude-sonnet-4.6";
|
|
139
|
+
}
|
|
140
|
+
// Claude Sonnet 4.5
|
|
63
141
|
if (normalized.includes("sonnet-4-5") || normalized.includes("sonnet-4.5")) {
|
|
64
142
|
return "claude-sonnet-4.5";
|
|
65
143
|
}
|
|
144
|
+
// Claude Sonnet 4
|
|
145
|
+
if (normalized.includes("sonnet-4") || normalized.includes("sonnet-4-0")) {
|
|
146
|
+
return "claude-sonnet-4";
|
|
147
|
+
}
|
|
148
|
+
// Claude Haiku 4.5
|
|
66
149
|
if (normalized.includes("haiku-4-5") || normalized.includes("haiku-4.5")) {
|
|
67
150
|
return "claude-haiku-4.5";
|
|
68
151
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
152
|
+
// Claude Haiku 3.5
|
|
153
|
+
if (normalized.includes("haiku-3-5") || normalized.includes("haiku-3.5")) {
|
|
154
|
+
return "claude-haiku-3.5";
|
|
155
|
+
}
|
|
156
|
+
// Claude Haiku 3
|
|
157
|
+
if (normalized.includes("haiku-3") || normalized.includes("haiku-3-0")) {
|
|
158
|
+
return "claude-haiku-3";
|
|
159
|
+
}
|
|
160
|
+
// Legacy patterns
|
|
161
|
+
if (normalized.includes("3-5-sonnet") || normalized.includes("3.5-sonnet")) {
|
|
72
162
|
return "claude-3.5-sonnet";
|
|
73
163
|
}
|
|
74
164
|
if (normalized.includes("3-opus") || normalized.includes("opus-20")) {
|
|
@@ -77,7 +167,8 @@ function normalizeModelName(modelName) {
|
|
|
77
167
|
if (normalized.includes("3-haiku") || normalized.includes("haiku-20")) {
|
|
78
168
|
return "claude-3-haiku";
|
|
79
169
|
}
|
|
80
|
-
|
|
170
|
+
// Default to Sonnet 4.5
|
|
171
|
+
return "claude-sonnet-4.5";
|
|
81
172
|
}
|
|
82
173
|
/**
|
|
83
174
|
* Gets pricing for a model, with fallback to default pricing
|
package/dist/lib/pricing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/lib/pricing.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/lib/pricing.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAYjC,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAgJhC,eAAe,MAAM,CAAC"}
|
package/dist/routes/api.js
CHANGED
|
@@ -99,5 +99,37 @@ router.get("/projects/:projectId/sessions/:sessionId", (req, res) => {
|
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
|
+
/**
|
|
103
|
+
* GET /api/projects/:projectId/sessions/:sessionId/subagents/:agentId
|
|
104
|
+
* Get subagent details
|
|
105
|
+
*/
|
|
106
|
+
router.get("/projects/:projectId/sessions/:sessionId/subagents/:agentId", (req, res) => {
|
|
107
|
+
try {
|
|
108
|
+
const projectPath = (0, project_scanner_1.getSafeProjectPath)(req.params.projectId);
|
|
109
|
+
if (!projectPath) {
|
|
110
|
+
return res.status(404).json({
|
|
111
|
+
success: false,
|
|
112
|
+
error: "Invalid project",
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const subagent = (0, session_analyzer_1.getSubagentDetail)(req.params.projectId, req.params.sessionId, req.params.agentId, projectPath);
|
|
116
|
+
if (!subagent) {
|
|
117
|
+
return res.status(404).json({
|
|
118
|
+
success: false,
|
|
119
|
+
error: "Subagent not found",
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
res.json({
|
|
123
|
+
success: true,
|
|
124
|
+
data: subagent,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
res.status(500).json({
|
|
129
|
+
success: false,
|
|
130
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
});
|
|
102
134
|
exports.default = router;
|
|
103
135
|
//# sourceMappingURL=api.js.map
|
package/dist/routes/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":";;AAAA,qCAAiC;AACjC,+DAKmC;AACnC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/routes/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/routes/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/routes/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAw0BhC,eAAe,MAAM,CAAC"}
|