@inspectr/mcplab 1.28.1 → 1.28.3
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.
- package/dist/app/assets/index-Bug5M-yX.js +258 -0
- package/dist/app/index.html +1 -1
- package/dist/app-server/assistant-events.d.ts +8 -28
- package/dist/app-server/mastra-scenario-assistant.d.ts +63 -0
- package/dist/app-server/mastra-scenario-assistant.d.ts.map +1 -0
- package/dist/app-server/mastra-scenario-assistant.js +113 -0
- package/dist/app-server/mastra-scenario-assistant.js.map +1 -0
- package/dist/app-server/mastra-scenario-tools.d.ts +97 -0
- package/dist/app-server/mastra-scenario-tools.d.ts.map +1 -0
- package/dist/app-server/mastra-scenario-tools.js +81 -0
- package/dist/app-server/mastra-scenario-tools.js.map +1 -0
- package/dist/app-server/scenario-assistant-domain.d.ts +130 -156
- package/dist/app-server/scenario-assistant-observability.d.ts +25 -0
- package/dist/app-server/scenario-assistant-observability.d.ts.map +1 -0
- package/dist/app-server/scenario-assistant-observability.js +47 -0
- package/dist/app-server/scenario-assistant-observability.js.map +1 -0
- package/dist/app-server/scenario-assistant-runtime.d.ts +5 -0
- package/dist/app-server/scenario-assistant-runtime.d.ts.map +1 -0
- package/dist/app-server/scenario-assistant-runtime.js +7 -0
- package/dist/app-server/scenario-assistant-runtime.js.map +1 -0
- package/dist/app-server/types.d.ts +25 -25
- package/package.json +4 -4
- package/dist/app/assets/index-C73rVN95.js +0 -258
|
@@ -5,180 +5,154 @@ import type { AssistantSseEvent } from './assistant-events.js';
|
|
|
5
5
|
import { readLibraries } from './libraries-store.js';
|
|
6
6
|
export { truncateJson } from './assistant-common.js';
|
|
7
7
|
interface ScenarioAssistantContextInput {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
scenario: {
|
|
9
|
+
id: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
prompt: string;
|
|
12
|
+
serverNames: string[];
|
|
13
|
+
evalRules: Array<{
|
|
14
|
+
type: string;
|
|
15
|
+
value?: string | number | boolean;
|
|
16
|
+
sequence?: string[];
|
|
17
|
+
path?: string;
|
|
18
|
+
equals?: string | number | boolean;
|
|
19
|
+
tool?: string;
|
|
20
|
+
label?: string;
|
|
21
|
+
prompt?: string;
|
|
22
|
+
}>;
|
|
23
|
+
extractRules: Array<{
|
|
24
|
+
name: string;
|
|
25
|
+
pattern: string;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
availableServers?: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
url?: string;
|
|
22
31
|
}>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
availableAgents?: Array<{
|
|
33
|
+
name: string;
|
|
34
|
+
provider: string;
|
|
35
|
+
model: string;
|
|
26
36
|
}>;
|
|
27
|
-
};
|
|
28
|
-
availableServers?: Array<{
|
|
29
|
-
name: string;
|
|
30
|
-
url?: string;
|
|
31
|
-
}>;
|
|
32
|
-
availableAgents?: Array<{
|
|
33
|
-
name: string;
|
|
34
|
-
provider: string;
|
|
35
|
-
model: string;
|
|
36
|
-
}>;
|
|
37
37
|
}
|
|
38
38
|
interface ScenarioAssistantSuggestionBundle {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
39
|
+
prompt?: {
|
|
40
|
+
replacement: string;
|
|
41
|
+
rationale?: string;
|
|
42
|
+
};
|
|
43
|
+
evalRules?: {
|
|
44
|
+
replacement: Array<{
|
|
45
|
+
type: string;
|
|
46
|
+
value?: string | number | boolean;
|
|
47
|
+
sequence?: string[];
|
|
48
|
+
path?: string;
|
|
49
|
+
equals?: string | number | boolean;
|
|
50
|
+
tool?: string;
|
|
51
|
+
label?: string;
|
|
52
|
+
prompt?: string;
|
|
53
|
+
}>;
|
|
54
|
+
rationale?: string;
|
|
55
|
+
};
|
|
56
|
+
extractRules?: {
|
|
57
|
+
replacement: Array<{
|
|
58
|
+
name: string;
|
|
59
|
+
pattern: string;
|
|
60
|
+
}>;
|
|
61
|
+
rationale?: string;
|
|
62
|
+
};
|
|
63
|
+
notes?: string[];
|
|
64
64
|
}
|
|
65
65
|
interface ScenarioAssistantEvalRuleSuggestion {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
type: string;
|
|
67
|
+
value?: string | number | boolean;
|
|
68
|
+
sequence?: string[];
|
|
69
|
+
path?: string;
|
|
70
|
+
equals?: string | number | boolean;
|
|
71
|
+
tool?: string;
|
|
72
|
+
label?: string;
|
|
73
|
+
prompt?: string;
|
|
74
74
|
}
|
|
75
75
|
interface AssistantPendingToolCall {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
id: string;
|
|
77
|
+
server: string;
|
|
78
|
+
tool: string;
|
|
79
|
+
publicToolName: string;
|
|
80
|
+
arguments: unknown;
|
|
81
|
+
status: 'pending' | 'approved' | 'denied' | 'error';
|
|
82
|
+
createdAt: string;
|
|
83
|
+
resultPreview?: string;
|
|
84
|
+
error?: string;
|
|
85
85
|
}
|
|
86
86
|
interface AssistantChatMessage {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
id: string;
|
|
88
|
+
role: 'user' | 'assistant' | 'tool' | 'system';
|
|
89
|
+
text: string;
|
|
90
|
+
createdAt: string;
|
|
91
|
+
suggestions?: ScenarioAssistantSuggestionBundle;
|
|
92
|
+
pendingToolCallId?: string;
|
|
93
|
+
pendingToolCallIds?: string[];
|
|
94
|
+
toolRequestServer?: string;
|
|
95
|
+
toolRequestName?: string;
|
|
96
|
+
toolRequestPublicName?: string;
|
|
97
97
|
}
|
|
98
98
|
export interface ScenarioAssistantSession {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
systemPromptCache?: string;
|
|
120
|
-
events: AssistantSseEvent[];
|
|
121
|
-
clients: Set<ServerResponse>;
|
|
99
|
+
id: string;
|
|
100
|
+
createdAt: number;
|
|
101
|
+
lastTouchedAt: number;
|
|
102
|
+
configPath?: string;
|
|
103
|
+
selectedAssistantAgentName: string;
|
|
104
|
+
context: ScenarioAssistantContextInput;
|
|
105
|
+
agentConfig: AgentConfig;
|
|
106
|
+
mcp: McpClientManager;
|
|
107
|
+
tools: ToolDef[];
|
|
108
|
+
toolPublicMap: Map<string, {
|
|
109
|
+
server: string;
|
|
110
|
+
tool: string;
|
|
111
|
+
}>;
|
|
112
|
+
pendingToolCalls: AssistantPendingToolCall[];
|
|
113
|
+
chatMessages: AssistantChatMessage[];
|
|
114
|
+
llmMessages: LlmMessage[];
|
|
115
|
+
warnings: string[];
|
|
116
|
+
systemPromptCache?: string;
|
|
117
|
+
events: AssistantSseEvent[];
|
|
118
|
+
clients: Set<ServerResponse>;
|
|
122
119
|
}
|
|
123
|
-
export declare function cleanupAssistantSessions(
|
|
124
|
-
sessions: Map<string, ScenarioAssistantSession>,
|
|
125
|
-
now?: number
|
|
126
|
-
): void;
|
|
120
|
+
export declare function cleanupAssistantSessions(sessions: Map<string, ScenarioAssistantSession>, now?: number): void;
|
|
127
121
|
export declare function touchAssistantSession(session: ScenarioAssistantSession): void;
|
|
128
122
|
export declare function assistantSessionView(session: ScenarioAssistantSession): {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
123
|
+
id: string;
|
|
124
|
+
createdAt: string;
|
|
125
|
+
updatedAt: string;
|
|
126
|
+
selectedAssistantAgentName: string;
|
|
127
|
+
model: string;
|
|
128
|
+
provider: "openai" | "anthropic" | "azure_openai";
|
|
129
|
+
warnings: string[];
|
|
130
|
+
toolsLoaded: number;
|
|
131
|
+
toolServers: string[];
|
|
132
|
+
messages: AssistantChatMessage[];
|
|
133
|
+
pendingToolCalls: AssistantPendingToolCall[];
|
|
140
134
|
};
|
|
141
|
-
export declare function preloadAssistantTools(
|
|
142
|
-
session: ScenarioAssistantSession,
|
|
143
|
-
serversByName: Record<string, EvalConfig['servers'][string]>,
|
|
144
|
-
selectedServerNames: string[],
|
|
145
|
-
options?: {
|
|
135
|
+
export declare function preloadAssistantTools(session: ScenarioAssistantSession, serversByName: Record<string, EvalConfig['servers'][string]>, selectedServerNames: string[], options?: {
|
|
146
136
|
serverAuthHeaders?: Record<string, Record<string, string>>;
|
|
147
|
-
|
|
148
|
-
):
|
|
149
|
-
export declare function
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
type: 'assistant_message' | 'tool_call_request';
|
|
159
|
-
text: string;
|
|
160
|
-
suggestions?: ScenarioAssistantSuggestionBundle;
|
|
161
|
-
pendingToolCall?: AssistantPendingToolCall;
|
|
162
|
-
pendingToolCalls?: AssistantPendingToolCall[];
|
|
163
|
-
};
|
|
137
|
+
}): Promise<void>;
|
|
138
|
+
export declare function normalizeScenarioAssistantEvalRules(replacement: ScenarioAssistantEvalRuleSuggestion[]): ScenarioAssistantEvalRuleSuggestion[];
|
|
139
|
+
export declare function continueAssistantTurn(session: ScenarioAssistantSession, signal?: AbortSignal): Promise<{
|
|
140
|
+
session: ReturnType<typeof assistantSessionView>;
|
|
141
|
+
response: {
|
|
142
|
+
type: 'assistant_message' | 'tool_call_request';
|
|
143
|
+
text: string;
|
|
144
|
+
suggestions?: ScenarioAssistantSuggestionBundle;
|
|
145
|
+
pendingToolCall?: AssistantPendingToolCall;
|
|
146
|
+
pendingToolCalls?: AssistantPendingToolCall[];
|
|
147
|
+
};
|
|
164
148
|
}>;
|
|
165
|
-
export declare function executeAssistantToolCall(
|
|
166
|
-
session: ScenarioAssistantSession,
|
|
167
|
-
pending: AssistantPendingToolCall,
|
|
168
|
-
signal?: AbortSignal
|
|
169
|
-
): Promise<unknown>;
|
|
149
|
+
export declare function executeAssistantToolCall(session: ScenarioAssistantSession, pending: AssistantPendingToolCall, signal?: AbortSignal): Promise<unknown>;
|
|
170
150
|
export declare function summarizeToolResultForAssistant(result: unknown): string;
|
|
171
|
-
export declare function resolveAssistantAgentFromConfig(
|
|
172
|
-
|
|
173
|
-
selectedAssistantAgentName: string
|
|
174
|
-
): AgentConfig;
|
|
175
|
-
export declare function resolveAssistantAgentFromLibraries(
|
|
176
|
-
libraries: ReturnType<typeof readLibraries>,
|
|
177
|
-
selectedAssistantAgentName: string
|
|
178
|
-
): AgentConfig;
|
|
151
|
+
export declare function resolveAssistantAgentFromConfig(config: EvalConfig, selectedAssistantAgentName: string): AgentConfig;
|
|
152
|
+
export declare function resolveAssistantAgentFromLibraries(libraries: ReturnType<typeof readLibraries>, selectedAssistantAgentName: string): AgentConfig;
|
|
179
153
|
export declare function pickDefaultAssistantAgentName(params: {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
154
|
+
requested?: string;
|
|
155
|
+
settingsDefault?: string;
|
|
156
|
+
agentNames: string[];
|
|
183
157
|
}): string;
|
|
184
|
-
//# sourceMappingURL=scenario-assistant-domain.d.ts.map
|
|
158
|
+
//# sourceMappingURL=scenario-assistant-domain.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RunTree } from 'langsmith';
|
|
2
|
+
export interface ScenarioAssistantRequestContext {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
runId?: string;
|
|
5
|
+
provider: string;
|
|
6
|
+
model: string;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ScenarioAssistantCounters {
|
|
10
|
+
requests: number;
|
|
11
|
+
toolCalls: number;
|
|
12
|
+
toolResults: number;
|
|
13
|
+
errors: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function getScenarioAssistantCounters(): ScenarioAssistantCounters;
|
|
16
|
+
export declare function resetScenarioAssistantCounters(): void;
|
|
17
|
+
export declare function logScenarioAssistantRequest(context: ScenarioAssistantRequestContext): void;
|
|
18
|
+
export declare function logScenarioAssistantTool(
|
|
19
|
+
event: 'call' | 'result' | 'error',
|
|
20
|
+
details: Record<string, unknown>
|
|
21
|
+
): void;
|
|
22
|
+
export declare function startScenarioAssistantLangSmithRun(
|
|
23
|
+
context: ScenarioAssistantRequestContext
|
|
24
|
+
): RunTree | undefined;
|
|
25
|
+
//# sourceMappingURL=scenario-assistant-observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-assistant-observability.d.ts","sourceRoot":"","sources":["../../src/app-server/scenario-assistant-observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,4BAA4B,IAAI,yBAAyB,CAExE;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAM1F;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,EAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAQN;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,+BAA+B,GACvC,OAAO,GAAG,SAAS,CAoBrB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Client, RunTree } from 'langsmith';
|
|
2
|
+
let counters = { requests: 0, toolCalls: 0, toolResults: 0, errors: 0 };
|
|
3
|
+
export function getScenarioAssistantCounters() {
|
|
4
|
+
return { ...counters };
|
|
5
|
+
}
|
|
6
|
+
export function resetScenarioAssistantCounters() {
|
|
7
|
+
counters = { requests: 0, toolCalls: 0, toolResults: 0, errors: 0 };
|
|
8
|
+
}
|
|
9
|
+
export function logScenarioAssistantRequest(context) {
|
|
10
|
+
counters.requests += 1;
|
|
11
|
+
console.info('[Scenario Assistant] LLM request', {
|
|
12
|
+
...context,
|
|
13
|
+
counters: getScenarioAssistantCounters()
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function logScenarioAssistantTool(event, details) {
|
|
17
|
+
if (event === 'call')
|
|
18
|
+
counters.toolCalls += 1;
|
|
19
|
+
if (event === 'result')
|
|
20
|
+
counters.toolResults += 1;
|
|
21
|
+
if (event === 'error')
|
|
22
|
+
counters.errors += 1;
|
|
23
|
+
console.info(`[Scenario Assistant] MCP tool ${event}`, {
|
|
24
|
+
...details,
|
|
25
|
+
counters: getScenarioAssistantCounters()
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function startScenarioAssistantLangSmithRun(context) {
|
|
29
|
+
if (process.env.LANGSMITH_TRACING?.trim().toLowerCase() !== 'true' ||
|
|
30
|
+
!process.env.LANGSMITH_API_KEY)
|
|
31
|
+
return undefined;
|
|
32
|
+
const client = new Client({
|
|
33
|
+
apiKey: process.env.LANGSMITH_API_KEY,
|
|
34
|
+
...(process.env.LANGSMITH_ENDPOINT ? { apiUrl: process.env.LANGSMITH_ENDPOINT } : {})
|
|
35
|
+
});
|
|
36
|
+
return new RunTree({
|
|
37
|
+
name: `MCPLab Scenario Assistant: ${context.sessionId}`,
|
|
38
|
+
run_type: 'chain',
|
|
39
|
+
inputs: { message: context.message },
|
|
40
|
+
project_name: process.env.LANGSMITH_PROJECT || 'default',
|
|
41
|
+
tags: ['mcplab', 'scenario-assistant', 'mastra'],
|
|
42
|
+
metadata: { sessionId: context.sessionId, provider: context.provider, model: context.model },
|
|
43
|
+
client,
|
|
44
|
+
tracingEnabled: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=scenario-assistant-observability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-assistant-observability.js","sourceRoot":"","sources":["../../src/app-server/scenario-assistant-observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiB5C,IAAI,QAAQ,GAA8B,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAEnG,MAAM,UAAU,4BAA4B;IAC1C,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAwC;IAClF,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE;QAC/C,GAAG,OAAO;QACV,QAAQ,EAAE,4BAA4B,EAAE;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAkC,EAClC,OAAgC;IAEhC,IAAI,KAAK,KAAK,MAAM;QAAE,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,QAAQ;QAAE,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,OAAO;QAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,EAAE;QACrD,GAAG,OAAO;QACV,QAAQ,EAAE,4BAA4B,EAAE;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,OAAwC;IAExC,IACE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;QAC9D,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAE9B,OAAO,SAAS,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACrC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtF,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC;QACjB,IAAI,EAAE,8BAA8B,OAAO,CAAC,SAAS,EAAE;QACvD,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QACpC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS;QACxD,IAAI,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QAC5F,MAAM;QACN,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-assistant-runtime.d.ts","sourceRoot":"","sources":["../../src/app-server/scenario-assistant-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D,wBAAgB,+BAA+B,CAC7C,KAAK,qBAAgD,GACpD,wBAAwB,CAI1B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function resolveScenarioAssistantRuntime(value = process.env.MCPLAB_SCENARIO_ASSISTANT_RUNTIME) {
|
|
2
|
+
const runtime = value?.trim().toLowerCase() || 'mastra';
|
|
3
|
+
if (runtime === 'legacy' || runtime === 'mastra')
|
|
4
|
+
return runtime;
|
|
5
|
+
throw new Error('MCPLAB_SCENARIO_ASSISTANT_RUNTIME must be either "mastra" or "legacy"');
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=scenario-assistant-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-assistant-runtime.js","sourceRoot":"","sources":["../../src/app-server/scenario-assistant-runtime.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,+BAA+B,CAC7C,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC;IAErD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC;IACxD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACjE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import type { HealthMcpConnectionInfo } from '@inspectr/mcplab-core';
|
|
2
2
|
export type { HealthMcpConnectionInfo };
|
|
3
3
|
export interface AppServerOptions {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
evalsDir: string;
|
|
7
|
+
runsDir: string;
|
|
8
|
+
toolAnalysisResultsDir: string;
|
|
9
|
+
librariesDir: string;
|
|
10
|
+
dev: boolean;
|
|
11
|
+
open: boolean;
|
|
12
12
|
}
|
|
13
13
|
export interface AppSettings {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
workspaceRoot: string;
|
|
15
|
+
evalsDir: string;
|
|
16
|
+
runsDir: string;
|
|
17
|
+
toolAnalysisResultsDir: string;
|
|
18
|
+
librariesDir: string;
|
|
19
|
+
defaultQueueWorkers: number;
|
|
20
|
+
scenarioAssistantAgentName?: string;
|
|
21
|
+
evaluationJudgeAgentName?: string;
|
|
22
22
|
}
|
|
23
23
|
export interface HealthResponse {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
ok: boolean;
|
|
25
|
+
version: string;
|
|
26
|
+
mcp: HealthMcpConnectionInfo;
|
|
27
27
|
}
|
|
28
28
|
export interface DevMcpServerRuntime {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
host: string;
|
|
30
|
+
port: number;
|
|
31
|
+
path: string;
|
|
32
|
+
targetBaseUrl: string;
|
|
33
|
+
stop: () => void;
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=types.d.ts.map
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inspectr/mcplab",
|
|
3
|
-
"version": "1.28.
|
|
3
|
+
"version": "1.28.3",
|
|
4
4
|
"description": "MCPLab - Test and evaluate MCP servers with LLMs — run evals, compare agents and launch the MCPLab web app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://mcplab.inspectr.dev",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"vitest": "^4.1.8"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@inspectr/mcplab-core": "1.22.
|
|
48
|
-
"@inspectr/mcplab-mcp-server": "1.8.
|
|
49
|
-
"@inspectr/mcplab-reporting": "1.2.
|
|
47
|
+
"@inspectr/mcplab-core": "1.22.2",
|
|
48
|
+
"@inspectr/mcplab-mcp-server": "1.8.3",
|
|
49
|
+
"@inspectr/mcplab-reporting": "1.2.4",
|
|
50
50
|
"commander": "^12.1.0",
|
|
51
51
|
"dotenv": "^16.6.1",
|
|
52
52
|
"kleur": "^4.1.5",
|