@attest-ai/core 0.5.0 → 0.6.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.
Files changed (121) hide show
  1. package/dist/cjs/index.cjs +113 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +33 -7
  4. package/dist/cjs/proto/index.cjs.map +1 -1
  5. package/dist/cjs/proto/index.d.cts +44 -3
  6. package/dist/esm/cli.js +1 -1
  7. package/dist/esm/cli.js.map +1 -1
  8. package/dist/esm/index.d.ts +33 -7
  9. package/dist/esm/index.js +107 -2
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/proto/index.d.ts +44 -3
  12. package/dist/esm/proto/index.js.map +1 -1
  13. package/package.json +4 -4
  14. package/dist/adapters/anthropic.d.ts +0 -31
  15. package/dist/adapters/anthropic.d.ts.map +0 -1
  16. package/dist/adapters/anthropic.js +0 -42
  17. package/dist/adapters/anthropic.js.map +0 -1
  18. package/dist/adapters/gemini.d.ts +0 -30
  19. package/dist/adapters/gemini.d.ts.map +0 -1
  20. package/dist/adapters/gemini.js +0 -41
  21. package/dist/adapters/gemini.js.map +0 -1
  22. package/dist/adapters/index.d.ts +0 -11
  23. package/dist/adapters/index.d.ts.map +0 -1
  24. package/dist/adapters/index.js +0 -7
  25. package/dist/adapters/index.js.map +0 -1
  26. package/dist/adapters/manual.d.ts +0 -9
  27. package/dist/adapters/manual.d.ts.map +0 -1
  28. package/dist/adapters/manual.js +0 -16
  29. package/dist/adapters/manual.js.map +0 -1
  30. package/dist/adapters/ollama.d.ts +0 -19
  31. package/dist/adapters/ollama.d.ts.map +0 -1
  32. package/dist/adapters/ollama.js +0 -30
  33. package/dist/adapters/ollama.js.map +0 -1
  34. package/dist/adapters/openai.d.ts +0 -34
  35. package/dist/adapters/openai.d.ts.map +0 -1
  36. package/dist/adapters/openai.js +0 -42
  37. package/dist/adapters/openai.js.map +0 -1
  38. package/dist/adapters/otel.d.ts +0 -25
  39. package/dist/adapters/otel.d.ts.map +0 -1
  40. package/dist/adapters/otel.js +0 -133
  41. package/dist/adapters/otel.js.map +0 -1
  42. package/dist/agent.d.ts +0 -14
  43. package/dist/agent.d.ts.map +0 -1
  44. package/dist/agent.js +0 -54
  45. package/dist/agent.js.map +0 -1
  46. package/dist/client.d.ts +0 -23
  47. package/dist/client.d.ts.map +0 -1
  48. package/dist/client.js +0 -171
  49. package/dist/client.js.map +0 -1
  50. package/dist/config.d.ts +0 -21
  51. package/dist/config.d.ts.map +0 -1
  52. package/dist/config.js +0 -31
  53. package/dist/config.js.map +0 -1
  54. package/dist/context.d.ts +0 -4
  55. package/dist/context.d.ts.map +0 -1
  56. package/dist/context.js +0 -3
  57. package/dist/context.js.map +0 -1
  58. package/dist/delegate.d.ts +0 -3
  59. package/dist/delegate.d.ts.map +0 -1
  60. package/dist/delegate.js +0 -24
  61. package/dist/delegate.js.map +0 -1
  62. package/dist/engine-downloader.d.ts +0 -7
  63. package/dist/engine-downloader.d.ts.map +0 -1
  64. package/dist/engine-downloader.js +0 -136
  65. package/dist/engine-downloader.js.map +0 -1
  66. package/dist/engine-manager.d.ts +0 -26
  67. package/dist/engine-manager.d.ts.map +0 -1
  68. package/dist/engine-manager.js +0 -172
  69. package/dist/engine-manager.js.map +0 -1
  70. package/dist/expect.d.ts +0 -133
  71. package/dist/expect.d.ts.map +0 -1
  72. package/dist/expect.js +0 -330
  73. package/dist/expect.js.map +0 -1
  74. package/dist/index.d.ts +0 -16
  75. package/dist/index.d.ts.map +0 -1
  76. package/dist/index.js +0 -15
  77. package/dist/index.js.map +0 -1
  78. package/dist/proto/codec.d.ts +0 -20
  79. package/dist/proto/codec.d.ts.map +0 -1
  80. package/dist/proto/codec.js +0 -71
  81. package/dist/proto/codec.js.map +0 -1
  82. package/dist/proto/constants.d.ts +0 -21
  83. package/dist/proto/constants.d.ts.map +0 -1
  84. package/dist/proto/constants.js +0 -25
  85. package/dist/proto/constants.js.map +0 -1
  86. package/dist/proto/errors.d.ts +0 -13
  87. package/dist/proto/errors.d.ts.map +0 -1
  88. package/dist/proto/errors.js +0 -24
  89. package/dist/proto/errors.js.map +0 -1
  90. package/dist/proto/index.d.ts +0 -5
  91. package/dist/proto/index.d.ts.map +0 -1
  92. package/dist/proto/index.js +0 -5
  93. package/dist/proto/index.js.map +0 -1
  94. package/dist/proto/types.d.ts +0 -104
  95. package/dist/proto/types.d.ts.map +0 -1
  96. package/dist/proto/types.js +0 -2
  97. package/dist/proto/types.js.map +0 -1
  98. package/dist/result.d.ts +0 -15
  99. package/dist/result.d.ts.map +0 -1
  100. package/dist/result.js +0 -32
  101. package/dist/result.js.map +0 -1
  102. package/dist/simulation.d.ts +0 -8
  103. package/dist/simulation.d.ts.map +0 -1
  104. package/dist/simulation.js +0 -21
  105. package/dist/simulation.js.map +0 -1
  106. package/dist/tier.d.ts +0 -5
  107. package/dist/tier.d.ts.map +0 -1
  108. package/dist/tier.js +0 -10
  109. package/dist/tier.js.map +0 -1
  110. package/dist/trace-tree.d.ts +0 -20
  111. package/dist/trace-tree.d.ts.map +0 -1
  112. package/dist/trace-tree.js +0 -92
  113. package/dist/trace-tree.js.map +0 -1
  114. package/dist/trace.d.ts +0 -41
  115. package/dist/trace.d.ts.map +0 -1
  116. package/dist/trace.js +0 -88
  117. package/dist/trace.js.map +0 -1
  118. package/dist/version.d.ts +0 -3
  119. package/dist/version.d.ts.map +0 -1
  120. package/dist/version.js +0 -3
  121. package/dist/version.js.map +0 -1
