@tonyclaw/agent-inspector 2.1.13 → 2.1.14

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 (81) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/CompareDrawer-DjgjIFx7.js +1 -0
  3. package/.output/public/assets/ProxyViewerContainer-CWUQZLYy.js +106 -0
  4. package/.output/public/assets/{ReplayDialog-sBA1KAYD.js → ReplayDialog-CU0Tbb2c.js} +1 -1
  5. package/.output/public/assets/{RequestAnatomy-BjlBT-Cy.js → RequestAnatomy-BNahe83D.js} +1 -1
  6. package/.output/public/assets/ResponseView-DSOnGqi6.js +3 -0
  7. package/.output/public/assets/{StreamingChunkSequence-D2_SMhlE.js → StreamingChunkSequence-BEKTDklB.js} +1 -1
  8. package/.output/public/assets/_sessionId-Cif8JZdn.js +1 -0
  9. package/.output/public/assets/index-DWOkqdCa.js +14 -0
  10. package/.output/public/assets/index-D_WfwzUi.js +1 -0
  11. package/.output/public/assets/index-DtLuQrs0.css +1 -0
  12. package/.output/public/assets/json-viewer-C2JpgcW0.js +1 -0
  13. package/.output/public/assets/{main-Dtspb4Ui.js → main-CSONBwwn.js} +2 -2
  14. package/.output/server/_libs/lucide-react.mjs +20 -20
  15. package/.output/server/_libs/react-markdown.mjs +90 -2
  16. package/.output/server/{_sessionId-CXDcLuvi.mjs → _sessionId-CPAa37n5.mjs} +6 -57
  17. package/.output/server/_ssr/{CompareDrawer-CMoCAoeq.mjs → CompareDrawer-ceW5VxMo.mjs} +17 -62
  18. package/.output/server/_ssr/{ProxyViewerContainer-BW2vVCBN.mjs → ProxyViewerContainer-CDfEE_w-.mjs} +872 -688
  19. package/.output/server/_ssr/{ReplayDialog-ChXL1t8H.mjs → ReplayDialog-V0s_eEbR.mjs} +8 -59
  20. package/.output/server/_ssr/{RequestAnatomy-DtKzIlfU.mjs → RequestAnatomy-f1ccwR9d.mjs} +6 -57
  21. package/.output/server/_ssr/{ResponseView-B5I8drzc.mjs → ResponseView-BIRrqG4H.mjs} +138 -60
  22. package/.output/server/_ssr/{StreamingChunkSequence-DvwjQNcO.mjs → StreamingChunkSequence-V3JFjCgX.mjs} +13 -58
  23. package/.output/server/_ssr/{index-D_ZHtRfl.mjs → index-DsykulzS.mjs} +6 -57
  24. package/.output/server/_ssr/index.mjs +2 -2
  25. package/.output/server/_ssr/json-viewer-Dcnm0Ivf.mjs +478 -0
  26. package/.output/server/_ssr/{router-DhL9Wp3N.mjs → router-4bdm6Mt2.mjs} +674 -173
  27. package/.output/server/{_tanstack-start-manifest_v-BHgoAmxZ.mjs → _tanstack-start-manifest_v-Xp4CO64V.mjs} +1 -1
  28. package/.output/server/index.mjs +76 -62
  29. package/package.json +1 -1
  30. package/src/components/ProxyViewerContainer.tsx +25 -17
  31. package/src/components/providers/ImportWizardDialog.tsx +7 -1
  32. package/src/components/providers/ProviderCard.tsx +10 -1
  33. package/src/components/providers/ProviderForm.tsx +157 -41
  34. package/src/components/providers/ProvidersPanel.tsx +5 -1
  35. package/src/components/proxy-viewer/AnswerMarkdown.tsx +8 -3
  36. package/src/components/proxy-viewer/CompareDrawer.tsx +20 -6
  37. package/src/components/proxy-viewer/ConversationGroup.tsx +11 -15
  38. package/src/components/proxy-viewer/LogEntry.tsx +31 -11
  39. package/src/components/proxy-viewer/LogEntryHeader.tsx +111 -40
  40. package/src/components/proxy-viewer/RequestToolsPanel.tsx +19 -13
  41. package/src/components/proxy-viewer/StreamingChunkSequence.tsx +9 -3
  42. package/src/components/proxy-viewer/TurnGroup.tsx +53 -7
  43. package/src/components/proxy-viewer/TurnGroupList.tsx +153 -0
  44. package/src/components/proxy-viewer/anatomy/sessionContextSummary.ts +74 -2
  45. package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +13 -7
  46. package/src/components/proxy-viewer/formats/index.tsx +10 -3
  47. package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +185 -17
  48. package/src/components/proxy-viewer/log-formats/openai.ts +107 -15
  49. package/src/components/proxy-viewer/logFocus.ts +15 -2
  50. package/src/components/proxy-viewer/requestTools.ts +7 -3
  51. package/src/components/proxy-viewer/viewerState.ts +72 -3
  52. package/src/components/ui/json-viewer-bulk.ts +41 -6
  53. package/src/components/ui/json-viewer.tsx +9 -8
  54. package/src/contracts/index.ts +15 -1
  55. package/src/contracts/openai.ts +94 -0
  56. package/src/lib/providerContract.ts +1 -0
  57. package/src/lib/providerModelMetadata.ts +7 -1
  58. package/src/lib/stopReason.ts +12 -0
  59. package/src/lib/upstreamUrl.ts +46 -0
  60. package/src/mcp/previewExtractor.ts +73 -3
  61. package/src/mcp/server.ts +2 -0
  62. package/src/mcp/toolHandlers.ts +2 -0
  63. package/src/proxy/constants.ts +2 -0
  64. package/src/proxy/formats/openai/handler.ts +40 -9
  65. package/src/proxy/formats/openai/index.ts +7 -0
  66. package/src/proxy/formats/openai/schemas.ts +15 -1
  67. package/src/proxy/formats/openai/stream.ts +529 -135
  68. package/src/proxy/formats/registry.ts +9 -1
  69. package/src/proxy/providerImporters.ts +45 -5
  70. package/src/proxy/providers.ts +31 -11
  71. package/src/proxy/schemas.ts +6 -0
  72. package/src/proxy/toolSchemaWarnings.ts +25 -3
  73. package/src/proxy/upstream.ts +18 -37
  74. package/src/routes/api/providers.$providerId.ts +1 -0
  75. package/src/routes/api/providers.ts +2 -0
  76. package/.output/public/assets/CompareDrawer-Cz_1vIpR.js +0 -1
  77. package/.output/public/assets/ProxyViewerContainer-7QSiluMf.js +0 -117
  78. package/.output/public/assets/ResponseView-PtEKzml9.js +0 -1
  79. package/.output/public/assets/_sessionId-DZfB4ruK.js +0 -1
  80. package/.output/public/assets/index-B-QQLbpz.js +0 -1
  81. package/.output/public/assets/index-CmtfjQPv.css +0 -1
