@inspectr/mcplab 0.1.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.
- package/README.md +762 -0
- package/dist/app/android-chrome-192x192.png +0 -0
- package/dist/app/android-chrome-512x512.png +0 -0
- package/dist/app/apple-touch-icon.png +0 -0
- package/dist/app/assets/index-DT-Z4AVG.js +249 -0
- package/dist/app/assets/index-EP4WAY8u.css +1 -0
- package/dist/app/favicon-16x16.png +0 -0
- package/dist/app/favicon-32x32.png +0 -0
- package/dist/app/favicon.svg +13 -0
- package/dist/app/index.html +26 -0
- package/dist/app/inspectr_logo_color.svg +9 -0
- package/dist/app/mcp.png +0 -0
- package/dist/app/mcp.svg +1 -0
- package/dist/app/robots.txt +14 -0
- package/dist/app/site.webmanifest +1 -0
- package/dist/app-server/app-context.d.ts +164 -0
- package/dist/app-server/app-context.d.ts.map +1 -0
- package/dist/app-server/app-context.js +2 -0
- package/dist/app-server/app-context.js.map +1 -0
- package/dist/app-server/assistant-common.d.ts +41 -0
- package/dist/app-server/assistant-common.d.ts.map +1 -0
- package/dist/app-server/assistant-common.js +104 -0
- package/dist/app-server/assistant-common.js.map +1 -0
- package/dist/app-server/config-store.d.ts +15 -0
- package/dist/app-server/config-store.d.ts.map +1 -0
- package/dist/app-server/config-store.js +67 -0
- package/dist/app-server/config-store.js.map +1 -0
- package/dist/app-server/dev-mcp.d.ts +6 -0
- package/dist/app-server/dev-mcp.d.ts.map +1 -0
- package/dist/app-server/dev-mcp.js +71 -0
- package/dist/app-server/dev-mcp.js.map +1 -0
- package/dist/app-server/evals-routes.d.ts +22 -0
- package/dist/app-server/evals-routes.d.ts.map +1 -0
- package/dist/app-server/evals-routes.js +135 -0
- package/dist/app-server/evals-routes.js.map +1 -0
- package/dist/app-server/http.d.ts +5 -0
- package/dist/app-server/http.d.ts.map +1 -0
- package/dist/app-server/http.js +31 -0
- package/dist/app-server/http.js.map +1 -0
- package/dist/app-server/index.d.ts +3 -0
- package/dist/app-server/index.d.ts.map +1 -0
- package/dist/app-server/index.js +2 -0
- package/dist/app-server/index.js.map +1 -0
- package/dist/app-server/jobs.d.ts +15 -0
- package/dist/app-server/jobs.d.ts.map +1 -0
- package/dist/app-server/jobs.js +11 -0
- package/dist/app-server/jobs.js.map +1 -0
- package/dist/app-server/libraries-store.d.ts +15 -0
- package/dist/app-server/libraries-store.d.ts.map +1 -0
- package/dist/app-server/libraries-store.js +61 -0
- package/dist/app-server/libraries-store.js.map +1 -0
- package/dist/app-server/markdown-reports.d.ts +12 -0
- package/dist/app-server/markdown-reports.d.ts.map +1 -0
- package/dist/app-server/markdown-reports.js +145 -0
- package/dist/app-server/markdown-reports.js.map +1 -0
- package/dist/app-server/oauth-debugger-domain.d.ts +230 -0
- package/dist/app-server/oauth-debugger-domain.d.ts.map +1 -0
- package/dist/app-server/oauth-debugger-domain.js +1098 -0
- package/dist/app-server/oauth-debugger-domain.js.map +1 -0
- package/dist/app-server/oauth-debugger.d.ts +20 -0
- package/dist/app-server/oauth-debugger.d.ts.map +1 -0
- package/dist/app-server/oauth-debugger.js +193 -0
- package/dist/app-server/oauth-debugger.js.map +1 -0
- package/dist/app-server/provider-models.d.ts +8 -0
- package/dist/app-server/provider-models.d.ts.map +1 -0
- package/dist/app-server/provider-models.js +60 -0
- package/dist/app-server/provider-models.js.map +1 -0
- package/dist/app-server/result-assistant-domain.d.ts +87 -0
- package/dist/app-server/result-assistant-domain.d.ts.map +1 -0
- package/dist/app-server/result-assistant-domain.js +212 -0
- package/dist/app-server/result-assistant-domain.js.map +1 -0
- package/dist/app-server/result-assistant.d.ts +22 -0
- package/dist/app-server/result-assistant.d.ts.map +1 -0
- package/dist/app-server/result-assistant.js +328 -0
- package/dist/app-server/result-assistant.js.map +1 -0
- package/dist/app-server/router.d.ts +4 -0
- package/dist/app-server/router.d.ts.map +1 -0
- package/dist/app-server/router.js +374 -0
- package/dist/app-server/router.js.map +1 -0
- package/dist/app-server/runs-routes.d.ts +44 -0
- package/dist/app-server/runs-routes.d.ts.map +1 -0
- package/dist/app-server/runs-routes.js +555 -0
- package/dist/app-server/runs-routes.js.map +1 -0
- package/dist/app-server/runs-store.d.ts +23 -0
- package/dist/app-server/runs-store.d.ts.map +1 -0
- package/dist/app-server/runs-store.js +84 -0
- package/dist/app-server/runs-store.js.map +1 -0
- package/dist/app-server/scenario-assistant-domain.d.ts +162 -0
- package/dist/app-server/scenario-assistant-domain.d.ts.map +1 -0
- package/dist/app-server/scenario-assistant-domain.js +269 -0
- package/dist/app-server/scenario-assistant-domain.js.map +1 -0
- package/dist/app-server/scenario-assistant.d.ts +29 -0
- package/dist/app-server/scenario-assistant.d.ts.map +1 -0
- package/dist/app-server/scenario-assistant.js +246 -0
- package/dist/app-server/scenario-assistant.js.map +1 -0
- package/dist/app-server/settings-store.d.ts +4 -0
- package/dist/app-server/settings-store.d.ts.map +1 -0
- package/dist/app-server/settings-store.js +32 -0
- package/dist/app-server/settings-store.js.map +1 -0
- package/dist/app-server/snapshots-routes.d.ts +24 -0
- package/dist/app-server/snapshots-routes.d.ts.map +1 -0
- package/dist/app-server/snapshots-routes.js +82 -0
- package/dist/app-server/snapshots-routes.js.map +1 -0
- package/dist/app-server/static-serving.d.ts +17 -0
- package/dist/app-server/static-serving.d.ts.map +1 -0
- package/dist/app-server/static-serving.js +64 -0
- package/dist/app-server/static-serving.js.map +1 -0
- package/dist/app-server/store-utils.d.ts +5 -0
- package/dist/app-server/store-utils.d.ts.map +1 -0
- package/dist/app-server/store-utils.js +26 -0
- package/dist/app-server/store-utils.js.map +1 -0
- package/dist/app-server/tool-analysis-domain.d.ts +146 -0
- package/dist/app-server/tool-analysis-domain.d.ts.map +1 -0
- package/dist/app-server/tool-analysis-domain.js +556 -0
- package/dist/app-server/tool-analysis-domain.js.map +1 -0
- package/dist/app-server/tool-analysis-storage.d.ts +41 -0
- package/dist/app-server/tool-analysis-storage.d.ts.map +1 -0
- package/dist/app-server/tool-analysis-storage.js +110 -0
- package/dist/app-server/tool-analysis-storage.js.map +1 -0
- package/dist/app-server/tool-analysis.d.ts +22 -0
- package/dist/app-server/tool-analysis.d.ts.map +1 -0
- package/dist/app-server/tool-analysis.js +271 -0
- package/dist/app-server/tool-analysis.js.map +1 -0
- package/dist/app-server/types.d.ts +28 -0
- package/dist/app-server/types.d.ts.map +1 -0
- package/dist/app-server/types.js +2 -0
- package/dist/app-server/types.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +544 -0
- package/dist/cli.js.map +1 -0
- package/dist/snapshot.d.ts +80 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +401 -0
- package/dist/snapshot.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { createServer } from 'node:http';
|
|
4
|
+
import { dirname, join, resolve } from 'node:path';
|
|
5
|
+
import { spawn } from 'node:child_process';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { chatWithAgent, expandConfigForAgents } from '@inspectr/mcplab-core';
|
|
8
|
+
import { asJson, asText, parseBody } from './http.js';
|
|
9
|
+
import { addJobEvent, sendSseEvent } from './jobs.js';
|
|
10
|
+
import { maybeStartDevMcpServer } from './dev-mcp.js';
|
|
11
|
+
import { applySettingsOverrides, persistSettingsOverrides } from './settings-store.js';
|
|
12
|
+
import { proxyToVite, serveStatic } from './static-serving.js';
|
|
13
|
+
import { readConfigRecord, readConfigRecordOrInvalid, listConfigs } from './config-store.js';
|
|
14
|
+
import { readLibraries, writeLibraries } from './libraries-store.js';
|
|
15
|
+
import { listRuns, getRunResults, selectScenarioIds, getScenarioRunTraceRecords } from './runs-store.js';
|
|
16
|
+
import { decodeEvalId, ensureInsideRoot, safeFileName } from './store-utils.js';
|
|
17
|
+
import { handleToolAnalysisRoutes } from './tool-analysis.js';
|
|
18
|
+
import { handleMarkdownReportsRoutes } from './markdown-reports.js';
|
|
19
|
+
import { handleOAuthDebuggerRoutes } from './oauth-debugger.js';
|
|
20
|
+
import { handleScenarioAssistantRoutes } from './scenario-assistant.js';
|
|
21
|
+
import { handleResultAssistantRoutes } from './result-assistant.js';
|
|
22
|
+
import { handleSnapshotsRoutes } from './snapshots-routes.js';
|
|
23
|
+
import { handleEvalsRoutes } from './evals-routes.js';
|
|
24
|
+
import { handleRunsRoutes } from './runs-routes.js';
|
|
25
|
+
import { fetchProviderModels } from './provider-models.js';
|
|
26
|
+
import { cleanupAssistantSessions, touchAssistantSession, assistantSessionView, preloadAssistantTools, continueAssistantTurn, executeAssistantToolCall, summarizeToolResultForAssistant, resolveAssistantAgentFromConfig, resolveAssistantAgentFromLibraries, pickDefaultAssistantAgentName } from './scenario-assistant-domain.js';
|
|
27
|
+
import { discoverMcpToolsForServers, runToolAnalysisJob } from './tool-analysis-domain.js';
|
|
28
|
+
import { cleanupOAuthDebuggerSessions, oauthDebuggerSessionView, createOAuthDebuggerSession, startOrResumeOAuthDebuggerSession, submitManualCallbackToSession, submitBrowserCallbackToSession, stopOAuthDebuggerSession, oauthDebuggerExportMarkdown, oauthDebuggerExportRawTrace } from './oauth-debugger-domain.js';
|
|
29
|
+
import { applySnapshotPolicyToRunResult, buildSnapshotFromRun, compareRunToSnapshot, listSnapshots, loadSnapshot, saveSnapshot } from '../snapshot.js';
|
|
30
|
+
const pkgVersion = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'))
|
|
31
|
+
?.version;
|
|
32
|
+
function resolveRunSelectedAgents(config, requestedAgents) {
|
|
33
|
+
if (requestedAgents && requestedAgents.length > 0)
|
|
34
|
+
return requestedAgents;
|
|
35
|
+
return config.run_defaults?.selected_agents;
|
|
36
|
+
}
|
|
37
|
+
function startBrowser(url) {
|
|
38
|
+
const platform = process.platform;
|
|
39
|
+
if (platform === 'darwin') {
|
|
40
|
+
spawn('open', [url], { stdio: 'ignore', detached: true }).unref();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (platform === 'win32') {
|
|
44
|
+
spawn('cmd', ['/c', 'start', url], { stdio: 'ignore', detached: true }).unref();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
spawn('xdg-open', [url], { stdio: 'ignore', detached: true }).unref();
|
|
48
|
+
}
|
|
49
|
+
function defaultNewRunsDir(workspaceRoot) {
|
|
50
|
+
return resolve(workspaceRoot, 'mcplab/results/evaluation-runs');
|
|
51
|
+
}
|
|
52
|
+
function defaultNewToolAnalysisResultsDir(workspaceRoot) {
|
|
53
|
+
return resolve(workspaceRoot, 'mcplab/results/tool-analysis');
|
|
54
|
+
}
|
|
55
|
+
function defaultLegacyToolAnalysisResultsDir(workspaceRoot) {
|
|
56
|
+
return resolve(workspaceRoot, 'mcplab/tool-analysis-results');
|
|
57
|
+
}
|
|
58
|
+
export async function startAppServer(options) {
|
|
59
|
+
const workspaceRoot = process.cwd();
|
|
60
|
+
const settings = {
|
|
61
|
+
workspaceRoot,
|
|
62
|
+
evalsDir: resolve(options.evalsDir),
|
|
63
|
+
runsDir: resolve(options.runsDir),
|
|
64
|
+
snapshotsDir: resolve(options.snapshotsDir),
|
|
65
|
+
toolAnalysisResultsDir: resolve(options.toolAnalysisResultsDir),
|
|
66
|
+
librariesDir: resolve(options.librariesDir)
|
|
67
|
+
};
|
|
68
|
+
mkdirSync(settings.evalsDir, { recursive: true });
|
|
69
|
+
mkdirSync(settings.runsDir, { recursive: true });
|
|
70
|
+
mkdirSync(settings.snapshotsDir, { recursive: true });
|
|
71
|
+
mkdirSync(settings.toolAnalysisResultsDir, { recursive: true });
|
|
72
|
+
mkdirSync(settings.librariesDir, { recursive: true });
|
|
73
|
+
mkdirSync(join(settings.librariesDir, 'scenarios'), { recursive: true });
|
|
74
|
+
applySettingsOverrides(settings);
|
|
75
|
+
const appDist = resolveAppDist(workspaceRoot);
|
|
76
|
+
const viteDevTarget = 'http://127.0.0.1:8685';
|
|
77
|
+
const devMcp = await maybeStartDevMcpServer(workspaceRoot, options.dev);
|
|
78
|
+
const jobs = new Map();
|
|
79
|
+
const toolAnalysisJobs = new Map();
|
|
80
|
+
const oauthDebuggerSessions = new Map();
|
|
81
|
+
const assistantSessions = new Map();
|
|
82
|
+
const resultAssistantSessions = new Map();
|
|
83
|
+
let activeJobId = null;
|
|
84
|
+
const routeDeps = {
|
|
85
|
+
parseBody,
|
|
86
|
+
asJson,
|
|
87
|
+
asText,
|
|
88
|
+
addJobEvent,
|
|
89
|
+
sendSseEvent,
|
|
90
|
+
readLibraries,
|
|
91
|
+
discoverMcpToolsForServers,
|
|
92
|
+
runToolAnalysisJob,
|
|
93
|
+
cleanupOAuthDebuggerSessions,
|
|
94
|
+
oauthDebuggerSessionView,
|
|
95
|
+
createOAuthDebuggerSession,
|
|
96
|
+
startOrResumeOAuthDebuggerSession,
|
|
97
|
+
submitManualCallbackToSession,
|
|
98
|
+
submitBrowserCallbackToSession,
|
|
99
|
+
stopOAuthDebuggerSession,
|
|
100
|
+
oauthDebuggerExportMarkdown,
|
|
101
|
+
oauthDebuggerExportRawTrace,
|
|
102
|
+
cleanupAssistantSessions,
|
|
103
|
+
touchAssistantSession,
|
|
104
|
+
assistantSessionView,
|
|
105
|
+
ensureInsideRoot,
|
|
106
|
+
pickDefaultAssistantAgentName,
|
|
107
|
+
resolveAssistantAgentFromConfig,
|
|
108
|
+
resolveAssistantAgentFromLibraries,
|
|
109
|
+
preloadAssistantTools,
|
|
110
|
+
continueAssistantTurn,
|
|
111
|
+
executeAssistantToolCall,
|
|
112
|
+
summarizeToolResultForAssistant,
|
|
113
|
+
listSnapshots,
|
|
114
|
+
buildSnapshotFromRun,
|
|
115
|
+
saveSnapshot,
|
|
116
|
+
loadSnapshot,
|
|
117
|
+
compareRunToSnapshot,
|
|
118
|
+
getRunResults,
|
|
119
|
+
decodeEvalId,
|
|
120
|
+
readConfigRecord,
|
|
121
|
+
listConfigs,
|
|
122
|
+
safeFileName,
|
|
123
|
+
readConfigRecordOrInvalid,
|
|
124
|
+
listRuns,
|
|
125
|
+
getScenarioRunTraceRecords,
|
|
126
|
+
selectScenarioIds,
|
|
127
|
+
expandConfigForAgents,
|
|
128
|
+
resolveRunSelectedAgents,
|
|
129
|
+
applySnapshotPolicyToRunResult,
|
|
130
|
+
chatWithAgent,
|
|
131
|
+
pkgVersion
|
|
132
|
+
};
|
|
133
|
+
const server = createServer(async (req, res) => {
|
|
134
|
+
try {
|
|
135
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
136
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE,OPTIONS');
|
|
137
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, MCP-Session-Id, Last-Event-ID, Accept');
|
|
138
|
+
if (req.method === 'OPTIONS') {
|
|
139
|
+
res.statusCode = 204;
|
|
140
|
+
res.end();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
144
|
+
const pathname = url.pathname;
|
|
145
|
+
const method = req.method ?? 'GET';
|
|
146
|
+
if (devMcp &&
|
|
147
|
+
pathname === devMcp.path &&
|
|
148
|
+
(method === 'GET' || method === 'POST' || method === 'DELETE')) {
|
|
149
|
+
await proxyToVite(req, res, devMcp.targetBaseUrl, pathname, url.search);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (pathname === '/api/health' && method === 'GET') {
|
|
153
|
+
asJson(res, 200, {
|
|
154
|
+
ok: true,
|
|
155
|
+
version: pkgVersion,
|
|
156
|
+
mcp: devMcp
|
|
157
|
+
? {
|
|
158
|
+
enabled: true,
|
|
159
|
+
transport: 'streamable-http',
|
|
160
|
+
endpoint: `http://${options.host}:${options.port}${devMcp.path}`,
|
|
161
|
+
upstream: `${devMcp.targetBaseUrl}${devMcp.path}`
|
|
162
|
+
}
|
|
163
|
+
: { enabled: false }
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (pathname === '/api/providers/models' && method === 'GET') {
|
|
168
|
+
const provider = String(url.searchParams.get('provider') ?? '').trim();
|
|
169
|
+
if (!provider) {
|
|
170
|
+
asJson(res, 400, { error: 'provider is required (anthropic|openai|azure)' });
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
asJson(res, 200, await fetchProviderModels(provider));
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
asJson(res, 400, {
|
|
178
|
+
error: error instanceof Error ? error.message : String(error)
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (pathname === '/api/settings' && method === 'GET') {
|
|
184
|
+
asJson(res, 200, settings);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (pathname === '/api/settings' && method === 'PUT') {
|
|
188
|
+
const body = await parseBody(req);
|
|
189
|
+
if (body.evalsDir) {
|
|
190
|
+
settings.evalsDir = resolve(String(body.evalsDir));
|
|
191
|
+
mkdirSync(settings.evalsDir, { recursive: true });
|
|
192
|
+
}
|
|
193
|
+
if (body.runsDir) {
|
|
194
|
+
settings.runsDir = resolve(String(body.runsDir));
|
|
195
|
+
mkdirSync(settings.runsDir, { recursive: true });
|
|
196
|
+
}
|
|
197
|
+
if (body.snapshotsDir) {
|
|
198
|
+
settings.snapshotsDir = resolve(String(body.snapshotsDir));
|
|
199
|
+
mkdirSync(settings.snapshotsDir, { recursive: true });
|
|
200
|
+
}
|
|
201
|
+
if (body.librariesDir) {
|
|
202
|
+
settings.librariesDir = resolve(String(body.librariesDir));
|
|
203
|
+
mkdirSync(settings.librariesDir, { recursive: true });
|
|
204
|
+
mkdirSync(join(settings.librariesDir, 'scenarios'), { recursive: true });
|
|
205
|
+
applySettingsOverrides(settings);
|
|
206
|
+
}
|
|
207
|
+
if (Object.prototype.hasOwnProperty.call(body, 'scenarioAssistantAgentName')) {
|
|
208
|
+
const next = String(body.scenarioAssistantAgentName ?? '').trim();
|
|
209
|
+
settings.scenarioAssistantAgentName = next || undefined;
|
|
210
|
+
persistSettingsOverrides(settings);
|
|
211
|
+
}
|
|
212
|
+
asJson(res, 200, settings);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (pathname === '/api/libraries' && method === 'GET') {
|
|
216
|
+
asJson(res, 200, readLibraries(settings.librariesDir));
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
if (pathname === '/api/libraries' && method === 'PUT') {
|
|
220
|
+
const body = await parseBody(req);
|
|
221
|
+
writeLibraries(settings.librariesDir, {
|
|
222
|
+
servers: body.servers ?? {},
|
|
223
|
+
agents: body.agents ?? {},
|
|
224
|
+
scenarios: body.scenarios ?? []
|
|
225
|
+
});
|
|
226
|
+
asJson(res, 200, { ok: true });
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (await handleOAuthDebuggerRoutes({
|
|
230
|
+
req,
|
|
231
|
+
res,
|
|
232
|
+
pathname,
|
|
233
|
+
method,
|
|
234
|
+
settings,
|
|
235
|
+
oauthDebuggerSessions,
|
|
236
|
+
deps: routeDeps
|
|
237
|
+
})) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (await handleMarkdownReportsRoutes({
|
|
241
|
+
req,
|
|
242
|
+
res,
|
|
243
|
+
pathname,
|
|
244
|
+
method,
|
|
245
|
+
settings,
|
|
246
|
+
deps: routeDeps
|
|
247
|
+
})) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (await handleToolAnalysisRoutes({
|
|
251
|
+
req,
|
|
252
|
+
res,
|
|
253
|
+
pathname,
|
|
254
|
+
method,
|
|
255
|
+
settings,
|
|
256
|
+
toolAnalysisJobs,
|
|
257
|
+
deps: routeDeps
|
|
258
|
+
})) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
if (await handleResultAssistantRoutes({
|
|
262
|
+
req,
|
|
263
|
+
res,
|
|
264
|
+
pathname,
|
|
265
|
+
method,
|
|
266
|
+
settings,
|
|
267
|
+
resultAssistantSessions,
|
|
268
|
+
deps: routeDeps
|
|
269
|
+
})) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (await handleScenarioAssistantRoutes({
|
|
273
|
+
req,
|
|
274
|
+
res,
|
|
275
|
+
pathname,
|
|
276
|
+
method,
|
|
277
|
+
settings,
|
|
278
|
+
assistantSessions,
|
|
279
|
+
deps: routeDeps
|
|
280
|
+
})) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (await handleSnapshotsRoutes({
|
|
284
|
+
req,
|
|
285
|
+
res,
|
|
286
|
+
pathname,
|
|
287
|
+
method,
|
|
288
|
+
settings,
|
|
289
|
+
deps: routeDeps
|
|
290
|
+
})) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (await handleEvalsRoutes({
|
|
294
|
+
req,
|
|
295
|
+
res,
|
|
296
|
+
pathname,
|
|
297
|
+
method,
|
|
298
|
+
settings,
|
|
299
|
+
deps: routeDeps
|
|
300
|
+
})) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (await handleRunsRoutes({
|
|
304
|
+
req,
|
|
305
|
+
res,
|
|
306
|
+
pathname,
|
|
307
|
+
method,
|
|
308
|
+
settings,
|
|
309
|
+
jobs,
|
|
310
|
+
activeJobState: {
|
|
311
|
+
get: () => activeJobId,
|
|
312
|
+
set: (value) => {
|
|
313
|
+
activeJobId = value;
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
deps: routeDeps
|
|
317
|
+
})) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
if (pathname.startsWith('/api/')) {
|
|
321
|
+
asJson(res, 404, { error: 'Not found' });
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
if (options.dev) {
|
|
325
|
+
await proxyToVite(req, res, viteDevTarget, pathname, url.search);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
serveStatic({
|
|
329
|
+
appDist,
|
|
330
|
+
pathname,
|
|
331
|
+
res,
|
|
332
|
+
ensureInsideRoot,
|
|
333
|
+
asText
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
asJson(res, 500, {
|
|
338
|
+
error: error instanceof Error ? error.message : String(error)
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
await new Promise((resolveReady) => {
|
|
343
|
+
server.listen(options.port, options.host, () => resolveReady());
|
|
344
|
+
});
|
|
345
|
+
server.on('close', () => {
|
|
346
|
+
devMcp?.stop();
|
|
347
|
+
});
|
|
348
|
+
const url = `http://${options.host}:${options.port}`;
|
|
349
|
+
const logPath = (label, value) => {
|
|
350
|
+
// Keep startup paths visually aligned in terminal output.
|
|
351
|
+
console.log(` ${label.padEnd(8)}\t${value}`);
|
|
352
|
+
};
|
|
353
|
+
// eslint-disable-next-line no-console
|
|
354
|
+
console.log(`mcplab app running at ${url}`);
|
|
355
|
+
logPath('evals:', settings.evalsDir);
|
|
356
|
+
logPath('runs:', settings.runsDir);
|
|
357
|
+
logPath('analysis:', settings.toolAnalysisResultsDir);
|
|
358
|
+
logPath('libs:', settings.librariesDir);
|
|
359
|
+
if (devMcp) {
|
|
360
|
+
logPath('mcp:', `${url}${devMcp.path} -> ${devMcp.targetBaseUrl}${devMcp.path}`);
|
|
361
|
+
}
|
|
362
|
+
if (options.open) {
|
|
363
|
+
startBrowser(url);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function resolveAppDist(workspaceRoot) {
|
|
367
|
+
const repoAppDist = resolve(workspaceRoot, 'packages', 'app', 'dist');
|
|
368
|
+
if (existsSync(repoAppDist))
|
|
369
|
+
return repoAppDist;
|
|
370
|
+
// When installed from npm, serve the packaged frontend bundled into CLI dist/app.
|
|
371
|
+
const thisFileDir = dirname(fileURLToPath(import.meta.url));
|
|
372
|
+
return resolve(thisFileDir, '..', 'app');
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/app-server/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { SseEvent } from './jobs.js';
|
|
3
|
+
import type { ActiveJobState, AppRouteDeps, AppRouteRequestContext } from './app-context.js';
|
|
4
|
+
export type RunsRouteDeps = Pick<
|
|
5
|
+
AppRouteDeps,
|
|
6
|
+
| 'parseBody'
|
|
7
|
+
| 'asJson'
|
|
8
|
+
| 'addJobEvent'
|
|
9
|
+
| 'sendSseEvent'
|
|
10
|
+
| 'ensureInsideRoot'
|
|
11
|
+
| 'listRuns'
|
|
12
|
+
| 'getRunResults'
|
|
13
|
+
| 'getScenarioRunTraceRecords'
|
|
14
|
+
| 'selectScenarioIds'
|
|
15
|
+
| 'expandConfigForAgents'
|
|
16
|
+
| 'resolveRunSelectedAgents'
|
|
17
|
+
| 'loadSnapshot'
|
|
18
|
+
| 'compareRunToSnapshot'
|
|
19
|
+
| 'applySnapshotPolicyToRunResult'
|
|
20
|
+
| 'readLibraries'
|
|
21
|
+
| 'pickDefaultAssistantAgentName'
|
|
22
|
+
| 'resolveAssistantAgentFromLibraries'
|
|
23
|
+
| 'chatWithAgent'
|
|
24
|
+
| 'pkgVersion'
|
|
25
|
+
>;
|
|
26
|
+
type RunJob = {
|
|
27
|
+
id: string;
|
|
28
|
+
status: 'running' | 'stopped' | 'completed' | 'error';
|
|
29
|
+
events: SseEvent[];
|
|
30
|
+
clients: Set<ServerResponse>;
|
|
31
|
+
abortController: AbortController;
|
|
32
|
+
};
|
|
33
|
+
export declare function handleRunsRoutes(params: {
|
|
34
|
+
req: IncomingMessage;
|
|
35
|
+
res: ServerResponse;
|
|
36
|
+
pathname: string;
|
|
37
|
+
method: string;
|
|
38
|
+
settings: AppRouteRequestContext['settings'];
|
|
39
|
+
jobs: Map<string, RunJob>;
|
|
40
|
+
activeJobState: ActiveJobState;
|
|
41
|
+
deps: RunsRouteDeps;
|
|
42
|
+
}): Promise<boolean>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=runs-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs-routes.d.ts","sourceRoot":"","sources":["../../src/app-server/runs-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAWjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,YAAY,EACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,UAAU,GACV,eAAe,GACf,4BAA4B,GAC5B,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,cAAc,GACd,sBAAsB,GACtB,gCAAgC,GAChC,eAAe,GACf,+BAA+B,GAC/B,oCAAoC,GACpC,eAAe,GACf,YAAY,CACf,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAaF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,aAAa,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CA2jBnB"}
|