@tonyclaw/agent-inspector 2.0.33 → 2.0.35

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 (54) hide show
  1. package/.output/cli.js +19 -1
  2. package/.output/nitro.json +1 -1
  3. package/.output/public/assets/{CompareDrawer-ClTJxdoU.js → CompareDrawer-Cin0_f71.js} +1 -1
  4. package/.output/public/assets/{ProxyViewerContainer--Pes01q2.js → ProxyViewerContainer-BVlcRirf.js} +9 -9
  5. package/.output/public/assets/{ReplayDialog-iuzfh85b.js → ReplayDialog-C6nOMhjx.js} +1 -1
  6. package/.output/public/assets/{RequestAnatomy-FZnnP9Gx.js → RequestAnatomy-DenWbdqV.js} +1 -1
  7. package/.output/public/assets/{ResponseView-MZ6ZWvbL.js → ResponseView-BsalZiZ5.js} +1 -1
  8. package/.output/public/assets/{StreamingChunkSequence-B8mZMdzs.js → StreamingChunkSequence-Cla2X13P.js} +1 -1
  9. package/.output/public/assets/_sessionId-DkhHqlzB.js +1 -0
  10. package/.output/public/assets/index-AiQY20d7.js +1 -0
  11. package/.output/public/assets/index-BfGJEb-2.css +1 -0
  12. package/.output/public/assets/{main-B797Hnge.js → main-eD8hEOHT.js} +2 -2
  13. package/.output/server/_libs/ajv.mjs +827 -6191
  14. package/.output/server/_libs/cookie-es.mjs +7 -21
  15. package/.output/server/_libs/h3-v2.mjs +18 -7
  16. package/.output/server/_libs/json-schema-traverse.mjs +1 -90
  17. package/.output/server/_libs/seroval-plugins.mjs +5 -5
  18. package/.output/server/_libs/seroval.mjs +606 -596
  19. package/.output/server/_libs/srvx.mjs +10 -5
  20. package/.output/server/_libs/tanstack__history.mjs +55 -38
  21. package/.output/server/_libs/tanstack__router-core.mjs +4366 -4075
  22. package/.output/server/{_sessionId-DD05qd8d.mjs → _sessionId-URSu2XsA.mjs} +4 -4
  23. package/.output/server/_ssr/{CompareDrawer-oGOG5-kQ.mjs → CompareDrawer-BbBPKdVc.mjs} +4 -4
  24. package/.output/server/_ssr/{ProxyViewerContainer-Bbl5tqT1.mjs → ProxyViewerContainer-DtQxtOpi.mjs} +15 -7
  25. package/.output/server/_ssr/{ReplayDialog-BegfwWIy.mjs → ReplayDialog-BU20cMGd.mjs} +5 -5
  26. package/.output/server/_ssr/{RequestAnatomy-BW_X2DyZ.mjs → RequestAnatomy-a5ySAAG1.mjs} +4 -4
  27. package/.output/server/_ssr/{ResponseView-Bx_uJ4RS.mjs → ResponseView-CA_QM1fM.mjs} +4 -4
  28. package/.output/server/_ssr/{StreamingChunkSequence-CQp5QQnB.mjs → StreamingChunkSequence-DJjITqM7.mjs} +4 -4
  29. package/.output/server/_ssr/{index-ODSKeDD8.mjs → index-DIFzLUAV.mjs} +4 -4
  30. package/.output/server/_ssr/index.mjs +20 -11
  31. package/.output/server/_ssr/{router-QcI4GOvo.mjs → router-aVeuM_1d.mjs} +5193 -5269
  32. package/.output/server/{_tanstack-start-manifest_v-dEujKJ3-.mjs → _tanstack-start-manifest_v-BNlafGbl.mjs} +1 -1
  33. package/.output/server/index.mjs +65 -65
  34. package/README.md +28 -0
  35. package/package.json +6 -2
  36. package/src/cli/templates/codex-skill-onboard.ts +19 -1
  37. package/src/components/providers/SettingsDialog.tsx +10 -0
  38. package/src/lib/groupContract.ts +0 -2
  39. package/src/lib/runContract.ts +0 -3
  40. package/src/mcp/server.ts +101 -164
  41. package/src/mcp/toolHandlers.ts +80 -177
  42. package/src/routes/api/groups.$groupId.evidence.ts +14 -33
  43. package/src/routes/api/groups.$groupId.sessions.ts +9 -9
  44. package/src/routes/api/groups.$groupId.ts +19 -13
  45. package/src/routes/api/groups.ts +3 -3
  46. package/src/routes/api/runs.$runId.evidence.ts +14 -21
  47. package/src/routes/api/runs.$runId.ts +9 -9
  48. package/src/routes/api/runs.ts +9 -5
  49. package/src/services/groups.ts +110 -0
  50. package/src/services/result.ts +17 -0
  51. package/src/services/runs.ts +76 -0
  52. package/.output/public/assets/_sessionId-Bc26Rfxs.js +0 -1
  53. package/.output/public/assets/index-C6AiRPsJ.js +0 -1
  54. package/.output/public/assets/index-C_8PFAm2.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/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-B797Hnge.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-C6AiRPsJ.js", "/assets/ProxyViewerContainer--Pes01q2.js"] }, "/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/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-Bc26Rfxs.js", "/assets/ProxyViewerContainer--Pes01q2.js"] }, "/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/chunks", "/api/logs/$id/replay"] }, "/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/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-B797Hnge.js" });
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/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-eD8hEOHT.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-AiQY20d7.js", "/assets/ProxyViewerContainer-BVlcRirf.js"] }, "/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/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-DkhHqlzB.js", "/assets/ProxyViewerContainer-BVlcRirf.js"] }, "/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/chunks", "/api/logs/$id/replay"] }, "/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/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-eD8hEOHT.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -35,103 +35,103 @@ const headers = ((m) => function headersRouteRule(event) {
35
35
  }
36
36
  });