@@ -1,136 +0,0 @@
1
- import * as https from "node:https";
2
- import * as http from "node:http";
3
- import * as fs from "node:fs";
4
- import * as path from "node:path";
5
- import * as os from "node:os";
6
- import * as crypto from "node:crypto";
7
- import { ENGINE_VERSION } from "./version.js";
8
- const RELEASE_BASE = `https://github.com/attest-framework/attest/releases/download/v${ENGINE_VERSION}`;
9
- const CHECKSUMS_URL = `${RELEASE_BASE}/checksums-sha256.txt`;
10
- const MAX_REDIRECTS = 5;
11
- export function attestBinDir() {
12
- const dir = path.join(os.homedir(), ".attest", "bin");
13
- fs.mkdirSync(dir, { recursive: true });
14
- return dir;
15
- }
16
- export function platformKey() {
17
- const platform = os.platform();
18
- const arch = os.arch();
19
- const mapping = {
20
- darwin: { arm64: "darwin-arm64", x64: "darwin-amd64" },
21
- linux: { arm64: "linux-arm64", x64: "linux-amd64" },
22
- win32: { x64: "windows-amd64", arm64: "windows-arm64" }
23
- };
24
- const osMap = mapping[platform];
25
- if (!osMap) {
26
- throw new Error(`Unsupported platform: ${platform}. Supported: darwin, linux, win32.`);
27
- }
28
- const key = osMap[arch];
29
- if (!key) {
30
- throw new Error(`Unsupported architecture '${arch}' on platform '${platform}'. ` +
31
- `Supported architectures: ${Object.keys(osMap).join(", ")}.`);
32
- }
33
- return key;
34
- }
35
- export function binaryFilename() {
36
- return os.platform() === "win32" ? "attest-engine.exe" : "attest-engine";
37
- }
38
- export function cachedEnginePath() {
39
- const dir = path.join(os.homedir(), ".attest", "bin");
40
- const binPath = path.join(dir, binaryFilename());
41
- const versionFile = path.join(dir, ".engine-version");
42
- if (!fs.existsSync(binPath)) {
43
- return null;
44
- }
45
- if (!fs.existsSync(versionFile)) {
46
- return null;
47
- }
48
- const cachedVersion = fs.readFileSync(versionFile, "utf-8").trim();
49
- if (cachedVersion !== ENGINE_VERSION) {
50
- return null;
51
- }
52
- return binPath;
53
- }
54
- export function parseChecksums(text) {
55
- const checksums = new Map();
56
- for (const line of text.split("\n")) {
57
- const trimmed = line.trim();
58
- if (!trimmed)
59
- continue;
60
- // Format: "{hash} {filename}" (two spaces between hash and filename)
61
- const match = trimmed.match(/^([a-f0-9]{64})\s+(.+)$/);
62
- if (match) {
63
- checksums.set(match[2], match[1]);
64
- }
65
- }
66
- return checksums;
67
- }
68
- function httpsGet(url, redirectCount = 0) {
69
- if (redirectCount > MAX_REDIRECTS) {
70
- return Promise.reject(new Error(`Too many redirects (>${MAX_REDIRECTS}) following ${url}`));
71
- }
72
- return new Promise((resolve, reject) => {
73
- const client = url.startsWith("https:") ? https : http;
74
- client.get(url, (res) => {
75
- const status = res.statusCode ?? 0;
76
- if (status === 301 || status === 302) {
77
- const location = res.headers.location;
78
- if (!location) {
79
- reject(new Error(`Redirect ${status} without Location header from ${url}`));
80
- return;
81
- }
82
- res.resume();
83
- resolve(httpsGet(location, redirectCount + 1));
84
- return;
85
- }
86
- if (status < 200 || status >= 300) {
87
- res.resume();
88
- reject(new Error(`HTTP ${status} fetching ${url}`));
89
- return;
90
- }
91
- const chunks = [];
92
- res.on("data", (chunk) => chunks.push(chunk));
93
- res.on("end", () => resolve(Buffer.concat(chunks)));
94
- res.on("error", reject);
95
- }).on("error", reject);
96
- });
97
- }
98
- export async function downloadEngine() {
99
- const key = platformKey();
100
- const filename = `attest-engine-${key}`;
101
- const binaryUrl = `${RELEASE_BASE}/${filename}`;
102
- process.stderr.write(`[attest] Downloading engine v${ENGINE_VERSION} for ${key}...\n`);
103
- // Fetch checksums
104
- process.stderr.write(`[attest] Fetching checksums...\n`);
105
- const checksumsText = (await httpsGet(CHECKSUMS_URL)).toString("utf-8");
106
- const checksums = parseChecksums(checksumsText);
107
- const expectedHash = checksums.get(filename);
108
- if (!expectedHash) {
109
- throw new Error(`No checksum found for '${filename}' in checksums-sha256.txt. ` +
110
- `Available files: ${[...checksums.keys()].join(", ")}`);
111
- }
112
- // Download binary
113
- process.stderr.write(`[attest] Downloading ${binaryUrl}...\n`);
114
- const data = await httpsGet(binaryUrl);
115
- // Verify SHA256
116
- const actualHash = crypto.createHash("sha256").update(data).digest("hex");
117
- if (actualHash !== expectedHash) {
118
- throw new Error(`SHA256 mismatch for ${filename}. ` +
119
- `Expected: ${expectedHash}, got: ${actualHash}. ` +
120
- `The download may be corrupted. Delete ~/.attest/bin/ and retry.`);
121
- }
122
- process.stderr.write(`[attest] Checksum verified.\n`);
123
- // Atomic write: temp file + rename
124
- const dir = attestBinDir();
125
- const destFilename = binaryFilename();
126
- const destPath = path.join(dir, destFilename);
127
- const tmpPath = path.join(dir, `.${destFilename}.tmp.${process.pid}`);
128
- fs.writeFileSync(tmpPath, data);
129
- fs.chmodSync(tmpPath, 0o755);
130
- fs.renameSync(tmpPath, destPath);
131
- // Write version marker
132
- fs.writeFileSync(path.join(dir, ".engine-version"), ENGINE_VERSION);
133
- process.stderr.write(`[attest] Engine installed at ${destPath}\n`);
134
- return destPath;
135
- }
136
- //# sourceMappingURL=engine-downloader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine-downloader.js","sourceRoot":"","sources":["../src/engine-downloader.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { type ChildProcess } from "node:child_process";
2
- import { type Interface as ReadlineInterface } from "node:readline";
3
- import type { InitializeResult } from "./proto/types.js";
4
- export declare class EngineManager {
5
- private enginePath;
6
- private readonly logLevel;
7
- private process;
8
- private reader;
9
- private initialized;
10
- private requestId;
11
- private initResult;
12
- constructor(options?: {
13
- enginePath?: string;
14
- logLevel?: string;
15
- });
16
- start(): Promise<InitializeResult>;
17
- stop(): Promise<void>;
18
- sendRequest(method: string, params: Record<string, unknown>): Promise<unknown>;
19
- private sendRequestInternal;
20
- get isRunning(): boolean;
21
- /** Expose process for AttestClient reader loop access */
22
- get childProcess(): ChildProcess | null;
23
- /** Expose readline interface for AttestClient reader loop */
24
- get readlineInterface(): ReadlineInterface | null;
25
- }
26
- //# sourceMappingURL=engine-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine-manager.d.ts","sourceRoot":"","sources":["../src/engine-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAmB,KAAK,SAAS,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA+DzD,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAiC;gBAEvC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAK1D,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA6BlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCrB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAOtE,mBAAmB;IAmCjC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,yDAAyD;IACzD,IAAI,YAAY,IAAI,YAAY,GAAG,IAAI,CAEtC;IAED,6DAA6D;IAC7D,IAAI,iBAAiB,IAAI,iBAAiB,GAAG,IAAI,CAEhD;CACF"}
@@ -1,172 +0,0 @@
1
- import { spawn, execSync } from "node:child_process";
2
- import { createInterface } from "node:readline";
3
- import { existsSync, accessSync, constants as fsConstants } from "node:fs";
4
- import { resolve, join, dirname } from "node:path";
5
- import { fileURLToPath } from "node:url";
6
- import { decodeResponse, encodeRequest, extractResult } from "./proto/codec.js";
7
- import { VERSION } from "./version.js";
8
- import { cachedEnginePath, downloadEngine } from "./engine-downloader.js";
9
- const ENGINE_BINARY_NAME = "attest-engine";
10
- async function findEngineBinary() {
11
- // 1. Explicit env var override
12
- const envPath = process.env["ATTEST_ENGINE_PATH"];
13
- if (envPath) {
14
- if (!existsSync(envPath)) {
15
- throw new Error(`ATTEST_ENGINE_PATH is set to '${envPath}' but the file does not exist.`);
16
- }
17
- return envPath;
18
- }
19
- // 2. Check PATH via which/where
20
- try {
21
- const cmd = process.platform === "win32" ? "where" : "which";
22
- const found = execSync(`${cmd} ${ENGINE_BINARY_NAME}`, { encoding: "utf-8" }).trim();
23
- if (found)
24
- return found;
25
- }
26
- catch {
27
- // not on PATH
28
- }
29
- // 3. Cached download in ~/.attest/bin/
30
- const cached = cachedEnginePath();
31
- if (cached)
32
- return cached;
33
- // 4. Monorepo dev layout (../../bin/ relative to this file)
34
- // 5. CWD ./bin/
35
- const candidates = [
36
- join(dirname(fileURLToPath(import.meta.url)), "..", "..", "..", "..", "..", "bin", ENGINE_BINARY_NAME),
37
- join(process.cwd(), "bin", ENGINE_BINARY_NAME)
38
- ];
39
- for (const candidate of candidates) {
40
- const resolved = resolve(candidate);
41
- try {
42
- accessSync(resolved, fsConstants.X_OK);
43
- if (existsSync(resolved))
44
- return resolved;
45
- }
46
- catch {
47
- // not accessible
48
- }
49
- }
50
- // 6. Auto-download
51
- const noDownload = process.env["ATTEST_ENGINE_NO_DOWNLOAD"];
52
- if (noDownload === "1" || noDownload === "true" || noDownload === "yes") {
53
- throw new Error(`Cannot find '${ENGINE_BINARY_NAME}' binary and auto-download is disabled ` +
54
- "(ATTEST_ENGINE_NO_DOWNLOAD is set). Install the engine manually:\n" +
55
- " 1. Download from https://github.com/attest-framework/attest/releases\n" +
56
- " 2. Place the binary on your PATH or set ATTEST_ENGINE_PATH");
57
- }
58
- return downloadEngine();
59
- }
60
- export class EngineManager {
61
- enginePath;
62
- logLevel;
63
- process = null;
64
- reader = null;
65
- initialized = false;
66
- requestId = 0;
67
- initResult = null;
68
- constructor(options) {
69
- this.enginePath = options?.enginePath ?? "";
70
- this.logLevel = options?.logLevel ?? "warn";
71
- }
72
- async start() {
73
- if (!this.enginePath) {
74
- this.enginePath = await findEngineBinary();
75
- }
76
- this.process = spawn(this.enginePath, [`--log-level=${this.logLevel}`], {
77
- stdio: ["pipe", "pipe", "pipe"],
78
- });
79
- this.reader = createInterface({ input: this.process.stdout });
80
- const result = await this.sendRequestInternal("initialize", {
81
- sdk_name: "attest-typescript",
82
- sdk_version: VERSION,
83
- protocol_version: 1,
84
- required_capabilities: ["layers_1_4"],
85
- preferred_encoding: "json",
86
- });
87
- this.initResult = result;
88
- if (!this.initResult.compatible) {
89
- throw new Error(`Engine incompatible. Missing capabilities: ${JSON.stringify(this.initResult.missing)}`);
90
- }
91
- this.initialized = true;
92
- return this.initResult;
93
- }
94
- async stop() {
95
- if (this.process === null)
96
- return;
97
- if (this.initialized) {
98
- try {
99
- await this.sendRequestInternal("shutdown", {});
100
- }
101
- catch {
102
- // shutdown failed, will kill
103
- }
104
- }
105
- if (this.reader) {
106
- this.reader.close();
107
- this.reader = null;
108
- }
109
- if (this.process.exitCode === null) {
110
- this.process.kill("SIGTERM");
111
- await new Promise((res) => {
112
- const timer = setTimeout(() => {
113
- this.process?.kill("SIGKILL");
114
- }, 5000);
115
- this.process.on("exit", () => {
116
- clearTimeout(timer);
117
- res();
118
- });
119
- });
120
- }
121
- this.initialized = false;
122
- this.process = null;
123
- }
124
- async sendRequest(method, params) {
125
- if (!this.initialized && method !== "initialize") {
126
- throw new Error("Engine not initialized. Call start() first.");
127
- }
128
- return this.sendRequestInternal(method, params);
129
- }
130
- async sendRequestInternal(method, params) {
131
- if (this.process === null || this.process.stdin === null || this.reader === null) {
132
- throw new Error("Engine process not started.");
133
- }
134
- this.requestId += 1;
135
- const requestStr = encodeRequest(this.requestId, method, params);
136
- return new Promise((resolve, reject) => {
137
- const onLine = (line) => {
138
- try {
139
- const response = decodeResponse(line);
140
- resolve(extractResult(response));
141
- }
142
- catch (err) {
143
- reject(err);
144
- }
145
- };
146
- this.reader.once("line", onLine);
147
- const ok = this.process.stdin.write(requestStr, (err) => {
148
- if (err) {
149
- this.reader.removeListener("line", onLine);
150
- reject(err);
151
- }
152
- });
153
- if (!ok) {
154
- this.process.stdin.once("drain", () => {
155
- // write will proceed after drain
156
- });
157
- }
158
- });
159
- }
160
- get isRunning() {
161
- return this.process !== null && this.process.exitCode === null;
162
- }
163
- /** Expose process for AttestClient reader loop access */
164
- get childProcess() {
165
- return this.process;
166
- }
167
- /** Expose readline interface for AttestClient reader loop */
168
- get readlineInterface() {
169
- return this.reader;
170
- }
171
- }
172
- //# sourceMappingURL=engine-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine-manager.js","sourceRoot":"","sources":["../src/engine-manager.ts"],"names":[],"mappings":"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"}
package/dist/expect.d.ts DELETED
@@ -1,133 +0,0 @@
1
- import type { Assertion, Trace } from "./proto/types.js";
2
- import { AgentResult } from "./result.js";
3
- export declare class ExpectChain {
4
- private readonly _result;
5
- private readonly _assertions;
6
- constructor(result: AgentResult);
7
- get assertions(): Assertion[];
8
- get trace(): Trace;
9
- private add;
10
- outputMatchesSchema(schema: Record<string, unknown>): this;
11
- outputFieldMatchesSchema(field: string, schema: Record<string, unknown>): this;
12
- toolArgsMatchSchema(toolName: string, schema: Record<string, unknown>): this;
13
- toolResultMatchesSchema(toolName: string, schema: Record<string, unknown>): this;
14
- costUnder(maxCost: number, opts?: {
15
- soft?: boolean;
16
- }): this;
17
- latencyUnder(maxMs: number, opts?: {
18
- soft?: boolean;
19
- }): this;
20
- tokensUnder(maxTokens: number, opts?: {
21
- soft?: boolean;
22
- }): this;
23
- tokensBetween(minTokens: number, maxTokens: number, opts?: {
24
- soft?: boolean;
25
- }): this;
26
- stepCount(operator: string, value: number, opts?: {
27
- soft?: boolean;
28
- }): this;
29
- toolCallCount(operator: string, value: number, opts?: {
30
- soft?: boolean;
31
- }): this;
32
- constraint(field: string, operator: string, opts?: {
33
- value?: number;
34
- min?: number;
35
- max?: number;
36
- soft?: boolean;
37
- }): this;
38
- toolsCalledInOrder(tools: string[], opts?: {
39
- soft?: boolean;
40
- }): this;
41
- toolsCalledExactly(tools: string[], opts?: {
42
- soft?: boolean;
43
- }): this;
44
- noToolLoops(tool: string, maxRepetitions?: number, opts?: {
45
- soft?: boolean;
46
- }): this;
47
- noDuplicateTools(opts?: {
48
- soft?: boolean;
49
- }): this;
50
- requiredTools(tools: string[], opts?: {
51
- soft?: boolean;
52
- }): this;
53
- forbiddenTools(tools: string[], opts?: {
54
- soft?: boolean;
55
- }): this;
56
- outputContains(value: string, opts?: {
57
- caseSensitive?: boolean;
58
- soft?: boolean;
59
- }): this;
60
- outputNotContains(value: string, opts?: {
61
- caseSensitive?: boolean;
62
- soft?: boolean;
63
- }): this;
64
- outputMatchesRegex(pattern: string, opts?: {
65
- soft?: boolean;
66
- }): this;
67
- outputHasAllKeywords(keywords: string[], opts?: {
68
- caseSensitive?: boolean;
69
- soft?: boolean;
70
- }): this;
71
- outputHasAnyKeyword(keywords: string[], opts?: {
72
- caseSensitive?: boolean;
73
- soft?: boolean;
74
- }): this;
75
- outputForbids(terms: string[]): this;
76
- contentContains(target: string, value: string, opts?: {
77
- caseSensitive?: boolean;
78
- soft?: boolean;
79
- }): this;
80
- outputSimilarTo(reference: string, opts?: {
81
- threshold?: number;
82
- model?: string;
83
- soft?: boolean;
84
- }): this;
85
- passesJudge(criteria: string, opts?: {
86
- rubric?: string;
87
- threshold?: number;
88
- model?: string;
89
- soft?: boolean;
90
- }): this;
91
- agentCalled(agentId: string, opts?: {
92
- soft?: boolean;
93
- }): this;
94
- delegationDepth(maxDepth: number, opts?: {
95
- soft?: boolean;
96
- }): this;
97
- agentOutputContains(agentId: string, value: string, opts?: {
98
- caseSensitive?: boolean;
99
- soft?: boolean;
100
- }): this;
101
- crossAgentDataFlow(fromAgent: string, toAgent: string, field: string, opts?: {
102
- soft?: boolean;
103
- }): this;
104
- followsTransitions(transitions: [string, string][], opts?: {
105
- soft?: boolean;
106
- }): this;
107
- aggregateCostUnder(maxCost: number, opts?: {
108
- soft?: boolean;
109
- }): this;
110
- aggregateTokensUnder(maxTokens: number, opts?: {
111
- soft?: boolean;
112
- }): this;
113
- agentOrderedBefore(agentA: string, agentB: string, opts?: {
114
- soft?: boolean;
115
- }): this;
116
- agentsOverlap(agentA: string, agentB: string, opts?: {
117
- soft?: boolean;
118
- }): this;
119
- agentWallTimeUnder(agentId: string, maxMs: number, opts?: {
120
- soft?: boolean;
121
- }): this;
122
- orderedAgents(groups: string[][], opts?: {
123
- soft?: boolean;
124
- }): this;
125
- }
126
- /**
127
- * Create an assertion chain for an agent result.
128
- *
129
- * Accepts either an {@link AgentResult} or a raw {@link Trace}. When a
130
- * `Trace` is passed it is automatically wrapped in an `AgentResult`.
131
- */
132
- export declare function attestExpect(result: AgentResult | Trace): ExpectChain;
133
- //# sourceMappingURL=expect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAUzD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;gBAEnC,MAAM,EAAE,WAAW;IAI/B,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,GAAG;IAWX,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1D,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9E,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO5E,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAShF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS3D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS5D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS/D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAUpF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS3E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS/E,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACpE,IAAI;IAcP,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQpE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQpE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,SAAI,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS9E,gBAAgB,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAIjD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQ/D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAUhE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAUvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAU1F,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IASpE,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,IAAI;IAUP,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,IAAI;IAUP,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQpC,eAAe,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,IAAI;IAYP,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5D,IAAI;IAYP,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7E,IAAI;IAaP,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQ7D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQlE,mBAAmB,CACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,IAAI;IAUP,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GACxB,IAAI;IAUP,kBAAkB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQpF,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IASpE,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IASxE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IASnF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAS9E,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IASnF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;CAOnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,WAAW,CAMrE"}