elasticdash-test 0.1.14 → 0.1.16

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 (36) hide show
  1. package/README.md +36 -5
  2. package/dist/dashboard-server.d.ts +9 -0
  3. package/dist/dashboard-server.d.ts.map +1 -1
  4. package/dist/dashboard-server.js +209 -22
  5. package/dist/dashboard-server.js.map +1 -1
  6. package/dist/html/dashboard.html +158 -8
  7. package/dist/index.cjs +828 -108
  8. package/dist/index.d.ts +3 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/interceptors/telemetry-push.d.ts +47 -0
  13. package/dist/interceptors/telemetry-push.d.ts.map +1 -1
  14. package/dist/interceptors/telemetry-push.js +139 -6
  15. package/dist/interceptors/telemetry-push.js.map +1 -1
  16. package/dist/interceptors/tool.d.ts.map +1 -1
  17. package/dist/interceptors/tool.js +2 -1
  18. package/dist/interceptors/tool.js.map +1 -1
  19. package/dist/interceptors/workflow-ai.d.ts.map +1 -1
  20. package/dist/interceptors/workflow-ai.js +28 -4
  21. package/dist/interceptors/workflow-ai.js.map +1 -1
  22. package/dist/internals/mock-resolver.d.ts +42 -5
  23. package/dist/internals/mock-resolver.d.ts.map +1 -1
  24. package/dist/internals/mock-resolver.js +124 -5
  25. package/dist/internals/mock-resolver.js.map +1 -1
  26. package/dist/workflow-runner-worker.js +8 -2
  27. package/dist/workflow-runner-worker.js.map +1 -1
  28. package/package.json +3 -2
  29. package/src/dashboard-server.ts +86 -17
  30. package/src/html/dashboard.html +158 -8
  31. package/src/index.ts +3 -2
  32. package/src/interceptors/telemetry-push.ts +158 -7
  33. package/src/interceptors/tool.ts +2 -1
  34. package/src/interceptors/workflow-ai.ts +30 -4
  35. package/src/internals/mock-resolver.ts +131 -5
  36. package/src/workflow-runner-worker.ts +23 -2
@@ -1,10 +1,11 @@
1
1
  /**
2
- * Runtime tool mock resolution for module-imported tools.
2
+ * Runtime mock resolution for module-imported tools and AI calls.
3
3
  *
4
- * Tools that are statically imported (not accessed via globalThis) cannot be
5
- * intercepted by the worker's proxy-based mocking. Instead, each tool function
6
- * calls `resolveMock` at its entry point. The worker writes the mock config to
7
- * `__ELASTICDASH_TOOL_MOCKS__` before the workflow runs and clears it after.
4
+ * Tools/AI calls that are statically imported (not accessed via globalThis)
5
+ * cannot be intercepted by the worker's proxy-based mocking. Instead, each
6
+ * wrapped function calls `resolveMock` / `resolveAIMock` at its entry point.
7
+ * The worker writes the mock config to `__ELASTICDASH_TOOL_MOCKS__` /
8
+ * `__ELASTICDASH_AI_MOCKS__` before the workflow runs and clears it after.
8
9
  */
