elasticdash-test 0.1.26-alpha-4 → 0.1.26-hotfix-1

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 (74) hide show
  1. package/README.md +100 -0
  2. package/dist/cli.js +51 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.cjs +1 -1
  5. package/dist/utils/debug.d.ts +1 -1
  6. package/dist/utils/debug.d.ts.map +1 -1
  7. package/dist/utils/debug.js +2 -2
  8. package/dist/utils/debug.js.map +1 -1
  9. package/docs/agent-coding-instructions.md +0 -13
  10. package/docs/agent-integration-guide.md +3 -3
  11. package/docs/observability_contract.md +192 -0
  12. package/package.json +2 -2
  13. package/src/cli.ts +55 -0
  14. package/src/utils/debug.ts +2 -2
  15. package/dist/cloud-client.d.ts +0 -34
  16. package/dist/cloud-client.d.ts.map +0 -1
  17. package/dist/cloud-client.js +0 -103
  18. package/dist/cloud-client.js.map +0 -1
  19. package/dist/evaluators/determinism.d.ts +0 -3
  20. package/dist/evaluators/determinism.d.ts.map +0 -1
  21. package/dist/evaluators/determinism.js +0 -116
  22. package/dist/evaluators/determinism.js.map +0 -1
  23. package/dist/evaluators/index.d.ts +0 -4
  24. package/dist/evaluators/index.d.ts.map +0 -1
  25. package/dist/evaluators/index.js +0 -61
  26. package/dist/evaluators/index.js.map +0 -1
  27. package/dist/evaluators/latency-budget.d.ts +0 -3
  28. package/dist/evaluators/latency-budget.d.ts.map +0 -1
  29. package/dist/evaluators/latency-budget.js +0 -45
  30. package/dist/evaluators/latency-budget.js.map +0 -1
  31. package/dist/evaluators/llm-judge.d.ts +0 -3
  32. package/dist/evaluators/llm-judge.d.ts.map +0 -1
  33. package/dist/evaluators/llm-judge.js +0 -125
  34. package/dist/evaluators/llm-judge.js.map +0 -1
  35. package/dist/evaluators/output-contains.d.ts +0 -3
  36. package/dist/evaluators/output-contains.d.ts.map +0 -1
  37. package/dist/evaluators/output-contains.js +0 -52
  38. package/dist/evaluators/output-contains.js.map +0 -1
  39. package/dist/evaluators/output-schema.d.ts +0 -3
  40. package/dist/evaluators/output-schema.d.ts.map +0 -1
  41. package/dist/evaluators/output-schema.js +0 -58
  42. package/dist/evaluators/output-schema.js.map +0 -1
  43. package/dist/evaluators/token-budget.d.ts +0 -3
  44. package/dist/evaluators/token-budget.d.ts.map +0 -1
  45. package/dist/evaluators/token-budget.js +0 -45
  46. package/dist/evaluators/token-budget.js.map +0 -1
  47. package/dist/evaluators/types.d.ts +0 -104
  48. package/dist/evaluators/types.d.ts.map +0 -1
  49. package/dist/evaluators/types.js +0 -6
  50. package/dist/evaluators/types.js.map +0 -1
  51. package/dist/test-group/cli.d.ts +0 -8
  52. package/dist/test-group/cli.d.ts.map +0 -1
  53. package/dist/test-group/cli.js +0 -162
  54. package/dist/test-group/cli.js.map +0 -1
  55. package/dist/test-group/git-context.d.ts +0 -3
  56. package/dist/test-group/git-context.d.ts.map +0 -1
  57. package/dist/test-group/git-context.js +0 -59
  58. package/dist/test-group/git-context.js.map +0 -1
  59. package/dist/test-group/reporter.d.ts +0 -4
  60. package/dist/test-group/reporter.d.ts.map +0 -1
  61. package/dist/test-group/reporter.js +0 -54
  62. package/dist/test-group/reporter.js.map +0 -1
  63. package/dist/test-group/runner.d.ts +0 -18
  64. package/dist/test-group/runner.d.ts.map +0 -1
  65. package/dist/test-group/runner.js +0 -234
  66. package/dist/test-group/runner.js.map +0 -1
  67. package/dist/tracing-universal.d.ts +0 -13
  68. package/dist/tracing-universal.d.ts.map +0 -1
  69. package/dist/tracing-universal.js +0 -33
  70. package/dist/tracing-universal.js.map +0 -1
  71. package/docs/backend_rerun_alignment.md +0 -291
  72. package/docs/backend_traceid_update.md +0 -141
  73. package/docs/observability_backend_contract.md +0 -577
  74. package/docs/observability_rerun_backend_plan.md +0 -596
