@attest-ai/vitest 0.3.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/dist/fixtures.d.ts +20 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +63 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +16 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +29 -0
- package/dist/plugin.js.map +1 -0
- package/dist/reporter.d.ts +8 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +24 -0
- package/dist/reporter.js.map +1 -0
- package/dist/tier-filter.d.ts +7 -0
- package/dist/tier-filter.d.ts.map +1 -0
- package/dist/tier-filter.js +12 -0
- package/dist/tier-filter.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ExpectChain, AgentResult, AttestClient } from "@attest-ai/core";
|
|
2
|
+
export declare class AttestEngineFixture {
|
|
3
|
+
private manager;
|
|
4
|
+
private _client;
|
|
5
|
+
constructor(options?: {
|
|
6
|
+
enginePath?: string;
|
|
7
|
+
logLevel?: string;
|
|
8
|
+
});
|
|
9
|
+
start(): Promise<void>;
|
|
10
|
+
stop(): Promise<void>;
|
|
11
|
+
get client(): AttestClient;
|
|
12
|
+
evaluate(chain: ExpectChain, options?: {
|
|
13
|
+
budget?: number;
|
|
14
|
+
}): Promise<AgentResult>;
|
|
15
|
+
}
|
|
16
|
+
export declare function useAttest(): AttestEngineFixture;
|
|
17
|
+
export declare function evaluate(chain: ExpectChain, options?: {
|
|
18
|
+
budget?: number;
|
|
19
|
+
}): Promise<AgentResult>;
|
|
20
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAIhB,WAAW,EACX,YAAY,EAGb,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA2B;gBAE9B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAO1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,IAAI,MAAM,IAAI,YAAY,CAKzB;IAEK,QAAQ,CACZ,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,WAAW,CAAC;CA+BxB;AAED,wBAAgB,SAAS,IAAI,mBAAmB,CAe/C;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,WAAW,CAAC,CAGtB"}
|
package/dist/fixtures.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { AgentResult, AttestClient, EngineManager, STATUS_SOFT_FAIL, } from "@attest-ai/core";
|
|
2
|
+
export class AttestEngineFixture {
|
|
3
|
+
manager;
|
|
4
|
+
_client;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.manager = new EngineManager({
|
|
7
|
+
enginePath: options?.enginePath,
|
|
8
|
+
logLevel: options?.logLevel ?? "warn",
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
async start() {
|
|
12
|
+
if (this.manager === undefined) {
|
|
13
|
+
throw new Error("AttestEngineFixture already stopped.");
|
|
14
|
+
}
|
|
15
|
+
await this.manager.start();
|
|
16
|
+
this._client = new AttestClient(this.manager);
|
|
17
|
+
}
|
|
18
|
+
async stop() {
|
|
19
|
+
if (this.manager) {
|
|
20
|
+
await this.manager.stop();
|
|
21
|
+
this.manager = undefined;
|
|
22
|
+
this._client = undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get client() {
|
|
26
|
+
if (this._client === undefined) {
|
|
27
|
+
throw new Error("Engine not started. Call start() first.");
|
|
28
|
+
}
|
|
29
|
+
return this._client;
|
|
30
|
+
}
|
|
31
|
+
async evaluate(chain, options) {
|
|
32
|
+
const result = await this.client.evaluateBatch(chain.trace, chain.assertions);
|
|
33
|
+
globalThis.__attest_session_cost__ =
|
|
34
|
+
(globalThis.__attest_session_cost__ ?? 0) + (result.total_cost ?? 0);
|
|
35
|
+
const softFailCount = (result.results ?? []).filter((r) => r.status === STATUS_SOFT_FAIL).length;
|
|
36
|
+
globalThis.__attest_session_soft_failures__ =
|
|
37
|
+
(globalThis.__attest_session_soft_failures__ ?? 0) + softFailCount;
|
|
38
|
+
const agentResult = new AgentResult(chain.trace, result.results ?? [], result.total_cost ?? 0, result.total_duration_ms ?? 0);
|
|
39
|
+
if (options?.budget !== undefined &&
|
|
40
|
+
globalThis.__attest_session_cost__ > options.budget) {
|
|
41
|
+
throw new Error(`Attest budget exceeded: cost $${globalThis.__attest_session_cost__.toFixed(6)}` +
|
|
42
|
+
` > budget $${options.budget.toFixed(6)}`);
|
|
43
|
+
}
|
|
44
|
+
return agentResult;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function useAttest() {
|
|
48
|
+
const client = globalThis.__attest_client__;
|
|
49
|
+
const engine = globalThis.__attest_engine__;
|
|
50
|
+
if (client === undefined || engine === undefined) {
|
|
51
|
+
throw new Error("Attest engine not available. Configure attestGlobalSetup() in vitest.config.ts globalSetup.");
|
|
52
|
+
}
|
|
53
|
+
// Return a fixture wrapper around the existing global engine
|
|
54
|
+
const fixture = new AttestEngineFixture();
|
|
55
|
+
// Override the internal state to use the global instance
|
|
56
|
+
Object.defineProperty(fixture, "client", { get: () => client });
|
|
57
|
+
return fixture;
|
|
58
|
+
}
|
|
59
|
+
export async function evaluate(chain, options) {
|
|
60
|
+
const fixture = useAttest();
|
|
61
|
+
return fixture.evaluate(chain, options);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAA4B;IACnC,OAAO,CAA2B;IAE1C,YAAY,OAAoD;QAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC;YAC/B,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,KAAkB,EAClB,OAA6B;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9E,UAAU,CAAC,uBAAuB;YAChC,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QAEvE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CACrC,CAAC,MAAM,CAAC;QACT,UAAU,CAAC,gCAAgC;YACzC,CAAC,UAAU,CAAC,gCAAgC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;QAErE,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,MAAM,CAAC,UAAU,IAAI,CAAC,EACtB,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAC9B,CAAC;QAEF,IACE,OAAO,EAAE,MAAM,KAAK,SAAS;YAC7B,UAAU,CAAC,uBAAuB,GAAG,OAAO,CAAC,MAAM,EACnD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChF,cAAc,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAE5C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC1C,yDAAyD;IACzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAkB,EAClB,OAA6B;IAE7B,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { attestGlobalSetup } from "./plugin.js";
|
|
2
|
+
export type { AttestGlobalSetupOptions } from "./plugin.js";
|
|
3
|
+
export { AttestEngineFixture, useAttest, evaluate } from "./fixtures.js";
|
|
4
|
+
export { AttestCostReporter } from "./reporter.js";
|
|
5
|
+
export { filterByTier } from "./tier-filter.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EngineManager, AttestClient } from "@attest-ai/core";
|
|
2
|
+
export interface AttestGlobalSetupOptions {
|
|
3
|
+
enginePath?: string;
|
|
4
|
+
logLevel?: string;
|
|
5
|
+
}
|
|
6
|
+
declare global {
|
|
7
|
+
var __attest_engine__: EngineManager | undefined;
|
|
8
|
+
var __attest_client__: AttestClient | undefined;
|
|
9
|
+
var __attest_session_cost__: number;
|
|
10
|
+
var __attest_session_soft_failures__: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function attestGlobalSetup(options?: AttestGlobalSetupOptions): {
|
|
13
|
+
setup(): Promise<void>;
|
|
14
|
+
teardown(): Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK9D,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,iBAAiB,EAAE,aAAa,GAAG,SAAS,CAAC;IAEjD,IAAI,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAEhD,IAAI,uBAAuB,EAAE,MAAM,CAAC;IAEpC,IAAI,gCAAgC,EAAE,MAAM,CAAC;CAC9C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB;;;EA4BnE"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EngineManager, AttestClient } from "@attest-ai/core";
|
|
2
|
+
let engineManager;
|
|
3
|
+
let attestClient;
|
|
4
|
+
export function attestGlobalSetup(options) {
|
|
5
|
+
return {
|
|
6
|
+
async setup() {
|
|
7
|
+
engineManager = new EngineManager({
|
|
8
|
+
enginePath: options?.enginePath,
|
|
9
|
+
logLevel: options?.logLevel ?? "warn",
|
|
10
|
+
});
|
|
11
|
+
await engineManager.start();
|
|
12
|
+
attestClient = new AttestClient(engineManager);
|
|
13
|
+
globalThis.__attest_engine__ = engineManager;
|
|
14
|
+
globalThis.__attest_client__ = attestClient;
|
|
15
|
+
globalThis.__attest_session_cost__ = 0;
|
|
16
|
+
globalThis.__attest_session_soft_failures__ = 0;
|
|
17
|
+
},
|
|
18
|
+
async teardown() {
|
|
19
|
+
if (engineManager) {
|
|
20
|
+
await engineManager.stop();
|
|
21
|
+
engineManager = undefined;
|
|
22
|
+
attestClient = undefined;
|
|
23
|
+
}
|
|
24
|
+
globalThis.__attest_engine__ = undefined;
|
|
25
|
+
globalThis.__attest_client__ = undefined;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,IAAI,aAAwC,CAAC;AAC7C,IAAI,YAAsC,CAAC;AAkB3C,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,OAAO;QACL,KAAK,CAAC,KAAK;YACT,aAAa,GAAG,IAAI,aAAa,CAAC;gBAChC,UAAU,EAAE,OAAO,EAAE,UAAU;gBAC/B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM;aACtC,CAAC,CAAC;YAEH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;YAC5B,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;YAE/C,UAAU,CAAC,iBAAiB,GAAG,aAAa,CAAC;YAC7C,UAAU,CAAC,iBAAiB,GAAG,YAAY,CAAC;YAC5C,UAAU,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACvC,UAAU,CAAC,gCAAgC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC3B,aAAa,GAAG,SAAS,CAAC;gBAC1B,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;YAED,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACzC,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,qBAAa,kBAAkB;IAC7B,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;CAuB/E"}
|
package/dist/reporter.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class AttestCostReporter {
|
|
2
|
+
onFinished(_files, _errors, context) {
|
|
3
|
+
const cost = globalThis.__attest_session_cost__ ?? 0;
|
|
4
|
+
const softFailures = globalThis.__attest_session_soft_failures__ ?? 0;
|
|
5
|
+
const lines = [
|
|
6
|
+
"",
|
|
7
|
+
"=".repeat(50),
|
|
8
|
+
" Attest Cost Report",
|
|
9
|
+
"=".repeat(50),
|
|
10
|
+
` Total LLM cost this session: $${cost.toFixed(6)} USD`,
|
|
11
|
+
` Soft failures recorded: ${softFailures}`,
|
|
12
|
+
"=".repeat(50),
|
|
13
|
+
"",
|
|
14
|
+
];
|
|
15
|
+
const output = lines.join("\n");
|
|
16
|
+
if (context?.printInfo) {
|
|
17
|
+
context.printInfo(output);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
process.stdout.write(output);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kBAAkB;IAC7B,UAAU,CAAC,MAAe,EAAE,OAAgB,EAAE,OAAyB;QACrE,MAAM,IAAI,GAAG,UAAU,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,UAAU,CAAC,gCAAgC,IAAI,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG;YACZ,EAAE;YACF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,sBAAsB;YACtB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,mCAAmC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACxD,mCAAmC,YAAY,EAAE;YACjD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,EAAE;SACH,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier-filter.d.ts","sourceRoot":"","sources":["../src/tier-filter.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAQjF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function filterByTier(items, maxTier) {
|
|
2
|
+
return items.filter((item) => {
|
|
3
|
+
const fn = item.fn;
|
|
4
|
+
if (fn === undefined)
|
|
5
|
+
return true;
|
|
6
|
+
const tier = fn._attest_tier;
|
|
7
|
+
if (tier === undefined)
|
|
8
|
+
return true;
|
|
9
|
+
return Number(tier) <= maxTier;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=tier-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier-filter.js","sourceRoot":"","sources":["../src/tier-filter.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,YAAY,CAAqB,KAAU,EAAE,OAAe;IAC1E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,IAAI,GAAI,EAAyC,CAAC,YAAY,CAAC;QACrE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@attest-ai/vitest",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Attest vitest integration — global setup, fixtures, cost reporter, tier filtering",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./setup": {
|
|
14
|
+
"import": "./dist/plugin.js",
|
|
15
|
+
"types": "./dist/plugin.d.ts"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=18"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/attest-frameowrk/attest.git",
|
|
30
|
+
"directory": "sdks/typescript/packages/vitest"
|
|
31
|
+
},
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"keywords": [
|
|
34
|
+
"ai",
|
|
35
|
+
"testing",
|
|
36
|
+
"vitest",
|
|
37
|
+
"agent",
|
|
38
|
+
"attest"
|
|
39
|
+
],
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"@attest-ai/core": ">=0.3.0",
|
|
42
|
+
"vitest": ">=2.0.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^25.3.0",
|
|
46
|
+
"typescript": "^5.7.0",
|
|
47
|
+
"vitest": "^3.0.0",
|
|
48
|
+
"@attest-ai/core": "0.3.0"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"build": "tsc",
|
|
52
|
+
"test": "echo 'no unit tests — vitest plugin is tested via integration'"
|
|
53
|
+
}
|
|
54
|
+
}
|