@attest-ai/core 0.5.0 → 0.9.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/cjs/index.cjs +741 -25
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +145 -8
- package/dist/cjs/proto/index.cjs +81 -0
- package/dist/cjs/proto/index.cjs.map +1 -1
- package/dist/cjs/proto/index.d.cts +145 -3
- package/dist/esm/cli.js +321 -2
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/index.d.ts +145 -8
- package/dist/esm/index.js +724 -25
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/proto/index.d.ts +145 -3
- package/dist/esm/proto/index.js +77 -0
- package/dist/esm/proto/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/adapters/anthropic.d.ts +0 -31
- package/dist/adapters/anthropic.d.ts.map +0 -1
- package/dist/adapters/anthropic.js +0 -42
- package/dist/adapters/anthropic.js.map +0 -1
- package/dist/adapters/gemini.d.ts +0 -30
- package/dist/adapters/gemini.d.ts.map +0 -1
- package/dist/adapters/gemini.js +0 -41
- package/dist/adapters/gemini.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -11
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -7
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/manual.d.ts +0 -9
- package/dist/adapters/manual.d.ts.map +0 -1
- package/dist/adapters/manual.js +0 -16
- package/dist/adapters/manual.js.map +0 -1
- package/dist/adapters/ollama.d.ts +0 -19
- package/dist/adapters/ollama.d.ts.map +0 -1
- package/dist/adapters/ollama.js +0 -30
- package/dist/adapters/ollama.js.map +0 -1
- package/dist/adapters/openai.d.ts +0 -34
- package/dist/adapters/openai.d.ts.map +0 -1
- package/dist/adapters/openai.js +0 -42
- package/dist/adapters/openai.js.map +0 -1
- package/dist/adapters/otel.d.ts +0 -25
- package/dist/adapters/otel.d.ts.map +0 -1
- package/dist/adapters/otel.js +0 -133
- package/dist/adapters/otel.js.map +0 -1
- package/dist/agent.d.ts +0 -14
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -54
- package/dist/agent.js.map +0 -1
- package/dist/client.d.ts +0 -23
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -171
- package/dist/client.js.map +0 -1
- package/dist/config.d.ts +0 -21
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -31
- package/dist/config.js.map +0 -1
- package/dist/context.d.ts +0 -4
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -3
- package/dist/context.js.map +0 -1
- package/dist/delegate.d.ts +0 -3
- package/dist/delegate.d.ts.map +0 -1
- package/dist/delegate.js +0 -24
- package/dist/delegate.js.map +0 -1
- package/dist/engine-downloader.d.ts +0 -7
- package/dist/engine-downloader.d.ts.map +0 -1
- package/dist/engine-downloader.js +0 -136
- package/dist/engine-downloader.js.map +0 -1
- package/dist/engine-manager.d.ts +0 -26
- package/dist/engine-manager.d.ts.map +0 -1
- package/dist/engine-manager.js +0 -172
- package/dist/engine-manager.js.map +0 -1
- package/dist/expect.d.ts +0 -133
- package/dist/expect.d.ts.map +0 -1
- package/dist/expect.js +0 -330
- package/dist/expect.js.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -15
- package/dist/index.js.map +0 -1
- package/dist/proto/codec.d.ts +0 -20
- package/dist/proto/codec.d.ts.map +0 -1
- package/dist/proto/codec.js +0 -71
- package/dist/proto/codec.js.map +0 -1
- package/dist/proto/constants.d.ts +0 -21
- package/dist/proto/constants.d.ts.map +0 -1
- package/dist/proto/constants.js +0 -25
- package/dist/proto/constants.js.map +0 -1
- package/dist/proto/errors.d.ts +0 -13
- package/dist/proto/errors.d.ts.map +0 -1
- package/dist/proto/errors.js +0 -24
- package/dist/proto/errors.js.map +0 -1
- package/dist/proto/index.d.ts +0 -5
- package/dist/proto/index.d.ts.map +0 -1
- package/dist/proto/index.js +0 -5
- package/dist/proto/index.js.map +0 -1
- package/dist/proto/types.d.ts +0 -104
- package/dist/proto/types.d.ts.map +0 -1
- package/dist/proto/types.js +0 -2
- package/dist/proto/types.js.map +0 -1
- package/dist/result.d.ts +0 -15
- package/dist/result.d.ts.map +0 -1
- package/dist/result.js +0 -32
- package/dist/result.js.map +0 -1
- package/dist/simulation.d.ts +0 -8
- package/dist/simulation.d.ts.map +0 -1
- package/dist/simulation.js +0 -21
- package/dist/simulation.js.map +0 -1
- package/dist/tier.d.ts +0 -5
- package/dist/tier.d.ts.map +0 -1
- package/dist/tier.js +0 -10
- package/dist/tier.js.map +0 -1
- package/dist/trace-tree.d.ts +0 -20
- package/dist/trace-tree.d.ts.map +0 -1
- package/dist/trace-tree.js +0 -92
- package/dist/trace-tree.js.map +0 -1
- package/dist/trace.d.ts +0 -41
- package/dist/trace.d.ts.map +0 -1
- package/dist/trace.js +0 -88
- package/dist/trace.js.map +0 -1
- package/dist/version.d.ts +0 -3
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
package/dist/config.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
let _simulationMode = false;
|
|
2
|
-
/**
|
|
3
|
-
* Configure global SDK options.
|
|
4
|
-
*
|
|
5
|
-
* @param options.simulation - Enable simulation mode. All `evaluateBatch` calls
|
|
6
|
-
* return deterministic pass results without spawning the engine or calling any
|
|
7
|
-
* LLM. Equivalent to setting `ATTEST_SIMULATION=1` in the environment.
|
|
8
|
-
*/
|
|
9
|
-
export function config(options) {
|
|
10
|
-
if (options.simulation !== undefined) {
|
|
11
|
-
_simulationMode = options.simulation;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Returns true when simulation mode is active via either the programmatic API
|
|
16
|
-
* or the `ATTEST_SIMULATION` environment variable.
|
|
17
|
-
*/
|
|
18
|
-
export function isSimulationMode() {
|
|
19
|
-
return (_simulationMode ||
|
|
20
|
-
process.env["ATTEST_SIMULATION"] === "1" ||
|
|
21
|
-
process.env["ATTEST_SIMULATION"] === "true" ||
|
|
22
|
-
process.env["ATTEST_SIMULATION"] === "yes");
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Reset all programmatic config to defaults. Primarily for use in tests.
|
|
26
|
-
* Environment variables are not affected.
|
|
27
|
-
*/
|
|
28
|
-
export function resetConfig() {
|
|
29
|
-
_simulationMode = false;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAAiC;IACtD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CACL,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG;QACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,KAAK,CAC3C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC"}
|
package/dist/context.d.ts
DELETED
package/dist/context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,aAAa,iCAAwC,CAAC"}
|
package/dist/context.js
DELETED
package/dist/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAgB,CAAC"}
|
package/dist/delegate.d.ts
DELETED
package/dist/delegate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../src/delegate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAChD,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/delegate.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { STEP_AGENT_CALL } from "./proto/constants.js";
|
|
2
|
-
import { TraceBuilder } from "./trace.js";
|
|
3
|
-
import { activeBuilder } from "./context.js";
|
|
4
|
-
export async function delegate(agentId, fn) {
|
|
5
|
-
const parent = activeBuilder.getStore();
|
|
6
|
-
if (parent === undefined) {
|
|
7
|
-
throw new Error("delegate() must be used within an Agent.run() context. " +
|
|
8
|
-
"No active TraceBuilder found.");
|
|
9
|
-
}
|
|
10
|
-
const child = new TraceBuilder(agentId);
|
|
11
|
-
child.setParentTraceId(parent.getTraceId());
|
|
12
|
-
await activeBuilder.run(child, async () => {
|
|
13
|
-
await fn(child);
|
|
14
|
-
});
|
|
15
|
-
const childTrace = child.build();
|
|
16
|
-
parent.addStep({
|
|
17
|
-
type: STEP_AGENT_CALL,
|
|
18
|
-
name: agentId,
|
|
19
|
-
args: undefined,
|
|
20
|
-
result: childTrace.output,
|
|
21
|
-
sub_trace: childTrace,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=delegate.js.map
|
package/dist/delegate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../src/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAe,EACf,EAAiD;IAEjD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yDAAyD;YACzD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAE5C,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAEjC,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function attestBinDir(): string;
|
|
2
|
-
export declare function platformKey(): string;
|
|
3
|
-
export declare function binaryFilename(): string;
|
|
4
|
-
export declare function cachedEnginePath(): string | null;
|
|
5
|
-
export declare function parseChecksums(text: string): Map<string, string>;
|
|
6
|
-
export declare function downloadEngine(): Promise<string>;
|
|
7
|
-
//# sourceMappingURL=engine-downloader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine-downloader.d.ts","sourceRoot":"","sources":["../src/engine-downloader.ts"],"names":[],"mappings":"AAYA,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED,wBAAgB,WAAW,IAAI,MAAM,CA0BpC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAmBhD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYhE;AAuCD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAiDtD"}
|
|
@@ -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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"}
|
package/dist/engine-manager.d.ts
DELETED
|
@@ -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"}
|
package/dist/engine-manager.js
DELETED
|
@@ -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
|
package/dist/expect.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
|