package/README.md CHANGED
@@ -9,6 +9,7 @@ An AI-native test runner for ElasticDash workflow testing. Built for async AI pi
9
9
  - [Documentation](#documentation)
10
10
  - [Tool Recording](#tool-recording)
11
11
  - [AI Call Recording](#ai-call-recording)
12
+ - [Workflow Tracing](#workflow-tracing)
12
13
  - [HTTP Workflow Mode](#http-workflow-mode)
13
14
  - [CI/CD Runner](#cicd-runner)
14
15
  - [Configuration](#configuration)
@@ -350,6 +351,105 @@ buffer += decoder.decode()
350
351
 
351
352
  ---
352
353
 
354
+ ## Workflow Tracing
355
+
356
+ `wrapTool` and `wrapAI` record individual steps, but to group them into a single named workflow trace you need the **trace lifecycle**: call `edStartTrace` at the start of your handler and `edEndTrace` when it finishes. Every `wrapTool`/`wrapAI` call in between is automatically associated with that trace.
357
+
358
+ ### 1. Create `ed_workflows.ts`
359
+
360
+ This file exports the trace lifecycle functions. It holds a reference to the `elasticdash-test` module (set from `ed_tools.ts`) so it can call `startTrace`/`endTrace`:
361
+
362
+ ```ts
363
+ // ed_workflows.ts
364
+ let _ed: any = null;
365
+
366
+ /** Called from ed_tools.ts to share the SDK module instance. */
367
+ export function setElasticDashModule(mod: any): void {
368
+ _ed = mod;
369
+ }
370
+
371
+ /** Call at the start of your request handler to begin a named trace. */
372
+ export const edStartTrace = async (workflowName: string): Promise<void> => {
373
+ if (!_ed) return;
374
+ try {
375
+ await _ed.tryAutoInitHttpContext();
376
+ _ed.startTrace(workflowName);
377
+ } catch (err) {
378
+ console.error('[ed_workflows] edStartTrace error:', err);
379
+ }
380
+ };
381
+
382
+ /** Call in a finally block to end the trace and flush captured events. */
383
+ export const edEndTrace = (): void => {
384
+ if (!_ed) return;
385
+ try {
386
+ _ed.endTrace();
387
+ } catch (err) {
388
+ console.error('[ed_workflows] edEndTrace error:', err);
389
+ }
390
+ };
391
+ ```
392
+
393
+ ### 2. Create `ed_tools.ts`
394
+
395
+ This file loads the SDK, shares the module instance with `ed_workflows.ts`, and exports your wrapped tools:
396
+
397
+ ```ts
398
+ // ed_tools.ts
399
+ import { setElasticDashModule } from './ed_workflows';
400
+
401
+ let wrapTool: <T extends (...args: any[]) => any>(name: string, fn: T) => T = (_name, fn) => fn;
402
+
403
+ try {
404
+ // For Next.js / Turbopack: eval('require') bypasses static analysis.
405
+ // For plain Node.js projects you can use a normal require() or import.
406
+ const _edModule = (eval('require') as (id: string) => any)('elasticdash-test');
407
+ wrapTool = _edModule.wrapTool ?? wrapTool;
408
+ setElasticDashModule(_edModule);
409
+ } catch {
410
+ // elasticdash-test not available — tools run without tracing
411
+ }
412
+
413
+ export const myTool = wrapTool('myTool', async (input: { query: string }) => {
414
+ // ... your tool logic
415
+ });
416
+ ```
417
+
418
+ > **Why `setElasticDashModule`?** The SDK uses Node.js AsyncLocalStorage (ALS) to correlate events. Both `ed_tools.ts` and `ed_workflows.ts` must share the same CJS module instance so `wrapTool`/`wrapAI` calls write to the same ALS store that `startTrace`/`endTrace` reads from.
419
+
420
+ ### 3. Instrument Your Route Handler
421
+
422
+ Call `edStartTrace` at handler entry and `edEndTrace` in a `finally` block. All `wrapTool`/`wrapAI` calls in between are grouped under the trace:
423
+
424
+ ```ts
425
+ // app/api/chat/route.ts (Next.js example)
426
+ import { edStartTrace, edEndTrace } from './ed_workflows';
427
+ import { myTool } from './ed_tools';
428
+
429
+ export async function POST(req: Request) {
430
+ await edStartTrace('chatHandler');
431
+ try {
432
+ const body = await req.json();
433
+ const result = await myTool({ query: body.message });
434
+ return Response.json(result);
435
+ } finally {
436
+ edEndTrace();
437
+ }
438
+ }
439
+ ```
440
+
441
+ ### 4. Capture Traces to Disk
442
+
443
+ Set the `ELASTICDASH_CAPTURE_TRACE` environment variable to save each workflow trace as a JSON file under `.ed_traces/`:
444
+
445
+ ```bash
446
+ ELASTICDASH_CAPTURE_TRACE=1 npm run dev
447
+ ```
448
+
449
+ Captured traces can be used for offline replay, benchmark tests (`defineTest` in `ed_tests.ts`), and debugging in the dashboard.
450
+
451
+ ---
452
+
353
453
  ## HTTP Workflow Mode
354
454
 
355
455
  For apps where subprocess import fails (Next.js, Remix, SvelteKit, etc.), configure workflows to call your running dev server directly instead of importing the handler:
package/dist/cli.js CHANGED
@@ -13,6 +13,7 @@ import { startBrowserUiServer } from './browser-ui.js';
13
13
  import { startDashboardServer } from './dashboard-server.js';
14
14
  import { initObservability, shutdownObservability } from './observability.js';
15
15
  import { startPortalServer } from './portal-server.js';
16
+ import { resolveRuntimeModule, scanTools, buildToolArgs, runToolInSubprocess } from './execution/tool-runner.js';
16
17
  function stripAnsi(input) {
17
18
  if (!input)
18
19
  return input;
@@ -47,6 +48,8 @@ function validateRepoDirectory(cwd) {
47
48
  'elasticdash.config.js',
48
49
  'ed_workflows.ts',
49
50
  'ed_workflows.js',
51
+ 'ed_tools.ts',
52
+ 'ed_tools.js',
50
53
  ];
51
54
  return validFiles.some(file => existsSync(path.join(cwd, file)));
52
55
  }
@@ -487,6 +490,54 @@ async function bootstrap() {
487
490
  process.once('SIGINT', cleanup);
488
491
  process.once('SIGTERM', cleanup);
489
492
  });
493
+ // elasticdash run-tool <name>
494
+ program
495
+ .command('run-tool <name>')
496
+ .description('Run a single tool by name with given input. Used for rerun validation (e.g. ElasticDash MCP).')
497
+ .option('--input <json>', 'JSON input to pass to the tool')
498
+ .option('--input-file <path>', 'Path to JSON file with input')
499
+ .action(async (name, options) => {
500
+ const toolsModulePath = resolveRuntimeModule(cwd, 'ed_tools');
501
+ if (!toolsModulePath) {
502
+ console.error(`[elasticdash] Error: Could not find ed_tools.ts or ed_tools.js in ${cwd}`);
503
+ process.exit(1);
504
+ }
505
+ let toolInput = undefined;
506
+ try {
507
+ if (options.inputFile) {
508
+ toolInput = JSON.parse(readFileSync(path.resolve(cwd, options.inputFile), 'utf-8'));
509
+ }
510
+ else if (options.input) {
511
+ toolInput = JSON.parse(options.input);
512
+ }
513
+ }
514
+ catch (err) {
515
+ console.error(`[elasticdash] Error: Failed to parse input JSON: ${err instanceof Error ? err.message : String(err)}`);
516
+ process.exit(1);
517
+ }
518
+ const tools = scanTools(cwd);
519
+ const tool = tools.find(t => t.name === name);
520
+ if (!tool) {
521
+ console.error(`[elasticdash] Error: Tool '${name}' not found in ${toolsModulePath}`);
522
+ process.exit(1);
523
+ }
524
+ const args = buildToolArgs(toolInput, tool);
525
+ const result = await runToolInSubprocess(toolsModulePath, name, args);
526
+ if (!result.ok) {
527
+ console.error(`[elasticdash] ${result.error ?? 'Tool execution failed'}`);
528
+ process.exit(1);
529
+ }
530
+ const payload = {
531
+ tool: name,
532
+ output: result.currentOutput,
533
+ duration_ms: result.currentDurationMs,
534
+ };
535
+ process.stdout.write(JSON.stringify(payload, null, 2) + '\n');
536
+ // Sentinel line so machine consumers (e.g. ElasticDash MCP) can extract the
537
+ // result envelope even when project code prints to stdout before us.
538
+ process.stdout.write('__ED_RUN_TOOL_RESULT__:' + JSON.stringify(payload) + '\n');
539
+ process.exit(0);
540
+ });
490
541
  // elasticdash init-guide
491
542
  program
492
543
  .command('init-guide')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,WAAW,CAAA;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAgB,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhH,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC;AAQD,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;IAE5D,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAsB,CAAA;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yFAAyF;gBACzF,SAAQ;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,yBAAyB;AACzB,KAAK,UAAU,iBAAiB,CAAC,QAAkB,EAAE,GAAW;IAC9D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,wCAAwC;AACxC,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,UAAU,GAAG;QACjB,uBAAuB;QACvB,uBAAuB;QACvB,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,aAAa;KACd,CAAA;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,oBAAoB;AACpB,KAAK,UAAU,SAAS;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAEvD,+DAA+D;IAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAA;QAClB,oBAAoB,EAAE,CAAA;IACxB,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,CACX,4GAA4G;YAC5G,sBAAsB,GAAG,IAAI;YAC7B,yHAAyH,CAC1H,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;IAEjF,iCAAiC;IACjC,kEAAkE;IAClE,uDAAuD;IACvD,IAAI,OAAO,GAAG,SAAS,CAAA;IACvB,IAAI,CAAC;QACH,aAAa;QACb,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IAC1H,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;QAC3D,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,wDAAwD,CAAC;SACrE,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB,yBAAyB;IACzB,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SACxD,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,GAAY,EAAE,GAAS,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,cAAc,CAAC,CAAA;QACpE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;QACjE,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;QAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,iCAAiC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAA;QAClE,MAAM,gBAAgB,GAAG,GAAG,EAAE,SAAS,KAAK,KAAK,CAAA;QACjD,MAAM,eAAe,GAAG,eAAe,IAAI,gBAAgB,CAAA;QAE3D,MAAM,EAAE,GAAG,eAAe;YACxB,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC1E,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE;YACpC,KAAK,EAAE;gBACL,WAAW,CAAC,IAAI;oBACd,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBACrD,CAAC;gBACD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;oBAC1C,EAAE,EAAE,IAAI,CAAC;wBACP,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;qBAC/E,CAAC,CAAA;gBACJ,CAAC;aACF;SACF,CAAC,CAAA;QAEF,uBAAuB;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/E,aAAa,CAAC,OAAO,CAAC,CAAA;QAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAEzE,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACzC,MAAM,QAAQ,GAAmD,EAAE,CAAA;YACnE,IAAI,UAAU,GAAG,CAAC,CAAA;YAClB,IAAI,WAAW,GAAG,CAAC,CAAA;YACnB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC3B,UAAU,IAAI,CAAC,CAAA;oBACf,IAAI,CAAC,CAAC,MAAM;wBAAE,WAAW,IAAI,CAAC,CAAA;;wBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;gBACjF,CAAC;YACH,CAAC;YACD,EAAE,CAAC,IAAI,CAAC;gBACN,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;oBACP,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,UAAU;oBACjB,UAAU;oBACV,QAAQ;iBACT;aACF,CAAC,CAAA;YACF,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;YAC9D,EAAE,EAAE,KAAK,EAAE,CAAA;QACb,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEJ,yBAAyB;IACzB,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SACxD,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,GAAS,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QAE3D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAA;QAClE,MAAM,gBAAgB,GAAG,GAAG,EAAE,SAAS,KAAK,KAAK,CAAA;QACjD,MAAM,eAAe,GAAG,eAAe,IAAI,gBAAgB,CAAA;QAC3D,MAAM,EAAE,GAAG,eAAe;YACxB,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC1E,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE;YACxC,KAAK,EAAE;gBACL,WAAW,CAAC,IAAI;oBACd,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBACrD,CAAC;gBACD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;oBAC1C,EAAE,EAAE,IAAI,CAAC;wBACP,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;qBAC/E,CAAC,CAAA;gBACJ,CAAC;aACF;SACF,CAAC,CAAA;QACF,aAAa,CAAC,OAAO,CAAC,CAAA;QAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACzE,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACzC,MAAM,QAAQ,GAAmD,EAAE,CAAA;YACnE,IAAI,UAAU,GAAG,CAAC,CAAA;YAClB,IAAI,WAAW,GAAG,CAAC,CAAA;YACnB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC3B,UAAU,IAAI,CAAC,CAAA;oBACf,IAAI,CAAC,CAAC,MAAM;wBAAE,WAAW,IAAI,CAAC,CAAA;;wBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;gBACjF,CAAC;YACH,CAAC;YACD,EAAE,CAAC,IAAI,CAAC;gBACN,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;oBACP,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,UAAU;oBACjB,UAAU;oBACV,QAAQ;iBACT;aACF,CAAC,CAAA;YACF,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;YAC9D,EAAE,EAAE,KAAK,EAAE,CAAA;QACb,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEJ,wBAAwB;IACxB,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC9I,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAAwC,EAAE,EAAE;QACzD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;QAEzD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE;YAC7C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,IAAI;SACvB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QAEjD,+CAA+C;QAC/C,IAAI,cAAc,GAAG,KAAK,CAAA;QAE1B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,cAAc,EAAE,CAAC;gBACnB,8BAA8B;gBAC9B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,cAAc,GAAG,IAAI,CAAA;YACrB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;YAEhE,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjB,MAAM,CAAC,KAAK,EAAE;oBACd,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;iBACjF,CAAC,CAAA;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEJ,sBAAsB;IACtB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACxF,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,OAA6C,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,SAAS;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QAEjD,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,cAAc,GAAG,IAAI,CAAA;YACrB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;YAC7D,MAAM,qBAAqB,EAAE,CAAA;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEJ,yDAAyD;IACzD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;SAC1D,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;SACpE,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,EAAE,SAAS,CAAC;SAC7E,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,gBAAgB,EAAE,+DAA+D,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9G,MAAM,CAAC,KAAK,EAAE,OAOd,EAAE,EAAE;QACH,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;YAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,gFAAgF;QAClF,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACxD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;QAClE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAExG,MAAM,QAAQ,GAAG,cAAc,CAAE,OAAO,CAAC,QAAyC,IAAI,SAAS,CAAC,CAAA;QAChG,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAElE,IAAI,SAAS,CAAA;QACb,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,UAAU,CAAC;gBAC3B,GAAG,EAAE,OAAO;gBACZ,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;gBAClC,QAAQ,EAAG,OAAO,CAAC,QAAyC,IAAI,SAAS;gBACzE,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,iBAAiB;QACjB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAClC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YAChC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,oBAAoB;QACpB,IAAI,SAA6B,CAAA;QACjC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAA;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;QAEjD,IAAI,YAAY,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;gBACpE,SAAS,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAA;YACvE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjE,OAAO,CAAC,IAAI,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAA;gBACxD,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAE3E,yCAAyC;gBACzC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;gBAClE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;oBACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,oCAAoC;YACpC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACvI,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QAClE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEJ,iBAAiB;IACjB,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACxF,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;SAClD,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;SAC9C,MAAM,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;SAC1D,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC3E,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAWd,EAAE,EAAE;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;YAC1B,SAAS;YACT,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,QAAQ;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3F,WAAW,EAAG,OAAO,CAAC,WAA4B,IAAI,IAAI;YAC1D,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEJ,qBAAqB;IACrB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mFAAmF,CAAC;SAChG,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC3G,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACzJ,MAAM,CAAC,6BAA6B,EAAE,2DAA2D,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;SAC3I,MAAM,CAAC,KAAK,EAAE,OAAoF,EAAE,EAAE;QACrG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc;YAC3C,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtE,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG;YACH,cAAc;SACf,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;QAEnF,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;YAC9E,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,OAAO,CAAC,MAAM,EAAE,CAAA;YACzE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,sBAAsB,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;aAChD,CAAC,CAAA;YACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,MAAM,4CAA4C,CAAC,CAAA;YACrH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAA;QACzG,CAAC;QAED,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,cAAc,GAAG,IAAI,CAAA;YACrB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;YACtD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEJ,8BAA8B;IAC9B,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,+FAA+F,CAAC;SAC5G,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;SAC1D,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA+C,EAAE,EAAE;QAC9E,MAAM,eAAe,GAAG,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,qEAAqE,GAAG,EAAE,CAAC,CAAA;YACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,SAAS,GAAY,SAAS,CAAA;QAClC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;YACrF,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACrH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,kBAAkB,eAAe,EAAE,CAAC,CAAA;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAErE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,uBAAuB,EAAE,CAAC,CAAA;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM,CAAC,aAAa;YAC5B,WAAW,EAAE,MAAM,CAAC,iBAAiB;SACtC,CAAA;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QAC7D,4EAA4E;QAC5E,qEAAqE;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,yBAAyB;IACzB,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,WAAW,CAAC;SAC/D,MAAM,CAAC,SAAS,EAAE,yCAAyC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,GAAwC,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAEhD,kDAAkD;QAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAA;QAE7E,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,6DAA6D,eAAe,EAAE,CAAC,CAAA;YAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC1C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QAE3D,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACzC,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,gDAAgD,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,MAAM,wFAAwF,CAAC,CAAA;gBAChI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAED,0BAA0B;YAC1B,cAAc,CAAC,UAAU,EAAE,aAAa,GAAG,YAAY,CAAC,CAAA;YACxD,OAAO,CAAC,GAAG,CAAC,4DAA4D,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACzC,OAAO,CAAC,GAAG,CAAC,sDAAsD,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACjF,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,iEAAiE,CAAC,CAAA;QACpG,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
package/dist/index.cjs CHANGED
@@ -1435,7 +1435,7 @@ var init_mock_resolver = __esm({
1435
1435
  // src/utils/debug.ts
1436
1436
  function debugLog(...args) {
1437
1437
  if (typeof process !== "undefined" && process.env?.[DEBUG_KEY] === "1") {
1438
- console.log(...args);
1438
+ console.error(...args);
1439
1439
  }
1440
1440
  }
1441
1441
  var DEBUG_KEY;
@@ -1,3 +1,3 @@
1
- /** Log only when ELASTICDASH_DEBUG=1 is set. Drop-in replacement for console.log in interceptors. */
1
+ /** Log only when ELASTICDASH_DEBUG=1 is set. Writes to stderr so callers parsing stdout (e.g. `elasticdash run-tool`) get a clean JSON channel. */
2
2
  export declare function debugLog(...args: unknown[]): void;
3
3
  //# sourceMappingURL=debug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAIjD"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAEA,mJAAmJ;AACnJ,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAIjD"}
@@ -1,8 +1,8 @@
1
1
  const DEBUG_KEY = 'ELASTICDASH_DEBUG';
2
- /** Log only when ELASTICDASH_DEBUG=1 is set. Drop-in replacement for console.log in interceptors. */
2
+ /** Log only when ELASTICDASH_DEBUG=1 is set. Writes to stderr so callers parsing stdout (e.g. `elasticdash run-tool`) get a clean JSON channel. */
3
3
  export function debugLog(...args) {
4
4
  if (typeof process !== 'undefined' && process.env?.[DEBUG_KEY] === '1') {
5
- console.log(...args);
5
+ console.error(...args);
6
6
  }
7
7
  }
8
8
  //# sourceMappingURL=debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAErC,qGAAqG;AACrG,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACzC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAErC,mJAAmJ;AACnJ,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACzC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,CAAC;AACH,CAAC"}
@@ -53,19 +53,6 @@ Also read node_modules/elasticdash-test/docs/agent-integration-guide.md for tech
53
53
 
54
54
  **Do not continue until `ELASTICDASH_API_KEY` is set.** The SDK cannot connect to the backend without it.
55
55
 
56
- **3. Set default SDK variables**
57
-
58
- Add these to `.env` if they are not already present:
59
-
60
- ```bash
61
- ELASTICDASH_DEBUG=1
62
- ELASTICDASH_CAPTURE_TRACE=0
63
- ELASTICDASH_ACCEPT_RERUNS=1
64
- ```
65
-
66
- - `ELASTICDASH_DEBUG=1` — enables SDK debug logging, useful during initial setup
67
- - `ELASTICDASH_CAPTURE_TRACE=0` — trace capture off by default (set to `1` when recording fixtures)
68
- - `ELASTICDASH_ACCEPT_RERUNS=1` — allows the backend to push rerun requests to this SDK instance
69
56
 
70
57
  ### Phase 2: Scan the codebase
71
58
 
@@ -338,9 +338,9 @@ Set in `.env` or CI secrets:
338
338
  |----------|-------------|----------|
339
339
  | `ELASTICDASH_API_URL` | Backend server URL (`https://server.elasticdash.com` for cloud) | For upload/CI |
340
340
  | `ELASTICDASH_API_KEY` | Project API key from dashboard | For upload/CI |
341
- | `ELASTICDASH_DEBUG` | Set to `1` to enable SDK debug logging | Recommended during setup |
342
- | `ELASTICDASH_CAPTURE_TRACE` | Set to `0` by default; `1` to record a trace fixture | For trace recording |
343
- | `ELASTICDASH_ACCEPT_RERUNS` | Set to `1` to accept rerun requests from backend | Recommended |
341
+ | `ELASTICDASH_DEBUG` | Set to `1` to enable SDK debug logging (default: off) | Optional |
342
+ | `ELASTICDASH_CAPTURE_TRACE` | Set to `1` to record trace fixtures to disk (default: off) | Optional |
343
+ | `ELASTICDASH_ACCEPT_RERUNS` | Set to `false`/`0` to reject rerun requests (default: on) | Optional |
344
344
  | `OPENAI_API_KEY` | OpenAI API key | If using OpenAI |
345
345
  | `ANTHROPIC_API_KEY` | Anthropic API key | If using Claude |
346
346
  | `GEMINI_API_KEY` | Google Gemini API key | If using Gemini |
@@ -0,0 +1,192 @@
1
+ # Observability SDK Contract
2
+
3
+ This document describes the event types the SDK sends and the portal (remote rerun queue) contract between the SDK and the backend.
4
+
5
+ ---
6
+
7
+ ## SDK Event Types
8
+
9
+ ### Events the SDK Sends
10
+
11
+ | `type` | `name` | When | Key fields |
12
+ |--------|--------|------|------------|
13
+ | `ai` | Model name (e.g. `gpt-4o`) | Every `wrapAI` call | `input`, `output`, `usage`, `durationMs`, `streamed` |
14
+ | `tool` | Tool name (e.g. `searchDB`) | Every `wrapTool` call | `input`, `output`, `durationMs`, `streamed` |
15
+ | `side_effect` | `__heartbeat__` | Every 30s (configurable) | `input.sessionId`, `output.uptime` |
16
+ | `side_effect` | `__session_end__` | On `shutdownObservability()` | `input.sessionId`, `output.uptime` |
17
+
18
+ ### Special Events (do not display in trace UI)
19
+
20
+ - `__heartbeat__` — update session liveness, do not store as event
21
+ - `__session_end__` — mark session as ended, do not store as event
22
+
23
+ ### Streamed Events
24
+
25
+ When `streamed === true`:
26
+ - `output` is `null`
27
+ - `streamRaw` contains the full buffered text of the stream
28
+ - Display `streamRaw` as the output in the UI
29
+
30
+ ### Error Events
31
+
32
+ When a tool or AI call throws:
33
+ - `output` is `{ "error": "Error message string" }`
34
+ - `durationMs` reflects time until failure
35
+ - Display with error styling in the UI
36
+
37
+ ---
38
+
39
+ ## Portal (Remote Rerun Queue) Contract
40
+
41
+ The SDK's `elasticdash portal` command starts an HTTP server that the backend can push rerun tasks to. The backend also needs endpoints to receive results.
42
+
43
+ ### SDK Portal Endpoints (hosted on user's machine, default port 4574)
44
+
45
+ These endpoints are served by the SDK. The backend calls them.
46
+
47
+ #### `POST /api/portal/tasks` — Push a single rerun task
48
+
49
+ **Request:**
50
+ ```json
51
+ {
52
+ "taskId": "task-uuid-from-backend",
53
+ "type": "tool",
54
+ "name": "searchDB",
55
+ "input": { "query": "pikachu" },
56
+ "metadata": { "testGroupId": 42, "expectationIds": [1, 2, 3] }
57
+ }
58
+ ```
59
+
60
+ For AI tasks:
61
+ ```json
62
+ {
63
+ "taskId": "task-uuid-from-backend",
64
+ "type": "ai",
65
+ "name": "gpt-4o",
66
+ "input": { "messages": [{ "role": "user", "content": "Hello" }] },
67
+ "model": "gpt-4o",
68
+ "provider": "openai",
69
+ "modelParameters": { "temperature": 0.7, "max_tokens": 512 },
70
+ "metadata": { "testGroupId": 42 }
71
+ }
72
+ ```
73
+
74
+ **Response:** `202 Accepted`
75
+ ```json
76
+ { "ok": true, "taskId": "task-uuid-from-backend", "position": 3 }
77
+ ```
78
+
79
+ **Auth:** `Authorization: Bearer <api_key>` (validated if portal was started with `--api-key`)
80
+
81
+ #### `POST /api/portal/tasks/batch` — Push multiple tasks
82
+
83
+ **Request:**
84
+ ```json
85
+ { "tasks": [ /* PortalTask[] */ ] }
86
+ ```
87
+
88
+ **Response:** `202 Accepted`
89
+ ```json
90
+ { "ok": true, "tasks": [{ "taskId": "...", "position": 1 }, { "taskId": "...", "position": 2 }] }
91
+ ```
92
+
93
+ #### `GET /api/portal/status` — Health check
94
+
95
+ **Response:**
96
+ ```json
97
+ {
98
+ "ok": true,
99
+ "queueLength": 5,
100
+ "processing": "task-uuid-123",
101
+ "completed": 12,
102
+ "failed": 1
103
+ }
104
+ ```
105
+
106
+ #### `DELETE /api/portal/tasks/:taskId` — Cancel a pending task
107
+
108
+ **Response:** `200` if removed, `404` if not found or already processing.
109
+
110
+ ---
111
+
112
+ ### Backend Endpoints (needed for portal to work)
113
+
114
+ These endpoints must be implemented on the backend. The SDK calls them.
115
+
116
+ #### `POST /api/portal/register` — Portal registration
117
+
118
+ Called by the SDK when `elasticdash portal` starts.
119
+
120
+ **Request:**
121
+ ```json
122
+ {
123
+ "portalUrl": "http://localhost:4574"
124
+ }
125
+ ```
126
+
127
+ **Auth:** `Authorization: Bearer <api_key>`
128
+
129
+ **Response:** `200 OK`
130
+ ```json
131
+ { "ok": true }
132
+ ```
133
+
134
+ The backend should store this portal URL and use it to push tasks. The registration should be scoped to the project resolved from the API key.
135
+
136
+ #### `POST /api/portal/results/:taskId` — Receive task result
137
+
138
+ Called by the SDK after each task completes (success or failure).
139
+
140
+ **Request:**
141
+ ```json
142
+ {
143
+ "taskId": "task-uuid-from-backend",
144
+ "ok": true,
145
+ "output": "The search returned 3 results for pikachu...",
146
+ "durationMs": 245,
147
+ "usage": {
148
+ "inputTokens": 150,
149
+ "outputTokens": 45,
150
+ "totalTokens": 195
151
+ },
152
+ "metadata": { "testGroupId": 42, "expectationIds": [1, 2, 3] }
153
+ }
154
+ ```
155
+
156
+ For failed tasks:
157
+ ```json
158
+ {
159
+ "taskId": "task-uuid-from-backend",
160
+ "ok": false,
161
+ "output": null,
162
+ "error": "Tool not found: \"searchDB\". Available tools: fetchData, sendEmail",
163
+ "durationMs": 0,
164
+ "metadata": { "testGroupId": 42 }
165
+ }
166
+ ```
167
+
168
+ **Auth:** `Authorization: Bearer <api_key>`
169
+
170
+ **Response:** `200 OK`
171
+ ```json
172
+ { "ok": true }
173
+ ```
174
+
175
+ ---
176
+
177
+ ### Error Results Reference
178
+
179
+ The SDK sends these error patterns:
180
+
181
+ | Error pattern | Meaning |
182
+ |--------------|---------|
183
+ | `Tool not found: "<name>". Available tools: ...` | Tool doesn't exist in `ed_tools.ts` |
184
+ | `Cannot find ed_tools.ts/js in workspace root.` | No tools module in the project |
185
+ | `Unsupported AI provider: "<name>"` | Unknown provider string |
186
+ | `Missing API key for provider "<name>". Expected environment variable: <VAR>` | LLM API key not configured |
187
+ | `AI task input is empty; cannot execute.` | No prompt could be extracted from input |
188
+ | `AI execution failed: <message>` | LLM API call failed (rate limit, network, invalid model) |
189
+ | `Tool subprocess produced no output.` | Subprocess exited without result |
190
+ | `Failed to spawn tool subprocess: <message>` | Could not start subprocess |
191
+ | `Missing tool name on task.` | Task had no `name` field |
192
+ | `Unknown task type: <type>` | Task type was neither `tool` nor `ai` |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elasticdash-test",
3
- "version": "0.1.26-alpha-4",
4
- "description": "AI-native test runner for ElasticDash workflow testing",
3
+ "version": "0.1.26-hotfix-1",
4
+ "description": "AI-native SDK for ElasticDash workflow testing, tracing, and observability",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "elasticdash": "./dist/cli.js",
package/src/cli.ts CHANGED
@@ -14,6 +14,7 @@ import { startBrowserUiServer, type UiEvent } from './browser-ui.js'
14
14
  import { startDashboardServer } from './dashboard-server.js'
15
15
  import { initObservability, shutdownObservability } from './observability.js'
16
16
  import { startPortalServer } from './portal-server.js'
17
+ import { resolveRuntimeModule, scanTools, buildToolArgs, runToolInSubprocess } from './execution/tool-runner.js'
17
18
 
18
19
  function stripAnsi(input?: string): string | undefined {
19
20
  if (!input) return input
@@ -57,6 +58,8 @@ function validateRepoDirectory(cwd: string): boolean {
57
58
  'elasticdash.config.js',
58
59
  'ed_workflows.ts',
59
60
  'ed_workflows.js',
61
+ 'ed_tools.ts',
62
+ 'ed_tools.js',
60
63
  ]
61
64
  return validFiles.some(file => existsSync(path.join(cwd, file)))
62
65
  }
@@ -566,6 +569,58 @@ async function bootstrap(): Promise<void> {
566
569
  process.once('SIGTERM', cleanup)
567
570
  })
568
571
 
572
+ // elasticdash run-tool <name>
573
+ program
574
+ .command('run-tool <name>')
575
+ .description('Run a single tool by name with given input. Used for rerun validation (e.g. ElasticDash MCP).')
576
+ .option('--input <json>', 'JSON input to pass to the tool')
577
+ .option('--input-file <path>', 'Path to JSON file with input')
578
+ .action(async (name: string, options: { input?: string; inputFile?: string }) => {
579
+ const toolsModulePath = resolveRuntimeModule(cwd, 'ed_tools')
580
+ if (!toolsModulePath) {
581
+ console.error(`[elasticdash] Error: Could not find ed_tools.ts or ed_tools.js in ${cwd}`)
582
+ process.exit(1)
583
+ }
584
+
585
+ let toolInput: unknown = undefined
586
+ try {
587
+ if (options.inputFile) {
588
+ toolInput = JSON.parse(readFileSync(path.resolve(cwd, options.inputFile), 'utf-8'))
589
+ } else if (options.input) {
590
+ toolInput = JSON.parse(options.input)
591
+ }
592
+ } catch (err) {
593
+ console.error(`[elasticdash] Error: Failed to parse input JSON: ${err instanceof Error ? err.message : String(err)}`)
594
+ process.exit(1)
595
+ }
596
+
597
+ const tools = scanTools(cwd)
598
+ const tool = tools.find(t => t.name === name)
599
+ if (!tool) {
600
+ console.error(`[elasticdash] Error: Tool '${name}' not found in ${toolsModulePath}`)
601
+ process.exit(1)
602
+ }
603
+
604
+ const args = buildToolArgs(toolInput, tool)
605
+ const result = await runToolInSubprocess(toolsModulePath, name, args)
606
+
607
+ if (!result.ok) {
608
+ console.error(`[elasticdash] ${result.error ?? 'Tool execution failed'}`)
609
+ process.exit(1)
610
+ }
611
+
612
+ const payload = {
613
+ tool: name,
614
+ output: result.currentOutput,
615
+ duration_ms: result.currentDurationMs,
616
+ }
617
+ process.stdout.write(JSON.stringify(payload, null, 2) + '\n')
618
+ // Sentinel line so machine consumers (e.g. ElasticDash MCP) can extract the
619
+ // result envelope even when project code prints to stdout before us.
620
+ process.stdout.write('__ED_RUN_TOOL_RESULT__:' + JSON.stringify(payload) + '\n')
621
+ process.exit(0)
622
+ })
623
+
569
624
  // elasticdash init-guide
570
625
  program
571
626
  .command('init-guide')
@@ -1,8 +1,8 @@
1
1
  const DEBUG_KEY = 'ELASTICDASH_DEBUG'
2
2
 
3
- /** Log only when ELASTICDASH_DEBUG=1 is set. Drop-in replacement for console.log in interceptors. */
3
+ /** Log only when ELASTICDASH_DEBUG=1 is set. Writes to stderr so callers parsing stdout (e.g. `elasticdash run-tool`) get a clean JSON channel. */
4
4
  export function debugLog(...args: unknown[]): void {
5
5
  if (typeof process !== 'undefined' && process.env?.[DEBUG_KEY] === '1') {
6
- console.log(...args)
6
+ console.error(...args)
7
7
  }
8
8
  }