@@ -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-Dtspb4Ui.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-B-QQLbpz.js", "/assets/ProxyViewerContainer-7QSiluMf.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-DZfB4ruK.js", "/assets/ProxyViewerContainer-7QSiluMf.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-Dtspb4Ui.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-CSONBwwn.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-D_WfwzUi.js", "/assets/ProxyViewerContainer-CWUQZLYy.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-Cif8JZdn.js", "/assets/ProxyViewerContainer-CWUQZLYy.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-CSONBwwn.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -38,100 +38,114 @@ const assets = {
38
38
  "/assets/alibaba-TTwafVwX.svg": {
39
39
  "type": "image/svg+xml",
40
40
  "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
41
- "mtime": "2026-07-04T05:36:48.779Z",
41
+ "mtime": "2026-07-04T07:52:09.683Z",
42
42
  "size": 5915,
43
43
  "path": "../public/assets/alibaba-TTwafVwX.svg"
44
44
  },
45
- "/assets/CompareDrawer-Cz_1vIpR.js": {
45
+ "/assets/CompareDrawer-DjgjIFx7.js": {
46
46
  "type": "text/javascript; charset=utf-8",
47
- "etag": '"49e8-IQAhbCzceTeYxZxKJ3H1D4vN5lI"',
48
- "mtime": "2026-07-04T05:36:48.779Z",
49
- "size": 18920,
50
- "path": "../public/assets/CompareDrawer-Cz_1vIpR.js"
47
+ "etag": '"4abc-0btVE6dbx7Y766NO7PWvF1M1iGU"',
48
+ "mtime": "2026-07-04T07:52:09.684Z",
49
+ "size": 19132,
50
+ "path": "../public/assets/CompareDrawer-DjgjIFx7.js"
51
51
  },
52
- "/assets/index-B-QQLbpz.js": {
53
- "type": "text/javascript; charset=utf-8",
54
- "etag": '"74-5Zl3E5e37SnRK730IWxTDix9Cew"',
55
- "mtime": "2026-07-04T05:36:48.779Z",
56
- "size": 116,
57
- "path": "../public/assets/index-B-QQLbpz.js"
58
- },
59
- "/assets/index-CmtfjQPv.css": {
52
+ "/assets/index-DtLuQrs0.css": {
60
53
  "type": "text/css; charset=utf-8",
61
- "etag": '"1e968-15dLAIs72Zhi4Qe/CRWBTVZ7MtI"',
62
- "mtime": "2026-07-04T05:36:48.779Z",
63
- "size": 125288,
64
- "path": "../public/assets/index-CmtfjQPv.css"
54
+ "etag": '"21518-poRED+tYeP5Qvm+PlJc9ML357lc"',
55
+ "mtime": "2026-07-04T07:52:09.684Z",
56
+ "size": 136472,
57
+ "path": "../public/assets/index-DtLuQrs0.css"
65
58
  },
66
- "/assets/ReplayDialog-sBA1KAYD.js": {
59
+ "/assets/main-CSONBwwn.js": {
67
60
  "type": "text/javascript; charset=utf-8",
68
- "etag": '"318c-/uOpj+S8IOxd8JplqqWJ9qOWH3I"',
69
- "mtime": "2026-07-04T05:36:48.779Z",
70
- "size": 12684,
71
- "path": "../public/assets/ReplayDialog-sBA1KAYD.js"
61
+ "etag": '"512fd-Pu+R/3IFrhjx0jWsnGjOgCHJZcU"',
62
+ "mtime": "2026-07-04T07:52:09.684Z",
63
+ "size": 332541,
64
+ "path": "../public/assets/main-CSONBwwn.js"
72
65
  },
73
- "/assets/StreamingChunkSequence-D2_SMhlE.js": {
66
+ "/assets/json-viewer-C2JpgcW0.js": {
74
67
  "type": "text/javascript; charset=utf-8",
75
- "etag": '"d5c-k/lB4x1Vah+nlw2D1J4Zn+Hqm/o"',
76
- "mtime": "2026-07-04T05:36:48.781Z",
77
- "size": 3420,
78
- "path": "../public/assets/StreamingChunkSequence-D2_SMhlE.js"
68
+ "etag": '"1ae6-ksk8GSdXp7U3yDJGEPMSct9P4TY"',
69
+ "mtime": "2026-07-04T07:52:09.684Z",
70
+ "size": 6886,
71
+ "path": "../public/assets/json-viewer-C2JpgcW0.js"
79
72
  },
80
- "/assets/RequestAnatomy-BjlBT-Cy.js": {
73
+ "/assets/index-DWOkqdCa.js": {
81
74
  "type": "text/javascript; charset=utf-8",
82
- "etag": '"43f2-aSr44l/LuOOCwx52V5TxpIleLAM"',
83
- "mtime": "2026-07-04T05:36:48.779Z",
84
- "size": 17394,
85
- "path": "../public/assets/RequestAnatomy-BjlBT-Cy.js"
75
+ "etag": '"1cd2c-CZN4gATtN3nYQYYeMagog4AYNmY"',
76
+ "mtime": "2026-07-04T07:52:09.684Z",
77
+ "size": 118060,
78
+ "path": "../public/assets/index-DWOkqdCa.js"
79
+ },
80
+ "/assets/index-D_WfwzUi.js": {
81
+ "type": "text/javascript; charset=utf-8",
82
+ "etag": '"74-XQVEvYcBdAT9Y7puJJV+qSF283E"',
83
+ "mtime": "2026-07-04T07:52:09.684Z",
84
+ "size": 116,
85
+ "path": "../public/assets/index-D_WfwzUi.js"
86
86
  },
87
87
  "/assets/minimax-BPMzvuL-.jpeg": {
88
88
  "type": "image/jpeg",
89
89
  "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
90
- "mtime": "2026-07-04T05:36:48.779Z",
90
+ "mtime": "2026-07-04T07:52:09.680Z",
91
91
  "size": 6918,
92
92
  "path": "../public/assets/minimax-BPMzvuL-.jpeg"
93
93
  },
94
- "/assets/main-Dtspb4Ui.js": {
94
+ "/assets/RequestAnatomy-BNahe83D.js": {
95
95
  "type": "text/javascript; charset=utf-8",
96
- "etag": '"512fd-xu5QhSDM+B1+HCE/S55XRSP7mzM"',
97
- "mtime": "2026-07-04T05:36:48.779Z",
98
- "size": 332541,
99
- "path": "../public/assets/main-Dtspb4Ui.js"
96
+ "etag": '"43f2-wVlE0gwF6MdEMb1Gfjgt0becSBc"',
97
+ "mtime": "2026-07-04T07:52:09.684Z",
98
+ "size": 17394,
99
+ "path": "../public/assets/RequestAnatomy-BNahe83D.js"
100
100
  },
101
- "/assets/zhipuai-BPNAnxo-.svg": {
102
- "type": "image/svg+xml",
103
- "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
104
- "mtime": "2026-07-04T05:36:48.779Z",
105
- "size": 11256,
106
- "path": "../public/assets/zhipuai-BPNAnxo-.svg"
101
+ "/assets/ReplayDialog-CU0Tbb2c.js": {
102
+ "type": "text/javascript; charset=utf-8",
103
+ "etag": '"318c-P6+sTbtOxV0saSnvK6W3UXJF9EY"',
104
+ "mtime": "2026-07-04T07:52:09.684Z",
105
+ "size": 12684,
106
+ "path": "../public/assets/ReplayDialog-CU0Tbb2c.js"
107
+ },
108
+ "/assets/ResponseView-DSOnGqi6.js": {
109
+ "type": "text/javascript; charset=utf-8",
110
+ "etag": '"3fbb-EOmqliYF05GO5dHV6He+ei/tpn0"',
111
+ "mtime": "2026-07-04T07:52:09.684Z",
112
+ "size": 16315,
113
+ "path": "../public/assets/ResponseView-DSOnGqi6.js"
114
+ },
115
+ "/assets/_sessionId-Cif8JZdn.js": {
116
+ "type": "text/javascript; charset=utf-8",
117
+ "etag": '"d2-iFcuyyuI3PczaYjsggRN0OVh2TM"',
118
+ "mtime": "2026-07-04T07:52:09.684Z",
119
+ "size": 210,
120
+ "path": "../public/assets/_sessionId-Cif8JZdn.js"
107
121
  },
108
- "/assets/ResponseView-PtEKzml9.js": {
122
+ "/assets/StreamingChunkSequence-BEKTDklB.js": {
109
123
  "type": "text/javascript; charset=utf-8",
110
- "etag": '"30d2-PgPHao5hEC1x+egdBk+5Bh5Ykuc"',
111
- "mtime": "2026-07-04T05:36:48.781Z",
112
- "size": 12498,
113
- "path": "../public/assets/ResponseView-PtEKzml9.js"
124
+ "etag": '"dd6-PQOSC6/UIv02KydJR9fuolk+zmw"',
125
+ "mtime": "2026-07-04T07:52:09.684Z",
126
+ "size": 3542,
127
+ "path": "../public/assets/StreamingChunkSequence-BEKTDklB.js"
114
128
  },
115
129
  "/assets/qwen-CONDcHqt.png": {
116
130
  "type": "image/png",
117
131
  "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
118
- "mtime": "2026-07-04T05:36:48.779Z",
132
+ "mtime": "2026-07-04T07:52:09.683Z",
119
133
  "size": 357059,
120
134
  "path": "../public/assets/qwen-CONDcHqt.png"
121
135
  },
122
- "/assets/_sessionId-DZfB4ruK.js": {
123
- "type": "text/javascript; charset=utf-8",
124
- "etag": '"d2-MK+vvObaH7Ulj3vGGu5D9UigZf8"',
125
- "mtime": "2026-07-04T05:36:48.779Z",
126
- "size": 210,
127
- "path": "../public/assets/_sessionId-DZfB4ruK.js"
136
+ "/assets/zhipuai-BPNAnxo-.svg": {
137
+ "type": "image/svg+xml",
138
+ "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
139
+ "mtime": "2026-07-04T07:52:09.683Z",
140
+ "size": 11256,
141
+ "path": "../public/assets/zhipuai-BPNAnxo-.svg"
128
142
  },
129
- "/assets/ProxyViewerContainer-7QSiluMf.js": {
143
+ "/assets/ProxyViewerContainer-CWUQZLYy.js": {
130
144
  "type": "text/javascript; charset=utf-8",
131
- "etag": '"c1d99-OTDVU1kkKfVtUjde6m6DdNv1knE"',
132
- "mtime": "2026-07-04T05:36:48.779Z",
133
- "size": 794009,
134
- "path": "../public/assets/ProxyViewerContainer-7QSiluMf.js"
145
+ "etag": '"a7f3e-1JdLbEI7EAIFprw9s8hx8mvoRps"',
146
+ "mtime": "2026-07-04T07:52:09.684Z",
147
+ "size": 687934,
148
+ "path": "../public/assets/ProxyViewerContainer-CWUQZLYy.js"
135
149
  }
136
150
  };
137
151
  function readAsset(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/agent-inspector",
3
- "version": "2.1.13",
3
+ "version": "2.1.14",
4
4
  "type": "module",
5
5
  "description": "Agent observability and knowledge capture layer for AI coding tools.",
6
6
  "license": "MIT",
@@ -1,4 +1,4 @@
1
- import { useState, useEffect, useCallback, useRef, useMemo, type JSX } from "react";
1
+ import { useState, useEffect, useCallback, useRef, useMemo, useTransition, type JSX } from "react";
2
2
  import { z } from "zod";
3
3
  import { CapturedLogSchema, type CapturedLog } from "../contracts";
4
4
  import { fetchJson } from "../lib/apiClient";
@@ -109,7 +109,7 @@ function filterLogs(
109
109
  });
110
110
  }
111
111
 
112
- const DEBOUNCE_MS = 50;
112
+ const DEBOUNCE_MS = 100;
113
113
  const HASH_SCROLL_ATTEMPTS = 12;
114
114
  const HASH_HIGHLIGHT_MS = 1800;
115
115
  const MAX_CLIENT_LOGS = 500;
@@ -190,6 +190,7 @@ export function ProxyViewerContainer({
190
190
  const [logPage, setLogPage] = useState<LogCursorPage | null>(null);
191
191
  const [sessionPageLoading, setSessionPageLoading] = useState(initialSessionId !== undefined);
192
192
  const [sessionMemberships, setSessionMemberships] = useState<SessionMembershipEvidence[]>([]);
193
+ const [, startLogTransition] = useTransition();
193
194
  const eventSourceRef = useRef<EventSource | null>(null);
194
195
  const reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
195
196
  const handledHashRef = useRef<string | null>(null);
@@ -217,23 +218,30 @@ export function ProxyViewerContainer({
217
218
  pendingUpdatesRef.current = [];
218
219
  if (updates.length === 0) return;
219
220
 
220
- setAllLogs((prev) => {
221
- let next = prev;
222
- for (const log of updates) {
223
- const idx = logIndexRef.current.get(log.id);
224
- if (idx !== undefined) {
225
- // Replace existing entry
226
- next = [...next.slice(0, idx), log, ...next.slice(idx + 1)];
227
- } else {
228
- logIndexRef.current.set(log.id, next.length);
229
- next = [...next, log];
221
+ startLogTransition(() => {
222
+ setAllLogs((prev) => {
223
+ const next = [...prev];
224
+ for (const log of updates) {
225
+ const indexedPosition = logIndexRef.current.get(log.id);
226
+ if (indexedPosition !== undefined && next[indexedPosition]?.id === log.id) {
227
+ next[indexedPosition] = log;
228
+ continue;
229
+ }
230
+
231
+ const existingPosition = next.findIndex((entry) => entry.id === log.id);
232
+ if (existingPosition >= 0) {
233
+ next[existingPosition] = log;
234
+ continue;
235
+ }
236
+
237
+ next.push(log);
230
238
  }
231
- }
232
- next = trimClientLogs(next);
233
- logIndexRef.current = buildLogIndex(next);
234
- return next;
239
+ const trimmed = trimClientLogs(next);
240
+ logIndexRef.current = buildLogIndex(trimmed);
241
+ return trimmed;
242
+ });
235
243
  });
236
- }, []);
244
+ }, [startLogTransition]);
237
245
 
238
246
  const scheduleUpdate = useCallback(
239
247
  (log: CapturedLog) => {
@@ -67,6 +67,7 @@ const ExternalProviderSchema = z.object({
67
67
  format: z.enum(["anthropic", "openai"]),
68
68
  anthropicBaseUrl: z.string(),
69
69
  openaiBaseUrl: z.string(),
70
+ openaiResponsesBaseUrl: z.string().optional().default(""),
70
71
  models: z.array(z.string()),
71
72
  sourceTool: z.enum(["claude-code", "opencode", "mimo-code"]),
72
73
  alreadyExists: z.boolean(),
@@ -186,6 +187,7 @@ export function ImportWizardDialog({
186
187
  format: p.format,
187
188
  anthropicBaseUrl: p.anthropicBaseUrl,
188
189
  openaiBaseUrl: p.openaiBaseUrl,
190
+ openaiResponsesBaseUrl: p.openaiResponsesBaseUrl,
189
191
  models: p.models,
190
192
  createdAt: now,
191
193
  updatedAt: now,
@@ -298,7 +300,11 @@ export function ImportWizardDialog({
298
300
  {p.models.length > 4 ? ` +${p.models.length - 4} more` : ""}
299
301
  </div>
300
302
  <div className="text-xs text-muted-foreground mt-0.5 truncate">
301
- {p.format === "anthropic" ? p.anthropicBaseUrl : p.openaiBaseUrl}
303
+ {p.format === "anthropic"
304
+ ? p.anthropicBaseUrl
305
+ : p.openaiResponsesBaseUrl !== ""
306
+ ? p.openaiResponsesBaseUrl
307
+ : p.openaiBaseUrl}
302
308
  </div>
303
309
  <div className="text-xs text-muted-foreground mt-0.5 font-mono">
304
310
  {p.apiKey.length > 8
@@ -594,13 +594,22 @@ export function ProviderCard({
594
594
  {provider.openaiBaseUrl !== undefined && provider.openaiBaseUrl !== "" && (
595
595
  <div className="flex min-w-0 flex-col gap-2">
596
596
  <div className="min-w-0 text-xs text-muted-foreground">
597
- <span className="font-medium">OpenAI:</span>{" "}
597
+ <span className="font-medium">OpenAI Chat:</span>{" "}
598
598
  <span className="truncate">{provider.openaiBaseUrl}</span>
599
599
  </div>
600
600
  {testResults !== undefined && <ProviderFormatTestStatus results={testResults.openai} />}
601
601
  </div>
602
602
  )}
603
603
 
604
+ {provider.openaiResponsesBaseUrl !== undefined && provider.openaiResponsesBaseUrl !== "" && (
605
+ <div className="flex min-w-0 flex-col gap-2">
606
+ <div className="min-w-0 text-xs text-muted-foreground">
607
+ <span className="font-medium">OpenAI Responses:</span>{" "}
608
+ <span className="truncate">{provider.openaiResponsesBaseUrl}</span>
609
+ </div>
610
+ </div>
611
+ )}
612
+
604
613
  {testResults?.testedAt !== undefined && (
605
614
  <div className="text-xs text-muted-foreground flex items-center gap-1">
606
615
  <Clock className="size-3" />