codesesh 0.9.0 → 0.9.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/dist/{chunk-LXHUIQZI.js → chunk-5UOLRSFH.js} +53 -29
- package/dist/chunk-5UOLRSFH.js.map +1 -0
- package/dist/{dist-3Q4YTTEX.js → dist-VEIV33FR.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/scan-refresh-worker.js +1 -1
- package/dist/search-index-worker.js +1 -1
- package/dist/smart-tag-worker.js +1 -1
- package/dist/web/assets/{index-CahEAHys.js → index-CT4gLIAq.js} +2 -2
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/chunk-LXHUIQZI.js.map +0 -1
- /package/dist/{dist-3Q4YTTEX.js.map → dist-VEIV33FR.js.map} +0 -0
|
@@ -704,7 +704,7 @@ function withEstimatedSessionCost(stats, model) {
|
|
|
704
704
|
function estimateTokenCost(model, tokens) {
|
|
705
705
|
return estimateCostForTokens(model, tokens)?.cost ?? null;
|
|
706
706
|
}
|
|
707
|
-
var HEAD_INDEX_VERSION = "claudecode-head-
|
|
707
|
+
var HEAD_INDEX_VERSION = "claudecode-head-v2";
|
|
708
708
|
function parseTimestampMs(data) {
|
|
709
709
|
const raw = String(data["timestamp"] ?? "").trim();
|
|
710
710
|
if (!raw) return 0;
|
|
@@ -714,6 +714,25 @@ function parseTimestampMs(data) {
|
|
|
714
714
|
return 0;
|
|
715
715
|
}
|
|
716
716
|
}
|
|
717
|
+
function numericUsage(value) {
|
|
718
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
719
|
+
}
|
|
720
|
+
function extractClaudeUsage(data, msg) {
|
|
721
|
+
const usage = msg["usage"];
|
|
722
|
+
if (!usage || typeof usage !== "object") return null;
|
|
723
|
+
const u = usage;
|
|
724
|
+
const requestId = typeof data["requestId"] === "string" ? data["requestId"].trim() : "";
|
|
725
|
+
const uuid = typeof data["uuid"] === "string" ? data["uuid"].trim() : "";
|
|
726
|
+
const key = requestId || uuid;
|
|
727
|
+
if (!key) return null;
|
|
728
|
+
return {
|
|
729
|
+
key,
|
|
730
|
+
input: numericUsage(u["input_tokens"]),
|
|
731
|
+
output: numericUsage(u["output_tokens"]),
|
|
732
|
+
cacheRead: numericUsage(u["cache_read_input_tokens"]),
|
|
733
|
+
cacheCreate: numericUsage(u["cache_creation_input_tokens"])
|
|
734
|
+
};
|
|
735
|
+
}
|
|
717
736
|
var ClaudeCodeAgent = class extends BaseAgent {
|
|
718
737
|
name = "claudecode";
|
|
719
738
|
displayName = "Claude Code";
|
|
@@ -823,6 +842,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
823
842
|
const pendingToolCalls = /* @__PURE__ */ new Map();
|
|
824
843
|
const ignoredToolCallIds = /* @__PURE__ */ new Set();
|
|
825
844
|
const assistantUuidToToolCalls = /* @__PURE__ */ new Map();
|
|
845
|
+
const countedUsageKeys = /* @__PURE__ */ new Set();
|
|
826
846
|
const assistantState = {
|
|
827
847
|
currentIndex: null,
|
|
828
848
|
latestTextIndex: null
|
|
@@ -840,6 +860,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
840
860
|
pendingToolCalls,
|
|
841
861
|
ignoredToolCallIds,
|
|
842
862
|
assistantUuidToToolCalls,
|
|
863
|
+
countedUsageKeys,
|
|
843
864
|
assistantState
|
|
844
865
|
);
|
|
845
866
|
} catch {
|
|
@@ -1057,6 +1078,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1057
1078
|
let totalCacheCreateTokens = 0;
|
|
1058
1079
|
let totalCost = 0;
|
|
1059
1080
|
const modelUsageMap = {};
|
|
1081
|
+
const countedUsageKeys = /* @__PURE__ */ new Set();
|
|
1060
1082
|
for (const line of lines) {
|
|
1061
1083
|
try {
|
|
1062
1084
|
const data = JSON.parse(line);
|
|
@@ -1077,12 +1099,13 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1077
1099
|
if (typeof m === "string" && m.trim()) model = m.trim();
|
|
1078
1100
|
}
|
|
1079
1101
|
if (role === "assistant") {
|
|
1080
|
-
const usage = msg
|
|
1081
|
-
if (usage &&
|
|
1082
|
-
|
|
1083
|
-
const
|
|
1084
|
-
const
|
|
1085
|
-
const
|
|
1102
|
+
const usage = extractClaudeUsage(data, msg);
|
|
1103
|
+
if (usage && !countedUsageKeys.has(usage.key)) {
|
|
1104
|
+
countedUsageKeys.add(usage.key);
|
|
1105
|
+
const inputTokens = usage.input;
|
|
1106
|
+
const cacheRead = usage.cacheRead;
|
|
1107
|
+
const cacheCreate = usage.cacheCreate;
|
|
1108
|
+
const outputTokens = usage.output;
|
|
1086
1109
|
totalInputTokens += inputTokens + cacheRead + cacheCreate;
|
|
1087
1110
|
totalOutputTokens += outputTokens;
|
|
1088
1111
|
totalCacheReadTokens += cacheRead;
|
|
@@ -1156,7 +1179,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1156
1179
|
return null;
|
|
1157
1180
|
}
|
|
1158
1181
|
// --- Record conversion ---
|
|
1159
|
-
convertRecord(data, messages, pendingToolCalls, ignoredToolCallIds, assistantUuidToToolCalls, assistantState) {
|
|
1182
|
+
convertRecord(data, messages, pendingToolCalls, ignoredToolCallIds, assistantUuidToToolCalls, countedUsageKeys, assistantState) {
|
|
1160
1183
|
if (data["isMeta"] === true) return;
|
|
1161
1184
|
const msgType = String(data["type"] ?? "");
|
|
1162
1185
|
if (isInternalEventType(msgType)) return;
|
|
@@ -1167,6 +1190,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1167
1190
|
pendingToolCalls,
|
|
1168
1191
|
ignoredToolCallIds,
|
|
1169
1192
|
assistantUuidToToolCalls,
|
|
1193
|
+
countedUsageKeys,
|
|
1170
1194
|
assistantState
|
|
1171
1195
|
);
|
|
1172
1196
|
} else if (msgType === "user") {
|
|
@@ -1182,7 +1206,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1182
1206
|
this.convertToolResultRecord(data, messages, assistantState);
|
|
1183
1207
|
}
|
|
1184
1208
|
}
|
|
1185
|
-
convertAssistantRecord(data, messages, pendingToolCalls, ignoredToolCallIds, assistantUuidToToolCalls, assistantState) {
|
|
1209
|
+
convertAssistantRecord(data, messages, pendingToolCalls, ignoredToolCallIds, assistantUuidToToolCalls, countedUsageKeys, assistantState) {
|
|
1186
1210
|
const msg = data["message"] ?? {};
|
|
1187
1211
|
const timestampMs = parseTimestampMs(data);
|
|
1188
1212
|
const rawContent = msg["content"] ?? [];
|
|
@@ -1200,7 +1224,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1200
1224
|
if (text) {
|
|
1201
1225
|
currentAssistantIndex = this.appendAssistantReasoning(
|
|
1202
1226
|
messages,
|
|
1203
|
-
{ messageId: uuid, msg, timestampMs, text },
|
|
1227
|
+
{ messageId: uuid, data, msg, timestampMs, text, countedUsageKeys },
|
|
1204
1228
|
currentAssistantIndex
|
|
1205
1229
|
);
|
|
1206
1230
|
}
|
|
@@ -1211,7 +1235,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1211
1235
|
if (text) {
|
|
1212
1236
|
currentAssistantIndex = this.appendAssistantText(
|
|
1213
1237
|
messages,
|
|
1214
|
-
{ messageId: uuid, msg, timestampMs, text },
|
|
1238
|
+
{ messageId: uuid, data, msg, timestampMs, text, countedUsageKeys },
|
|
1215
1239
|
currentAssistantIndex
|
|
1216
1240
|
);
|
|
1217
1241
|
latestAssistantTextIndex = currentAssistantIndex;
|
|
@@ -1228,10 +1252,12 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1228
1252
|
const toolPart = this.buildToolPart(part, timestampMs);
|
|
1229
1253
|
const [msgIndex, partIndex] = this.attachToolCallToLatestAssistant(messages, {
|
|
1230
1254
|
messageId: uuid,
|
|
1255
|
+
data,
|
|
1231
1256
|
msg,
|
|
1232
1257
|
timestampMs,
|
|
1233
1258
|
toolPart,
|
|
1234
|
-
latestTextIndex: latestAssistantTextIndex
|
|
1259
|
+
latestTextIndex: latestAssistantTextIndex,
|
|
1260
|
+
countedUsageKeys
|
|
1235
1261
|
});
|
|
1236
1262
|
currentAssistantIndex = msgIndex;
|
|
1237
1263
|
if (toolCallId) {
|
|
@@ -1353,21 +1379,19 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1353
1379
|
time_created: timestampMs
|
|
1354
1380
|
};
|
|
1355
1381
|
}
|
|
1356
|
-
applyAssistantMetadata(message, msg) {
|
|
1382
|
+
applyAssistantMetadata(message, data, msg, countedUsageKeys) {
|
|
1357
1383
|
const model = msg["model"];
|
|
1358
1384
|
if (model && typeof model === "string" && !message.model) {
|
|
1359
1385
|
message.model = model;
|
|
1360
1386
|
}
|
|
1361
|
-
const usage = msg
|
|
1362
|
-
if (usage &&
|
|
1363
|
-
|
|
1364
|
-
const cacheRead = u["cache_read_input_tokens"] ?? 0;
|
|
1365
|
-
const cacheCreate = u["cache_creation_input_tokens"] ?? 0;
|
|
1387
|
+
const usage = extractClaudeUsage(data, msg);
|
|
1388
|
+
if (usage && !message.tokens && !countedUsageKeys.has(usage.key)) {
|
|
1389
|
+
countedUsageKeys.add(usage.key);
|
|
1366
1390
|
message.tokens = {
|
|
1367
|
-
input:
|
|
1368
|
-
output:
|
|
1369
|
-
cache_read: cacheRead,
|
|
1370
|
-
cache_create: cacheCreate
|
|
1391
|
+
input: usage.input + usage.cacheCreate + usage.cacheRead,
|
|
1392
|
+
output: usage.output,
|
|
1393
|
+
cache_read: usage.cacheRead,
|
|
1394
|
+
cache_create: usage.cacheCreate
|
|
1371
1395
|
};
|
|
1372
1396
|
const cost = estimateTokenCost(message.model, message.tokens);
|
|
1373
1397
|
if (cost !== null) {
|
|
@@ -1385,7 +1409,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1385
1409
|
const hasTool = message2.parts.some((p) => p.type === "tool");
|
|
1386
1410
|
if (!hasText && !hasTool) {
|
|
1387
1411
|
this.appendPartIfNew(message2, part);
|
|
1388
|
-
this.applyAssistantMetadata(message2, opts.msg);
|
|
1412
|
+
this.applyAssistantMetadata(message2, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1389
1413
|
return currentIndex;
|
|
1390
1414
|
}
|
|
1391
1415
|
}
|
|
@@ -1396,7 +1420,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1396
1420
|
parts: [part],
|
|
1397
1421
|
agent: "claude"
|
|
1398
1422
|
});
|
|
1399
|
-
this.applyAssistantMetadata(message, opts.msg);
|
|
1423
|
+
this.applyAssistantMetadata(message, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1400
1424
|
messages.push(message);
|
|
1401
1425
|
return messages.length - 1;
|
|
1402
1426
|
}
|
|
@@ -1407,7 +1431,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1407
1431
|
const hasTool = message2.parts.some((p) => p.type === "tool");
|
|
1408
1432
|
if (!hasTool) {
|
|
1409
1433
|
this.appendPartIfNew(message2, part);
|
|
1410
|
-
this.applyAssistantMetadata(message2, opts.msg);
|
|
1434
|
+
this.applyAssistantMetadata(message2, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1411
1435
|
return currentIndex;
|
|
1412
1436
|
}
|
|
1413
1437
|
}
|
|
@@ -1418,7 +1442,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1418
1442
|
parts: [part],
|
|
1419
1443
|
agent: "claude"
|
|
1420
1444
|
});
|
|
1421
|
-
this.applyAssistantMetadata(message, opts.msg);
|
|
1445
|
+
this.applyAssistantMetadata(message, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1422
1446
|
messages.push(message);
|
|
1423
1447
|
return messages.length - 1;
|
|
1424
1448
|
}
|
|
@@ -1426,7 +1450,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1426
1450
|
if (opts.latestTextIndex !== null) {
|
|
1427
1451
|
const message2 = messages[opts.latestTextIndex];
|
|
1428
1452
|
message2.parts.push(opts.toolPart);
|
|
1429
|
-
this.applyAssistantMetadata(message2, opts.msg);
|
|
1453
|
+
this.applyAssistantMetadata(message2, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1430
1454
|
return [opts.latestTextIndex, message2.parts.length - 1];
|
|
1431
1455
|
}
|
|
1432
1456
|
const message = this.buildMessage({
|
|
@@ -1437,7 +1461,7 @@ var ClaudeCodeAgent = class extends BaseAgent {
|
|
|
1437
1461
|
agent: "claude",
|
|
1438
1462
|
mode: "tool"
|
|
1439
1463
|
});
|
|
1440
|
-
this.applyAssistantMetadata(message, opts.msg);
|
|
1464
|
+
this.applyAssistantMetadata(message, opts.data, opts.msg, opts.countedUsageKeys);
|
|
1441
1465
|
messages.push(message);
|
|
1442
1466
|
return [messages.length - 1, 0];
|
|
1443
1467
|
}
|
|
@@ -9148,4 +9172,4 @@ export {
|
|
|
9148
9172
|
importBookmarks,
|
|
9149
9173
|
deleteBookmark
|
|
9150
9174
|
};
|
|
9151
|
-
//# sourceMappingURL=chunk-
|
|
9175
|
+
//# sourceMappingURL=chunk-5UOLRSFH.js.map
|