elasticdash-test 0.1.17-alpha-2 → 0.1.18-alpha

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 (103) hide show
  1. package/dist/capture/event.d.ts +5 -1
  2. package/dist/capture/event.d.ts.map +1 -1
  3. package/dist/cli.js +100 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/dashboard-server.js +1 -1
  6. package/dist/dashboard-server.js.map +1 -1
  7. package/dist/evaluators/llm-judge.js +17 -14
  8. package/dist/evaluators/types.d.ts +1 -0
  9. package/dist/execution/tool-runner.d.ts +26 -0
  10. package/dist/execution/tool-runner.d.ts.map +1 -0
  11. package/dist/execution/tool-runner.js +270 -0
  12. package/dist/execution/tool-runner.js.map +1 -0
  13. package/dist/http.d.ts +2 -0
  14. package/dist/http.d.ts.map +1 -1
  15. package/dist/http.js +2 -0
  16. package/dist/http.js.map +1 -1
  17. package/dist/index.cjs +3586 -1761
  18. package/dist/index.d.ts +24 -13
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +30 -9
  21. package/dist/index.js.map +1 -1
  22. package/dist/interceptors/ai-interceptor.d.ts.map +1 -1
  23. package/dist/interceptors/ai-interceptor.js +97 -4
  24. package/dist/interceptors/ai-interceptor.js.map +1 -1
  25. package/dist/interceptors/db-auto.d.ts.map +1 -1
  26. package/dist/interceptors/db-auto.js +116 -24
  27. package/dist/interceptors/db-auto.js.map +1 -1
  28. package/dist/interceptors/db.d.ts +5 -0
  29. package/dist/interceptors/db.d.ts.map +1 -1
  30. package/dist/interceptors/db.js +93 -15
  31. package/dist/interceptors/db.js.map +1 -1
  32. package/dist/interceptors/http.d.ts.map +1 -1
  33. package/dist/interceptors/http.js +125 -93
  34. package/dist/interceptors/http.js.map +1 -1
  35. package/dist/interceptors/telemetry-push.d.ts +31 -2
  36. package/dist/interceptors/telemetry-push.d.ts.map +1 -1
  37. package/dist/interceptors/telemetry-push.js +143 -26
  38. package/dist/interceptors/telemetry-push.js.map +1 -1
  39. package/dist/interceptors/tool.d.ts.map +1 -1
  40. package/dist/interceptors/tool.js +42 -5
  41. package/dist/interceptors/tool.js.map +1 -1
  42. package/dist/interceptors/workflow-ai.d.ts.map +1 -1
  43. package/dist/interceptors/workflow-ai.js +160 -2
  44. package/dist/interceptors/workflow-ai.js.map +1 -1
  45. package/dist/internals/mock-resolver.d.ts +16 -0
  46. package/dist/internals/mock-resolver.d.ts.map +1 -1
  47. package/dist/internals/mock-resolver.js +75 -0
  48. package/dist/internals/mock-resolver.js.map +1 -1
  49. package/dist/observability.d.ts +69 -0
  50. package/dist/observability.d.ts.map +1 -0
  51. package/dist/observability.js +242 -0
  52. package/dist/observability.js.map +1 -0
  53. package/dist/portal-executor.d.ts +30 -0
  54. package/dist/portal-executor.d.ts.map +1 -0
  55. package/dist/portal-executor.js +304 -0
  56. package/dist/portal-executor.js.map +1 -0
  57. package/dist/portal-server.d.ts +3 -0
  58. package/dist/portal-server.d.ts.map +1 -0
  59. package/dist/portal-server.js +265 -0
  60. package/dist/portal-server.js.map +1 -0
  61. package/dist/telemetry-batcher.d.ts +43 -0
  62. package/dist/telemetry-batcher.d.ts.map +1 -0
  63. package/dist/telemetry-batcher.js +111 -0
  64. package/dist/telemetry-batcher.js.map +1 -0
  65. package/dist/trigger-executor.d.ts +12 -0
  66. package/dist/trigger-executor.d.ts.map +1 -0
  67. package/dist/trigger-executor.js +83 -0
  68. package/dist/trigger-executor.js.map +1 -0
  69. package/dist/types/portal.d.ts +64 -0
  70. package/dist/types/portal.d.ts.map +1 -0
  71. package/dist/types/portal.js +2 -0
  72. package/dist/types/portal.js.map +1 -0
  73. package/dist/utils/debug.d.ts +3 -0
  74. package/dist/utils/debug.d.ts.map +1 -0
  75. package/dist/utils/debug.js +8 -0
  76. package/dist/utils/debug.js.map +1 -0
  77. package/dist/utils/redact.d.ts +7 -0
  78. package/dist/utils/redact.d.ts.map +1 -0
  79. package/dist/utils/redact.js +26 -0
  80. package/dist/utils/redact.js.map +1 -0
  81. package/package.json +12 -2
  82. package/src/capture/event.ts +5 -1
  83. package/src/cli.ts +109 -0
  84. package/src/dashboard-server.ts +1 -1
  85. package/src/execution/tool-runner.ts +304 -0
  86. package/src/http.ts +2 -0
  87. package/src/index.ts +81 -13
  88. package/src/interceptors/ai-interceptor.ts +110 -4
  89. package/src/interceptors/db-auto.ts +121 -25
  90. package/src/interceptors/db.ts +92 -17
  91. package/src/interceptors/http.ts +145 -107
  92. package/src/interceptors/telemetry-push.ts +161 -27
  93. package/src/interceptors/tool.ts +42 -5
  94. package/src/interceptors/workflow-ai.ts +173 -2
  95. package/src/internals/mock-resolver.ts +91 -0
  96. package/src/observability.ts +281 -0
  97. package/src/portal-executor.ts +335 -0
  98. package/src/portal-server.ts +290 -0
  99. package/src/telemetry-batcher.ts +143 -0
  100. package/src/trigger-executor.ts +121 -0
  101. package/src/types/portal.ts +67 -0
  102. package/src/utils/debug.ts +8 -0
  103. package/src/utils/redact.ts +25 -0
