@inspectr/mcplab 1.5.1 → 1.7.0

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 (37) hide show
  1. package/dist/app/assets/index-CYs1291A.css +1 -0
  2. package/dist/app/assets/index-Fe4npghI.js +249 -0
  3. package/dist/app/index.html +2 -2
  4. package/dist/app-server/app-context.d.ts +77 -129
  5. package/dist/app-server/app-context.d.ts.map +1 -1
  6. package/dist/app-server/oauth-debugger-domain.d.ts +174 -194
  7. package/dist/app-server/oauth-debugger-domain.d.ts.map +1 -1
  8. package/dist/app-server/oauth-debugger-domain.js +105 -32
  9. package/dist/app-server/oauth-debugger-domain.js.map +1 -1
  10. package/dist/app-server/oauth-runtime-domain.d.ts +60 -0
  11. package/dist/app-server/oauth-runtime-domain.d.ts.map +1 -0
  12. package/dist/app-server/oauth-runtime-domain.js +198 -0
  13. package/dist/app-server/oauth-runtime-domain.js.map +1 -0
  14. package/dist/app-server/oauth-runtime-routes.d.ts +18 -0
  15. package/dist/app-server/oauth-runtime-routes.d.ts.map +1 -0
  16. package/dist/app-server/oauth-runtime-routes.js +109 -0
  17. package/dist/app-server/oauth-runtime-routes.js.map +1 -0
  18. package/dist/app-server/router.d.ts.map +1 -1
  19. package/dist/app-server/router.js +18 -0
  20. package/dist/app-server/router.js.map +1 -1
  21. package/dist/app-server/runs-routes.d.ts +30 -54
  22. package/dist/app-server/runs-routes.d.ts.map +1 -1
  23. package/dist/app-server/runs-routes.js +38 -7
  24. package/dist/app-server/runs-routes.js.map +1 -1
  25. package/dist/app-server/tool-analysis-domain.d.ts +179 -120
  26. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  27. package/dist/app-server/tool-analysis-domain.js +186 -31
  28. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  29. package/dist/app-server/tool-analysis.d.ts +12 -19
  30. package/dist/app-server/tool-analysis.d.ts.map +1 -1
  31. package/dist/app-server/tool-analysis.js +25 -2
  32. package/dist/app-server/tool-analysis.js.map +1 -1
  33. package/dist/cli.js +18 -0
  34. package/dist/cli.js.map +1 -1
  35. package/package.json +4 -4
  36. package/dist/app/assets/index-B2nN65ad.css +0 -1
  37. package/dist/app/assets/index-KAvcXAwp.js +0 -249
@@ -2,145 +2,204 @@ import type { ServerResponse } from 'node:http';
2
2
  import type { EvalConfig, ToolDef } from '@inspectr/mcplab-core';
3
3
  import { McpClientManager } from '@inspectr/mcplab-core';
4
4
  import type { AppSettings } from './types.js';
5
+ import type { OAuthRuntimeSessionsMap, OAuthDebuggerSessionsMap } from './app-context.js';
5
6
  type JobEvent = {
6
- type: 'started' | 'log' | 'completed' | 'error';
7
- ts: string;
8
- payload: Record<string, unknown>;
7
+ type: 'started' | 'log' | 'completed' | 'error';
8
+ ts: string;
9
+ payload: Record<string, unknown>;
9
10
  };
10
11
  export interface ToolAnalysisFinding {
11
- id: string;
12
- scope:
13
- | 'tool_name'
14
- | 'description'
15
- | 'schema'
16
- | 'ergonomics'
17
- | 'safety'
18
- | 'eval_readiness'
19
- | 'execution';
20
- severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
21
- title: string;
22
- detail: string;
23
- suggestion?: string;
12
+ id: string;
13
+ scope: 'tool_name' | 'description' | 'schema' | 'ergonomics' | 'safety' | 'eval_readiness' | 'execution';
14
+ severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
15
+ title: string;
16
+ detail: string;
17
+ suggestion?: string;
24
18
  }
25
19
  interface ToolAnalysisSuggestedSchemaChange {
26
- type: 'description' | 'parameter' | 'required' | 'enum' | 'constraints' | 'examples' | 'naming';
27
- summary: string;
28
- before?: string;
29
- after?: string;
20
+ type: 'description' | 'parameter' | 'required' | 'enum' | 'constraints' | 'examples' | 'naming';
21
+ summary: string;
22
+ before?: string;
23
+ after?: string;
30
24
  }
