@tonyclaw/agent-inspector 2.1.8 → 2.1.9

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.
Files changed (29) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-CHkT7kun.js → CompareDrawer-Dv423tJJ.js} +1 -1
  3. package/.output/public/assets/{ProxyViewerContainer-BiZ2_tMC.js → ProxyViewerContainer-6mRRv0F1.js} +35 -35
  4. package/.output/public/assets/{ReplayDialog-C85cakjx.js → ReplayDialog-Bury80WZ.js} +1 -1
  5. package/.output/public/assets/{RequestAnatomy-Dn_pMMoX.js → RequestAnatomy-Bh07p6Yj.js} +1 -1
  6. package/.output/public/assets/{ResponseView-DzcxCUBf.js → ResponseView-C8_ZLXNd.js} +1 -1
  7. package/.output/public/assets/{StreamingChunkSequence-BamtvkgZ.js → StreamingChunkSequence-BKvT1lyU.js} +1 -1
  8. package/.output/public/assets/_sessionId-DnxfC3cB.js +1 -0
  9. package/.output/public/assets/index-B1naZUTb.js +1 -0
  10. package/.output/public/assets/index-CmtfjQPv.css +1 -0
  11. package/.output/public/assets/{main-Dc2qVWpb.js → main-D9YPHKL0.js} +2 -2
  12. package/.output/server/{_sessionId-BnimGger.mjs → _sessionId-D2z4VD7h.mjs} +3 -3
  13. package/.output/server/_ssr/{CompareDrawer-CwVFykVF.mjs → CompareDrawer-DNDkVh7T.mjs} +3 -3
  14. package/.output/server/_ssr/{ProxyViewerContainer-X3S2TWBJ.mjs → ProxyViewerContainer-CI-fjnaf.mjs} +87 -93
  15. package/.output/server/_ssr/{ReplayDialog-BxC12XUj.mjs → ReplayDialog-Dx4um0uS.mjs} +4 -4
  16. package/.output/server/_ssr/{RequestAnatomy-CWWS8Qh7.mjs → RequestAnatomy-CKPBN_PB.mjs} +3 -3
  17. package/.output/server/_ssr/{ResponseView-BewErHF-.mjs → ResponseView-3wkt24-z.mjs} +3 -3
  18. package/.output/server/_ssr/{StreamingChunkSequence-BlmCVryW.mjs → StreamingChunkSequence-CSK53g5a.mjs} +3 -3
  19. package/.output/server/_ssr/{index-5qbGuoFX.mjs → index-1uaJ_KuG.mjs} +3 -3
  20. package/.output/server/_ssr/index.mjs +2 -2
  21. package/.output/server/_ssr/{router-s78S54MU.mjs → router-KEX70DxH.mjs} +4 -4
  22. package/.output/server/{_tanstack-start-manifest_v-DTxpr3KE.mjs → _tanstack-start-manifest_v-VhueDt-w.mjs} +1 -1
  23. package/.output/server/index.mjs +63 -63
  24. package/package.json +1 -1
  25. package/src/components/proxy-viewer/ConversationGroup.tsx +3 -9
  26. package/src/components/proxy-viewer/ConversationHeader.tsx +65 -39
  27. package/.output/public/assets/_sessionId-xBBbFH1M.js +0 -1
  28. package/.output/public/assets/index-6udjwQO1.js +0 -1
  29. package/.output/public/assets/index-DP4NzCZ5.css +0 -1
@@ -198,7 +198,7 @@ function getResponse() {
198
198
  return event.res;
199
199
  }
