opencode-tps-meter 0.1.7 → 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.
@@ -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,CA2wBxC;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"}
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
@@ -736,10 +736,10 @@ function TpsMeterPlugin(context) {
736
736
  return `${id.slice(0, 4)}…`;
737
737
  }
738
738
  function buildAgentLabel(messageId, metadata) {
739
- const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || "Subagent";
739
+ const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || null;
740
740
  const rawId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || messageId;
741
741
  const identifier = abbreviateId(rawId);
742
- return `${typeLabel}(${identifier})`;
742
+ return typeLabel ? `${typeLabel}(${identifier})` : identifier;
743
743
  }
744
744
  function buildTrackerKey(sessionId, messageId, partId, metadata) {
745
745
  const agentId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || metadata?.agentType?.trim();
@@ -801,6 +801,14 @@ function TpsMeterPlugin(context) {
801
801
  let label = trackerState.label;
802
802
  if (hasAgentMetadata) {
803
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
+ }
804
812
  } else if (sessionId !== primarySessionId) {
805
813
  isSubagent = true;
806
814
  const agentName = sessionAgentNameCache.get(sessionId) || "bg";
@@ -820,6 +828,9 @@ function TpsMeterPlugin(context) {
820
828
  }
821
829
  }
822
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
+ }
823
834
  return entries;
824
835
  }
825
836
  function isPrimarySessionActive(now) {
@@ -982,7 +993,9 @@ function TpsMeterPlugin(context) {
982
993
  }
983
994
  const metaLabel = messageTracker.label;
984
995
  const metaInfo = messageTracker.agent || messageTracker.agentId || messageTracker.agentType ? `agent=${messageTracker.agent?.type ?? messageTracker.agentType ?? "?"} id=${messageTracker.agent?.id ?? messageTracker.agentId ?? "?"}` : "agent=none";
985
- logger.info(`[TpsMeter][Debug] tracker initialized ${metaLabel} (${metaInfo}) session=${sessionId} message=${part.messageID} part=${part.id ?? "?"}`);
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 ?? "?"}`);
986
999
  }
987
1000
  messageTracker.lastUpdated = now;
988
1001
  const tokenCount = tokenizer.count(delta);
@@ -1021,6 +1034,7 @@ function TpsMeterPlugin(context) {
1021
1034
  const agentName = info.agent?.name || info.agent?.type || info.agentType || info.agent?.id;
1022
1035
  if (agentName && typeof agentName === "string") {
1023
1036
  sessionAgentNameCache.set(info.sessionID, agentName);
1037
+ logger.debug(`[TpsMeter] Cached agent name "${agentName}" for session ${info.sessionID}`);
1024
1038
  }
1025
1039
  }
1026
1040
  if (info.role === "assistant") {
package/dist/index.mjs CHANGED
@@ -689,10 +689,10 @@ function TpsMeterPlugin(context) {
689
689
  return `${id.slice(0, 4)}…`;
690
690
  }
691
691
  function buildAgentLabel(messageId, metadata) {
692
- const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || "Subagent";
692
+ const typeLabel = metadata?.agent?.type?.trim() || metadata?.agentType?.trim() || metadata?.agent?.name?.trim() || metadata?.name?.trim() || null;
693
693
  const rawId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || messageId;
694
694
  const identifier = abbreviateId(rawId);
695
- return `${typeLabel}(${identifier})`;
695
+ return typeLabel ? `${typeLabel}(${identifier})` : identifier;
696
696
  }
697
697
  function buildTrackerKey(sessionId, messageId, partId, metadata) {
698
698
  const agentId = metadata?.agentId?.trim() || metadata?.agent?.id?.trim() || metadata?.agentType?.trim();
@@ -754,6 +754,14 @@ function TpsMeterPlugin(context) {
754
754
  let label = trackerState.label;
755
755
  if (hasAgentMetadata) {
756
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
+ }
757
765
  } else if (sessionId !== primarySessionId) {
758
766
  isSubagent = true;
759
767
  const agentName = sessionAgentNameCache.get(sessionId) || "bg";
@@ -773,6 +781,9 @@ function TpsMeterPlugin(context) {
773
781
  }
774
782
  }
775
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
+ }
776
787
  return entries;
777
788
  }
778
789
  function isPrimarySessionActive(now) {
@@ -935,7 +946,9 @@ function TpsMeterPlugin(context) {
935
946
  }
936
947
  const metaLabel = messageTracker.label;
937
948
  const metaInfo = messageTracker.agent || messageTracker.agentId || messageTracker.agentType ? `agent=${messageTracker.agent?.type ?? messageTracker.agentType ?? "?"} id=${messageTracker.agent?.id ?? messageTracker.agentId ?? "?"}` : "agent=none";
938
- logger.info(`[TpsMeter][Debug] tracker initialized ${metaLabel} (${metaInfo}) session=${sessionId} message=${part.messageID} part=${part.id ?? "?"}`);
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 ?? "?"}`);
939
952
  }
940
953
  messageTracker.lastUpdated = now;
941
954
  const tokenCount = tokenizer.count(delta);
@@ -974,6 +987,7 @@ function TpsMeterPlugin(context) {
974
987
  const agentName = info.agent?.name || info.agent?.type || info.agentType || info.agent?.id;
975
988
  if (agentName && typeof agentName === "string") {
976
989
  sessionAgentNameCache.set(info.sessionID, agentName);
990
+ logger.debug(`[TpsMeter] Cached agent name "${agentName}" for session ${info.sessionID}`);
977
991
  }
978
992
  }
979
993
  if (info.role === "assistant") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-tps-meter",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Live tokens-per-second meter for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",