@@ -1,7 +1,7 @@
1
1
  async function callJudgeLLM(prompt, output, model, provider) {
2
2
  const outputStr = typeof output === 'string' ? output : JSON.stringify(output, null, 2);
3
- const systemPrompt = `You are an evaluation judge. You will be given an output from an AI workflow and a criteria to evaluate it against. Respond with exactly YES or NO on the first line, followed by a brief reasoning on the next line.`;
4
- const userMessage = `## Criteria\n${prompt}\n\n## Output to evaluate\n${outputStr}\n\nDoes the output meet the criteria? Answer YES or NO, then explain briefly.`;
3
+ const systemPrompt = `You are an evaluation judge. You will be given an output from an AI workflow and a criteria to evaluate it against. Respond with a single integer score from 0 to 10 on the first line, followed by a brief reasoning on the next line. 0 means completely failed, 10 means perfectly met.`;
4
+ const userMessage = `## Criteria\n${prompt}\n\n## Output to evaluate\n${outputStr}\n\nScore from 0 to 10:`;
5
5
  if (provider === 'openai' || provider === 'default') {
6
6
  const apiKey = process.env.OPENAI_API_KEY;
7
7
  if (!apiKey)
@@ -28,7 +28,7 @@ async function callJudgeLLM(prompt, output, model, provider) {
28
28
  }
29
29
  const json = await res.json();
30
30
  const content = json.choices?.[0]?.message?.content ?? '';
31
- return parseVerdict(content);
31
+ return parseScoreVerdict(content);
32
32
  }
33
33
  if (provider === 'anthropic') {
34
34
  const apiKey = process.env.ANTHROPIC_API_KEY;
@@ -55,16 +55,17 @@ async function callJudgeLLM(prompt, output, model, provider) {
55
55
  }
56
56
  const json = await res.json();
57
57
  const content = json.content?.[0]?.text ?? '';
58
- return parseVerdict(content);
58
+ return parseScoreVerdict(content);
59
59
  }
60
60
  throw new Error(`Unsupported judge provider: ${provider}. Use 'openai' or 'anthropic'.`);
61
61
  }