200
200
  async function getStartManifest(matchedRoutes) {
201
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-DTxpr3KE.mjs");
201
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-VhueDt-w.mjs");
202
202
  const startManifest = tsrStartManifest();
203
203
  const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
204
204
  rootRoute.assets = rootRoute.assets || [];
@@ -776,7 +776,7 @@ let entriesPromise;
776
776
  let baseManifestPromise;
777
777
  let cachedFinalManifestPromise;
778
778
  async function loadEntries() {
779
- const routerEntry = await import("./router-s78S54MU.mjs").then((n) => n.y);
779
+ const routerEntry = await import("./router-KEX70DxH.mjs").then((n) => n.y);
780
780
  const startEntry = await import("./start-HYkvq4Ni.mjs");
781
781
  return { startEntry, routerEntry };
782
782
  }
@@ -65,7 +65,7 @@ import "../_libs/immediate.mjs";
65
65
  import "../_libs/setimmediate.mjs";
66
66
  import "../_libs/pako.mjs";
67
67
  const faviconSvg = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20role='img'%20aria-label='Agent%20Inspector'%3e%3cg%20fill='none'%20stroke='%23f59e0b'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20%3e%3cpath%20d='M5%2013%20C5%209%208%207%2012%207%20C16%207%2019%209%2019%2013%20C19%2016%2016%2018%2012%2018%20C8%2018%205%2016%205%2013%20Z'%20/%3e%3cpath%20d='M5%2011%20C3.5%209.5%201.5%2010%202%2012.5%20C2.5%2014%204%2013.5%205%2012.5'%20/%3e%3cpath%20d='M19%2011%20C20.5%209.5%2022.5%2010%2022%2012.5%20C21.5%2014%2020%2013.5%2019%2012.5'%20/%3e%3cline%20x1='10'%20y1='7'%20x2='9.5'%20y2='5'%20/%3e%3cline%20x1='14'%20y1='7'%20x2='14.5'%20y2='5'%20/%3e%3cline%20x1='6.5'%20y1='16'%20x2='4.5'%20y2='19.5'%20/%3e%3cline%20x1='9'%20y1='17.5'%20x2='8'%20y2='20.5'%20/%3e%3cline%20x1='15'%20y1='17.5'%20x2='16'%20y2='20.5'%20/%3e%3cline%20x1='17.5'%20y1='16'%20x2='19.5'%20y2='19.5'%20/%3e%3c/g%3e%3ccircle%20cx='9.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='14.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3c/svg%3e";
68
- const appCss = "/assets/index-DP4NzCZ5.css";
68
+ const appCss = "/assets/index-CmtfjQPv.css";
69
69
  const Route$D = createRootRoute({
70
70
  head: () => ({
71
71
  meta: [
@@ -108,7 +108,7 @@ function RootDocument({ children }) {
108
108
  ] })
109
109
  ] });
110
110
  }
111
- const $$splitComponentImporter$1 = () => import("./index-5qbGuoFX.mjs");
111
+ const $$splitComponentImporter$1 = () => import("./index-1uaJ_KuG.mjs");
112
112
  const Route$C = createFileRoute("/")({
113
113
  component: lazyRouteComponent($$splitComponentImporter$1, "component")
114
114
  });
