@artemiskit/core 0.2.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +137 -0
- package/README.md +4 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/types.d.ts +50 -2
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/agent-evaluation/index.d.ts +3 -0
- package/dist/agent-evaluation/index.d.ts.map +1 -0
- package/dist/agent-evaluation/scorer.d.ts +35 -0
- package/dist/agent-evaluation/scorer.d.ts.map +1 -0
- package/dist/agent-evaluation/types.d.ts +37 -0
- package/dist/agent-evaluation/types.d.ts.map +1 -0
- package/dist/artifacts/manifest.d.ts.map +1 -1
- package/dist/artifacts/types.d.ts +54 -0
- package/dist/artifacts/types.d.ts.map +1 -1
- package/dist/evaluators/index.d.ts +1 -0
- package/dist/evaluators/index.d.ts.map +1 -1
- package/dist/evaluators/json-schema.d.ts +0 -1
- package/dist/evaluators/json-schema.d.ts.map +1 -1
- package/dist/evaluators/llm-grader.d.ts +2 -0
- package/dist/evaluators/llm-grader.d.ts.map +1 -1
- package/dist/evaluators/tool-trace.d.ts +7 -0
- package/dist/evaluators/tool-trace.d.ts.map +1 -0
- package/dist/evaluators/types.d.ts +20 -0
- package/dist/evaluators/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19964 -12482
- package/dist/runner/executor.d.ts.map +1 -1
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/types.d.ts +4 -0
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/scenario/schema.d.ts +789 -99
- package/dist/scenario/schema.d.ts.map +1 -1
- package/dist/storage/supabase.d.ts +26 -5
- package/dist/storage/supabase.d.ts.map +1 -1
- package/dist/storage/types.d.ts +167 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/tools/fixture-executor.d.ts +10 -0
- package/dist/tools/fixture-executor.d.ts.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/schema-validator.d.ts +10 -0
- package/dist/tools/schema-validator.d.ts.map +1 -0
- package/dist/tools/types.d.ts +50 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/adapters/registry.ts +45 -0
- package/src/adapters/types.test.ts +21 -0
- package/src/adapters/types.ts +56 -0
- package/src/agent-evaluation/index.ts +2 -0
- package/src/agent-evaluation/scorer.test.ts +1194 -0
- package/src/agent-evaluation/scorer.ts +640 -0
- package/src/agent-evaluation/types.test.ts +27 -0
- package/src/agent-evaluation/types.ts +43 -0
- package/src/artifacts/manifest.test.ts +66 -19
- package/src/artifacts/manifest.ts +18 -5
- package/src/artifacts/types.ts +65 -0
- package/src/evaluators/index.ts +3 -0
- package/src/evaluators/json-schema.test.ts +130 -0
- package/src/evaluators/json-schema.ts +38 -63
- package/src/evaluators/llm-grader.test.ts +80 -0
- package/src/evaluators/llm-grader.ts +44 -6
- package/src/evaluators/tool-trace.test.ts +46 -0
- package/src/evaluators/tool-trace.ts +50 -0
- package/src/evaluators/types.ts +20 -0
- package/src/index.ts +6 -0
- package/src/runner/executor.test.ts +340 -0
- package/src/runner/executor.ts +289 -20
- package/src/runner/release-validation.test.ts +169 -0
- package/src/runner/runner.ts +5 -1
- package/src/runner/types.ts +4 -0
- package/src/scenario/schema.ts +66 -1
- package/src/storage/supabase.test.ts +1052 -0
- package/src/storage/supabase.ts +614 -5
- package/src/storage/types.ts +207 -1
- package/src/tools/fixture-executor.test.ts +88 -0
- package/src/tools/fixture-executor.ts +112 -0
- package/src/tools/index.ts +3 -0
- package/src/tools/schema-validator.test.ts +32 -0
- package/src/tools/schema-validator.ts +56 -0
- package/src/tools/types.ts +80 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/scenario/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/scenario/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Supabase storage adapter
|
|
2
|
+
* Supabase storage adapter with analytics capabilities
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
5
|
-
import type { ComparisonResult, ListOptions, RunListItem,
|
|
4
|
+
import { type RunManifest } from '../artifacts/types';
|
|
5
|
+
import type { AnalyticsStorageAdapter, BaselineMetadata, CaseResultQueryOptions, CaseResultRecord, ComparisonResult, ListOptions, MetricsSnapshot, MetricsTrendOptions, RunListItem, TrendDataPoint } from './types';
|
|
6
6
|
export interface SupabaseStorageConfig {
|
|
7
7
|
url: string;
|
|
8
8
|
anonKey: string;
|
|
9
9
|
bucket?: string;
|
|
10
10
|
}
|
|
11
|
-
export declare class SupabaseStorageAdapter implements
|
|
11
|
+
export declare class SupabaseStorageAdapter implements AnalyticsStorageAdapter {
|
|
12
12
|
private client;
|
|
13
13
|
private bucket;
|
|
14
|
-
|
|
14
|
+
private project;
|
|
15
|
+
constructor(config: SupabaseStorageConfig, project?: string);
|
|
15
16
|
save(manifest: RunManifest): Promise<string>;
|
|
16
17
|
load(runId: string): Promise<RunManifest>;
|
|
17
18
|
list(options?: ListOptions): Promise<RunListItem[]>;
|
|
18
19
|
delete(runId: string): Promise<void>;
|
|
19
20
|
compare(baselineId: string, currentId: string): Promise<ComparisonResult>;
|
|
21
|
+
setBaseline(scenario: string, runId: string, tag?: string): Promise<BaselineMetadata>;
|
|
22
|
+
getBaseline(scenario: string): Promise<BaselineMetadata | null>;
|
|
23
|
+
getBaselineByRunId(runId: string): Promise<BaselineMetadata | null>;
|
|
24
|
+
listBaselines(): Promise<BaselineMetadata[]>;
|
|
25
|
+
removeBaseline(scenario: string): Promise<boolean>;
|
|
26
|
+
removeBaselineByRunId(runId: string): Promise<boolean>;
|
|
27
|
+
compareToBaseline(runId: string, regressionThreshold?: number): Promise<{
|
|
28
|
+
baseline: BaselineMetadata;
|
|
29
|
+
comparison: ComparisonResult;
|
|
30
|
+
hasRegression: boolean;
|
|
31
|
+
regressionThreshold: number;
|
|
32
|
+
} | null>;
|
|
33
|
+
saveCaseResult(result: CaseResultRecord): Promise<string>;
|
|
34
|
+
saveCaseResults(results: CaseResultRecord[]): Promise<string[]>;
|
|
35
|
+
getCaseResults(runId: string): Promise<CaseResultRecord[]>;
|
|
36
|
+
queryCaseResults(options: CaseResultQueryOptions): Promise<CaseResultRecord[]>;
|
|
37
|
+
saveMetricsSnapshot(snapshot: MetricsSnapshot): Promise<string>;
|
|
38
|
+
getMetricsTrend(options: MetricsTrendOptions): Promise<TrendDataPoint[]>;
|
|
39
|
+
getMetricsSnapshot(date: string, project: string, scenario?: string): Promise<MetricsSnapshot | null>;
|
|
40
|
+
aggregateDailyMetrics(date: string, project: string, scenario?: string): Promise<MetricsSnapshot>;
|
|
20
41
|
}
|
|
21
42
|
//# sourceMappingURL=supabase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Storage types and interfaces
|
|
3
3
|
*/
|
|
4
|
-
import type { AnyManifest, RedTeamManifest, RunManifest, StressManifest } from '../artifacts/types';
|
|
4
|
+
import type { AnyManifest, CaseEvaluationEvidence, RedTeamManifest, RunManifest, StressManifest } from '../artifacts/types';
|
|
5
5
|
/**
|
|
6
6
|
* Run listing item
|
|
7
7
|
*/
|
|
@@ -149,4 +149,170 @@ export interface BaselineStorageAdapter extends StorageAdapter {
|
|
|
149
149
|
regressionThreshold: number;
|
|
150
150
|
} | null>;
|
|
151
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Status of an individual case result
|
|
154
|
+
*/
|
|
155
|
+
export type CaseResultStatus = 'passed' | 'failed' | 'invalid' | 'error';
|
|
156
|
+
/**
|
|
157
|
+
* Individual case result record for storage
|
|
158
|
+
*/
|
|
159
|
+
export interface CaseResultRecord {
|
|
160
|
+
/** Unique ID (auto-generated if not provided) */
|
|
161
|
+
id?: string;
|
|
162
|
+
/** Run ID this case belongs to */
|
|
163
|
+
runId: string;
|
|
164
|
+
/** Case ID from the test */
|
|
165
|
+
caseId: string;
|
|
166
|
+
/** Optional case name */
|
|
167
|
+
caseName?: string;
|
|
168
|
+
/** Result status */
|
|
169
|
+
status: CaseResultStatus;
|
|
170
|
+
/** Number of execution attempts represented by this terminal result. */
|
|
171
|
+
attempts?: number;
|
|
172
|
+
/** Score from 0.0 to 1.0 */
|
|
173
|
+
score: number;
|
|
174
|
+
/** Type of matcher used */
|
|
175
|
+
matcherType: string;
|
|
176
|
+
/** Reason for the status */
|
|
177
|
+
reason?: string;
|
|
178
|
+
/** Model response */
|
|
179
|
+
response: string;
|
|
180
|
+
/** Latency in milliseconds */
|
|
181
|
+
latencyMs: number;
|
|
182
|
+
/** Prompt tokens used */
|
|
183
|
+
promptTokens: number;
|
|
184
|
+
/** Completion tokens used */
|
|
185
|
+
completionTokens: number;
|
|
186
|
+
/** Total tokens used */
|
|
187
|
+
totalTokens: number;
|
|
188
|
+
/** Error message if status is 'error' */
|
|
189
|
+
error?: string;
|
|
190
|
+
/** Sanitized evaluator evidence retained for review. */
|
|
191
|
+
evidence?: CaseEvaluationEvidence;
|
|
192
|
+
/** Tags for categorization */
|
|
193
|
+
tags?: string[];
|
|
194
|
+
/** ISO timestamp when created */
|
|
195
|
+
createdAt?: string;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Options for querying case results
|
|
199
|
+
*/
|
|
200
|
+
export interface CaseResultQueryOptions {
|
|
201
|
+
/** Filter by run ID */
|
|
202
|
+
runId?: string;
|
|
203
|
+
/** Filter by case ID */
|
|
204
|
+
caseId?: string;
|
|
205
|
+
/** Filter by status */
|
|
206
|
+
status?: CaseResultStatus;
|
|
207
|
+
/** Filter by tags (any match) */
|
|
208
|
+
tags?: string[];
|
|
209
|
+
/** Maximum results to return */
|
|
210
|
+
limit?: number;
|
|
211
|
+
/** Offset for pagination */
|
|
212
|
+
offset?: number;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Daily metrics snapshot for a project/scenario
|
|
216
|
+
*/
|
|
217
|
+
export interface MetricsSnapshot {
|
|
218
|
+
/** Unique ID (auto-generated if not provided) */
|
|
219
|
+
id?: string;
|
|
220
|
+
/** Date of the snapshot (YYYY-MM-DD) */
|
|
221
|
+
date: string;
|
|
222
|
+
/** Project name */
|
|
223
|
+
project: string;
|
|
224
|
+
/** Optional scenario name (null for project-wide) */
|
|
225
|
+
scenario?: string;
|
|
226
|
+
/** Total runs on this date */
|
|
227
|
+
totalRuns: number;
|
|
228
|
+
/** Total cases across all runs */
|
|
229
|
+
totalCases: number;
|
|
230
|
+
/** Total passed cases */
|
|
231
|
+
passedCases: number;
|
|
232
|
+
/** Total failed cases */
|
|
233
|
+
failedCases: number;
|
|
234
|
+
/** Average success rate */
|
|
235
|
+
avgSuccessRate: number;
|
|
236
|
+
/** Average latency in ms */
|
|
237
|
+
avgLatencyMs: number;
|
|
238
|
+
/** Average tokens per run */
|
|
239
|
+
avgTokensPerRun: number;
|
|
240
|
+
/** Minimum success rate */
|
|
241
|
+
minSuccessRate?: number;
|
|
242
|
+
/** Maximum success rate */
|
|
243
|
+
maxSuccessRate?: number;
|
|
244
|
+
/** Minimum latency in ms */
|
|
245
|
+
minLatencyMs?: number;
|
|
246
|
+
/** Maximum latency in ms */
|
|
247
|
+
maxLatencyMs?: number;
|
|
248
|
+
/** Total tokens consumed */
|
|
249
|
+
totalTokens: number;
|
|
250
|
+
/** ISO timestamp when created */
|
|
251
|
+
createdAt?: string;
|
|
252
|
+
/** ISO timestamp when last updated */
|
|
253
|
+
updatedAt?: string;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Options for querying metrics history
|
|
257
|
+
*/
|
|
258
|
+
export interface MetricsTrendOptions {
|
|
259
|
+
/** Project to query */
|
|
260
|
+
project: string;
|
|
261
|
+
/** Optional scenario filter */
|
|
262
|
+
scenario?: string;
|
|
263
|
+
/** Start date (YYYY-MM-DD) */
|
|
264
|
+
startDate?: string;
|
|
265
|
+
/** End date (YYYY-MM-DD) */
|
|
266
|
+
endDate?: string;
|
|
267
|
+
/** Maximum results to return */
|
|
268
|
+
limit?: number;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Trend data point for visualization
|
|
272
|
+
*/
|
|
273
|
+
export interface TrendDataPoint {
|
|
274
|
+
date: string;
|
|
275
|
+
successRate: number;
|
|
276
|
+
latencyMs: number;
|
|
277
|
+
totalRuns: number;
|
|
278
|
+
totalTokens: number;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Extended storage adapter with analytics capabilities
|
|
282
|
+
*/
|
|
283
|
+
export interface AnalyticsStorageAdapter extends BaselineStorageAdapter {
|
|
284
|
+
/**
|
|
285
|
+
* Save an individual case result
|
|
286
|
+
*/
|
|
287
|
+
saveCaseResult(result: CaseResultRecord): Promise<string>;
|
|
288
|
+
/**
|
|
289
|
+
* Save multiple case results in batch
|
|
290
|
+
*/
|
|
291
|
+
saveCaseResults(results: CaseResultRecord[]): Promise<string[]>;
|
|
292
|
+
/**
|
|
293
|
+
* Get case results for a run
|
|
294
|
+
*/
|
|
295
|
+
getCaseResults(runId: string): Promise<CaseResultRecord[]>;
|
|
296
|
+
/**
|
|
297
|
+
* Query case results with filters
|
|
298
|
+
*/
|
|
299
|
+
queryCaseResults(options: CaseResultQueryOptions): Promise<CaseResultRecord[]>;
|
|
300
|
+
/**
|
|
301
|
+
* Save a metrics snapshot
|
|
302
|
+
*/
|
|
303
|
+
saveMetricsSnapshot(snapshot: MetricsSnapshot): Promise<string>;
|
|
304
|
+
/**
|
|
305
|
+
* Get metrics trend data
|
|
306
|
+
*/
|
|
307
|
+
getMetricsTrend(options: MetricsTrendOptions): Promise<TrendDataPoint[]>;
|
|
308
|
+
/**
|
|
309
|
+
* Get a specific metrics snapshot
|
|
310
|
+
*/
|
|
311
|
+
getMetricsSnapshot(date: string, project: string, scenario?: string): Promise<MetricsSnapshot | null>;
|
|
312
|
+
/**
|
|
313
|
+
* Aggregate and save daily metrics from runs
|
|
314
|
+
* This can be called to build/update metrics_history from existing runs
|
|
315
|
+
*/
|
|
316
|
+
aggregateDailyMetrics?(date: string, project: string, scenario?: string): Promise<MetricsSnapshot>;
|
|
317
|
+
}
|
|
152
318
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolCall } from '../adapters/types';
|
|
2
|
+
import type { FixtureExecutorOptions, ToolExecutionContext, ToolExecutionResult } from './types';
|
|
3
|
+
export declare class FixtureToolExecutor {
|
|
4
|
+
private readonly tools;
|
|
5
|
+
private readonly fixtures;
|
|
6
|
+
private readonly maxToolResultBytes;
|
|
7
|
+
constructor({ tools, fixtures, maxToolResultBytes }: FixtureExecutorOptions);
|
|
8
|
+
execute(call: ToolCall, _context?: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=fixture-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-executor.d.ts","sourceRoot":"","sources":["../../src/tools/fixture-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAIjB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAA2B,EAAE,EAAE,sBAAsB;IAY9E,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA6B7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ToolArgumentValidation {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
arguments?: Record<string, unknown>;
|
|
4
|
+
error?: {
|
|
5
|
+
code: 'TOOL_ARGUMENTS_INVALID' | 'TOOL_ARGUMENTS_SCHEMA_INVALID';
|
|
6
|
+
message: string;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare function validateToolArguments(rawArguments: string, schema: Record<string, unknown>): ToolArgumentValidation;
|
|
10
|
+
//# sourceMappingURL=schema-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/tools/schema-validator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,wBAAwB,GAAG,+BAA+B,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAaD,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,sBAAsB,CAiCxB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ToolCall, ToolDefinition } from '../adapters/types';
|
|
2
|
+
export type ToolLoopTerminationReason = 'completed' | 'max_steps' | 'timeout' | 'duplicate_call' | 'invalid_arguments' | 'unknown_tool' | 'tool_error';
|
|
3
|
+
export interface ToolLoopPolicy {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
maxSteps: number;
|
|
6
|
+
timeoutMs: number;
|
|
7
|
+
maxToolResultBytes: number;
|
|
8
|
+
rejectDuplicateCalls: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const DEFAULT_TOOL_LOOP_POLICY: ToolLoopPolicy;
|
|
11
|
+
export interface ToolExecutionContext {
|
|
12
|
+
caseId: string;
|
|
13
|
+
step: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolExecutionError {
|
|
16
|
+
code: 'TOOL_ARGUMENTS_INVALID' | 'TOOL_ARGUMENTS_SCHEMA_INVALID' | 'TOOL_UNKNOWN' | 'TOOL_FIXTURE_NOT_FOUND' | 'TOOL_EXECUTION_FAILED' | 'TOOL_RESULT_TOO_LARGE';
|
|
17
|
+
message: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ToolExecutionResult {
|
|
20
|
+
status: 'success' | 'error';
|
|
21
|
+
result?: unknown;
|
|
22
|
+
error?: ToolExecutionError;
|
|
23
|
+
}
|
|
24
|
+
export interface ToolExecutor {
|
|
25
|
+
execute(call: ToolCall, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
26
|
+
}
|
|
27
|
+
export interface ToolTraceEntry {
|
|
28
|
+
step: number;
|
|
29
|
+
toolCall: ToolCall;
|
|
30
|
+
result?: unknown;
|
|
31
|
+
error?: ToolExecutionError;
|
|
32
|
+
latencyMs: number;
|
|
33
|
+
}
|
|
34
|
+
export interface ToolLoopSummary {
|
|
35
|
+
status: 'completed' | 'error';
|
|
36
|
+
steps: number;
|
|
37
|
+
terminationReason: ToolLoopTerminationReason;
|
|
38
|
+
}
|
|
39
|
+
export interface ToolFixture {
|
|
40
|
+
when?: Record<string, unknown>;
|
|
41
|
+
result?: unknown;
|
|
42
|
+
error?: string;
|
|
43
|
+
}
|
|
44
|
+
export type ToolFixtures = Record<string, ToolFixture[]>;
|
|
45
|
+
export interface FixtureExecutorOptions {
|
|
46
|
+
tools: ToolDefinition[];
|
|
47
|
+
fixtures: ToolFixtures;
|
|
48
|
+
maxToolResultBytes?: number;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,MAAM,yBAAyB,GACjC,WAAW,GACX,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,EAAE,cAMtC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,wBAAwB,GACxB,+BAA+B,GAC/B,cAAc,GACd,wBAAwB,GACxB,uBAAuB,GACvB,uBAAuB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,yBAAyB,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artemiskit/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Core runner, evaluators, and storage for ArtemisKit LLM evaluation toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@supabase/supabase-js": "^2.39.0",
|
|
45
|
+
"ajv": "^8.17.1",
|
|
45
46
|
"consola": "3.4.2",
|
|
46
47
|
"fastest-levenshtein": "^1.0.16",
|
|
47
48
|
"nanoid": "^5.0.0",
|
package/src/adapters/registry.ts
CHANGED
|
@@ -132,6 +132,51 @@ export async function registerBuiltInAdapters(): Promise<void> {
|
|
|
132
132
|
return new mod.AnthropicAdapter(config);
|
|
133
133
|
});
|
|
134
134
|
|
|
135
|
+
adapterRegistry.register('ling', async (config) => {
|
|
136
|
+
const mod = await tryImport<{ LingAdapter: new (c: AdapterConfig) => ModelClient }>(
|
|
137
|
+
'@artemiskit/adapter-ling'
|
|
138
|
+
);
|
|
139
|
+
return new mod.LingAdapter(config);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// ============================================
|
|
143
|
+
// AGENTIC FRAMEWORK ADAPTERS
|
|
144
|
+
// ============================================
|
|
145
|
+
|
|
146
|
+
// LangChain adapter - for testing LangChain chains and agents
|
|
147
|
+
// Note: Requires passing the runnable instance separately
|
|
148
|
+
adapterRegistry.register('langchain', async (config) => {
|
|
149
|
+
const mod = await tryImport<{
|
|
150
|
+
LangChainAdapter: new (c: AdapterConfig, runnable: unknown) => ModelClient;
|
|
151
|
+
}>('@artemiskit/adapter-langchain');
|
|
152
|
+
// LangChain adapter requires a runnable to be passed via config.metadata.runnable
|
|
153
|
+
const runnable = (config as { metadata?: { runnable?: unknown } }).metadata?.runnable;
|
|
154
|
+
if (!runnable) {
|
|
155
|
+
throw new Error(
|
|
156
|
+
'LangChain adapter requires a runnable instance. ' +
|
|
157
|
+
'Pass it via config.metadata.runnable or use createLangChainAdapter() directly.'
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
return new mod.LangChainAdapter(config, runnable);
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// DeepAgents adapter - for testing DeepAgents multi-agent systems
|
|
164
|
+
// Note: Requires passing the system instance separately
|
|
165
|
+
adapterRegistry.register('deepagents', async (config) => {
|
|
166
|
+
const mod = await tryImport<{
|
|
167
|
+
DeepAgentsAdapter: new (c: AdapterConfig, system: unknown) => ModelClient;
|
|
168
|
+
}>('@artemiskit/adapter-deepagents');
|
|
169
|
+
// DeepAgents adapter requires a system to be passed via config.metadata.system
|
|
170
|
+
const system = (config as { metadata?: { system?: unknown } }).metadata?.system;
|
|
171
|
+
if (!system) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
'DeepAgents adapter requires a system instance. ' +
|
|
174
|
+
'Pass it via config.metadata.system or use createDeepAgentsAdapter() directly.'
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
return new mod.DeepAgentsAdapter(config, system);
|
|
178
|
+
});
|
|
179
|
+
|
|
135
180
|
// ============================================
|
|
136
181
|
// POST-MVP ADAPTERS - Not yet available
|
|
137
182
|
// ============================================
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test';
|
|
2
|
+
import { validateScenario } from '../scenario/parser';
|
|
3
|
+
|
|
4
|
+
describe('Ling provider contract', () => {
|
|
5
|
+
test('accepts Ling provider controls in a scenario', () => {
|
|
6
|
+
const scenario = validateScenario({
|
|
7
|
+
name: 'ling-contract',
|
|
8
|
+
provider: 'ling',
|
|
9
|
+
model: 'Ling-3.0-flash',
|
|
10
|
+
providerConfig: {
|
|
11
|
+
thinking: { type: 'enabled' },
|
|
12
|
+
enableSearch: true,
|
|
13
|
+
searchOptions: { max_results: 3 },
|
|
14
|
+
},
|
|
15
|
+
cases: [{ id: 'hello', prompt: 'hello', expected: { type: 'contains', values: ['hello'] } }],
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
expect(scenario.provider).toBe('ling');
|
|
19
|
+
expect(scenario.providerConfig?.thinking).toEqual({ type: 'enabled' });
|
|
20
|
+
});
|
|
21
|
+
});
|
package/src/adapters/types.ts
CHANGED
|
@@ -9,6 +9,8 @@ export interface ChatMessage {
|
|
|
9
9
|
role: 'system' | 'user' | 'assistant' | 'function' | 'tool';
|
|
10
10
|
content: string;
|
|
11
11
|
name?: string;
|
|
12
|
+
/** The provider tool-call ID this tool result answers. */
|
|
13
|
+
toolCallId?: string;
|
|
12
14
|
function_call?: {
|
|
13
15
|
name: string;
|
|
14
16
|
arguments: string;
|
|
@@ -40,6 +42,13 @@ export interface GenerateOptions {
|
|
|
40
42
|
tools?: ToolDefinition[];
|
|
41
43
|
responseFormat?: { type: 'text' | 'json_object' };
|
|
42
44
|
metadata?: Record<string, unknown>;
|
|
45
|
+
providerOptions?: { ling?: LingRequestOptions };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface LingRequestOptions {
|
|
49
|
+
thinking?: { type: 'enabled' | 'disabled' };
|
|
50
|
+
enableSearch?: boolean;
|
|
51
|
+
searchOptions?: Record<string, unknown>;
|
|
43
52
|
}
|
|
44
53
|
|
|
45
54
|
/**
|
|
@@ -120,11 +129,16 @@ export type ProviderType =
|
|
|
120
129
|
| 'azure-openai'
|
|
121
130
|
| 'vercel-ai'
|
|
122
131
|
| 'anthropic'
|
|
132
|
+
| 'langchain'
|
|
133
|
+
| 'deepagents'
|
|
134
|
+
| 'ling'
|
|
123
135
|
| 'google'
|
|
124
136
|
| 'mistral'
|
|
125
137
|
| 'cohere'
|
|
126
138
|
| 'huggingface'
|
|
127
139
|
| 'ollama'
|
|
140
|
+
| 'langchain'
|
|
141
|
+
| 'deepagents'
|
|
128
142
|
| 'custom';
|
|
129
143
|
|
|
130
144
|
/**
|
|
@@ -180,6 +194,45 @@ export interface AnthropicAdapterConfig extends BaseAdapterConfig {
|
|
|
180
194
|
provider: 'anthropic';
|
|
181
195
|
}
|
|
182
196
|
|
|
197
|
+
export interface LingAdapterConfig extends BaseAdapterConfig {
|
|
198
|
+
provider: 'ling';
|
|
199
|
+
thinking?: LingRequestOptions['thinking'];
|
|
200
|
+
enableSearch?: boolean;
|
|
201
|
+
searchOptions?: Record<string, unknown>;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* LangChain adapter configuration
|
|
206
|
+
*/
|
|
207
|
+
export interface LangChainAdapterConfig extends BaseAdapterConfig {
|
|
208
|
+
provider: 'langchain';
|
|
209
|
+
/** Type of LangChain runnable */
|
|
210
|
+
runnableType?: 'chain' | 'agent' | 'llm' | 'runnable';
|
|
211
|
+
/** Name identifier for the chain/agent */
|
|
212
|
+
name?: string;
|
|
213
|
+
/** Capture intermediate steps from agents */
|
|
214
|
+
captureIntermediateSteps?: boolean;
|
|
215
|
+
/** Custom input key */
|
|
216
|
+
inputKey?: string;
|
|
217
|
+
/** Custom output key */
|
|
218
|
+
outputKey?: string;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* DeepAgents adapter configuration
|
|
223
|
+
*/
|
|
224
|
+
export interface DeepAgentsAdapterConfig extends BaseAdapterConfig {
|
|
225
|
+
provider: 'deepagents';
|
|
226
|
+
/** Name identifier for the agent system */
|
|
227
|
+
name?: string;
|
|
228
|
+
/** Capture agent execution traces */
|
|
229
|
+
captureTraces?: boolean;
|
|
230
|
+
/** Capture inter-agent messages */
|
|
231
|
+
captureMessages?: boolean;
|
|
232
|
+
/** Maximum execution time in milliseconds */
|
|
233
|
+
executionTimeout?: number;
|
|
234
|
+
}
|
|
235
|
+
|
|
183
236
|
/**
|
|
184
237
|
* Union type for all adapter configs
|
|
185
238
|
*/
|
|
@@ -188,4 +241,7 @@ export type AdapterConfig =
|
|
|
188
241
|
| AzureOpenAIAdapterConfig
|
|
189
242
|
| VercelAIAdapterConfig
|
|
190
243
|
| AnthropicAdapterConfig
|
|
244
|
+
| LingAdapterConfig
|
|
245
|
+
| LangChainAdapterConfig
|
|
246
|
+
| DeepAgentsAdapterConfig
|
|
191
247
|
| BaseAdapterConfig;
|