elasticdash-test 0.1.16 → 0.1.17-alpha-2
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/cloud-client.d.ts +34 -0
- package/dist/cloud-client.d.ts.map +1 -0
- package/dist/cloud-client.js +103 -0
- package/dist/cloud-client.js.map +1 -0
- package/dist/dashboard-server.d.ts.map +1 -1
- package/dist/dashboard-server.js +425 -90
- package/dist/dashboard-server.js.map +1 -1
- package/dist/evaluators/determinism.d.ts +3 -0
- package/dist/evaluators/determinism.d.ts.map +1 -0
- package/dist/evaluators/determinism.js +116 -0
- package/dist/evaluators/determinism.js.map +1 -0
- package/dist/evaluators/index.d.ts +4 -0
- package/dist/evaluators/index.d.ts.map +1 -0
- package/dist/evaluators/index.js +61 -0
- package/dist/evaluators/index.js.map +1 -0
- package/dist/evaluators/latency-budget.d.ts +3 -0
- package/dist/evaluators/latency-budget.d.ts.map +1 -0
- package/dist/evaluators/latency-budget.js +45 -0
- package/dist/evaluators/latency-budget.js.map +1 -0
- package/dist/evaluators/llm-judge.d.ts +3 -0
- package/dist/evaluators/llm-judge.d.ts.map +1 -0
- package/dist/evaluators/llm-judge.js +122 -0
- package/dist/evaluators/llm-judge.js.map +1 -0
- package/dist/evaluators/output-contains.d.ts +3 -0
- package/dist/evaluators/output-contains.d.ts.map +1 -0
- package/dist/evaluators/output-contains.js +52 -0
- package/dist/evaluators/output-contains.js.map +1 -0
- package/dist/evaluators/output-schema.d.ts +3 -0
- package/dist/evaluators/output-schema.d.ts.map +1 -0
- package/dist/evaluators/output-schema.js +58 -0
- package/dist/evaluators/output-schema.js.map +1 -0
- package/dist/evaluators/token-budget.d.ts +3 -0
- package/dist/evaluators/token-budget.d.ts.map +1 -0
- package/dist/evaluators/token-budget.js +45 -0
- package/dist/evaluators/token-budget.js.map +1 -0
- package/dist/evaluators/types.d.ts +103 -0
- package/dist/evaluators/types.d.ts.map +1 -0
- package/dist/evaluators/types.js +6 -0
- package/dist/evaluators/types.js.map +1 -0
- package/dist/html/dashboard.html +359 -73
- package/dist/index.cjs +253 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/telemetry-push.d.ts +40 -0
- package/dist/interceptors/telemetry-push.d.ts.map +1 -1
- package/dist/interceptors/telemetry-push.js +129 -6
- package/dist/interceptors/telemetry-push.js.map +1 -1
- package/dist/interceptors/tool.d.ts.map +1 -1
- package/dist/interceptors/tool.js +8 -1
- package/dist/interceptors/tool.js.map +1 -1
- package/dist/interceptors/workflow-ai.d.ts.map +1 -1
- package/dist/interceptors/workflow-ai.js +21 -6
- package/dist/interceptors/workflow-ai.js.map +1 -1
- package/dist/internals/mock-resolver.d.ts +70 -2
- package/dist/internals/mock-resolver.d.ts.map +1 -1
- package/dist/internals/mock-resolver.js +157 -6
- package/dist/internals/mock-resolver.js.map +1 -1
- package/dist/test-group/cli.d.ts +8 -0
- package/dist/test-group/cli.d.ts.map +1 -0
- package/dist/test-group/cli.js +162 -0
- package/dist/test-group/cli.js.map +1 -0
- package/dist/test-group/git-context.d.ts +3 -0
- package/dist/test-group/git-context.d.ts.map +1 -0
- package/dist/test-group/git-context.js +59 -0
- package/dist/test-group/git-context.js.map +1 -0
- package/dist/test-group/reporter.d.ts +4 -0
- package/dist/test-group/reporter.d.ts.map +1 -0
- package/dist/test-group/reporter.js +54 -0
- package/dist/test-group/reporter.js.map +1 -0
- package/dist/test-group/runner.d.ts +18 -0
- package/dist/test-group/runner.d.ts.map +1 -0
- package/dist/test-group/runner.js +234 -0
- package/dist/test-group/runner.js.map +1 -0
- package/dist/workflow-runner-worker.js +7 -1
- package/dist/workflow-runner-worker.js.map +1 -1
- package/package.json +1 -1
- package/src/dashboard-server.ts +101 -28
- package/src/html/dashboard.html +359 -73
- package/src/index.ts +2 -2
- package/src/interceptors/telemetry-push.ts +159 -7
- package/src/interceptors/tool.ts +9 -1
- package/src/interceptors/workflow-ai.ts +22 -6
- package/src/internals/mock-resolver.ts +190 -7
- package/src/workflow-runner-worker.ts +11 -3
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test group runner — executes test groups locally via subprocess,
|
|
3
|
+
* evaluates expectations, and returns results for pushing to the cloud.
|
|
4
|
+
*
|
|
5
|
+
* This module is fully independent from the dashboard server.
|
|
6
|
+
* It reuses the same workflow-runner-worker subprocess pattern.
|
|
7
|
+
*/
|
|
8
|
+
import { spawn } from 'node:child_process';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { pathToFileURL, fileURLToPath } from 'node:url';
|
|
11
|
+
import { existsSync } from 'node:fs';
|
|
12
|
+
import { evaluateExpectations } from '../evaluators/index.js';
|
|
13
|
+
function findWorkflowsModule(cwd) {
|
|
14
|
+
for (const name of ['ed_workflows.ts', 'ed_workflows.js']) {
|
|
15
|
+
const p = path.join(cwd, name);
|
|
16
|
+
if (existsSync(p))
|
|
17
|
+
return p;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
function findToolsModule(cwd) {
|
|
22
|
+
for (const name of ['ed_tools.ts', 'ed_tools.js']) {
|
|
23
|
+
const p = path.join(cwd, name);
|
|
24
|
+
if (existsSync(p))
|
|
25
|
+
return p;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function isDenoProject(dir) {
|
|
30
|
+
return existsSync(path.join(dir, 'deno.json')) || existsSync(path.join(dir, 'deno.jsonc'));
|
|
31
|
+
}
|
|
32
|
+
function runInSubprocess(workflowsModulePath, toolsModulePath, workflowName, args, input, options) {
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
const workerScript = fileURLToPath(new URL('../workflow-runner-worker.js', import.meta.url));
|
|
35
|
+
const projectDir = path.dirname(workflowsModulePath);
|
|
36
|
+
const denoProject = isDenoProject(projectDir);
|
|
37
|
+
const nodeOptions = process.env.NODE_OPTIONS ?? '';
|
|
38
|
+
const tsxFlag = '--import tsx';
|
|
39
|
+
const childNodeOptions = nodeOptions.includes('tsx') ? nodeOptions : `${nodeOptions} ${tsxFlag}`.trim();
|
|
40
|
+
const childEnv = { ...process.env, NODE_OPTIONS: denoProject ? nodeOptions : childNodeOptions };
|
|
41
|
+
const runtime = denoProject ? 'deno' : process.execPath;
|
|
42
|
+
const runtimeArgs = denoProject ? ['run', '--allow-all', workerScript] : [workerScript];
|
|
43
|
+
const child = spawn(runtime, runtimeArgs, {
|
|
44
|
+
env: childEnv,
|
|
45
|
+
cwd: projectDir,
|
|
46
|
+
stdio: ['pipe', 'pipe', 'pipe', 'pipe'],
|
|
47
|
+
});
|
|
48
|
+
// Timeout handling
|
|
49
|
+
let timedOut = false;
|
|
50
|
+
let timeoutHandle;
|
|
51
|
+
if (options?.timeoutMs) {
|
|
52
|
+
timeoutHandle = setTimeout(() => {
|
|
53
|
+
timedOut = true;
|
|
54
|
+
child.kill('SIGKILL');
|
|
55
|
+
}, options.timeoutMs);
|
|
56
|
+
}
|
|
57
|
+
let fd3Data = '';
|
|
58
|
+
let stderr = '';
|
|
59
|
+
const WORKFLOW_RESULT_PREFIX = '__ELASTICDASH_RESULT__:';
|
|
60
|
+
let stdoutBuf = '';
|
|
61
|
+
child.stdout.on('data', (chunk) => {
|
|
62
|
+
stdoutBuf += chunk.toString();
|
|
63
|
+
const lines = stdoutBuf.split('\n');
|
|
64
|
+
stdoutBuf = lines.pop() ?? '';
|
|
65
|
+
for (const line of lines) {
|
|
66
|
+
if (line.startsWith(WORKFLOW_RESULT_PREFIX)) {
|
|
67
|
+
fd3Data += line.slice(WORKFLOW_RESULT_PREFIX.length);
|
|
68
|
+
}
|
|
69
|
+
// Suppress stdout from subprocesses in test-group mode
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
child.stderr.on('data', (chunk) => {
|
|
73
|
+
stderr += chunk.toString();
|
|
74
|
+
});
|
|
75
|
+
const fd3 = child.stdio[3];
|
|
76
|
+
fd3?.on('data', (chunk) => {
|
|
77
|
+
fd3Data += chunk.toString();
|
|
78
|
+
});
|
|
79
|
+
child.on('close', () => {
|
|
80
|
+
if (timeoutHandle)
|
|
81
|
+
clearTimeout(timeoutHandle);
|
|
82
|
+
if (stdoutBuf.startsWith(WORKFLOW_RESULT_PREFIX)) {
|
|
83
|
+
fd3Data += stdoutBuf.slice(WORKFLOW_RESULT_PREFIX.length);
|
|
84
|
+
}
|
|
85
|
+
if (timedOut) {
|
|
86
|
+
resolve({ ok: false, error: `Timed out after ${options?.timeoutMs}ms` });
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (fd3Data) {
|
|
90
|
+
try {
|
|
91
|
+
const parsed = JSON.parse(fd3Data);
|
|
92
|
+
if (parsed && typeof parsed === 'object' && 'ok' in parsed) {
|
|
93
|
+
resolve(parsed);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch { /* fall through */ }
|
|
98
|
+
}
|
|
99
|
+
resolve({ ok: false, error: stderr.trim() || 'Workflow subprocess produced no output.' });
|
|
100
|
+
});
|
|
101
|
+
child.on('error', (err) => {
|
|
102
|
+
if (timeoutHandle)
|
|
103
|
+
clearTimeout(timeoutHandle);
|
|
104
|
+
resolve({ ok: false, error: `Failed to spawn subprocess: ${err.message}` });
|
|
105
|
+
});
|
|
106
|
+
const payload = JSON.stringify({
|
|
107
|
+
workflowsModulePath: pathToFileURL(workflowsModulePath).pathname,
|
|
108
|
+
toolsModulePath: toolsModulePath ? pathToFileURL(toolsModulePath).pathname : undefined,
|
|
109
|
+
workflowName,
|
|
110
|
+
args,
|
|
111
|
+
input,
|
|
112
|
+
...(options?.replayMode !== undefined ? { replayMode: options.replayMode } : {}),
|
|
113
|
+
...(options?.checkpoint !== undefined ? { checkpoint: options.checkpoint } : {}),
|
|
114
|
+
...(options?.history !== undefined ? { history: options.history } : {}),
|
|
115
|
+
...(options?.toolMockConfig !== undefined ? { toolMockConfig: options.toolMockConfig } : {}),
|
|
116
|
+
...(options?.aiMockConfig !== undefined ? { aiMockConfig: options.aiMockConfig } : {}),
|
|
117
|
+
...(options?.promptMockConfig !== undefined ? { promptMockConfig: options.promptMockConfig } : {}),
|
|
118
|
+
});
|
|
119
|
+
child.stdin.write(payload);
|
|
120
|
+
child.stdin.end();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function extractTokenUsage(events) {
|
|
124
|
+
let inputTokens = 0;
|
|
125
|
+
let outputTokens = 0;
|
|
126
|
+
let totalTokens = 0;
|
|
127
|
+
for (const event of events) {
|
|
128
|
+
if (event.usage) {
|
|
129
|
+
inputTokens += event.usage.inputTokens ?? 0;
|
|
130
|
+
outputTokens += event.usage.outputTokens ?? 0;
|
|
131
|
+
totalTokens += event.usage.totalTokens ?? 0;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// If totalTokens wasn't reported but individual counts were, compute it
|
|
135
|
+
if (totalTokens === 0 && (inputTokens > 0 || outputTokens > 0)) {
|
|
136
|
+
totalTokens = inputTokens + outputTokens;
|
|
137
|
+
}
|
|
138
|
+
return { inputTokens, outputTokens, totalTokens };
|
|
139
|
+
}
|
|
140
|
+
export async function executeSingleRun(testGroup, runIndex, cwd) {
|
|
141
|
+
const workflowsModule = findWorkflowsModule(cwd);
|
|
142
|
+
if (!workflowsModule) {
|
|
143
|
+
return {
|
|
144
|
+
runIndex,
|
|
145
|
+
passed: false,
|
|
146
|
+
durationMs: 0,
|
|
147
|
+
tokenUsage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
|
|
148
|
+
output: null,
|
|
149
|
+
error: 'No ed_workflows.ts or ed_workflows.js found in project directory',
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const toolsModule = findToolsModule(cwd);
|
|
153
|
+
const frozenEvents = (testGroup.frozenEvents ?? []);
|
|
154
|
+
const checkpoint = frozenEvents.length > 0
|
|
155
|
+
? Math.max(...frozenEvents.map((e) => e.id))
|
|
156
|
+
: 0;
|
|
157
|
+
const startedAt = new Date().toISOString();
|
|
158
|
+
const startMs = Date.now();
|
|
159
|
+
const result = await runInSubprocess(workflowsModule, toolsModule, testGroup.workflowName, testGroup.mockInput ? [testGroup.mockInput] : [], testGroup.mockInput, {
|
|
160
|
+
replayMode: frozenEvents.length > 0,
|
|
161
|
+
checkpoint,
|
|
162
|
+
history: frozenEvents,
|
|
163
|
+
toolMockConfig: testGroup.toolMocks,
|
|
164
|
+
promptMockConfig: testGroup.promptMocks,
|
|
165
|
+
timeoutMs: testGroup.timeoutMs,
|
|
166
|
+
});
|
|
167
|
+
const durationMs = Date.now() - startMs;
|
|
168
|
+
const completedAt = new Date().toISOString();
|
|
169
|
+
const events = result.workflowTrace?.events ?? [];
|
|
170
|
+
const tokenUsage = extractTokenUsage(events);
|
|
171
|
+
return {
|
|
172
|
+
runIndex,
|
|
173
|
+
passed: result.ok,
|
|
174
|
+
durationMs,
|
|
175
|
+
tokenUsage,
|
|
176
|
+
output: result.currentOutput ?? null,
|
|
177
|
+
trace: result.workflowTrace,
|
|
178
|
+
error: result.ok ? undefined : result.error,
|
|
179
|
+
startedAt,
|
|
180
|
+
completedAt,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export async function runTestGroupNTimes(testGroup, cwd, options) {
|
|
184
|
+
const runCount = options?.overrideRunCount ?? testGroup.runCount;
|
|
185
|
+
const startedAt = new Date().toISOString();
|
|
186
|
+
const singleRuns = [];
|
|
187
|
+
for (let i = 0; i < runCount; i++) {
|
|
188
|
+
const run = await executeSingleRun(testGroup, i, cwd);
|
|
189
|
+
singleRuns.push(run);
|
|
190
|
+
}
|
|
191
|
+
const evaluation = await evaluateExpectations(testGroup.expectations, singleRuns, testGroup.passThreshold);
|
|
192
|
+
// Mark individual runs as passed/failed based on expectation results
|
|
193
|
+
// A run is "passed" if it didn't error AND expectations passed for it
|
|
194
|
+
for (const run of singleRuns) {
|
|
195
|
+
if (run.error) {
|
|
196
|
+
run.passed = false;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const completedAt = new Date().toISOString();
|
|
200
|
+
return {
|
|
201
|
+
testGroupId: testGroup.id,
|
|
202
|
+
triggeredBy: options?.triggeredBy ?? (process.env.CI ? 'ci' : 'local'),
|
|
203
|
+
passed: evaluation.passed,
|
|
204
|
+
summary: `${testGroup.name}: ${evaluation.summary}`,
|
|
205
|
+
singleRuns,
|
|
206
|
+
expectationResults: evaluation.results,
|
|
207
|
+
startedAt,
|
|
208
|
+
completedAt,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
export async function runAllTestGroups(testGroups, cwd, options) {
|
|
212
|
+
const startedAt = new Date().toISOString();
|
|
213
|
+
const results = [];
|
|
214
|
+
const testGroupRunIds = [];
|
|
215
|
+
for (const group of testGroups) {
|
|
216
|
+
const result = await runTestGroupNTimes(group, cwd, options);
|
|
217
|
+
results.push(result);
|
|
218
|
+
// RunIds will be assigned by the backend after push
|
|
219
|
+
testGroupRunIds.push(group.id);
|
|
220
|
+
}
|
|
221
|
+
const passedCount = results.filter((r) => r.passed).length;
|
|
222
|
+
const totalCount = results.length;
|
|
223
|
+
const allPassed = passedCount === totalCount;
|
|
224
|
+
const completedAt = new Date().toISOString();
|
|
225
|
+
return {
|
|
226
|
+
passed: allPassed,
|
|
227
|
+
summary: `${passedCount}/${totalCount} test groups passed`,
|
|
228
|
+
testGroupRunIds,
|
|
229
|
+
results,
|
|
230
|
+
startedAt,
|
|
231
|
+
completedAt,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/test-group/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -184,7 +184,7 @@ async function main() {
|
|
|
184
184
|
originalExit(1);
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
|
-
const { workflowsModulePath, toolsModulePath, workflowName, args, input, replayMode = false, checkpoint = 0, history = [], agentState, toolMockConfig, aiMockConfig, promptMockConfig } = payload;
|
|
187
|
+
const { workflowsModulePath, toolsModulePath, workflowName, args, input, replayMode = false, checkpoint = 0, history = [], agentState, toolMockConfig, aiMockConfig, promptMockConfig, userPromptMockConfig } = payload;
|
|
188
188
|
const { context, finalise } = startTraceSession();
|
|
189
189
|
setCurrentTrace(context.trace);
|
|
190
190
|
const recorder = new TraceRecorder();
|
|
@@ -223,6 +223,9 @@ async function main() {
|
|
|
223
223
|
globalThis.__ELASTICDASH_AI_MOCKS__ = aiMockConfig ?? {};
|
|
224
224
|
globalThis.__ELASTICDASH_AI_CALL_COUNTERS__ = {};
|
|
225
225
|
globalThis.__ELASTICDASH_PROMPT_MOCKS__ = promptMockConfig ?? {};
|
|
226
|
+
globalThis.__ELASTICDASH_PROMPT_CALL_COUNTERS__ = {};
|
|
227
|
+
globalThis.__ELASTICDASH_USER_PROMPT_MOCKS__ = userPromptMockConfig ?? {};
|
|
228
|
+
globalThis.__ELASTICDASH_USER_PROMPT_CALL_COUNTERS__ = {};
|
|
226
229
|
await installDBAutoInterceptor();
|
|
227
230
|
installAIInterceptor();
|
|
228
231
|
interceptFetch();
|
|
@@ -289,6 +292,9 @@ async function main() {
|
|
|
289
292
|
delete globalThis.__ELASTICDASH_AI_MOCKS__;
|
|
290
293
|
delete globalThis.__ELASTICDASH_AI_CALL_COUNTERS__;
|
|
291
294
|
delete globalThis.__ELASTICDASH_PROMPT_MOCKS__;
|
|
295
|
+
delete globalThis.__ELASTICDASH_PROMPT_CALL_COUNTERS__;
|
|
296
|
+
delete globalThis.__ELASTICDASH_USER_PROMPT_MOCKS__;
|
|
297
|
+
delete globalThis.__ELASTICDASH_USER_PROMPT_CALL_COUNTERS__;
|
|
292
298
|
}
|
|
293
299
|
await recorder.flush();
|
|
294
300
|
const traceData = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-runner-worker.js","sourceRoot":"","sources":["../src/workflow-runner-worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-runner-worker.js","sourceRoot":"","sources":["../src/workflow-runner-worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/dashboard-server.ts
CHANGED
|
@@ -122,6 +122,7 @@ interface WorkflowValidationBody {
|
|
|
122
122
|
toolMockConfig?: unknown
|
|
123
123
|
aiMockConfig?: unknown
|
|
124
124
|
promptMockConfig?: unknown
|
|
125
|
+
userPromptMockConfig?: unknown
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
interface ValidationRunTrace {
|
|
@@ -284,6 +285,27 @@ function buildToolArgs(input: unknown, tool?: ToolInfo): unknown[] {
|
|
|
284
285
|
return [input]
|
|
285
286
|
}
|
|
286
287
|
|
|
288
|
+
/**
|
|
289
|
+
* Flatten structured prompt mock config to simple Record<string, string> for HTTP mode.
|
|
290
|
+
* Accepts both the new structured format { mode, replacement } and legacy string values.
|
|
291
|
+
* Only entries with mode !== 'live' (or plain string entries) are included.
|
|
292
|
+
*/
|
|
293
|
+
function flattenPromptMockConfig(raw: unknown): Record<string, string> {
|
|
294
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return {}
|
|
295
|
+
const result: Record<string, string> = {}
|
|
296
|
+
for (const [key, val] of Object.entries(raw as Record<string, unknown>)) {
|
|
297
|
+
if (typeof val === 'string') {
|
|
298
|
+
result[key] = val
|
|
299
|
+
} else if (val && typeof val === 'object' && 'replacement' in val) {
|
|
300
|
+
const entry = val as { mode?: string; replacement?: string }
|
|
301
|
+
if (entry.mode !== 'live' && typeof entry.replacement === 'string') {
|
|
302
|
+
result[key] = entry.replacement
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return result
|
|
307
|
+
}
|
|
308
|
+
|
|
287
309
|
function formatError(error: unknown): string {
|
|
288
310
|
if (error instanceof Error) return error.message
|
|
289
311
|
try {
|
|
@@ -385,7 +407,16 @@ function runWorkflowInSubprocess(
|
|
|
385
407
|
workflowName: string,
|
|
386
408
|
args: unknown[],
|
|
387
409
|
input: unknown,
|
|
388
|
-
options?: {
|
|
410
|
+
options?: {
|
|
411
|
+
replayMode?: boolean;
|
|
412
|
+
checkpoint?: number;
|
|
413
|
+
history?: WorkflowEvent[];
|
|
414
|
+
agentState?: AgentState;
|
|
415
|
+
toolMockConfig?: ToolMockConfig;
|
|
416
|
+
aiMockConfig?: AIMockConfig;
|
|
417
|
+
promptMockConfig?: Record<string, unknown>;
|
|
418
|
+
userPromptMockConfig?: Record<string, unknown>
|
|
419
|
+
},
|
|
389
420
|
): Promise<WorkflowSubprocessResult> {
|
|
390
421
|
return new Promise((resolve) => {
|
|
391
422
|
const workerScript = new URL('./workflow-runner-worker.js', import.meta.url).pathname
|
|
@@ -475,6 +506,7 @@ function runWorkflowInSubprocess(
|
|
|
475
506
|
...(options?.toolMockConfig !== undefined ? { toolMockConfig: options.toolMockConfig } : {}),
|
|
476
507
|
...(options?.aiMockConfig !== undefined ? { aiMockConfig: options.aiMockConfig } : {}),
|
|
477
508
|
...(options?.promptMockConfig !== undefined ? { promptMockConfig: options.promptMockConfig } : {}),
|
|
509
|
+
...(options?.userPromptMockConfig !== undefined ? { userPromptMockConfig: options.userPromptMockConfig } : {}),
|
|
478
510
|
})
|
|
479
511
|
child.stdin.write(payload)
|
|
480
512
|
child.stdin.end() // Always close stdin to avoid subprocess hang
|
|
@@ -539,8 +571,9 @@ async function runGenerationObservation(observation: DashboardObservation): Prom
|
|
|
539
571
|
async function rerunObservation(cwd: string, observation: DashboardObservation, tools: ToolInfo[]): Promise<RerunResult> {
|
|
540
572
|
const type = observation.type?.toUpperCase()
|
|
541
573
|
const name = observation.name ?? '(unknown)'
|
|
542
|
-
|
|
543
|
-
|
|
574
|
+
const isToolByName = name.startsWith('tool-') || name.startsWith('tool:')
|
|
575
|
+
if (type === 'TOOL' || isToolByName) {
|
|
576
|
+
observation.name = isToolByName ? name.slice(5) : name // Support both explicit type and name prefix for tool observations
|
|
544
577
|
return runToolObservation(cwd, observation, tools)
|
|
545
578
|
}
|
|
546
579
|
if (type === 'GENERATION') {
|
|
@@ -848,9 +881,15 @@ async function validateWorkflowRuns(cwd: string, body: WorkflowValidationBody):
|
|
|
848
881
|
: undefined
|
|
849
882
|
|
|
850
883
|
// Parse prompt mock config if provided
|
|
851
|
-
const promptMockConfig: Record<string,
|
|
884
|
+
const promptMockConfig: Record<string, unknown> | undefined =
|
|
852
885
|
body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
|
|
853
|
-
? body.promptMockConfig as Record<string,
|
|
886
|
+
? body.promptMockConfig as Record<string, unknown>
|
|
887
|
+
: undefined
|
|
888
|
+
|
|
889
|
+
// Parse user prompt mock config if provided
|
|
890
|
+
const userPromptMockConfig: Record<string, unknown> | undefined =
|
|
891
|
+
body.userPromptMockConfig && typeof body.userPromptMockConfig === 'object' && !Array.isArray(body.userPromptMockConfig)
|
|
892
|
+
? body.userPromptMockConfig as Record<string, unknown>
|
|
854
893
|
: undefined
|
|
855
894
|
|
|
856
895
|
const workflowsModulePath = resolveWorkflowModule(cwd)
|
|
@@ -877,7 +916,7 @@ async function validateWorkflowRuns(cwd: string, body: WorkflowValidationBody):
|
|
|
877
916
|
workflowName,
|
|
878
917
|
workflowArgs,
|
|
879
918
|
workflowInput,
|
|
880
|
-
(toolMockConfig || aiMockConfig || promptMockConfig) ? { ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) } : undefined,
|
|
919
|
+
(toolMockConfig || aiMockConfig || promptMockConfig || userPromptMockConfig) ? { ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}), ...(userPromptMockConfig ? { userPromptMockConfig } : {}) } : undefined,
|
|
881
920
|
)
|
|
882
921
|
.catch(err => {
|
|
883
922
|
throw { ok: false, error: `Workflow subprocess failed: ${formatError(err)}` }
|
|
@@ -1328,19 +1367,22 @@ interface HttpWorkflowRunOptions {
|
|
|
1328
1367
|
workflowInput: unknown
|
|
1329
1368
|
frozenEvents?: WorkflowEvent[]
|
|
1330
1369
|
promptMocks?: Record<string, string>
|
|
1370
|
+
userPromptMocks?: Record<string, unknown>
|
|
1371
|
+
toolMockConfig?: ToolMockConfig
|
|
1372
|
+
aiMockConfig?: AIMockConfig
|
|
1331
1373
|
pushedEvents: Map<string, WorkflowEvent[]>
|
|
1332
|
-
runConfigs: Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string
|
|
1374
|
+
runConfigs: Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string>; userPromptMocks?: Record<string, unknown>; toolMockConfig?: ToolMockConfig; aiMockConfig?: AIMockConfig }>
|
|
1333
1375
|
config: HttpWorkflowConfig
|
|
1334
1376
|
dashboardPort: number
|
|
1335
1377
|
}
|
|
1336
1378
|
|
|
1337
1379
|
async function runHttpWorkflow(opts: HttpWorkflowRunOptions): Promise<WorkflowSubprocessResult> {
|
|
1338
|
-
const { workflowName, workflowInput, frozenEvents = [], promptMocks = {}, pushedEvents, runConfigs, config, dashboardPort } = opts
|
|
1380
|
+
const { workflowName, workflowInput, frozenEvents = [], promptMocks = {}, userPromptMocks, toolMockConfig, aiMockConfig, pushedEvents, runConfigs, config, dashboardPort } = opts
|
|
1339
1381
|
const runId = randomUUID()
|
|
1340
1382
|
|
|
1341
|
-
// Register run config so the user's server can fetch frozen events and
|
|
1383
|
+
// Register run config so the user's server can fetch frozen events, prompt mocks, and output mocks
|
|
1342
1384
|
pushedEvents.set(runId, [])
|
|
1343
|
-
runConfigs.set(runId, { frozenEvents, promptMocks })
|
|
1385
|
+
runConfigs.set(runId, { frozenEvents, promptMocks, userPromptMocks, toolMockConfig, aiMockConfig })
|
|
1344
1386
|
|
|
1345
1387
|
try {
|
|
1346
1388
|
const parsedInput = parseObservationInput(workflowInput)
|
|
@@ -1422,7 +1464,7 @@ export async function startDashboardServer(
|
|
|
1422
1464
|
|
|
1423
1465
|
// Per-run config for HTTP workflow mode (frozen events + prompt mocks for replay).
|
|
1424
1466
|
// Maps runId -> { frozenEvents, promptMocks }
|
|
1425
|
-
const runConfigs = new Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string
|
|
1467
|
+
const runConfigs = new Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string>; userPromptMocks?: Record<string, unknown>; toolMockConfig?: ToolMockConfig; aiMockConfig?: AIMockConfig }>()
|
|
1426
1468
|
|
|
1427
1469
|
// Scan workflows, tools, and config once at startup
|
|
1428
1470
|
const workflows = scanWorkflows(cwd)
|
|
@@ -1484,15 +1526,24 @@ export async function startDashboardServer(
|
|
|
1484
1526
|
const resolvedInput = resolveWorkflowArgsFromObservations(body, workflowName)
|
|
1485
1527
|
const workflowInput = resolvedInput.input ?? null
|
|
1486
1528
|
const traces: ValidationRunTrace[] = []
|
|
1487
|
-
const promptMocks: Record<string, string> =
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1529
|
+
const promptMocks: Record<string, string> = flattenPromptMockConfig(body.promptMockConfig)
|
|
1530
|
+
const valUserPromptMocks: Record<string, unknown> | undefined =
|
|
1531
|
+
body.userPromptMockConfig && typeof body.userPromptMockConfig === 'object' && !Array.isArray(body.userPromptMockConfig)
|
|
1532
|
+
? body.userPromptMockConfig as Record<string, unknown>
|
|
1533
|
+
: undefined
|
|
1534
|
+
const valToolMockConfig: ToolMockConfig | undefined =
|
|
1535
|
+
body.toolMockConfig && typeof body.toolMockConfig === 'object' && !Array.isArray(body.toolMockConfig)
|
|
1536
|
+
? body.toolMockConfig as ToolMockConfig
|
|
1537
|
+
: undefined
|
|
1538
|
+
const valAiMockConfig: AIMockConfig | undefined =
|
|
1539
|
+
body.aiMockConfig && typeof body.aiMockConfig === 'object' && !Array.isArray(body.aiMockConfig)
|
|
1540
|
+
? body.aiMockConfig as AIMockConfig
|
|
1541
|
+
: undefined
|
|
1491
1542
|
const runOne = async (runNumber: number): Promise<ValidationRunTrace> => {
|
|
1492
1543
|
const result = await runHttpWorkflow({
|
|
1493
1544
|
workflowName, workflowInput, pushedEvents, runConfigs,
|
|
1494
1545
|
config: httpConfig as HttpWorkflowConfig, dashboardPort: port,
|
|
1495
|
-
promptMocks,
|
|
1546
|
+
promptMocks, userPromptMocks: valUserPromptMocks, toolMockConfig: valToolMockConfig, aiMockConfig: valAiMockConfig,
|
|
1496
1547
|
})
|
|
1497
1548
|
const traceStub = { getSteps: () => [], getLLMSteps: () => [], getToolCalls: () => [], getCustomSteps: () => [], recordLLMStep: () => {}, recordToolCall: () => {}, recordCustomStep: () => {} }
|
|
1498
1549
|
return {
|
|
@@ -1534,6 +1585,7 @@ export async function startDashboardServer(
|
|
|
1534
1585
|
toolMockConfig?: unknown
|
|
1535
1586
|
aiMockConfig?: unknown
|
|
1536
1587
|
promptMockConfig?: unknown
|
|
1588
|
+
userPromptMockConfig?: unknown
|
|
1537
1589
|
}
|
|
1538
1590
|
const workflowName = typeof body.workflowName === 'string' ? body.workflowName.trim() : ''
|
|
1539
1591
|
if (!workflowName) {
|
|
@@ -1568,15 +1620,25 @@ export async function startDashboardServer(
|
|
|
1568
1620
|
const httpConfig = elasticdashConfig.workflows?.[workflowName]
|
|
1569
1621
|
if (httpConfig?.mode === 'http') {
|
|
1570
1622
|
// HTTP workflow mode — call user's dev server with frozen events + prompt mocks for step replay
|
|
1571
|
-
const bpPromptMocks: Record<string, string> =
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1623
|
+
const bpPromptMocks: Record<string, string> = flattenPromptMockConfig(body.promptMockConfig)
|
|
1624
|
+
const bpUserPromptMocks: Record<string, unknown> | undefined =
|
|
1625
|
+
body.userPromptMockConfig && typeof body.userPromptMockConfig === 'object' && !Array.isArray(body.userPromptMockConfig)
|
|
1626
|
+
? body.userPromptMockConfig as Record<string, unknown>
|
|
1627
|
+
: undefined
|
|
1628
|
+
const bpToolMockConfig: ToolMockConfig | undefined =
|
|
1629
|
+
body.toolMockConfig && typeof body.toolMockConfig === 'object' && !Array.isArray(body.toolMockConfig)
|
|
1630
|
+
? body.toolMockConfig as ToolMockConfig
|
|
1631
|
+
: undefined
|
|
1632
|
+
const bpAiMockConfig: AIMockConfig | undefined =
|
|
1633
|
+
body.aiMockConfig && typeof body.aiMockConfig === 'object' && !Array.isArray(body.aiMockConfig)
|
|
1634
|
+
? body.aiMockConfig as AIMockConfig
|
|
1635
|
+
: undefined
|
|
1575
1636
|
console.log(`[elasticdash] Run from breakpoint (HTTP mode): workflow="${workflowName}" checkpoint=${checkpoint} frozen=${frozenEvents.length}`)
|
|
1576
1637
|
const result = await runHttpWorkflow({
|
|
1577
1638
|
workflowName, workflowInput, pushedEvents, runConfigs,
|
|
1578
1639
|
config: httpConfig as HttpWorkflowConfig, dashboardPort: port,
|
|
1579
|
-
frozenEvents, promptMocks: bpPromptMocks,
|
|
1640
|
+
frozenEvents, promptMocks: bpPromptMocks, userPromptMocks: bpUserPromptMocks,
|
|
1641
|
+
toolMockConfig: bpToolMockConfig, aiMockConfig: bpAiMockConfig,
|
|
1580
1642
|
})
|
|
1581
1643
|
const traceStub = { getSteps: () => [], getLLMSteps: () => [], getToolCalls: () => [], getCustomSteps: () => [], recordLLMStep: () => {}, recordToolCall: () => {}, recordCustomStep: () => {} }
|
|
1582
1644
|
const snapshotId = result.workflowTrace ? saveSnapshot(cwd, result.workflowTrace) : undefined
|
|
@@ -1614,9 +1676,14 @@ export async function startDashboardServer(
|
|
|
1614
1676
|
? body.aiMockConfig as AIMockConfig
|
|
1615
1677
|
: undefined
|
|
1616
1678
|
|
|
1617
|
-
const promptMockConfig: Record<string,
|
|
1679
|
+
const promptMockConfig: Record<string, unknown> | undefined =
|
|
1618
1680
|
body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
|
|
1619
|
-
? body.promptMockConfig as Record<string,
|
|
1681
|
+
? body.promptMockConfig as Record<string, unknown>
|
|
1682
|
+
: undefined
|
|
1683
|
+
|
|
1684
|
+
const userPromptMockConfig: Record<string, unknown> | undefined =
|
|
1685
|
+
body.userPromptMockConfig && typeof body.userPromptMockConfig === 'object' && !Array.isArray(body.userPromptMockConfig)
|
|
1686
|
+
? body.userPromptMockConfig as Record<string, unknown>
|
|
1620
1687
|
: undefined
|
|
1621
1688
|
|
|
1622
1689
|
console.log(`[elasticdash] Run from breakpoint: workflow="${workflowName}" checkpoint=${checkpoint} historyLen=${history.length}`)
|
|
@@ -1626,7 +1693,7 @@ export async function startDashboardServer(
|
|
|
1626
1693
|
workflowName,
|
|
1627
1694
|
workflowArgs,
|
|
1628
1695
|
workflowInput,
|
|
1629
|
-
{ replayMode: true, checkpoint, history, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) },
|
|
1696
|
+
{ replayMode: true, checkpoint, history, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}), ...(userPromptMockConfig ? { userPromptMockConfig } : {}) },
|
|
1630
1697
|
)
|
|
1631
1698
|
|
|
1632
1699
|
const traceStub = {
|
|
@@ -1669,6 +1736,7 @@ export async function startDashboardServer(
|
|
|
1669
1736
|
toolMockConfig?: unknown
|
|
1670
1737
|
aiMockConfig?: unknown
|
|
1671
1738
|
promptMockConfig?: unknown
|
|
1739
|
+
userPromptMockConfig?: unknown
|
|
1672
1740
|
}
|
|
1673
1741
|
|
|
1674
1742
|
const workflowName = typeof body.workflowName === 'string' ? body.workflowName.trim() : ''
|
|
@@ -1720,9 +1788,14 @@ export async function startDashboardServer(
|
|
|
1720
1788
|
? body.aiMockConfig as AIMockConfig
|
|
1721
1789
|
: undefined
|
|
1722
1790
|
|
|
1723
|
-
const promptMockConfig: Record<string,
|
|
1791
|
+
const promptMockConfig: Record<string, unknown> | undefined =
|
|
1724
1792
|
body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
|
|
1725
|
-
? body.promptMockConfig as Record<string,
|
|
1793
|
+
? body.promptMockConfig as Record<string, unknown>
|
|
1794
|
+
: undefined
|
|
1795
|
+
|
|
1796
|
+
const userPromptMockConfig: Record<string, unknown> | undefined =
|
|
1797
|
+
body.userPromptMockConfig && typeof body.userPromptMockConfig === 'object' && !Array.isArray(body.userPromptMockConfig)
|
|
1798
|
+
? body.userPromptMockConfig as Record<string, unknown>
|
|
1726
1799
|
: undefined
|
|
1727
1800
|
|
|
1728
1801
|
console.log(`[elasticdash] Resume agent from task: workflow="${workflowName}" taskIndex=${taskIndex}`)
|
|
@@ -1733,7 +1806,7 @@ export async function startDashboardServer(
|
|
|
1733
1806
|
workflowName,
|
|
1734
1807
|
[],
|
|
1735
1808
|
null,
|
|
1736
|
-
{ replayMode: history.length > 0, checkpoint: 0, history, agentState, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) },
|
|
1809
|
+
{ replayMode: history.length > 0, checkpoint: 0, history, agentState, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}), ...(userPromptMockConfig ? { userPromptMockConfig } : {}) },
|
|
1737
1810
|
)
|
|
1738
1811
|
|
|
1739
1812
|
const traceStub = {
|
|
@@ -1783,7 +1856,7 @@ export async function startDashboardServer(
|
|
|
1783
1856
|
const runId = url.pathname.slice('/api/run-configs/'.length)
|
|
1784
1857
|
const cfg = runConfigs.get(runId)
|
|
1785
1858
|
res.writeHead(cfg ? 200 : 404, { 'Content-Type': 'application/json' })
|
|
1786
|
-
res.end(JSON.stringify({ frozenEvents: cfg?.frozenEvents ?? [], promptMocks: cfg?.promptMocks ?? {} }))
|
|
1859
|
+
res.end(JSON.stringify({ frozenEvents: cfg?.frozenEvents ?? [], promptMocks: cfg?.promptMocks ?? {}, ...(cfg?.userPromptMocks ? { userPromptMocks: cfg.userPromptMocks } : {}), ...(cfg?.toolMockConfig ? { toolMockConfig: cfg.toolMockConfig } : {}), ...(cfg?.aiMockConfig ? { aiMockConfig: cfg.aiMockConfig } : {}) }))
|
|
1787
1860
|
} else if (url.pathname === '/api/trace-events' && req.method === 'POST') {
|
|
1788
1861
|
// Receive telemetry events pushed from wrapAI / wrapTool in HTTP workflow mode
|
|
1789
1862
|
;(async () => {
|