31
25
  interface ToolAnalysisToolReport {
32
- serverName: string;
33
- toolName: string;
34
- publicToolName: string;
35
- description?: string;
36
- inputSchema?: unknown;
37
- safetyClassification: 'read_like' | 'unsafe_or_unknown';
38
- classificationReason: string;
39
- metadataReview?: {
40
- strengths: string[];
41
- issues: ToolAnalysisFinding[];
42
- suggestedDescription?: string;
43
- suggestedSchemaChanges: ToolAnalysisSuggestedSchemaChange[];
44
- evalReadinessNotes: string[];
45
- };
46
- deeperAnalysis?: {
47
- attempted: boolean;
48
- skippedReason?: string;
49
- sampleCalls: Array<{
50
- callIndex: number;
51
- arguments: unknown;
52
- ok: boolean;
53
- durationMs?: number;
54
- resultPreview?: string;
55
- error?: string;
56
- observations: string[];
57
- issues: ToolAnalysisFinding[];
58
- }>;
59
- overallObservations: string[];
60
- };
61
- overallRecommendations: string[];
26
+ serverName: string;
27
+ toolName: string;
28
+ publicToolName: string;
29
+ title?: string;
30
+ description?: string;
31
+ inputSchema?: unknown;
32
+ outputSchema?: unknown;
33
+ safetyClassification: 'read_like' | 'unsafe_or_unknown';
34
+ classificationReason: string;
35
+ metadataReview?: {
36
+ strengths: string[];
37
+ issues: ToolAnalysisFinding[];
38
+ suggestedDescription?: string;
39
+ suggestedSchemaChanges: ToolAnalysisSuggestedSchemaChange[];
40
+ evalReadinessNotes: string[];
41
+ };
42
+ deeperAnalysis?: {
43
+ attempted: boolean;
44
+ skippedReason?: string;
45
+ sampleCalls: Array<{
46
+ callIndex: number;
47
+ arguments: unknown;
48
+ ok: boolean;
49
+ durationMs?: number;
50
+ resultPreview?: string;
51
+ error?: string;
52
+ observations: string[];
53
+ issues: ToolAnalysisFinding[];
54
+ }>;
55
+ overallObservations: string[];
56
+ };
57
+ overallRecommendations: string[];
62
58
  }
63
59
  interface ToolAnalysisServerReport {
64
- serverName: string;
65
- toolCountDiscovered: number;
66
- toolCountAnalyzed: number;
67
- toolCountSkipped: number;
68
- warnings: string[];
69
- tools: ToolAnalysisToolReport[];
60
+ serverName: string;
61
+ toolCountDiscovered: number;
62
+ toolCountAnalyzed: number;
63
+ toolCountSkipped: number;
64
+ warnings: string[];
65
+ tools: ToolAnalysisToolReport[];
70
66
  }