62
- function parseVerdict(content) {
62
+ function parseScoreVerdict(content) {
63
63
  const lines = content.trim().split('\n');
64
- const firstLine = lines[0]?.trim().toUpperCase() ?? '';
65
- const passed = firstLine.startsWith('YES');
66
- const reasoning = lines.slice(1).join('\n').trim() || (passed ? 'Criteria met' : 'Criteria not met');
67
- return { passed, reasoning };
64
+ const firstLine = lines[0]?.trim() ?? '';
65
+ const scoreMatch = firstLine.match(/(\d+)/);
66
+ const score = scoreMatch ? Math.min(10, Math.max(0, parseInt(scoreMatch[1], 10))) : 0;
67
+ const reasoning = lines.slice(1).join('\n').trim() || `Score: ${score}/10`;
68
+ return { score, reasoning };
68
69
  }
69
70
  function resolveModel(expectation) {
70
71
  const provider = expectation.judgeProvider || detectProvider(expectation.judgeModel);
@@ -87,18 +88,20 @@ export async function evaluateLLMJudge(expectation, runs) {
87
88
  detail: 'No judge prompt provided',
88
89
  };
89
90
  }
91
+ const threshold = expectation.judgeScoreThreshold ?? 7;
90
92
  const { model, provider } = resolveModel(expectation);
91
93
  const perRun = [];
92
94
  let allPassed = true;
93
95
  for (const run of runs) {
94
96
  try {
95
97
  const verdict = await callJudgeLLM(expectation.judgePrompt, run.output, model, provider === 'default' ? 'openai' : provider);
96
- if (!verdict.passed)
98
+ const passed = verdict.score >= threshold;
99
+ if (!passed)
97
100
  allPassed = false;
98
101
  perRun.push({
99
102
  runIndex: run.runIndex,
100
- passed: verdict.passed,
101
- value: verdict.reasoning,
103
+ passed,
104
+ value: `${verdict.score}/10 — ${verdict.reasoning}`,
102
105
  });
103
106
  }
104
107
  catch (err) {
@@ -115,8 +118,8 @@ export async function evaluateLLMJudge(expectation, runs) {
115
118
  expectationId: expectation.id,
116
119
  type: 'llm-judge',
117
120
  passed: allPassed,
118
- detail: `${passedCount}/${runs.length} passed judge evaluation (${model})`,
121
+ detail: `${passedCount}/${runs.length} passed (threshold ${threshold}/10, model: ${model})`,
119
122
  perRun,
120
123
  };
121
124
  }
122
- //# sourceMappingURL=llm-judge.js.map
125
+ //# sourceMappingURL=llm-judge.js.map
@@ -10,6 +10,7 @@ export interface Expectation {
10
10
  judgePrompt?: string;
11
11
  judgeModel?: string;
12
12
  judgeProvider?: string;
13
+ judgeScoreThreshold?: number;
13
14
  maxTotalTokens?: number;
14
15
  maxTokensPerRun?: number;
15
16
  maxDurationMs?: number;
@@ -0,0 +1,26 @@
1
+ export interface ToolInfo {
2
+ name: string;
3
+ isAsync: boolean;
4
+ signature: string;
5
+ filePath: string;
6
+ lineNumber?: number;
7
+ sourceCode?: string;
8
+ }
9
+ export interface RerunResult {
10
+ ok: boolean;
11
+ currentOutput?: unknown;
12
+ currentDurationMs?: number;
13
+ currentUsage?: {
14
+ inputTokens?: number;
15
+ outputTokens?: number;
16
+ totalTokens?: number;
17
+ };
18
+ error?: string;
19
+ }
20
+ export declare function isDenoProject(dir: string): boolean;
21
+ export declare function resolveRuntimeModule(cwd: string, baseName: string): string | null;
22
+ export declare function buildToolArgs(input: unknown, tool?: ToolInfo): unknown[];
23
+ export declare function runToolInSubprocess(toolsModulePath: string, toolName: string, args: unknown[]): Promise<RerunResult>;
24
+ export declare function scanTools(cwd: string): ToolInfo[];
25
+ export declare function scanWorkflows(cwd: string): ToolInfo[];
26
+ //# sourceMappingURL=tool-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-runner.d.ts","sourceRoot":"","sources":["../../src/execution/tool-runner.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAeD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjF;AAoBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAYxE;AAMD,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,GACd,OAAO,CAAC,WAAW,CAAC,CAkEtB;AAmHD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAYjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAYrD"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Shared tool/AI execution helpers for portal and dashboard.
3
+ * These are extracted versions of the helpers in dashboard-server.ts
4
+ * to avoid importing the full dashboard server module.
5
+ */
6
+ import path from 'node:path';
7
+ import { existsSync, readFileSync } from 'node:fs';
8
+ import { spawn } from 'node:child_process';
9
+ import { pathToFileURL } from 'node:url';
10
+ // ---------------------------------------------------------------------------
11
+ // Runtime helpers
12
+ // ---------------------------------------------------------------------------
13
+ export function isDenoProject(dir) {
14
+ return existsSync(path.join(dir, 'deno.json')) || existsSync(path.join(dir, 'deno.jsonc'));
15
+ }
16
+ export function resolveRuntimeModule(cwd, baseName) {
17
+ for (const ext of ['.ts', '.tsx', '.js', '.jsx']) {
18
+ const candidate = path.join(cwd, `${baseName}${ext}`);
19
+ if (existsSync(candidate))
20
+ return candidate;
21
+ }
22
+ return null;
23
+ }
24
+ function parseSignatureParams(signature) {
25
+ if (!signature)
26
+ return [];
27
+ const trimmed = signature.trim();
28
+ if (!trimmed.startsWith('(') || !trimmed.endsWith(')'))
29
+ return [];
30
+ const body = trimmed.slice(1, -1).trim();
31
+ if (!body)
32
+ return [];
33
+ return body
34
+ .split(',')
35
+ .map(part => part.trim())
36
+ .filter(Boolean)
37
+ .map(part => part.replace(/^\.\.\./, '').split('=')[0].split(':')[0].replace(/\?/g, '').trim())
38
+ .filter(part => /^[$A-Z_][0-9A-Z_$]*$/i.test(part));
39
+ }
40
+ // ---------------------------------------------------------------------------
41
+ // Argument building
42
+ // ---------------------------------------------------------------------------
43
+ export function buildToolArgs(input, tool) {
44
+ if (input === undefined)
45
+ return [];
46
+ if (Array.isArray(input))
47
+ return input;
48
+ if (input && typeof input === 'object') {
49
+ const argObject = input;
50
+ const paramNames = parseSignatureParams(tool?.signature);
51
+ if (paramNames.length > 0 && paramNames.every(name => Object.prototype.hasOwnProperty.call(argObject, name))) {
52
+ return paramNames.map(name => argObject[name]);
53
+ }
54
+ return [input];
55
+ }
56
+ return [input];
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Subprocess execution
60
+ // ---------------------------------------------------------------------------
61
+ export function runToolInSubprocess(toolsModulePath, toolName, args) {
62
+ return new Promise((resolve) => {
63
+ const startMs = Date.now();
64
+ const workerScript = new URL('../tool-runner-worker.js', import.meta.url).pathname;
65
+ const projectDir = path.dirname(toolsModulePath);
66
+ const denoProject = isDenoProject(projectDir);
67
+ const nodeOptions = process.env.NODE_OPTIONS ?? '';
68
+ const tsxFlag = '--import tsx';
69
+ const childNodeOptions = nodeOptions.includes('tsx') ? nodeOptions : `${nodeOptions} ${tsxFlag}`.trim();
70
+ const childEnv = { ...process.env, NODE_OPTIONS: denoProject ? nodeOptions : childNodeOptions };
71
+ const runtime = denoProject ? 'deno' : process.execPath;
72
+ const runtimeArgs = denoProject ? ['run', '--allow-all', workerScript] : [workerScript];
73
+ const child = spawn(runtime, runtimeArgs, {
74
+ env: childEnv,
75
+ cwd: projectDir,
76
+ stdio: ['pipe', 'pipe', 'pipe'],
77
+ });
78
+ const RESULT_PREFIX = '__ELASTICDASH_RESULT__:';
79
+ let resultLine = '';
80
+ let stderr = '';
81
+ child.stdout.on('data', (chunk) => {
82
+ const text = chunk.toString();
83
+ for (const line of text.split('\n')) {
84
+ if (line.startsWith(RESULT_PREFIX)) {
85
+ resultLine = line.slice(RESULT_PREFIX.length);
86
+ }
87
+ else if (line) {
88
+ process.stdout.write(line + '\n');
89
+ }
90
+ }
91
+ });
92
+ child.stderr.on('data', (chunk) => {
93
+ stderr += chunk.toString();
94
+ process.stderr.write(chunk);
95
+ });
96
+ child.on('close', () => {
97
+ const currentDurationMs = Date.now() - startMs;
98
+ if (resultLine) {
99
+ try {
100
+ resolve({ ...JSON.parse(resultLine), currentDurationMs });
101
+ return;
102
+ }
103
+ catch { /* fall through */ }
104
+ }
105
+ resolve({ ok: false, error: stderr.trim() || 'Tool subprocess produced no output.', currentDurationMs });
106
+ });
107
+ child.on('error', (err) => {
108
+ const hint = denoProject && err.code === 'ENOENT'
109
+ ? ' (Deno project detected — ensure "deno" is installed and available in PATH)'
110
+ : '';
111
+ resolve({ ok: false, error: `Failed to spawn tool subprocess: ${err.message}${hint}`, currentDurationMs: Date.now() - startMs });
112
+ });
113
+ const payload = JSON.stringify({
114
+ toolsModulePath: pathToFileURL(toolsModulePath).pathname,
115
+ toolName,
116
+ args,
117
+ });
118
+ child.stdin.write(payload);
119
+ child.stdin.end();
120
+ });
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // Tool scanning (static analysis of ed_tools.ts/js)
124
+ // ---------------------------------------------------------------------------
125
+ function resolveModulePath(fromDir, specifier) {
126
+ if (!specifier.startsWith('.'))
127
+ return null;
128
+ const exts = ['.ts', '.tsx', '.js', '.jsx', ''];
129
+ for (const ext of exts) {
130
+ const candidate = path.resolve(fromDir, specifier + ext);
131
+ if (existsSync(candidate))
132
+ return candidate;
133
+ }
134
+ return null;
135
+ }
136
+ function lineAt(src, index) {
137
+ return src.slice(0, index).split('\n').length;
138
+ }
139
+ function extractSource(src, index) {
140
+ const snippet = src.slice(index, index + 2000);
141
+ return snippet.length < 2000 ? snippet : snippet + '\n// (truncated)';
142
+ }
143
+ function findFunctionInSource(src, name) {
144
+ const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
145
+ let m = src.match(new RegExp(`export\\s+(async\\s+)?function\\s+${escaped}\\s*(\\([^)]*\\))`));
146
+ if (m)
147
+ return { isAsync: !!m[1], signature: m[2], lineNumber: lineAt(src, m.index), sourceCode: extractSource(src, m.index) };
148
+ m = src.match(new RegExp(`(?:^|\\n)\\s*(?:async\\s+)?function\\s+${escaped}\\s*(\\([^)]*\\))`, 'm'));
149
+ if (m)
150
+ return {
151
+ isAsync: new RegExp(`async\\s+function\\s+${escaped}`).test(src),
152
+ signature: m[1],
153
+ lineNumber: lineAt(src, m.index),
154
+ sourceCode: extractSource(src, m.index),
155
+ };
156
+ m = src.match(new RegExp(`export\\s+const\\s+${escaped}\\s*=\\s*(async\\s*)?(\\([^)]*\\))\\s*=>`));
157
+ if (m)
158
+ return { isAsync: !!m[1], signature: m[2], lineNumber: lineAt(src, m.index) };
159
+ m = src.match(new RegExp(`(?:^|\\n)\\s*const\\s+${escaped}\\s*=\\s*(async\\s*)?(\\([^)]*\\))\\s*=>`, 'm'));
160
+ if (m)
161
+ return { isAsync: !!m[1], signature: m[2], lineNumber: lineAt(src, m.index) };
162
+ return { isAsync: false, signature: '()' };
163
+ }
164
+ function extractExportsFromSource(filePath) {
165
+ let src;
166
+ try {
167
+ src = readFileSync(filePath, 'utf8');
168
+ }
169
+ catch {
170
+ return [];
171
+ }
172
+ const dir = path.dirname(filePath);
173
+ const results = [];
174
+ // 1. Direct: export [async] function name(params) { … }
175
+ for (const m of src.matchAll(/export\s+(async\s+)?function\s+(\w+)\s*(\([^)]*\))/g)) {
176
+ results.push({
177
+ name: m[2], isAsync: !!m[1], signature: m[3], filePath,
178
+ lineNumber: lineAt(src, m.index), sourceCode: extractSource(src, m.index),
179
+ });
180
+ }
181
+ // 2. Direct: export const name = [async] (params) => …
182
+ for (const m of src.matchAll(/export\s+const\s+(\w+)\s*=\s*(async\s*)?\(([^)]*)\)\s*=>/g)) {
183
+ results.push({
184
+ name: m[1], isAsync: !!m[2], signature: `(${m[3]})`, filePath,
185
+ lineNumber: lineAt(src, m.index), sourceCode: extractSource(src, m.index),
186
+ });
187
+ }
188
+ // 3. Named re-exports: export { X [as Y], … } from './module'
189
+ for (const m of src.matchAll(/export\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g)) {
190
+ const modulePath = resolveModulePath(dir, m[2]);
191
+ let moduleSrc = '';
192
+ try {
193
+ if (modulePath)
194
+ moduleSrc = readFileSync(modulePath, 'utf8');
195
+ }
196
+ catch { /* ignore */ }
197
+ for (const spec of m[1].split(',')) {
198
+ const parts = spec.trim().split(/\s+as\s+/);
199
+ const originalName = parts[0].trim();
200
+ const exportedName = (parts[1] ?? parts[0]).trim();
201
+ if (!exportedName || exportedName === 'default')
202
+ continue;
203
+ const info = moduleSrc ? findFunctionInSource(moduleSrc, originalName) : { isAsync: false, signature: '()' };
204
+ results.push({
205
+ name: exportedName, isAsync: info.isAsync, signature: info.signature,
206
+ filePath: modulePath ?? filePath, lineNumber: info.lineNumber, sourceCode: info.sourceCode,
207
+ });
208
+ }
209
+ }
210
+ // 4. Import + destructure: import { obj } from './m' + export const { a, b } = obj
211
+ for (const imp of src.matchAll(/import\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g)) {
212
+ const importedNames = imp[1].split(',').map(s => {
213
+ const parts = s.trim().split(/\s+as\s+/);
214
+ return { original: parts[0].trim(), local: (parts[1] ?? parts[0]).trim() };
215
+ }).filter(n => n.local);
216
+ const modulePath = resolveModulePath(dir, imp[2]);
217
+ for (const { local } of importedNames) {
218
+ const destructureRe = new RegExp(`export\\s+const\\s+\\{([^}]+)\\}\\s*=\\s*${local.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}`);
219
+ const dm = src.match(destructureRe);
220
+ if (!dm)
221
+ continue;
222
+ let moduleSrc = '';
223
+ try {
224
+ if (modulePath)
225
+ moduleSrc = readFileSync(modulePath, 'utf8');
226
+ }
227
+ catch { /* ignore */ }
228
+ for (const member of dm[1].split(',')) {
229
+ const name = member.trim();
230
+ if (!name)
231
+ continue;
232
+ const info = moduleSrc ? findFunctionInSource(moduleSrc, name) : { isAsync: false, signature: '()' };
233
+ results.push({
234
+ name, isAsync: info.isAsync, signature: info.signature,
235
+ filePath: modulePath ?? filePath, lineNumber: info.lineNumber, sourceCode: info.sourceCode,
236
+ });
237
+ }
238
+ }
239
+ }
240
+ return results;
241
+ }
242
+ export function scanTools(cwd) {
243
+ for (const candidate of [path.join(cwd, 'ed_tools.ts'), path.join(cwd, 'ed_tools.js')]) {
244
+ if (!existsSync(candidate))
245
+ continue;
246
+ const exports = extractExportsFromSource(candidate);
247
+ if (exports.length > 0) {
248
+ return exports.map(e => ({
249
+ name: e.name, isAsync: e.isAsync, signature: e.signature,
250
+ filePath: e.filePath, lineNumber: e.lineNumber, sourceCode: e.sourceCode,
251
+ }));
252
+ }
253
+ }
254
+ return [];
255
+ }
256
+ export function scanWorkflows(cwd) {
257
+ for (const candidate of [path.join(cwd, 'ed_workflows.ts'), path.join(cwd, 'ed_workflows.js')]) {
258
+ if (!existsSync(candidate))
259
+ continue;
260
+ const exports = extractExportsFromSource(candidate);
261
+ if (exports.length > 0) {
262
+ return exports.map(e => ({
263
+ name: e.name, isAsync: e.isAsync, signature: e.signature,
264
+ filePath: e.filePath, lineNumber: e.lineNumber, sourceCode: e.sourceCode,
265
+ }));
266
+ }
267
+ }
268
+ return [];
269
+ }
270
+ //# sourceMappingURL=tool-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-runner.js","sourceRoot":"","sources":["../../src/execution/tool-runner.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -6,4 +6,6 @@
6
6
  export { setHttpRunContext, initHttpRunContext, getHttpRunContext } from './interceptors/telemetry-push.js';
7
7
  export { wrapTool } from './interceptors/tool.js';
8
8
  export { wrapAI } from './interceptors/workflow-ai.js';
9
+ export { wrapDB, wrapPgClient, wrapKnex, wrapMongoCollection, wrapRedisClient } from './interceptors/db.js';
10
+ export { initObservability, shutdownObservability, startTrace, wrapWorkflow } from './observability.js';
9
11
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3G,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/http.js CHANGED
@@ -6,4 +6,6 @@
6
6
  export { setHttpRunContext, initHttpRunContext, getHttpRunContext } from './interceptors/telemetry-push.js';
7
7
  export { wrapTool } from './interceptors/tool.js';
8
8
  export { wrapAI } from './interceptors/workflow-ai.js';
9
+ export { wrapDB, wrapPgClient, wrapKnex, wrapMongoCollection, wrapRedisClient } from './interceptors/db.js';
10
+ export { initObservability, shutdownObservability, startTrace, wrapWorkflow } from './observability.js';
9
11
  //# sourceMappingURL=http.js.map
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3G,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}