9
10
  /**
10
11
  * Recursively normalises a mock result fetched from the trace.
@@ -79,4 +80,122 @@ export function resolveMock(toolName) {
79
80
  }
80
81
  return { mocked: false };
81
82
  }
83
+ /**
84
+ * Extracts the system prompt string from an LLM call input.
85
+ * Handles:
86
+ * - Anthropic style: `{ system: "...", messages: [...] }`
87
+ * - OpenAI style: `{ messages: [{ role: "system", content: "..." }, ...] }`
88
+ * - Plain message array: `[{ role: "system", content: "..." }, ...]`
89
+ * - Separate field: `{ systemPrompt: "...", messages: [...] }` (custom wrapAI callers)
90
+ */
91
+ export function extractSystemPrompt(input) {
92
+ if (!input || typeof input !== 'object')
93
+ return undefined;
94
+ const o = input;
95
+ if (typeof o.system === 'string')
96
+ return o.system;
97
+ if (typeof o.systemPrompt === 'string' && o.systemPrompt.length > 0)
98
+ return o.systemPrompt;
99
+ const msgs = Array.isArray(o.messages) ? o.messages : (Array.isArray(input) ? input : null);
100
+ if (msgs) {
101
+ for (const m of msgs) {
102
+ if (m && typeof m === 'object') {
103
+ const msg = m;
104
+ if (msg.role === 'system' && typeof msg.content === 'string')
105
+ return msg.content;
106
+ }
107
+ }
108
+ }
109
+ return undefined;
110
+ }
111
+ /**
112
+ * Returns a shallow copy of `input` with the system prompt replaced by `newSystemPrompt`.
113
+ */
114
+ export function replaceSystemPrompt(input, newSystemPrompt) {
115
+ if (!input || typeof input !== 'object')
116
+ return input;
117
+ const o = input;
118
+ if (typeof o.system === 'string')
119
+ return { ...o, system: newSystemPrompt };
120
+ if (typeof o.systemPrompt === 'string')
121
+ return { ...o, systemPrompt: newSystemPrompt };
122
+ if (Array.isArray(input)) {
123
+ return input.map(m => {
124
+ if (m && typeof m === 'object') {
125
+ const msg = m;
126
+ if (msg.role === 'system' && typeof msg.content === 'string')
127
+ return { ...msg, content: newSystemPrompt };
128
+ }
129
+ return m;
130
+ });
131
+ }
132
+ if (Array.isArray(o.messages)) {
133
+ return {
134
+ ...o,
135
+ messages: o.messages.map(m => {
136
+ if (m && typeof m === 'object') {
137
+ const msg = m;
138
+ if (msg.role === 'system' && typeof msg.content === 'string')
139
+ return { ...msg, content: newSystemPrompt };
140
+ }
141
+ return m;
142
+ }),
143
+ };
144
+ }
145
+ return input;
146
+ }
147
+ /**
148
+ * If a prompt mock is configured for the system prompt found in `input`, returns
149
+ * a copy of `input` with the system prompt replaced. Otherwise returns `undefined`.
150
+ *
151
+ * `__ELASTICDASH_PROMPT_MOCKS__` is `Record<string, string>` keyed by the original
152
+ * system prompt text, set by the worker/dashboard before the workflow runs.
153
+ */
154
+ export function resolvePromptMock(input) {
155
+ const g = globalThis;
156
+ const mocks = g['__ELASTICDASH_PROMPT_MOCKS__'];
157
+ if (!mocks || Object.keys(mocks).length === 0)
158
+ return undefined;
159
+ const systemPrompt = extractSystemPrompt(input);
160
+ if (systemPrompt === undefined)
161
+ return undefined;
162
+ const newSystemPrompt = mocks[systemPrompt];
163
+ if (newSystemPrompt === undefined)
164
+ return undefined;
165
+ return replaceSystemPrompt(input, newSystemPrompt);
166
+ }
167
+ /**
168
+ * Resolves whether the current call to `modelName` should be mocked.
169
+ * Mirrors `resolveMock` but reads `__ELASTICDASH_AI_MOCKS__` and
170
+ * `__ELASTICDASH_AI_CALL_COUNTERS__`.
171
+ */
172
+ export function resolveAIMock(modelName) {
173
+ const g = globalThis;
174
+ const mocks = g['__ELASTICDASH_AI_MOCKS__'];
175
+ if (!mocks)
176
+ return { mocked: false };
177
+ const entry = mocks[modelName];
178
+ if (!entry || entry.mode === 'live')
179
+ return { mocked: false };
180
+ if (!g['__ELASTICDASH_AI_CALL_COUNTERS__']) {
181
+ g['__ELASTICDASH_AI_CALL_COUNTERS__'] = {};
182
+ }
183
+ const counters = g['__ELASTICDASH_AI_CALL_COUNTERS__'];
184
+ counters[modelName] = (counters[modelName] ?? 0) + 1;
185
+ const callNumber = counters[modelName];
186
+ if (entry.mode === 'mock-all') {
187
+ const data = entry.mockData ?? {};
188
+ const raw = data[callNumber] !== undefined ? data[callNumber] : data[0];
189
+ return { mocked: true, result: normaliseMockResult(raw) };
190
+ }
191
+ if (entry.mode === 'mock-specific') {
192
+ const indices = entry.callIndices ?? [];
193
+ if (indices.includes(callNumber)) {
194
+ const data = entry.mockData ?? {};
195
+ return { mocked: true, result: normaliseMockResult(data[callNumber]) };
196
+ }
197
+ return { mocked: false };
198
+ }
199
+ return { mocked: false };
200
+ }
82
201
  //# sourceMappingURL=mock-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-resolver.js","sourceRoot":"","sources":["../../src/internals/mock-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-resolver.js","sourceRoot":"","sources":["../../src/internals/mock-resolver.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 } = payload;