@@ -151,7 +151,7 @@ function decodeSessionIdFromPath(encoded) {
151
151
  function getSessionPath(sessionId) {
152
152
  return `/session/${encodeSessionIdForPath(sessionId)}`;
153
153
  }
154
- const $$splitComponentImporter = () => import("../_sessionId-BnimGger.mjs");
154
+ const $$splitComponentImporter = () => import("../_sessionId-D2z4VD7h.mjs");
155
155
  const Route$B = createFileRoute("/session/$sessionId")({
156
156
  component: lazyRouteComponent($$splitComponentImporter, "component"),
157
157
  parseParams: (params) => ({
@@ -8345,7 +8345,7 @@ const Route$w = createFileRoute("/api/models")({
8345
8345
  }
8346
8346
  }
8347
8347
  });
8348
- const version = "2.1.8";
8348
+ const version = "2.1.9";
8349
8349
  const packageJson = {
8350
8350
  version
8351
8351
  };
@@ -1,4 +1,4 @@
1
- const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-Dc2qVWpb.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-6udjwQO1.js", "/assets/ProxyViewerContainer-BiZ2_tMC.js"] }, "/api/alerts": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.ts", "children": ["/api/alerts/summary"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/groups": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.ts", "children": ["/api/groups/$groupId"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/import", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/runs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.ts", "children": ["/api/runs/$runId"] }, "/api/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/sessions.ts" }, "/proxy/$": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/proxy/$.ts" }, "/session/$sessionId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", "assets": [], "preloads": ["/assets/_sessionId-xBBbFH1M.js", "/assets/ProxyViewerContainer-BiZ2_tMC.js"] }, "/api/alerts/summary": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.summary.ts" }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.paths.ts" }, "/api/groups/$groupId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.ts", "children": ["/api/groups/$groupId/evidence", "/api/groups/$groupId/sessions"] }, "/api/knowledge/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.ts", "children": ["/api/knowledge/candidates/$candidateId"] }, "/api/knowledge/project-context": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.project-context.ts" }, "/api/knowledge/search": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.search.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/body", "/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.import.ts" }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/model-metadata", "/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.scan.ts" }, "/api/runs/$runId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.ts", "children": ["/api/runs/$runId/evidence"] }, "/api/groups/$groupId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.evidence.ts" }, "/api/groups/$groupId/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.sessions.ts" }, "/api/knowledge/candidates/$candidateId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.ts", "children": ["/api/knowledge/candidates/$candidateId/promote"] }, "/api/logs/$id/body": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.body.ts" }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/model-metadata": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.model-metadata.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/runs/$runId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.evidence.ts" }, "/api/knowledge/candidates/$candidateId/promote": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.promote.ts" }, "/api/knowledge/sessions/$sessionId/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.sessions.$sessionId.candidates.ts" }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-Dc2qVWpb.js" });
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-D9YPHKL0.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-B1naZUTb.js", "/assets/ProxyViewerContainer-6mRRv0F1.js"] }, "/api/alerts": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.ts", "children": ["/api/alerts/summary"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/groups": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.ts", "children": ["/api/groups/$groupId"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/import", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/runs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.ts", "children": ["/api/runs/$runId"] }, "/api/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/sessions.ts" }, "/proxy/$": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/proxy/$.ts" }, "/session/$sessionId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", "assets": [], "preloads": ["/assets/_sessionId-DnxfC3cB.js", "/assets/ProxyViewerContainer-6mRRv0F1.js"] }, "/api/alerts/summary": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.summary.ts" }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.paths.ts" }, "/api/groups/$groupId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.ts", "children": ["/api/groups/$groupId/evidence", "/api/groups/$groupId/sessions"] }, "/api/knowledge/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.ts", "children": ["/api/knowledge/candidates/$candidateId"] }, "/api/knowledge/project-context": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.project-context.ts" }, "/api/knowledge/search": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.search.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/body", "/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.import.ts" }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/model-metadata", "/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.scan.ts" }, "/api/runs/$runId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.ts", "children": ["/api/runs/$runId/evidence"] }, "/api/groups/$groupId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.evidence.ts" }, "/api/groups/$groupId/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.sessions.ts" }, "/api/knowledge/candidates/$candidateId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.ts", "children": ["/api/knowledge/candidates/$candidateId/promote"] }, "/api/logs/$id/body": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.body.ts" }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/model-metadata": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.model-metadata.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/runs/$runId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.evidence.ts" }, "/api/knowledge/candidates/$candidateId/promote": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.promote.ts" }, "/api/knowledge/sessions/$sessionId/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.sessions.$sessionId.candidates.ts" }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-D9YPHKL0.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -38,100 +38,100 @@ const assets = {
38
38
  "/assets/alibaba-TTwafVwX.svg": {
39
39
  "type": "image/svg+xml",
40
40
  "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
41
- "mtime": "2026-07-03T09:33:24.945Z",
41
+ "mtime": "2026-07-04T00:54:26.556Z",
42
42
  "size": 5915,
43
43
  "path": "../public/assets/alibaba-TTwafVwX.svg"
44
44
  },
45
- "/assets/CompareDrawer-CHkT7kun.js": {
45
+ "/assets/index-B1naZUTb.js": {
46
46
  "type": "text/javascript; charset=utf-8",
47
- "etag": '"49e8-ea90TaFpJKvOKTWB3A9k3v477F0"',
48
- "mtime": "2026-07-03T09:33:24.945Z",
47
+ "etag": '"74-tzPWfvaUiuFwgKXNXiL4LcRaAFI"',
48
+ "mtime": "2026-07-04T00:54:26.557Z",
49
+ "size": 116,
50
+ "path": "../public/assets/index-B1naZUTb.js"
51
+ },
52
+ "/assets/CompareDrawer-Dv423tJJ.js": {
53
+ "type": "text/javascript; charset=utf-8",
54
+ "etag": '"49e8-TSZbb1eWEdFb85PKhSEXYbbVCBE"',
55
+ "mtime": "2026-07-04T00:54:26.557Z",
49
56
  "size": 18920,
50
- "path": "../public/assets/CompareDrawer-CHkT7kun.js"
57
+ "path": "../public/assets/CompareDrawer-Dv423tJJ.js"
51
58
  },
52
- "/assets/index-6udjwQO1.js": {
59
+ "/assets/main-D9YPHKL0.js": {
53
60
  "type": "text/javascript; charset=utf-8",
54
- "etag": '"74-XJGRbdsMyUNr6iuuxyAUOgYigBM"',
55
- "mtime": "2026-07-03T09:33:24.945Z",
56
- "size": 116,
57
- "path": "../public/assets/index-6udjwQO1.js"
61
+ "etag": '"512fd-jIWSAS9ea1n9kQFW/kam92D34sA"',
62
+ "mtime": "2026-07-04T00:54:26.557Z",
63
+ "size": 332541,
64
+ "path": "../public/assets/main-D9YPHKL0.js"
58
65
  },
59
- "/assets/ReplayDialog-C85cakjx.js": {
66
+ "/assets/minimax-BPMzvuL-.jpeg": {
67
+ "type": "image/jpeg",
68
+ "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
69
+ "mtime": "2026-07-04T00:54:26.556Z",
70
+ "size": 6918,
71
+ "path": "../public/assets/minimax-BPMzvuL-.jpeg"
72
+ },
73
+ "/assets/ReplayDialog-Bury80WZ.js": {
60
74
  "type": "text/javascript; charset=utf-8",
61
- "etag": '"318c-vAwQmt7Jrw2Ccv3JVKeaufPedtU"',
62
- "mtime": "2026-07-03T09:33:24.945Z",
75
+ "etag": '"318c-0i8bnxhd3pzDMUukiXSDZY5M7Qw"',
76
+ "mtime": "2026-07-04T00:54:26.557Z",
63
77
  "size": 12684,
64
- "path": "../public/assets/ReplayDialog-C85cakjx.js"
78
+ "path": "../public/assets/ReplayDialog-Bury80WZ.js"
65
79
  },
66
- "/assets/index-DP4NzCZ5.css": {
80
+ "/assets/index-CmtfjQPv.css": {
67
81
  "type": "text/css; charset=utf-8",
68
- "etag": '"1eb57-LKub3VNb71B8B8BuFk7Jbg4bu4U"',
69
- "mtime": "2026-07-03T09:33:24.945Z",
70
- "size": 125783,
71
- "path": "../public/assets/index-DP4NzCZ5.css"
82
+ "etag": '"1e968-15dLAIs72Zhi4Qe/CRWBTVZ7MtI"',
83
+ "mtime": "2026-07-04T00:54:26.557Z",
84
+ "size": 125288,
85
+ "path": "../public/assets/index-CmtfjQPv.css"
72
86
  },
73
- "/assets/RequestAnatomy-Dn_pMMoX.js": {
87
+ "/assets/StreamingChunkSequence-BKvT1lyU.js": {
74
88
  "type": "text/javascript; charset=utf-8",
75
- "etag": '"43f2-Br1+MFnPjqpNFT3QOes+E1kpqUg"',
76
- "mtime": "2026-07-03T09:33:24.945Z",
77
- "size": 17394,
78
- "path": "../public/assets/RequestAnatomy-Dn_pMMoX.js"
89
+ "etag": '"d5c-xa+o4zXI8e1woKlWGCgT7/DuJq4"',
90
+ "mtime": "2026-07-04T00:54:26.557Z",
91
+ "size": 3420,
92
+ "path": "../public/assets/StreamingChunkSequence-BKvT1lyU.js"
79
93
  },
80
94
  "/assets/zhipuai-BPNAnxo-.svg": {
81
95
  "type": "image/svg+xml",
82
96
  "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
83
- "mtime": "2026-07-03T09:33:24.945Z",
97
+ "mtime": "2026-07-04T00:54:26.556Z",
84
98
  "size": 11256,
85
99
  "path": "../public/assets/zhipuai-BPNAnxo-.svg"
86
100
  },
87
- "/assets/StreamingChunkSequence-BamtvkgZ.js": {
88
- "type": "text/javascript; charset=utf-8",
89
- "etag": '"d5c-EHYm0PUGN59p/24la2rj1XuB7wk"',
90
- "mtime": "2026-07-03T09:33:24.945Z",
91
- "size": 3420,
92
- "path": "../public/assets/StreamingChunkSequence-BamtvkgZ.js"
93
- },
94
- "/assets/minimax-BPMzvuL-.jpeg": {
95
- "type": "image/jpeg",
96
- "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
97
- "mtime": "2026-07-03T09:33:24.943Z",
98
- "size": 6918,
99
- "path": "../public/assets/minimax-BPMzvuL-.jpeg"
100
- },
101
- "/assets/ResponseView-DzcxCUBf.js": {
101
+ "/assets/ResponseView-C8_ZLXNd.js": {
102
102
  "type": "text/javascript; charset=utf-8",
103
- "etag": '"30d2-8DsNs/G/6A8XI5njIKBI2cyKmwo"',
104
- "mtime": "2026-07-03T09:33:24.945Z",
103
+ "etag": '"30d2-BVPH1jFGs5fw/aao2uLZ3nWgW5w"',
104
+ "mtime": "2026-07-04T00:54:26.557Z",
105
105
  "size": 12498,
106
- "path": "../public/assets/ResponseView-DzcxCUBf.js"
107
- },
108
- "/assets/_sessionId-xBBbFH1M.js": {
109
- "type": "text/javascript; charset=utf-8",
110
- "etag": '"d2-CHcCRvKHuwSj93KZ1JZPJ7wgIkA"',
111
- "mtime": "2026-07-03T09:33:24.945Z",
112
- "size": 210,
113
- "path": "../public/assets/_sessionId-xBBbFH1M.js"
114
- },
115
- "/assets/main-Dc2qVWpb.js": {
116
- "type": "text/javascript; charset=utf-8",
117
- "etag": '"512fd-Db3WHW7AQfz2p877CuP7TCMZFMM"',
118
- "mtime": "2026-07-03T09:33:24.945Z",
119
- "size": 332541,
120
- "path": "../public/assets/main-Dc2qVWpb.js"
106
+ "path": "../public/assets/ResponseView-C8_ZLXNd.js"
121
107
  },
122
108
  "/assets/qwen-CONDcHqt.png": {
123
109
  "type": "image/png",
124
110
  "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
125
- "mtime": "2026-07-03T09:33:24.945Z",
111
+ "mtime": "2026-07-04T00:54:26.556Z",
126
112
  "size": 357059,
127
113
  "path": "../public/assets/qwen-CONDcHqt.png"
128
114
  },
129
- "/assets/ProxyViewerContainer-BiZ2_tMC.js": {
115
+ "/assets/RequestAnatomy-Bh07p6Yj.js": {
116
+ "type": "text/javascript; charset=utf-8",
117
+ "etag": '"43f2-UKwLewimsBW+zUG8HdQDtSRzUQY"',
118
+ "mtime": "2026-07-04T00:54:26.557Z",
119
+ "size": 17394,
120
+ "path": "../public/assets/RequestAnatomy-Bh07p6Yj.js"
121
+ },
122
+ "/assets/_sessionId-DnxfC3cB.js": {
123
+ "type": "text/javascript; charset=utf-8",
124
+ "etag": '"d2-Fpr2/Guc8c6dfwLfE4wCS6IVAvc"',
125
+ "mtime": "2026-07-04T00:54:26.557Z",
126
+ "size": 210,
127
+ "path": "../public/assets/_sessionId-DnxfC3cB.js"
128
+ },
129
+ "/assets/ProxyViewerContainer-6mRRv0F1.js": {
130
130
  "type": "text/javascript; charset=utf-8",
131
- "etag": '"c1b75-bJvU9Gi6Po3q5eYkZnZ2lL/6tyc"',
132
- "mtime": "2026-07-03T09:33:24.945Z",
133
- "size": 793461,
134
- "path": "../public/assets/ProxyViewerContainer-BiZ2_tMC.js"
131
+ "etag": '"c1bf1-3elwI22StilJhJBeZ8i+EjpaJ2g"',
132
+ "mtime": "2026-07-04T00:54:26.557Z",
133
+ "size": 793585,
134
+ "path": "../public/assets/ProxyViewerContainer-6mRRv0F1.js"
135
135
  }
136
136
  };
137
137
  function readAsset(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/agent-inspector",
3
- "version": "2.1.8",
3
+ "version": "2.1.9",
4
4
  "type": "module",
5
5
  "description": "Agent observability and knowledge capture layer for AI coding tools.",
6
6
  "license": "MIT",
@@ -2,12 +2,7 @@ import { useState, memo, useCallback, useEffect, useMemo } from "react";
2
2
  import type { JSX } from "react";
3
3
  import type { TimeDisplayFormat } from "../../lib/runtimeConfig";
4
4
  import type { CapturedLog } from "../../contracts";
5
- import {
6
- ConversationHeader,
7
- getGroupApiFormat,
8
- hasMixedApiFormat,
9
- type ConversationGroupData,
10
- } from "./ConversationHeader";
5
+ import { ConversationHeader, type ConversationGroupData } from "./ConversationHeader";
11
6
  import { detectProvider } from "../providers/ProviderLogo";
12
7
  import { TurnGroup } from "./TurnGroup";
13
8
  import { AgentTraceSummary } from "./AgentTraceSummary";
@@ -113,7 +108,6 @@ export const ConversationGroup = memo(function ({
113
108
  const providers = useMemo(() => collectProviders(group.logs), [group.logs]);
114
109
  const startTime = group.logs[0]?.timestamp ?? new Date().toISOString();
115
110
  const endTime = group.logs[group.logs.length - 1]?.timestamp ?? new Date().toISOString();
116
- const mixed = hasMixedApiFormat(group.logs);
117
111
  const isLoading = group.logs.some((log) => log.responseStatus === null);
118
112
  const showTraceRollupMetrics = standalone && !hasPinnedSessionContext;
119
113
 
@@ -145,13 +139,13 @@ export const ConversationGroup = memo(function ({
145
139
  totalCalls={group.logs.length}
146
140
  totalInputTokens={stats.totalInputTokens}
147
141
  totalOutputTokens={stats.totalOutputTokens}
148
- apiFormat={getGroupApiFormat(group.logs)}
149
142
  expanded={expanded}
150
143
  onToggle={() => setExpanded(!expanded)}
151
- hideApiFormat={mixed}
152
144
  providers={providers}
153
145
  isLoading={isLoading}
154
146
  userAgent={group.logs[0]?.userAgent ?? null}
147
+ clientPid={group.logs[0]?.clientPid ?? null}
148
+ clientProjectFolder={group.logs[0]?.clientProjectFolder ?? null}
155
149
  timeDisplayFormat={timeDisplayFormat}
156
150
  onClear={() => onClearGroup(group.logs.map((l) => l.id))}
157
151
  />
@@ -16,18 +16,11 @@ import type { TimeDisplayFormat } from "../../lib/runtimeConfig";
16
16
  import { formatTimestampRange } from "../../lib/timeDisplay";
17
17
  import { cn, formatTokens } from "../../lib/utils";
18
18
  import type { CapturedLog } from "../../contracts";
19
- import { Badge } from "../ui/badge";
20
19
  import { ConfirmDialog } from "../ui/confirm-dialog";
21
20
  import { ProviderLogo, type Provider } from "../providers/ProviderLogo";
22
21
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip";
23
22
  import { resolveLogFormat } from "./log-formats";
24
23
 
25
- const API_FORMAT_LABELS: Record<"anthropic" | "openai" | "unknown", string> = {
26
- anthropic: "Anthropic",
27
- openai: "OpenAI",
28
- unknown: "Unknown",
29
- };
30
-
31
24
  export type ConversationHeaderProps = {
32
25
  conversationId: string;
33
26
  startTime: string;
@@ -35,12 +28,8 @@ export type ConversationHeaderProps = {
35
28
  totalCalls: number;
36
29
  totalInputTokens: number;
37
30
  totalOutputTokens: number;
38
- apiFormat: "anthropic" | "openai" | "unknown";
39
31
  expanded: boolean;
40
32
  onToggle: () => void;
41
- /** Hide the API format badge on the header (used when the group contains
42
- * mixed formats - the per-log badges are shown instead). */
43
- hideApiFormat?: boolean;
44
33
  /** Unique providers whose models appear in this group, with their distinct
45
34
  * model names. Rendered as a row of provider logos next to the header —
46
35
  * one per provider so model-switching inside a single session is visible
@@ -51,6 +40,16 @@ export type ConversationHeaderProps = {
51
40
  isLoading?: boolean;
52
41
  /** User-Agent string from the first log in the group. */
53
42
  userAgent?: string | null;
43
+ /** Process ID of the client that issued the first log in the group, used
44
+ * to render the session identifier. When `conversationId` is a real
45
+ * session id this is shown as a secondary pill; when `conversationId` is
46
+ * a fallback (no sessionId was emitted by the client, e.g. `PID:123|/cwd`)
47
+ * the PID is shown as the primary identifier instead. */
48
+ clientPid?: number | null;
49
+ /** Project folder of the client that issued the first log in the group.
50
+ * Only shown as a secondary label when the session lacks a real
51
+ * `sessionId` (the same fallback path used for `clientPid`). */
52
+ clientProjectFolder?: string | null;
54
53
  /** Controls whether timestamps render as compact local time or full ISO strings. */
55
54
  timeDisplayFormat: TimeDisplayFormat;
56
55
  /** Clear all logs in this group. After confirmation the parent removes them
@@ -65,13 +64,13 @@ export function ConversationHeader({
65
64
  totalCalls,
66
65
  totalInputTokens,
67
66
  totalOutputTokens,
68
- apiFormat,
69
67
  expanded,
70
68
  onToggle,
71
- hideApiFormat = false,
72
69
  providers,
73
70
  isLoading = false,
74
71
  userAgent,
72
+ clientPid,
73
+ clientProjectFolder,
75
74
  timeDisplayFormat,
76
75
  onClear,
77
76
  }: ConversationHeaderProps): JSX.Element {
@@ -122,17 +121,59 @@ export function ConversationHeader({
122
121
  <ChevronRight className="size-4 text-muted-foreground shrink-0" />
123
122
  )}
124
123
 
125
- {/* Conversation ID */}
126
- <span
127
- className="text-purple-400/90 font-mono text-xs font-semibold shrink-0"
128
- title={conversationId}
129
- >
130
- {conversationId.startsWith("PID:") || conversationId.includes("|")
131
- ? conversationId
132
- : conversationId.length > 24
133
- ? conversationId.slice(0, 12) + "..." + conversationId.slice(-12)
134
- : conversationId}
135
- </span>
124
+ {/* Session identifier.
125
+ - Real session id (e.g. `sess_abc123...`) → render the id with the
126
+ standard ellipsis truncation; show `PID <n>` as a secondary pill
127
+ when we know the originating process.
128
+ - Fallback id (no sessionId was emitted) → the conversationId is
129
+ already a synthesized `PID:<n>|<folder>` marker; render the PID
130
+ as the primary identifier (purple, same weight as a real id)
131
+ and the project folder as a secondary muted label. */}
132
+ {conversationId.startsWith("PID:") || conversationId.includes("|") ? (
133
+ <>
134
+ {clientPid !== null && clientPid !== undefined ? (
135
+ <span
136
+ className="text-purple-400/90 font-mono text-xs font-semibold shrink-0"
137
+ title={`PID ${clientPid}`}
138
+ >
139
+ PID {clientPid}
140
+ </span>
141
+ ) : (
142
+ <span className="text-purple-400/90 font-mono text-xs font-semibold shrink-0">
143
+ {conversationId}
144
+ </span>
145
+ )}
146
+ {clientProjectFolder !== null &&
147
+ clientProjectFolder !== undefined &&
148
+ clientProjectFolder !== "" && (
149
+ <span
150
+ className="text-muted-foreground text-xs font-mono truncate max-w-[200px] shrink-0"
151
+ title={clientProjectFolder}
152
+ >
153
+ {clientProjectFolder}
154
+ </span>
155
+ )}
156
+ </>
157
+ ) : (
158
+ <>
159
+ <span
160
+ className="text-purple-400/90 font-mono text-xs font-semibold shrink-0"
161
+ title={conversationId}
162
+ >
163
+ {conversationId.length > 24
164
+ ? conversationId.slice(0, 12) + "..." + conversationId.slice(-12)
165
+ : conversationId}
166
+ </span>
167
+ {clientPid !== null && clientPid !== undefined && (
168
+ <span
169
+ className="text-muted-foreground text-xs font-mono tabular-nums shrink-0 px-1.5 py-0.5 rounded border border-border bg-muted/40"
170
+ title={`Client process ID ${clientPid}`}
171
+ >
172
+ PID {clientPid}
173
+ </span>
174
+ )}
175
+ </>
176
+ )}
136
177
 
137
178
  {/* User-Agent */}
138
179
  {userAgent !== null && userAgent !== undefined && userAgent !== "" && (
@@ -145,21 +186,6 @@ export function ConversationHeader({
145
186
  </span>
146
187
  )}
147
188
 
148
- {/* API Format Badge */}
149
- {!hideApiFormat && (
150
- <Badge
151
- variant="outline"
152
- className={cn(
153
- "text-[10px] px-1.5 py-0 h-5 font-mono shrink-0",
154
- apiFormat === "openai" && "border-blue-500/40 text-blue-400",
155
- apiFormat === "anthropic" && "border-orange-500/40 text-orange-400",
156
- apiFormat === "unknown" && "border-muted text-muted-foreground",
157
- )}
158
- >
159
- {API_FORMAT_LABELS[apiFormat]}
160
- </Badge>
161
- )}
162
-
163
189
  {/* Provider logos — one per unique provider used in this session. When
164
190
  a session switched models mid-stream (e.g. claude-3-5 → deepseek-v4)
165
191
  multiple logos appear side-by-side; tooltip lists every distinct
@@ -1 +0,0 @@
1
- import{R as s,j as e}from"./main-Dc2qVWpb.js";import{P as i}from"./ProxyViewerContainer-BiZ2_tMC.js";function t(){const{sessionId:o}=s.useParams();return e.jsx(i,{initialSessionId:o},o)}export{t as component};
@@ -1 +0,0 @@
1
- import{P as o}from"./ProxyViewerContainer-BiZ2_tMC.js";import"./main-Dc2qVWpb.js";const r=o;export{r as component};