opencode-tps-meter 0.1.6 → 0.1.8
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/index.d.ts.map +1 -1
- package/dist/index.js +42 -8
- package/dist/index.mjs +42 -8
- package/dist/ui.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAOf,MAAM,YAAY,CAAC;AAoHpB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,EAAE,aAAa,GACrB,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAOf,MAAM,YAAY,CAAC;AAoHpB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,OAAO,EAAE,aAAa,GACrB,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CA0yBxC;AAGD,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -238,8 +238,21 @@ function createUIManager(client, config) {
|
|
|
238
238
|
}
|
|
239
239
|
function formatAgentLine(agent) {
|
|
240
240
|
const segments = [];
|
|
241
|
-
|
|
242
|
-
|
|
241
|
+
if (uiConfig.showInstant || uiConfig.showAverage) {
|
|
242
|
+
const tpsParts = [];
|
|
243
|
+
if (uiConfig.showInstant) {
|
|
244
|
+
tpsParts.push(`${agent.instantTps.toFixed(1)}`);
|
|
245
|
+
}
|
|
246
|
+
if (uiConfig.showAverage) {
|
|
247
|
+
tpsParts.push(`(avg ${agent.avgTps.toFixed(1)})`);
|
|
248
|
+
}
|
|
249
|
+
if (tpsParts.length > 0) {
|
|
250
|
+
segments.push(tpsParts.join(" "));
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (uiConfig.showTotalTokens) {
|
|
254
|
+
segments.push(`tokens: ${formatNumberWithCommas(agent.totalTokens)}`);
|
|
255
|
+
}
|
|
243
256
|
if (uiConfig.showElapsed) {
|
|
244
257
|
segments.push(formatElapsedTime(agent.elapsedMs));
|
|
245
258
|
}
|
|
@@ -338,7 +351,11 @@ function createUIManager(client, config) {
|
|
|
338
351
|
function flushPendingUpdate() {
|
|
339
352
|
if (pendingState) {
|
|
340
353
|
const formatted = formatDisplay(pendingState);
|
|
341
|
-
|
|
354
|
+
let tpsForColor = pendingState.instantTps;
|
|
355
|
+
if (pendingState.totalTokens === 0 && pendingState.agents?.length) {
|
|
356
|
+
tpsForColor = Math.max(...pendingState.agents.map((a) => a.instantTps));
|
|
357
|
+
}
|
|
358
|
+
display(formatted, false, tpsForColor);
|
|
342
359
|
lastDisplayedState = { ...pendingState };
|
|
343
360
|
pendingState = null;
|
|
344
361
|
}
|
|
@@ -719,10 +736,10 @@ function TpsMeterPlugin(context) {
|
|
|
719
736
|
return `${id.slice(0, 4)}…`;
|
|
720
737
|
}
|
|
721
738
|
function buildAgentLabel(messageId, metadata) {
|
|
722
|
-
const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() ||
|
|
739
|
+
const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || null;
|
|
723
740
|
const rawId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || messageId;
|
|
724
741
|
const identifier = abbreviateId(rawId);
|
|
725
|
-
return `${typeLabel}(${identifier})
|
|
742
|
+
return typeLabel ? `${typeLabel}(${identifier})` : identifier;
|
|
726
743
|
}
|
|
727
744
|
function buildTrackerKey(sessionId, messageId, partId, metadata) {
|
|
728
745
|
const agentId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || metadata?.agentType?.trim();
|
|
@@ -784,6 +801,14 @@ function TpsMeterPlugin(context) {
|
|
|
784
801
|
let label = trackerState.label;
|
|
785
802
|
if (hasAgentMetadata) {
|
|
786
803
|
isSubagent = true;
|
|
804
|
+
const agentName = trackerState.agent?.type || trackerState.agentType || trackerState.agent?.name || sessionAgentNameCache.get(sessionId);
|
|
805
|
+
if (agentName) {
|
|
806
|
+
const rawId = trackerState.agentId || trackerState.agent?.id || trackerState.messageId;
|
|
807
|
+
const identifier = abbreviateId(rawId);
|
|
808
|
+
label = `${agentName}(${identifier})`;
|
|
809
|
+
} else if (!label.includes("(")) {
|
|
810
|
+
label = `agent(${label})`;
|
|
811
|
+
}
|
|
787
812
|
} else if (sessionId !== primarySessionId) {
|
|
788
813
|
isSubagent = true;
|
|
789
814
|
const agentName = sessionAgentNameCache.get(sessionId) || "bg";
|
|
@@ -803,6 +828,9 @@ function TpsMeterPlugin(context) {
|
|
|
803
828
|
}
|
|
804
829
|
}
|
|
805
830
|
entries.sort((a, b) => b.instantTps - a.instantTps);
|
|
831
|
+
if (entries.length > 0) {
|
|
832
|
+
logger.debug(`[TpsMeter] getAllActiveAgentsGlobally found ${entries.length} agents: ${entries.map((e) => `${e.label}@${e.instantTps.toFixed(1)}`).join(", ")}`);
|
|
833
|
+
}
|
|
806
834
|
return entries;
|
|
807
835
|
}
|
|
808
836
|
function isPrimarySessionActive(now) {
|
|
@@ -965,7 +993,9 @@ function TpsMeterPlugin(context) {
|
|
|
965
993
|
}
|
|
966
994
|
const metaLabel = messageTracker.label;
|
|
967
995
|
const metaInfo = messageTracker.agent || messageTracker.agentId || messageTracker.agentType ? `agent=${messageTracker.agent?.type ?? messageTracker.agentType ?? "?"} id=${messageTracker.agent?.id ?? messageTracker.agentId ?? "?"}` : "agent=none";
|
|
968
|
-
|
|
996
|
+
const trackerKey = messageTracker.key;
|
|
997
|
+
const isBg = sessionId !== primarySessionId;
|
|
998
|
+
logger.info(`[TpsMeter][Debug] tracker initialized ${metaLabel} (${metaInfo}) session=${sessionId} primary=${primarySessionId} isBg=${isBg} key=${trackerKey} message=${part.messageID} part=${part.id ?? "?"}`);
|
|
969
999
|
}
|
|
970
1000
|
messageTracker.lastUpdated = now;
|
|
971
1001
|
const tokenCount = tokenizer.count(delta);
|
|
@@ -1000,8 +1030,12 @@ function TpsMeterPlugin(context) {
|
|
|
1000
1030
|
const roleCache = messageRoleCache.get(info.sessionID) || new Map;
|
|
1001
1031
|
messageRoleCache.set(info.sessionID, roleCache);
|
|
1002
1032
|
roleCache.set(info.id, info.role);
|
|
1003
|
-
if (info.agent
|
|
1004
|
-
|
|
1033
|
+
if (info.agent || info.agentType) {
|
|
1034
|
+
const agentName = info.agent?.name || info.agent?.type || info.agentType || info.agent?.id;
|
|
1035
|
+
if (agentName && typeof agentName === "string") {
|
|
1036
|
+
sessionAgentNameCache.set(info.sessionID, agentName);
|
|
1037
|
+
logger.debug(`[TpsMeter] Cached agent name "${agentName}" for session ${info.sessionID}`);
|
|
1038
|
+
}
|
|
1005
1039
|
}
|
|
1006
1040
|
if (info.role === "assistant") {
|
|
1007
1041
|
const sessionId = info.sessionID;
|
package/dist/index.mjs
CHANGED
|
@@ -191,8 +191,21 @@ function createUIManager(client, config) {
|
|
|
191
191
|
}
|
|
192
192
|
function formatAgentLine(agent) {
|
|
193
193
|
const segments = [];
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
if (uiConfig.showInstant || uiConfig.showAverage) {
|
|
195
|
+
const tpsParts = [];
|
|
196
|
+
if (uiConfig.showInstant) {
|
|
197
|
+
tpsParts.push(`${agent.instantTps.toFixed(1)}`);
|
|
198
|
+
}
|
|
199
|
+
if (uiConfig.showAverage) {
|
|
200
|
+
tpsParts.push(`(avg ${agent.avgTps.toFixed(1)})`);
|
|
201
|
+
}
|
|
202
|
+
if (tpsParts.length > 0) {
|
|
203
|
+
segments.push(tpsParts.join(" "));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (uiConfig.showTotalTokens) {
|
|
207
|
+
segments.push(`tokens: ${formatNumberWithCommas(agent.totalTokens)}`);
|
|
208
|
+
}
|
|
196
209
|
if (uiConfig.showElapsed) {
|
|
197
210
|
segments.push(formatElapsedTime(agent.elapsedMs));
|
|
198
211
|
}
|
|
@@ -291,7 +304,11 @@ function createUIManager(client, config) {
|
|
|
291
304
|
function flushPendingUpdate() {
|
|
292
305
|
if (pendingState) {
|
|
293
306
|
const formatted = formatDisplay(pendingState);
|
|
294
|
-
|
|
307
|
+
let tpsForColor = pendingState.instantTps;
|
|
308
|
+
if (pendingState.totalTokens === 0 && pendingState.agents?.length) {
|
|
309
|
+
tpsForColor = Math.max(...pendingState.agents.map((a) => a.instantTps));
|
|
310
|
+
}
|
|
311
|
+
display(formatted, false, tpsForColor);
|
|
295
312
|
lastDisplayedState = { ...pendingState };
|
|
296
313
|
pendingState = null;
|
|
297
314
|
}
|
|
@@ -672,10 +689,10 @@ function TpsMeterPlugin(context) {
|
|
|
672
689
|
return `${id.slice(0, 4)}…`;
|
|
673
690
|
}
|
|
674
691
|
function buildAgentLabel(messageId, metadata) {
|
|
675
|
-
const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() ||
|
|
692
|
+
const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || null;
|
|
676
693
|
const rawId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || messageId;
|
|
677
694
|
const identifier = abbreviateId(rawId);
|
|
678
|
-
return `${typeLabel}(${identifier})
|
|
695
|
+
return typeLabel ? `${typeLabel}(${identifier})` : identifier;
|
|
679
696
|
}
|
|
680
697
|
function buildTrackerKey(sessionId, messageId, partId, metadata) {
|
|
681
698
|
const agentId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || metadata?.agentType?.trim();
|
|
@@ -737,6 +754,14 @@ function TpsMeterPlugin(context) {
|
|
|
737
754
|
let label = trackerState.label;
|
|
738
755
|
if (hasAgentMetadata) {
|
|
739
756
|
isSubagent = true;
|
|
757
|
+
const agentName = trackerState.agent?.type || trackerState.agentType || trackerState.agent?.name || sessionAgentNameCache.get(sessionId);
|
|
758
|
+
if (agentName) {
|
|
759
|
+
const rawId = trackerState.agentId || trackerState.agent?.id || trackerState.messageId;
|
|
760
|
+
const identifier = abbreviateId(rawId);
|
|
761
|
+
label = `${agentName}(${identifier})`;
|
|
762
|
+
} else if (!label.includes("(")) {
|
|
763
|
+
label = `agent(${label})`;
|
|
764
|
+
}
|
|
740
765
|
} else if (sessionId !== primarySessionId) {
|
|
741
766
|
isSubagent = true;
|
|
742
767
|
const agentName = sessionAgentNameCache.get(sessionId) || "bg";
|
|
@@ -756,6 +781,9 @@ function TpsMeterPlugin(context) {
|
|
|
756
781
|
}
|
|
757
782
|
}
|
|
758
783
|
entries.sort((a, b) => b.instantTps - a.instantTps);
|
|
784
|
+
if (entries.length > 0) {
|
|
785
|
+
logger.debug(`[TpsMeter] getAllActiveAgentsGlobally found ${entries.length} agents: ${entries.map((e) => `${e.label}@${e.instantTps.toFixed(1)}`).join(", ")}`);
|
|
786
|
+
}
|
|
759
787
|
return entries;
|
|
760
788
|
}
|
|
761
789
|
function isPrimarySessionActive(now) {
|
|
@@ -918,7 +946,9 @@ function TpsMeterPlugin(context) {
|
|
|
918
946
|
}
|
|
919
947
|
const metaLabel = messageTracker.label;
|
|
920
948
|
const metaInfo = messageTracker.agent || messageTracker.agentId || messageTracker.agentType ? `agent=${messageTracker.agent?.type ?? messageTracker.agentType ?? "?"} id=${messageTracker.agent?.id ?? messageTracker.agentId ?? "?"}` : "agent=none";
|
|
921
|
-
|
|
949
|
+
const trackerKey = messageTracker.key;
|
|
950
|
+
const isBg = sessionId !== primarySessionId;
|
|
951
|
+
logger.info(`[TpsMeter][Debug] tracker initialized ${metaLabel} (${metaInfo}) session=${sessionId} primary=${primarySessionId} isBg=${isBg} key=${trackerKey} message=${part.messageID} part=${part.id ?? "?"}`);
|
|
922
952
|
}
|
|
923
953
|
messageTracker.lastUpdated = now;
|
|
924
954
|
const tokenCount = tokenizer.count(delta);
|
|
@@ -953,8 +983,12 @@ function TpsMeterPlugin(context) {
|
|
|
953
983
|
const roleCache = messageRoleCache.get(info.sessionID) || new Map;
|
|
954
984
|
messageRoleCache.set(info.sessionID, roleCache);
|
|
955
985
|
roleCache.set(info.id, info.role);
|
|
956
|
-
if (info.agent
|
|
957
|
-
|
|
986
|
+
if (info.agent || info.agentType) {
|
|
987
|
+
const agentName = info.agent?.name || info.agent?.type || info.agentType || info.agent?.id;
|
|
988
|
+
if (agentName && typeof agentName === "string") {
|
|
989
|
+
sessionAgentNameCache.set(info.sessionID, agentName);
|
|
990
|
+
logger.debug(`[TpsMeter] Cached agent name "${agentName}" for session ${info.sessionID}`);
|
|
991
|
+
}
|
|
958
992
|
}
|
|
959
993
|
if (info.role === "assistant") {
|
|
960
994
|
const sessionId = info.sessionID;
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAmC,SAAS,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAGnH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,UAAU,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAmC,SAAS,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAGnH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,UAAU,CA+VZ;AAED,eAAe,eAAe,CAAC"}
|