187
+ const { workflowsModulePath, toolsModulePath, workflowName, args, input, replayMode = false, checkpoint = 0, history = [], agentState, toolMockConfig, aiMockConfig, promptMockConfig } = payload;
188
188
  const { context, finalise } = startTraceSession();
189
189
  setCurrentTrace(context.trace);
190
190
  const recorder = new TraceRecorder();
@@ -216,10 +216,13 @@ async function main() {
216
216
  let currentOutput;
217
217
  let workflowError;
218
218
  try {
219
- // Write mock config to globals so module-imported tools can read it via resolveMock()
219
+ // Write mock configs to globals so module-imported tools/AI can read them via resolveMock/resolveAIMock()
220
220
  ;
221
221
  globalThis.__ELASTICDASH_TOOL_MOCKS__ = toolMockConfig ?? {};
222
222
  globalThis.__ELASTICDASH_TOOL_CALL_COUNTERS__ = {};
223
+ globalThis.__ELASTICDASH_AI_MOCKS__ = aiMockConfig ?? {};
224
+ globalThis.__ELASTICDASH_AI_CALL_COUNTERS__ = {};
225
+ globalThis.__ELASTICDASH_PROMPT_MOCKS__ = promptMockConfig ?? {};
223
226
  await installDBAutoInterceptor();
224
227
  installAIInterceptor();
225
228
  interceptFetch();
@@ -283,6 +286,9 @@ async function main() {
283
286
  // Clear mock globals
284
287
  delete globalThis.__ELASTICDASH_TOOL_MOCKS__;
285
288
  delete globalThis.__ELASTICDASH_TOOL_CALL_COUNTERS__;
289
+ delete globalThis.__ELASTICDASH_AI_MOCKS__;
290
+ delete globalThis.__ELASTICDASH_AI_CALL_COUNTERS__;
291
+ delete globalThis.__ELASTICDASH_PROMPT_MOCKS__;
286
292
  }
287
293
  await recorder.flush();
288
294
  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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elasticdash-test",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "AI-native test runner for ElasticDash workflow testing",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,6 +11,7 @@
11
11
  "exports": {
12
12
  ".": {
13
13
  "types": "./dist/index.d.ts",
14
+ "require": "./dist/index.cjs",
14
15
  "default": "./dist/index.js"
15
16
  },
16
17
  "./http": {
@@ -25,7 +26,7 @@
25
26
  "README.md"
26
27
  ],
27
28
  "scripts": {
28
- "build": "node scripts/inline-html.js && tsc && npm run restore:inline-html && node -e \"const{cpSync,mkdirSync}=require('fs');mkdirSync('dist/html',{recursive:true});cpSync('src/html/dashboard.html','dist/html/dashboard.html');\"",
29
+ "build": "node scripts/inline-html.js && tsc && npm run restore:inline-html && node -e \"const{cpSync,mkdirSync}=require('fs');mkdirSync('dist/html',{recursive:true});cpSync('src/html/dashboard.html','dist/html/dashboard.html');\" && node_modules/.bin/esbuild src/index.ts --bundle --platform=node --format=cjs --outfile=dist/index.cjs --packages=external --target=node18",
29
30
  "restore:inline-html": "node scripts/restore-inline-html.js",
30
31
  "dev": "tsx src/cli.ts",
31
32
  "start": "node dist/cli.js",
@@ -103,12 +103,25 @@ export interface ToolMockConfig {
103
103
  [toolName: string]: ToolMockEntry
104
104
  }
105
105
 
106
+ /** Per-model AI mock configuration sent from the dashboard UI */
107
+ export interface AIMockEntry {
108
+ mode: 'live' | 'mock-all' | 'mock-specific'
109
+ callIndices?: number[]
110
+ mockData?: Record<number, unknown>
111
+ }
112
+
113
+ export interface AIMockConfig {
114
+ [modelName: string]: AIMockEntry
115
+ }
116
+
106
117
  interface WorkflowValidationBody {
107
118
  workflowName?: unknown
108
119
  runCount?: unknown
109
120
  sequential?: unknown
110
121
  observations?: unknown
111
122
  toolMockConfig?: unknown
123
+ aiMockConfig?: unknown
124
+ promptMockConfig?: unknown
112
125
  }
113
126
 
114
127
  interface ValidationRunTrace {
@@ -372,7 +385,7 @@ function runWorkflowInSubprocess(
372
385
  workflowName: string,
373
386
  args: unknown[],
374
387
  input: unknown,
375
- options?: { replayMode?: boolean; checkpoint?: number; history?: WorkflowEvent[]; agentState?: AgentState; toolMockConfig?: ToolMockConfig },
388
+ options?: { replayMode?: boolean; checkpoint?: number; history?: WorkflowEvent[]; agentState?: AgentState; toolMockConfig?: ToolMockConfig; aiMockConfig?: AIMockConfig; promptMockConfig?: Record<string, string> },
376
389
  ): Promise<WorkflowSubprocessResult> {
377
390
  return new Promise((resolve) => {
378
391
  const workerScript = new URL('./workflow-runner-worker.js', import.meta.url).pathname
@@ -460,6 +473,8 @@ function runWorkflowInSubprocess(
460
473
  ...(options?.history !== undefined ? { history: options.history } : {}),
461
474
  ...(options?.agentState !== undefined ? { agentState: options.agentState } : {}),
462
475
  ...(options?.toolMockConfig !== undefined ? { toolMockConfig: options.toolMockConfig } : {}),
476
+ ...(options?.aiMockConfig !== undefined ? { aiMockConfig: options.aiMockConfig } : {}),
477
+ ...(options?.promptMockConfig !== undefined ? { promptMockConfig: options.promptMockConfig } : {}),
463
478
  })
464
479
  child.stdin.write(payload)
465
480
  child.stdin.end() // Always close stdin to avoid subprocess hang
@@ -826,6 +841,18 @@ async function validateWorkflowRuns(cwd: string, body: WorkflowValidationBody):
826
841
  ? body.toolMockConfig as ToolMockConfig
827
842
  : undefined
828
843
 
844
+ // Parse AI mock config if provided
845
+ const aiMockConfig: AIMockConfig | undefined =
846
+ body.aiMockConfig && typeof body.aiMockConfig === 'object' && !Array.isArray(body.aiMockConfig)
847
+ ? body.aiMockConfig as AIMockConfig
848
+ : undefined
849
+
850
+ // Parse prompt mock config if provided
851
+ const promptMockConfig: Record<string, string> | undefined =
852
+ body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
853
+ ? body.promptMockConfig as Record<string, string>
854
+ : undefined
855
+
829
856
  const workflowsModulePath = resolveWorkflowModule(cwd)
830
857
  if (!workflowsModulePath) {
831
858
  return {
@@ -850,7 +877,7 @@ async function validateWorkflowRuns(cwd: string, body: WorkflowValidationBody):
850
877
  workflowName,
851
878
  workflowArgs,
852
879
  workflowInput,
853
- toolMockConfig ? { toolMockConfig } : undefined,
880
+ (toolMockConfig || aiMockConfig || promptMockConfig) ? { ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) } : undefined,
854
881
  )
855
882
  .catch(err => {
856
883
  throw { ok: false, error: `Workflow subprocess failed: ${formatError(err)}` }
@@ -1300,19 +1327,20 @@ interface HttpWorkflowRunOptions {
1300
1327
  workflowName: string
1301
1328
  workflowInput: unknown
1302
1329
  frozenEvents?: WorkflowEvent[]
1330
+ promptMocks?: Record<string, string>
1303
1331
  pushedEvents: Map<string, WorkflowEvent[]>
1304
- runConfigs: Map<string, { frozenEvents: WorkflowEvent[] }>
1332
+ runConfigs: Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string> }>
1305
1333
  config: HttpWorkflowConfig
1306
1334
  dashboardPort: number
1307
1335
  }
1308
1336
 
1309
1337
  async function runHttpWorkflow(opts: HttpWorkflowRunOptions): Promise<WorkflowSubprocessResult> {
1310
- const { workflowName, workflowInput, frozenEvents = [], pushedEvents, runConfigs, config, dashboardPort } = opts
1338
+ const { workflowName, workflowInput, frozenEvents = [], promptMocks = {}, pushedEvents, runConfigs, config, dashboardPort } = opts
1311
1339
  const runId = randomUUID()
1312
1340
 
1313
- // Register run config so the user's server can fetch frozen events
1341
+ // Register run config so the user's server can fetch frozen events and prompt mocks
1314
1342
  pushedEvents.set(runId, [])
1315
- runConfigs.set(runId, { frozenEvents })
1343
+ runConfigs.set(runId, { frozenEvents, promptMocks })
1316
1344
 
1317
1345
  try {
1318
1346
  const parsedInput = parseObservationInput(workflowInput)
@@ -1366,6 +1394,7 @@ async function runHttpWorkflow(opts: HttpWorkflowRunOptions): Promise<WorkflowSu
1366
1394
  await new Promise(resolve => setTimeout(resolve, drainMs))
1367
1395
 
1368
1396
  const events = (pushedEvents.get(runId) ?? []).sort((a, b) => a.timestamp - b.timestamp)
1397
+ console.log(`[elasticdash] runHttpWorkflow drain complete: ${events.length} events collected for runId=${runId}`)
1369
1398
  const workflowTrace: WorkflowTrace = { traceId: runId, events }
1370
1399
 
1371
1400
  return { ok: true, currentOutput, workflowTrace, steps: [], llmSteps: [], toolCalls: [], customSteps: [] }
@@ -1391,9 +1420,9 @@ export async function startDashboardServer(
1391
1420
  // Maps runId -> accumulated WorkflowEvent[]
1392
1421
  const pushedEvents = new Map<string, WorkflowEvent[]>()
1393
1422
 
1394
- // Per-run config for HTTP workflow mode (frozen events for replay).
1395
- // Maps runId -> { frozenEvents }
1396
- const runConfigs = new Map<string, { frozenEvents: WorkflowEvent[] }>()
1423
+ // Per-run config for HTTP workflow mode (frozen events + prompt mocks for replay).
1424
+ // Maps runId -> { frozenEvents, promptMocks }
1425
+ const runConfigs = new Map<string, { frozenEvents: WorkflowEvent[]; promptMocks: Record<string, string> }>()
1397
1426
 
1398
1427
  // Scan workflows, tools, and config once at startup
1399
1428
  const workflows = scanWorkflows(cwd)
@@ -1455,10 +1484,15 @@ export async function startDashboardServer(
1455
1484
  const resolvedInput = resolveWorkflowArgsFromObservations(body, workflowName)
1456
1485
  const workflowInput = resolvedInput.input ?? null
1457
1486
  const traces: ValidationRunTrace[] = []
1487
+ const promptMocks: Record<string, string> =
1488
+ body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
1489
+ ? body.promptMockConfig as Record<string, string>
1490
+ : {}
1458
1491
  const runOne = async (runNumber: number): Promise<ValidationRunTrace> => {
1459
1492
  const result = await runHttpWorkflow({
1460
1493
  workflowName, workflowInput, pushedEvents, runConfigs,
1461
1494
  config: httpConfig as HttpWorkflowConfig, dashboardPort: port,
1495
+ promptMocks,
1462
1496
  })
1463
1497
  const traceStub = { getSteps: () => [], getLLMSteps: () => [], getToolCalls: () => [], getCustomSteps: () => [], recordLLMStep: () => {}, recordToolCall: () => {}, recordCustomStep: () => {} }
1464
1498
  return {
@@ -1498,6 +1532,8 @@ export async function startDashboardServer(
1498
1532
  snapshotId?: unknown
1499
1533
  observations?: unknown
1500
1534
  toolMockConfig?: unknown
1535
+ aiMockConfig?: unknown
1536
+ promptMockConfig?: unknown
1501
1537
  }
1502
1538
  const workflowName = typeof body.workflowName === 'string' ? body.workflowName.trim() : ''
1503
1539
  if (!workflowName) {
@@ -1531,12 +1567,16 @@ export async function startDashboardServer(
1531
1567
 
1532
1568
  const httpConfig = elasticdashConfig.workflows?.[workflowName]
1533
1569
  if (httpConfig?.mode === 'http') {
1534
- // HTTP workflow mode — call user's dev server with frozen events for step replay
1570
+ // HTTP workflow mode — call user's dev server with frozen events + prompt mocks for step replay
1571
+ const bpPromptMocks: Record<string, string> =
1572
+ body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
1573
+ ? body.promptMockConfig as Record<string, string>
1574
+ : {}
1535
1575
  console.log(`[elasticdash] Run from breakpoint (HTTP mode): workflow="${workflowName}" checkpoint=${checkpoint} frozen=${frozenEvents.length}`)
1536
1576
  const result = await runHttpWorkflow({
1537
1577
  workflowName, workflowInput, pushedEvents, runConfigs,
1538
1578
  config: httpConfig as HttpWorkflowConfig, dashboardPort: port,
1539
- frozenEvents,
1579
+ frozenEvents, promptMocks: bpPromptMocks,
1540
1580
  })
1541
1581
  const traceStub = { getSteps: () => [], getLLMSteps: () => [], getToolCalls: () => [], getCustomSteps: () => [], recordLLMStep: () => {}, recordToolCall: () => {}, recordCustomStep: () => {} }
1542
1582
  const snapshotId = result.workflowTrace ? saveSnapshot(cwd, result.workflowTrace) : undefined
@@ -1569,6 +1609,16 @@ export async function startDashboardServer(
1569
1609
  ? body.toolMockConfig as ToolMockConfig
1570
1610
  : undefined
1571
1611
 
1612
+ const aiMockConfig: AIMockConfig | undefined =
1613
+ body.aiMockConfig && typeof body.aiMockConfig === 'object' && !Array.isArray(body.aiMockConfig)
1614
+ ? body.aiMockConfig as AIMockConfig
1615
+ : undefined
1616
+
1617
+ const promptMockConfig: Record<string, string> | undefined =
1618
+ body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
1619
+ ? body.promptMockConfig as Record<string, string>
1620
+ : undefined
1621
+
1572
1622
  console.log(`[elasticdash] Run from breakpoint: workflow="${workflowName}" checkpoint=${checkpoint} historyLen=${history.length}`)
1573
1623
  const result = await runWorkflowInSubprocess(
1574
1624
  workflowsModulePath,
@@ -1576,7 +1626,7 @@ export async function startDashboardServer(
1576
1626
  workflowName,
1577
1627
  workflowArgs,
1578
1628
  workflowInput,
1579
- { replayMode: true, checkpoint, history, ...(toolMockConfig ? { toolMockConfig } : {}) },
1629
+ { replayMode: true, checkpoint, history, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) },
1580
1630
  )
1581
1631
 
1582
1632
  const traceStub = {
@@ -1617,6 +1667,8 @@ export async function startDashboardServer(
1617
1667
  history?: unknown
1618
1668
  snapshotId?: unknown
1619
1669
  toolMockConfig?: unknown
1670
+ aiMockConfig?: unknown
1671
+ promptMockConfig?: unknown
1620
1672
  }
1621
1673
 
1622
1674
  const workflowName = typeof body.workflowName === 'string' ? body.workflowName.trim() : ''
@@ -1663,6 +1715,16 @@ export async function startDashboardServer(
1663
1715
  ? body.toolMockConfig as ToolMockConfig
1664
1716
  : undefined
1665
1717
 
1718
+ const aiMockConfig: AIMockConfig | undefined =
1719
+ body.aiMockConfig && typeof body.aiMockConfig === 'object' && !Array.isArray(body.aiMockConfig)
1720
+ ? body.aiMockConfig as AIMockConfig
1721
+ : undefined
1722
+
1723
+ const promptMockConfig: Record<string, string> | undefined =
1724
+ body.promptMockConfig && typeof body.promptMockConfig === 'object' && !Array.isArray(body.promptMockConfig)
1725
+ ? body.promptMockConfig as Record<string, string>
1726
+ : undefined
1727
+
1666
1728
  console.log(`[elasticdash] Resume agent from task: workflow="${workflowName}" taskIndex=${taskIndex}`)
1667
1729
 
1668
1730
  const result = await runWorkflowInSubprocess(
@@ -1671,7 +1733,7 @@ export async function startDashboardServer(
1671
1733
  workflowName,
1672
1734
  [],
1673
1735
  null,
1674
- { replayMode: history.length > 0, checkpoint: 0, history, agentState, ...(toolMockConfig ? { toolMockConfig } : {}) },
1736
+ { replayMode: history.length > 0, checkpoint: 0, history, agentState, ...(toolMockConfig ? { toolMockConfig } : {}), ...(aiMockConfig ? { aiMockConfig } : {}), ...(promptMockConfig ? { promptMockConfig } : {}) },
1675
1737
  )
1676
1738
 
1677
1739
  const traceStub = {
@@ -1721,7 +1783,7 @@ export async function startDashboardServer(
1721
1783
  const runId = url.pathname.slice('/api/run-configs/'.length)
1722
1784
  const cfg = runConfigs.get(runId)
1723
1785
  res.writeHead(cfg ? 200 : 404, { 'Content-Type': 'application/json' })
1724
- res.end(JSON.stringify({ frozenEvents: cfg?.frozenEvents ?? [] }))
1786
+ res.end(JSON.stringify({ frozenEvents: cfg?.frozenEvents ?? [], promptMocks: cfg?.promptMocks ?? {} }))
1725
1787
  } else if (url.pathname === '/api/trace-events' && req.method === 'POST') {
1726
1788
  // Receive telemetry events pushed from wrapAI / wrapTool in HTTP workflow mode
1727
1789
  ;(async () => {
@@ -1732,9 +1794,16 @@ export async function startDashboardServer(
1732
1794
  res.end(JSON.stringify({ ok: false, error: 'runId (string) and event (object) are required.' }))
1733
1795
  return
1734
1796
  }
1735
- const existing = pushedEvents.get(body.runId) ?? []
1736
- existing.push(body.event as WorkflowEvent)
1737
- pushedEvents.set(body.runId, existing)
1797
+ const existing = pushedEvents.get(body.runId)
1798
+ if (!existing) {
1799
+ console.log(`[elasticdash] /api/trace-events: unknown runId=${body.runId}, known runIds=[${[...pushedEvents.keys()].join(',')}]`)
1800
+ res.writeHead(404, { 'Content-Type': 'application/json' })
1801
+ res.end(JSON.stringify({ ok: false, error: 'unknown runId' }))
1802
+ return
1803
+ }
1804
+ const evt = body.event as WorkflowEvent
1805
+ existing.push(evt)
1806
+ console.log(`[elasticdash] /api/trace-events: stored event type=${evt.type} name=${('name' in evt ? evt.name : '?')} runId=${body.runId} total=${existing.length}`)
1738
1807
  res.writeHead(200, { 'Content-Type': 'application/json' })
1739
1808
  res.end(JSON.stringify({ ok: true }))
1740
1809
  } catch (error) {