71
67
  export interface ToolAnalysisReport {
72
- schemaVersion: 1;
73
- createdAt: string;
74
- assistantAgentName: string;
75
- assistantAgentModel: string;
76
- modes: {
77
- metadataReview: boolean;
78
- deeperAnalysis: boolean;
79
- };
80
- settings: {
81
- autoRunPolicy?: 'read_only_allowlist';
82
- sampleCallsPerTool?: number;
83
- toolCallTimeoutMs?: number;
84
- maxParallelTools?: number;
85
- };
86
- summary: {
87
- serversAnalyzed: number;
88
- toolsAnalyzed: number;
89
- toolsSkipped: number;
90
- issueCounts: {
91
- critical: number;
92
- high: number;
93
- medium: number;
94
- low: number;
95
- info: number;
68
+ schemaVersion: 1;
69
+ createdAt: string;
70
+ assistantAgentName: string;
71
+ assistantAgentModel: string;
72
+ modes: {
73
+ metadataReview: boolean;
74
+ deeperAnalysis: boolean;
96
75
  };
97
- };
98
- servers: ToolAnalysisServerReport[];
99
- findings: ToolAnalysisFinding[];
76
+ settings: {
77
+ autoRunPolicy?: 'read_only_allowlist';
78
+ sampleCallsPerTool?: number;
79
+ toolCallTimeoutMs?: number;
80
+ maxParallelTools?: number;
81
+ };
82
+ summary: {
83
+ serversAnalyzed: number;
84
+ toolsAnalyzed: number;
85
+ toolsSkipped: number;
86
+ issueCounts: {
87
+ critical: number;
88
+ high: number;
89
+ medium: number;
90
+ low: number;
91
+ info: number;
92
+ };
93
+ };
94
+ servers: ToolAnalysisServerReport[];
95
+ findings: ToolAnalysisFinding[];
96
+ mcpServerVersions?: Record<string, string | null>;
100
97
  }
101
98
  export interface ToolAnalysisJob {
102
- id: string;
103
- status: 'running' | 'completed' | 'error' | 'stopped';
104
- events: JobEvent[];
105
- clients: Set<ServerResponse>;
106
- abortController: AbortController;
107
- result?: ToolAnalysisReport;
108
- savedReportId?: string;
109
- savedReportPath?: string;
99
+ id: string;
100
+ status: 'running' | 'completed' | 'error' | 'stopped';
101
+ events: JobEvent[];
102
+ clients: Set<ServerResponse>;
103
+ abortController: AbortController;
104
+ result?: ToolAnalysisReport;
105
+ savedReportId?: string;
106
+ savedReportPath?: string;
110
107
  }
111
108
  interface ToolAnalysisToolContext {
112
- serverName: string;
113
- tool: ToolDef;
114
- safetyClassification: 'read_like' | 'unsafe_or_unknown';
115
- classificationReason: string;
109
+ serverName: string;
110
+ tool: ToolDef;
111
+ safetyClassification: 'read_like' | 'unsafe_or_unknown';
112
+ classificationReason: string;
116
113
  }
117
- export declare function discoverMcpToolsForServers(
118
- serversByName: EvalConfig['servers'],
119
- serverNames: string[]
120
- ): Promise<{
121
- mcp: McpClientManager;
122
- servers: Array<{
114
+ interface ToolAnalysisMetadataPayload {
123
115
  serverName: string;
124
- warnings: string[];
125
- tools: ToolAnalysisToolContext[];
126
- }>;
116
+ toolName: string;
117
+ title: string;
118
+ description: string;
119
+ inputSchema: unknown;
120
+ outputSchema: unknown;
121
+ projectGoal: string;
122
+ }
123
+ interface ToolAnalysisSamplePlanPayload {
124
+ serverName: string;
125
+ toolName: string;
126
+ title: string;
127
+ description: string;
128
+ inputSchema: unknown;
129
+ outputSchema: unknown;
130
+ maxCalls: number;
131
+ }
132
+ interface ToolAnalysisExecutionReviewPayload {
133
+ serverName: string;
134
+ toolName: string;
135
+ title: string;
136
+ arguments: unknown;
137
+ resultPreview: string;
138
+ description: string;
139
+ inputSchema: unknown;
140
+ outputSchema: unknown;
141
+ }
142
+ export declare function classifyToolSafety(toolName: string, inputSchema?: unknown, annotations?: ToolDef['annotations']): {
143
+ safetyClassification: 'read_like' | 'unsafe_or_unknown';
144
+ classificationReason: string;
145
+ };
146
+ export declare function parseJsonFromAssistantText<T = unknown>(text: string): T;
147
+ export declare function buildToolAnalysisMetadataPayload(params: {
148
+ serverName: string;
149
+ toolName: string;
150
+ title?: string;
151
+ description?: string;
152
+ inputSchema?: unknown;
153
+ outputSchema?: unknown;
154
+ }): ToolAnalysisMetadataPayload;
155
+ export declare function buildToolAnalysisSamplePlanPayload(params: {
156
+ serverName: string;
157
+ toolName: string;
158
+ title?: string;
159
+ description?: string;
160
+ inputSchema?: unknown;
161
+ outputSchema?: unknown;
162
+ maxCalls: number;
163
+ }): ToolAnalysisSamplePlanPayload;
164
+ export declare function buildToolAnalysisExecutionReviewPayload(params: {
165
+ serverName: string;
166
+ toolName: string;
167
+ title?: string;
168
+ arguments: unknown;
169
+ resultPreview: string;
170
+ description?: string;
171
+ inputSchema?: unknown;
172
+ outputSchema?: unknown;
173
+ }): ToolAnalysisExecutionReviewPayload;
174
+ export declare function discoverMcpToolsForServers(serversByName: EvalConfig['servers'], serverNames: string[], options?: {
175
+ serverAuthHeaders?: Record<string, Record<string, string>>;
176
+ }): Promise<{
177
+ mcp: McpClientManager;
178
+ servers: Array<{
179
+ serverName: string;
180
+ warnings: string[];
181
+ tools: ToolAnalysisToolContext[];
182
+ }>;
127
183
  }>;
128
184
  export declare function runToolAnalysisJob(params: {
129
- job: ToolAnalysisJob;
130
- settings: AppSettings;
131
- requestedAssistantAgentName?: string;
132
- serverNames: string[];
133
- selectedToolsByServer?: Record<string, string[]>;
134
- modes: {
135
- metadataReview: boolean;
136
- deeperAnalysis: boolean;
137
- };
138
- deeper: {
139
- autoRunPolicy: 'read_only_allowlist';
140
- sampleCallsPerTool: number;
141
- toolCallTimeoutMs: number;
142
- };
143
- maxParallelTools: number;
185
+ job: ToolAnalysisJob;
186
+ settings: AppSettings;
187
+ requestedAssistantAgentName?: string;
188
+ serverNames: string[];
189
+ oauthRuntimeSessionsByServer?: Record<string, string>;
190
+ oauthRuntimeSessions: OAuthRuntimeSessionsMap;
191
+ oauthDebuggerSessions: OAuthDebuggerSessionsMap;
192
+ selectedToolsByServer?: Record<string, string[]>;
193
+ modes: {
194
+ metadataReview: boolean;
195
+ deeperAnalysis: boolean;
196
+ };
197
+ deeper: {
198
+ autoRunPolicy: 'read_only_allowlist';
199
+ sampleCallsPerTool: number;
200
+ toolCallTimeoutMs: number;
201
+ };
202
+ maxParallelTools: number;
144
203
  }): Promise<void>;
145
204
  export {};
146
- //# sourceMappingURL=tool-analysis-domain.d.ts.map
205
+ //# sourceMappingURL=tool-analysis-domain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-analysis-domain.d.ts","sourceRoot":"","sources":["../../src/app-server/tool-analysis-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-analysis-domain.d.ts","sourceRoot":"","sources":["../../src/app-server/tool-analysis-domain.ts"],"names":[],"mappings":"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"}