37
37
  const assets = {
38
- "/assets/index-C6AiRPsJ.js": {
39
- "type": "text/javascript; charset=utf-8",
40
- "etag": '"74-a6DN9m2CAFwv76/yc/R0OhyV/6c"',
41
- "mtime": "2026-07-01T02:54:30.449Z",
42
- "size": 116,
43
- "path": "../public/assets/index-C6AiRPsJ.js"
44
- },
45
38
  "/assets/alibaba-TTwafVwX.svg": {
46
39
  "type": "image/svg+xml",
47
40
  "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
48
- "mtime": "2026-07-01T02:54:30.449Z",
41
+ "mtime": "2026-07-01T04:41:43.991Z",
49
42
  "size": 5915,
50
43
  "path": "../public/assets/alibaba-TTwafVwX.svg"
51
44
  },
45
+ "/assets/CompareDrawer-Cin0_f71.js": {
46
+ "type": "text/javascript; charset=utf-8",
47
+ "etag": '"49fe-SMhlBvC9BPW+osRHPbYsYl/bBwg"',
48
+ "mtime": "2026-07-01T04:41:43.993Z",
49
+ "size": 18942,
50
+ "path": "../public/assets/CompareDrawer-Cin0_f71.js"
51
+ },
52
+ "/assets/index-AiQY20d7.js": {
53
+ "type": "text/javascript; charset=utf-8",
54
+ "etag": '"74-rfFHE/No9yqZRRcPoLF42xPy938"',
55
+ "mtime": "2026-07-01T04:41:43.992Z",
56
+ "size": 116,
57
+ "path": "../public/assets/index-AiQY20d7.js"
58
+ },
52
59
  "/assets/minimax-BPMzvuL-.jpeg": {
53
60
  "type": "image/jpeg",
54
61
  "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
55
- "mtime": "2026-07-01T02:54:30.449Z",
62
+ "mtime": "2026-07-01T04:41:43.992Z",
56
63
  "size": 6918,
57
64
  "path": "../public/assets/minimax-BPMzvuL-.jpeg"
58
65
  },
59
- "/assets/index-C_8PFAm2.css": {
66
+ "/assets/main-eD8hEOHT.js": {
67
+ "type": "text/javascript; charset=utf-8",
68
+ "etag": '"51726-UvOePLuurqvt/vZXR1E13qM+9Tw"',
69
+ "mtime": "2026-07-01T04:41:43.992Z",
70
+ "size": 333606,
71
+ "path": "../public/assets/main-eD8hEOHT.js"
72
+ },
73
+ "/assets/index-BfGJEb-2.css": {
60
74
  "type": "text/css; charset=utf-8",
61
- "etag": '"1ac9e-HNLu+/ctAdlujlPfCr3RCZb1vrw"',
62
- "mtime": "2026-07-01T02:54:30.449Z",
63
- "size": 109726,
64
- "path": "../public/assets/index-C_8PFAm2.css"
75
+ "etag": '"1acc9-JrjZs7fIRGuBr66cqP9miLHcLKk"',
76
+ "mtime": "2026-07-01T04:41:43.992Z",
77
+ "size": 109769,
78
+ "path": "../public/assets/index-BfGJEb-2.css"
65
79
  },
66
- "/assets/ReplayDialog-iuzfh85b.js": {
80
+ "/assets/ReplayDialog-C6nOMhjx.js": {
67
81
  "type": "text/javascript; charset=utf-8",
68
- "etag": '"318c-XcEmd05uEcAHlG9titFXbo+gCrY"',
69
- "mtime": "2026-07-01T02:54:30.450Z",
82
+ "etag": '"318c-RCD6AdXOMKbFy3+xkjBhcj2usiU"',
83
+ "mtime": "2026-07-01T04:41:43.993Z",
70
84
  "size": 12684,
71
- "path": "../public/assets/ReplayDialog-iuzfh85b.js"
72
- },
73
- "/assets/CompareDrawer-ClTJxdoU.js": {
74
- "type": "text/javascript; charset=utf-8",
75
- "etag": '"49fe-p99Ki2esmkY4icjU0xIHKhhNuIk"',
76
- "mtime": "2026-07-01T02:54:30.450Z",
77
- "size": 18942,
78
- "path": "../public/assets/CompareDrawer-ClTJxdoU.js"
85
+ "path": "../public/assets/ReplayDialog-C6nOMhjx.js"
79
86
  },
80
- "/assets/RequestAnatomy-FZnnP9Gx.js": {
87
+ "/assets/RequestAnatomy-DenWbdqV.js": {
81
88
  "type": "text/javascript; charset=utf-8",
82
- "etag": '"4485-pgwLUhuIJkkKYqkanchZKSnuAT0"',
83
- "mtime": "2026-07-01T02:54:30.450Z",
89
+ "etag": '"4485-IHvZwvctovAf9yd6eKLRdmz7p8U"',
90
+ "mtime": "2026-07-01T04:41:43.993Z",
84
91
  "size": 17541,
85
- "path": "../public/assets/RequestAnatomy-FZnnP9Gx.js"
92
+ "path": "../public/assets/RequestAnatomy-DenWbdqV.js"
86
93
  },
87
- "/assets/main-B797Hnge.js": {
94
+ "/assets/ResponseView-BsalZiZ5.js": {
88
95
  "type": "text/javascript; charset=utf-8",
89
- "etag": '"51726-NY9MyReO0iwQh08rCm1upy3DdpM"',
90
- "mtime": "2026-07-01T02:54:30.449Z",
91
- "size": 333606,
92
- "path": "../public/assets/main-B797Hnge.js"
93
- },
94
- "/assets/ResponseView-MZ6ZWvbL.js": {
95
- "type": "text/javascript; charset=utf-8",
96
- "etag": '"30d0-nvVFmB+Fh0jpFdfRsVGSbhaM0AQ"',
97
- "mtime": "2026-07-01T02:54:30.450Z",
96
+ "etag": '"30d0-E5hbwCjhHnCoy+Fe7tsz+y/Avvw"',
97
+ "mtime": "2026-07-01T04:41:43.993Z",
98
98
  "size": 12496,
99
- "path": "../public/assets/ResponseView-MZ6ZWvbL.js"
99
+ "path": "../public/assets/ResponseView-BsalZiZ5.js"
100
100
  },
101
- "/assets/StreamingChunkSequence-B8mZMdzs.js": {
101
+ "/assets/StreamingChunkSequence-Cla2X13P.js": {
102
102
  "type": "text/javascript; charset=utf-8",
103
- "etag": '"d57-VG77bGn8l1PydHDayZdXVGDb5U8"',
104
- "mtime": "2026-07-01T02:54:30.450Z",
103
+ "etag": '"d57-f5xxcgGcUU3SGwuaaf3usFI7n70"',
104
+ "mtime": "2026-07-01T04:41:43.993Z",
105
105
  "size": 3415,
106
- "path": "../public/assets/StreamingChunkSequence-B8mZMdzs.js"
106
+ "path": "../public/assets/StreamingChunkSequence-Cla2X13P.js"
107
107
  },
108
- "/assets/_sessionId-Bc26Rfxs.js": {
108
+ "/assets/_sessionId-DkhHqlzB.js": {
109
109
  "type": "text/javascript; charset=utf-8",
110
- "etag": '"d2-DJ+ArTTuJAjf6O/vpm4IpJ4fTdU"',
111
- "mtime": "2026-07-01T02:54:30.449Z",
110
+ "etag": '"d2-FVtNmnT1a1xh4oOUYbKZyU2dqr0"',
111
+ "mtime": "2026-07-01T04:41:43.992Z",
112
112
  "size": 210,
113
- "path": "../public/assets/_sessionId-Bc26Rfxs.js"
114
- },
115
- "/assets/qwen-CONDcHqt.png": {
116
- "type": "image/png",
117
- "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
118
- "mtime": "2026-07-01T02:54:30.449Z",
119
- "size": 357059,
120
- "path": "../public/assets/qwen-CONDcHqt.png"
113
+ "path": "../public/assets/_sessionId-DkhHqlzB.js"
121
114
  },
122
115
  "/assets/zhipuai-BPNAnxo-.svg": {
123
116
  "type": "image/svg+xml",
124
117
  "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
125
- "mtime": "2026-07-01T02:54:30.449Z",
118
+ "mtime": "2026-07-01T04:41:43.992Z",
126
119
  "size": 11256,
127
120
  "path": "../public/assets/zhipuai-BPNAnxo-.svg"
128
121
  },
129
- "/assets/ProxyViewerContainer--Pes01q2.js": {
122
+ "/assets/qwen-CONDcHqt.png": {
123
+ "type": "image/png",
124
+ "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
125
+ "mtime": "2026-07-01T04:41:43.992Z",
126
+ "size": 357059,
127
+ "path": "../public/assets/qwen-CONDcHqt.png"
128
+ },
129
+ "/assets/ProxyViewerContainer-BVlcRirf.js": {
130
130
  "type": "text/javascript; charset=utf-8",
131
- "etag": '"b565e-t/KBWxv0P/4ezDh3bFUBZTEtCzI"',
132
- "mtime": "2026-07-01T02:54:30.450Z",
133
- "size": 743006,
134
- "path": "../public/assets/ProxyViewerContainer--Pes01q2.js"
131
+ "etag": '"b580f-9fZACETDim2/zxYIGCgAOnb4iZk"',
132
+ "mtime": "2026-07-01T04:41:43.993Z",
133
+ "size": 743439,
134
+ "path": "../public/assets/ProxyViewerContainer-BVlcRirf.js"
135
135
  }
136
136
  };
137
137
  function readAsset(id) {
@@ -159,7 +159,7 @@ const EncodingMap = {
159
159
  br: ".br",
160
160
  zstd: ".zst"
161
161
  };
162
- const _6PJ5fH = defineHandler((event) => {
162
+ const _bTSMt_ = defineHandler((event) => {
163
163
  if (event.req.method && !METHODS.has(event.req.method)) {
164
164
  return;
165
165
  }
@@ -231,15 +231,15 @@ const findRouteRules = /* @__PURE__ */ (() => {
231
231
  return r;
232
232
  };
233
233
  })();
234
- const _lazy_L6WeRa = defineLazyEventHandler(() => import("./_chunks/ssr-renderer.mjs"));
234
+ const _lazy_OSYDIZ = defineLazyEventHandler(() => import("./_chunks/ssr-renderer.mjs"));
235
235
  const findRoute = /* @__PURE__ */ (() => {
236
- const data = { route: "/**", handler: _lazy_L6WeRa };
236
+ const data = { route: "/**", handler: _lazy_OSYDIZ };
237
237
  return ((_m, p) => {
238
238
  return { data, params: { "_": p.slice(1) } };
239
239
  });
240
240
  })();
241
241
  const globalMiddleware = [
242
- toEventHandler(_6PJ5fH)
242
+ toEventHandler(_bTSMt_)
243
243
  ].filter(Boolean);
244
244
  const errorHandler$1 = (error, event) => {
245
245
  const res = defaultHandler(error, event);
package/README.md CHANGED
@@ -23,6 +23,18 @@ npm install -g @tonyclaw/agent-inspector
23
23
  agent-inspector
24
24
  ```
25
25
 
26
+ Optional MCP-first companion package:
27
+
28
+ ```bash
29
+ npm install -g @tonyclaw/agent-inspector-mcp
30
+ agent-inspector-mcp doctor
31
+ ```
32
+
33
+ `@tonyclaw/agent-inspector` runs the local UI, proxy, REST API, storage, and built-in
34
+ `/api/mcp` endpoint. `@tonyclaw/agent-inspector-mcp` is the enhancement package for
35
+ stdio-first MCP clients and setup automation; it bridges to the local Inspector endpoint without
36
+ moving your captured evidence out of the machine.
37
+
26
38
  On Windows, the npm install step creates a local `agent-inspector.exe` runtime
27
39
  from the user's installed Node.js runtime. The long-running server process
28
40
  therefore appears in Task Manager as **Agent Inspector <version>** with the
@@ -151,6 +163,22 @@ Agent Inspector exposes MCP at:
151
163
  http://localhost:25947/api/mcp
152
164
  ```
153
165
 
166
+ Coding agents can connect to this MCP surface directly over Streamable HTTP, or through the
167
+ companion stdio bridge:
168
+
169
+ ```bash
170
+ agent-inspector-mcp stdio
171
+ agent-inspector-mcp config codex
172
+ ```
173
+
174
+ The companion package is useful for MCP clients that expect a local command. Direct HTTP remains the
175
+ shortest path for clients that support Streamable HTTP.
176
+
177
+ Use only one transport for the same Inspector instance. If the MCP client supports Streamable HTTP,
178
+ configure `http://localhost:25947/api/mcp` directly. If it only supports stdio, configure
179
+ `agent-inspector-mcp stdio`; that command is only a bridge to `/api/mcp`, not a second Inspector
180
+ server.
181
+
154
182
  Coding agents can use the MCP surface in three ways:
155
183
 
156
184
  - Tools: perform actions such as listing logs, reading bounded log details, testing providers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/agent-inspector",
3
- "version": "2.0.33",
3
+ "version": "2.0.35",
4
4
  "type": "module",
5
5
  "description": "Agent observability and knowledge capture layer for AI coding tools.",
6
6
  "license": "MIT",
@@ -10,6 +10,9 @@
10
10
  "url": "git+https://gitcode.com/TonyClaw/agent-inspector.git"
11
11
  },
12
12
  "homepage": "https://gitcode.com/TonyClaw/agent-inspector#readme",
13
+ "workspaces": [
14
+ "packages/*"
15
+ ],
13
16
  "bugs": {
14
17
  "url": "https://gitcode.com/TonyClaw/agent-inspector/issues"
15
18
  },
@@ -47,8 +50,9 @@
47
50
  "scripts": {
48
51
  "dev": "vite dev",
49
52
  "start": "node .output/cli.js",
50
- "build": "vite build && bun build:cli",
53
+ "build": "vite build && bun build:cli && bun build:mcp",
51
54
  "build:cli": "npx esbuild src/cli.ts --bundle --platform=node --target=node18 --format=esm --outfile=.output/cli.js",
55
+ "build:mcp": "npx esbuild packages/agent-inspector-mcp/src/cli.ts --bundle --platform=node --target=node20 --format=esm --outfile=packages/agent-inspector-mcp/dist/cli.js",
52
56
  "postinstall": "node scripts/setup-windows-runtime.mjs && node scripts/setup-agent-skills.mjs",
53
57
  "prepublishOnly": "npm run build",
54
58
  "typecheck": "tsc --noEmit",
@@ -45,6 +45,13 @@ http://localhost:${port}/api/mcp
45
45
  This skill is installed at \`~/.codex/skills/agent-inspector-onboard/SKILL.md\`.
46
46
  Codex user-level configuration lives in \`~/.codex/config.toml\`. Codex supports streamable HTTP MCP servers with \`mcp_servers.<id>.url\`, so no extra stdio bridge package is needed.
47
47
 
48
+ Use exactly one MCP transport for the same Inspector instance:
49
+
50
+ - Streamable HTTP MCP: configure \`url = "http://localhost:${port}/api/mcp"\`.
51
+ - Stdio-only MCP clients: configure \`agent-inspector-mcp stdio --url http://localhost:${port}/api/mcp\`.
52
+
53
+ Do not configure both transports in the same MCP client, or the client may show duplicate Inspector tools.
54
+
48
55
  Keep this setup local and explicit. Agent Inspector MCP tools can read captured requests and provider configuration, so only wire it into trusted local Codex environments.
49
56
 
50
57
  Agent Inspector starts in **Simple mode** by default. Keep Simple mode for everyday capture: requests, responses, tools, timing, and token usage stay available without retaining heavier raw headers, raw response, or detailed SSE chunk artifacts. Use **Full mode** only when the user is debugging provider headers, raw response payloads, or SSE stream details.
@@ -106,7 +113,7 @@ If the health check fails, show only the relevant error and ask whether to diagn
106
113
 
107
114
  Add an \`agent-inspector\` MCP server to \`~/.codex/config.toml\`. Preserve the user's existing config and merge the table instead of replacing the file.
108
115
 
109
- Recommended user-level config:
116
+ Recommended user-level config for Codex builds that support Streamable HTTP MCP:
110
117
 
111
118
  \`\`\`toml
112
119
  [mcp_servers.agent-inspector]
@@ -115,6 +122,16 @@ startup_timeout_sec = 30
115
122
  tool_timeout_sec = 60
116
123
  \`\`\`
117
124
 
125
+ Fallback config for a stdio-only MCP client:
126
+
127
+ \`\`\`toml
128
+ [mcp_servers.agent-inspector]
129
+ command = "agent-inspector-mcp"
130
+ args = ["stdio", "--url", "http://localhost:${port}/api/mcp"]
131
+ \`\`\`
132
+
133
+ The stdio command is only a bridge to the same HTTP MCP endpoint. It does not start a second Inspector server.
134
+
118
135
  If the user's Codex environment is managed by an admin allowlist, they may also need a matching identity rule in the managed requirements layer:
119
136
 
120
137
  \`\`\`toml
@@ -126,6 +143,7 @@ When editing:
126
143
 
127
144
  - Ask before changing \`~/.codex/config.toml\`.
128
145
  - Keep existing \`mcp_servers.*\`, \`projects.*\`, profiles, sandbox, approval, and model settings intact.
146
+ - Remove any duplicate Inspector MCP entry that points to the same \`/api/mcp\` endpoint or runs the same \`agent-inspector-mcp stdio\` bridge under another name.
129
147
  - Do not write provider API keys into Codex config.
130
148
  - Do not expose Agent Inspector MCP beyond localhost.
131
149
 
@@ -335,6 +335,16 @@ function OnboardingSettingsTab(): JSX.Element {
335
335
  <Check className="size-3.5 text-emerald-500" />
336
336
  <span>Captured sessions can produce reviewable memory candidates.</span>
337
337
  </div>
338
+ <div className="flex items-start gap-2">
339
+ <Check className="mt-0.5 size-3.5 text-emerald-500" />
340
+ <span>
341
+ Streamable HTTP clients should use the MCP URL directly. Stdio-only clients should use
342
+ <code className="mx-1 rounded bg-muted px-1 py-0.5 font-mono text-[11px] text-foreground">
343
+ agent-inspector-mcp stdio
344
+ </code>
345
+ instead. Configure only one entry for the same Inspector.
346
+ </span>
347
+ </div>
338
348
  <div className="flex items-start gap-2">
339
349
  <Check className="mt-0.5 size-3.5 text-emerald-500" />
340
350
  <span>
@@ -143,8 +143,6 @@ export const InspectorGroupsListResponseSchema = z.object({
143
143
  groups: z.array(InspectorGroupSchema),
144
144
  });
145
145
 
146
- export type InspectorGroupStatus = z.infer<typeof InspectorGroupStatusSchema>;
147
- export type InspectorGroupKind = z.infer<typeof InspectorGroupKindSchema>;
148
146
  export type InspectorGroupEvidence = z.infer<typeof InspectorGroupEvidenceSchema>;
149
147
  export type InspectorGroupMember = z.infer<typeof InspectorGroupMemberSchema>;
150
148
  export type InspectorGroup = z.infer<typeof InspectorGroupSchema>;
@@ -146,10 +146,7 @@ export const RecentFailuresResponseSchema = z.object({
146
146
  limit: z.number().int().positive(),
147
147
  });
148
148
 
149
- export type InspectorRunStatus = z.infer<typeof InspectorRunStatusSchema>;
150
149
  export type InspectorRunEvidence = z.infer<typeof InspectorRunEvidenceSchema>;
151
- export type RunTimelineEventKind = z.infer<typeof RunTimelineEventKindSchema>;
152
- export type RunTimelineEventSeverity = z.infer<typeof RunTimelineEventSeveritySchema>;
153
150
  export type RunTimelineEvent = z.infer<typeof RunTimelineEventSchema>;
154
151
  export type FailureCategory = z.infer<typeof FailureCategorySchema>;
155
152
  export type FailureClassification = z.infer<typeof FailureClassificationSchema>;