agent-inspect 6.31.11 → 6.31.12
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 +6 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/packages/cli/dist/{chunk-MQYHJL3W.mjs → chunk-GBAGZVUX.mjs} +126 -23
- package/packages/cli/dist/chunk-GBAGZVUX.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +128 -24
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +4 -4
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-76R6E2LQ.mjs → src-F44EQY4S.mjs} +3 -3
- package/packages/cli/dist/{src-76R6E2LQ.mjs.map → src-F44EQY4S.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +124 -21
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.mjs +124 -21
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/cli/dist/chunk-MQYHJL3W.mjs.map +0 -1
|
@@ -11918,25 +11918,45 @@ function asStringArray(value, label) {
|
|
|
11918
11918
|
function asPositiveNumber(value, label) {
|
|
11919
11919
|
if (value === void 0) return void 0;
|
|
11920
11920
|
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
|
|
11921
|
-
throw new Error(`${label} must be a non-negative number.`);
|
|
11921
|
+
throw new Error(`${label} must be a non-negative finite number.`);
|
|
11922
11922
|
}
|
|
11923
11923
|
return value;
|
|
11924
11924
|
}
|
|
11925
|
-
function
|
|
11925
|
+
function asBoolean(value, label) {
|
|
11926
11926
|
if (value === void 0) return void 0;
|
|
11927
|
+
if (typeof value !== "boolean") {
|
|
11928
|
+
throw new Error(`${label} must be a boolean (not a string or other type).`);
|
|
11929
|
+
}
|
|
11930
|
+
return value;
|
|
11931
|
+
}
|
|
11932
|
+
function assertObject(value, label) {
|
|
11927
11933
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
11928
11934
|
throw new Error(`${label} must be an object.`);
|
|
11929
11935
|
}
|
|
11930
|
-
|
|
11936
|
+
return value;
|
|
11937
|
+
}
|
|
11938
|
+
function assertKnownKeys(raw, allowed, label) {
|
|
11939
|
+
const allowedSet = new Set(allowed);
|
|
11940
|
+
for (const key of Object.keys(raw)) {
|
|
11941
|
+
if (!allowedSet.has(key)) {
|
|
11942
|
+
throw new Error(`${label} has unknown key "${key}".`);
|
|
11943
|
+
}
|
|
11944
|
+
}
|
|
11945
|
+
}
|
|
11946
|
+
function asExpectConfig(value, label) {
|
|
11947
|
+
if (value === void 0) return void 0;
|
|
11948
|
+
const raw = assertObject(value, label);
|
|
11949
|
+
assertKnownKeys(raw, EXPECT_KEYS, label);
|
|
11931
11950
|
const checkStatus = raw.checkStatus;
|
|
11932
11951
|
if (checkStatus !== "pass" && checkStatus !== "fail" && checkStatus !== "error") {
|
|
11933
11952
|
throw new Error(`${label}.checkStatus must be "pass", "fail", or "error".`);
|
|
11934
11953
|
}
|
|
11935
11954
|
const findingRuleIds = asStringArray(raw.findingRuleIds, `${label}.findingRuleIds`);
|
|
11936
11955
|
const minAssertions = asPositiveNumber(raw.minAssertions, `${label}.minAssertions`);
|
|
11937
|
-
const rejectUnexpectedFindings =
|
|
11938
|
-
|
|
11939
|
-
|
|
11956
|
+
const rejectUnexpectedFindings = asBoolean(
|
|
11957
|
+
raw.rejectUnexpectedFindings,
|
|
11958
|
+
`${label}.rejectUnexpectedFindings`
|
|
11959
|
+
);
|
|
11940
11960
|
return {
|
|
11941
11961
|
checkStatus,
|
|
11942
11962
|
...findingRuleIds !== void 0 ? { findingRuleIds } : {},
|
|
@@ -11944,6 +11964,56 @@ function asExpectConfig(value, label) {
|
|
|
11944
11964
|
...minAssertions !== void 0 ? { minAssertions } : {}
|
|
11945
11965
|
};
|
|
11946
11966
|
}
|
|
11967
|
+
function asChecksConfig(value, label) {
|
|
11968
|
+
const raw = assertObject(value, label);
|
|
11969
|
+
assertKnownKeys(raw, CHECKS_KEYS, label);
|
|
11970
|
+
const checks2 = {};
|
|
11971
|
+
const select = asStringArray(raw.select, `${label}.select`);
|
|
11972
|
+
if (select !== void 0) checks2.select = select;
|
|
11973
|
+
if (raw.run !== void 0) {
|
|
11974
|
+
const run = assertObject(raw.run, `${label}.run`);
|
|
11975
|
+
assertKnownKeys(run, CHECKS_RUN_KEYS, `${label}.run`);
|
|
11976
|
+
checks2.run = {
|
|
11977
|
+
...asPositiveNumber(run.maxDurationMs, `${label}.run.maxDurationMs`) !== void 0 ? { maxDurationMs: asPositiveNumber(run.maxDurationMs, `${label}.run.maxDurationMs`) } : {},
|
|
11978
|
+
...asPositiveNumber(run.maxDepth, `${label}.run.maxDepth`) !== void 0 ? { maxDepth: asPositiveNumber(run.maxDepth, `${label}.run.maxDepth`) } : {}
|
|
11979
|
+
};
|
|
11980
|
+
}
|
|
11981
|
+
if (raw.tool !== void 0) {
|
|
11982
|
+
const tool = assertObject(raw.tool, `${label}.tool`);
|
|
11983
|
+
assertKnownKeys(tool, CHECKS_TOOL_KEYS, `${label}.tool`);
|
|
11984
|
+
checks2.tool = {
|
|
11985
|
+
...asStringArray(tool.required, `${label}.tool.required`) !== void 0 ? { required: asStringArray(tool.required, `${label}.tool.required`) } : {},
|
|
11986
|
+
...asStringArray(tool.forbidden, `${label}.tool.forbidden`) !== void 0 ? { forbidden: asStringArray(tool.forbidden, `${label}.tool.forbidden`) } : {}
|
|
11987
|
+
};
|
|
11988
|
+
}
|
|
11989
|
+
if (raw.llm !== void 0) {
|
|
11990
|
+
const llm = assertObject(raw.llm, `${label}.llm`);
|
|
11991
|
+
assertKnownKeys(llm, CHECKS_LLM_KEYS, `${label}.llm`);
|
|
11992
|
+
checks2.llm = {
|
|
11993
|
+
...asStringArray(llm.allowedModels, `${label}.llm.allowedModels`) !== void 0 ? { allowedModels: asStringArray(llm.allowedModels, `${label}.llm.allowedModels`) } : {},
|
|
11994
|
+
...asPositiveNumber(llm.maxTotalTokens, `${label}.llm.maxTotalTokens`) !== void 0 ? {
|
|
11995
|
+
maxTotalTokens: asPositiveNumber(
|
|
11996
|
+
llm.maxTotalTokens,
|
|
11997
|
+
`${label}.llm.maxTotalTokens`
|
|
11998
|
+
)
|
|
11999
|
+
} : {}
|
|
12000
|
+
};
|
|
12001
|
+
}
|
|
12002
|
+
return checks2;
|
|
12003
|
+
}
|
|
12004
|
+
function asEvalConfig(value, label) {
|
|
12005
|
+
const raw = assertObject(value, label);
|
|
12006
|
+
assertKnownKeys(raw, EVAL_KEYS, label);
|
|
12007
|
+
return {
|
|
12008
|
+
...asBoolean(raw.requireSuccess, `${label}.requireSuccess`) !== void 0 ? { requireSuccess: asBoolean(raw.requireSuccess, `${label}.requireSuccess`) } : {},
|
|
12009
|
+
...asStringArray(raw.requiredTools, `${label}.requiredTools`) !== void 0 ? { requiredTools: asStringArray(raw.requiredTools, `${label}.requiredTools`) } : {},
|
|
12010
|
+
...asStringArray(raw.forbiddenTools, `${label}.forbiddenTools`) !== void 0 ? { forbiddenTools: asStringArray(raw.forbiddenTools, `${label}.forbiddenTools`) } : {},
|
|
12011
|
+
...asPositiveNumber(raw.maxDurationMs, `${label}.maxDurationMs`) !== void 0 ? { maxDurationMs: asPositiveNumber(raw.maxDurationMs, `${label}.maxDurationMs`) } : {},
|
|
12012
|
+
...asPositiveNumber(raw.maxDepth, `${label}.maxDepth`) !== void 0 ? { maxDepth: asPositiveNumber(raw.maxDepth, `${label}.maxDepth`) } : {},
|
|
12013
|
+
...asPositiveNumber(raw.maxRetries, `${label}.maxRetries`) !== void 0 ? { maxRetries: asPositiveNumber(raw.maxRetries, `${label}.maxRetries`) } : {},
|
|
12014
|
+
...asPositiveNumber(raw.maxTotalTokens, `${label}.maxTotalTokens`) !== void 0 ? { maxTotalTokens: asPositiveNumber(raw.maxTotalTokens, `${label}.maxTotalTokens`) } : {}
|
|
12015
|
+
};
|
|
12016
|
+
}
|
|
11947
12017
|
function validateCaseConfig(value, index) {
|
|
11948
12018
|
const diagnostics = [];
|
|
11949
12019
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
@@ -11954,6 +12024,7 @@ function validateCaseConfig(value, index) {
|
|
|
11954
12024
|
}
|
|
11955
12025
|
const raw = value;
|
|
11956
12026
|
try {
|
|
12027
|
+
assertKnownKeys(raw, CASE_KEYS, `cases[${index}]`);
|
|
11957
12028
|
const id = asString(raw.id, `cases[${index}].id`);
|
|
11958
12029
|
if (id === void 0) {
|
|
11959
12030
|
diagnostics.push(
|
|
@@ -12002,6 +12073,7 @@ function normalizeSuiteConfig(value) {
|
|
|
12002
12073
|
throw new Error("Suite config must export an object.");
|
|
12003
12074
|
}
|
|
12004
12075
|
const raw = value;
|
|
12076
|
+
assertKnownKeys(raw, ROOT_KEYS, "suite config");
|
|
12005
12077
|
const name = asString(raw.name, "name");
|
|
12006
12078
|
const traces = asString(raw.traces, "traces");
|
|
12007
12079
|
if (name === void 0) throw new Error("name is required.");
|
|
@@ -12030,25 +12102,15 @@ function normalizeSuiteConfig(value) {
|
|
|
12030
12102
|
}
|
|
12031
12103
|
const config = { name, traces, cases };
|
|
12032
12104
|
if (raw.checks !== void 0) {
|
|
12033
|
-
|
|
12034
|
-
throw new Error("checks must be an object.");
|
|
12035
|
-
}
|
|
12036
|
-
config.checks = raw.checks;
|
|
12105
|
+
config.checks = asChecksConfig(raw.checks, "checks");
|
|
12037
12106
|
}
|
|
12038
12107
|
if (raw.eval !== void 0) {
|
|
12039
|
-
|
|
12040
|
-
throw new Error("eval must be an object.");
|
|
12041
|
-
}
|
|
12042
|
-
config.eval = raw.eval;
|
|
12108
|
+
config.eval = asEvalConfig(raw.eval, "eval");
|
|
12043
12109
|
}
|
|
12044
12110
|
if (raw.artifacts !== void 0) {
|
|
12045
|
-
|
|
12046
|
-
|
|
12047
|
-
|
|
12048
|
-
const outputDir = asString(
|
|
12049
|
-
raw.artifacts.outputDir,
|
|
12050
|
-
"artifacts.outputDir"
|
|
12051
|
-
);
|
|
12111
|
+
const artifacts = assertObject(raw.artifacts, "artifacts");
|
|
12112
|
+
assertKnownKeys(artifacts, ["outputDir"], "artifacts");
|
|
12113
|
+
const outputDir = asString(artifacts.outputDir, "artifacts.outputDir");
|
|
12052
12114
|
config.artifacts = outputDir !== void 0 ? { outputDir } : {};
|
|
12053
12115
|
}
|
|
12054
12116
|
if (raw.baseline !== void 0) {
|
|
@@ -12091,8 +12153,50 @@ async function validateSuiteConfig(config, options) {
|
|
|
12091
12153
|
}
|
|
12092
12154
|
return { ok: diagnostics.every((item) => item.severity !== "error"), diagnostics };
|
|
12093
12155
|
}
|
|
12156
|
+
var CASE_KEYS, EXPECT_KEYS, CHECKS_KEYS, CHECKS_RUN_KEYS, CHECKS_TOOL_KEYS, CHECKS_LLM_KEYS, EVAL_KEYS, ROOT_KEYS;
|
|
12094
12157
|
var init_validate2 = __esm({
|
|
12095
12158
|
"packages/core/src/suite/validate.ts"() {
|
|
12159
|
+
CASE_KEYS = [
|
|
12160
|
+
"id",
|
|
12161
|
+
"trace",
|
|
12162
|
+
"runId",
|
|
12163
|
+
"input",
|
|
12164
|
+
"requireTools",
|
|
12165
|
+
"forbidTools",
|
|
12166
|
+
"maxDurationMs",
|
|
12167
|
+
"expectedObservations",
|
|
12168
|
+
"expect"
|
|
12169
|
+
];
|
|
12170
|
+
EXPECT_KEYS = [
|
|
12171
|
+
"checkStatus",
|
|
12172
|
+
"findingRuleIds",
|
|
12173
|
+
"rejectUnexpectedFindings",
|
|
12174
|
+
"minAssertions"
|
|
12175
|
+
];
|
|
12176
|
+
CHECKS_KEYS = ["select", "run", "tool", "llm"];
|
|
12177
|
+
CHECKS_RUN_KEYS = ["maxDurationMs", "maxDepth"];
|
|
12178
|
+
CHECKS_TOOL_KEYS = ["required", "forbidden"];
|
|
12179
|
+
CHECKS_LLM_KEYS = ["allowedModels", "maxTotalTokens"];
|
|
12180
|
+
EVAL_KEYS = [
|
|
12181
|
+
"requireSuccess",
|
|
12182
|
+
"requiredTools",
|
|
12183
|
+
"forbiddenTools",
|
|
12184
|
+
"maxDurationMs",
|
|
12185
|
+
"maxDepth",
|
|
12186
|
+
"maxRetries",
|
|
12187
|
+
"maxTotalTokens"
|
|
12188
|
+
];
|
|
12189
|
+
ROOT_KEYS = [
|
|
12190
|
+
"name",
|
|
12191
|
+
"traces",
|
|
12192
|
+
"cases",
|
|
12193
|
+
"checks",
|
|
12194
|
+
"eval",
|
|
12195
|
+
"redactionProfile",
|
|
12196
|
+
"artifacts",
|
|
12197
|
+
"baseline",
|
|
12198
|
+
"candidate"
|
|
12199
|
+
];
|
|
12096
12200
|
}
|
|
12097
12201
|
});
|
|
12098
12202
|
function diagnostic4(code, message) {
|
|
@@ -16656,7 +16760,7 @@ var init_src = __esm({
|
|
|
16656
16760
|
});
|
|
16657
16761
|
|
|
16658
16762
|
// package.json
|
|
16659
|
-
var version = "6.31.
|
|
16763
|
+
var version = "6.31.12";
|
|
16660
16764
|
|
|
16661
16765
|
// packages/cli/src/list.ts
|
|
16662
16766
|
init_advanced();
|
|
@@ -24209,7 +24313,7 @@ function asStringArray2(value) {
|
|
|
24209
24313
|
}
|
|
24210
24314
|
return value;
|
|
24211
24315
|
}
|
|
24212
|
-
var
|
|
24316
|
+
var CHECKS_KEYS2 = /* @__PURE__ */ new Set(["select", "run", "tool", "llm", "structure", "safety"]);
|
|
24213
24317
|
var ROOT_CONFIG_KEYS = /* @__PURE__ */ new Set(["checks", "contract"]);
|
|
24214
24318
|
var CONTRACT_KEYS = /* @__PURE__ */ new Set([
|
|
24215
24319
|
"run",
|
|
@@ -25270,7 +25374,7 @@ function parseCheckConfig(value) {
|
|
|
25270
25374
|
const out = {};
|
|
25271
25375
|
if ("checks" in root) {
|
|
25272
25376
|
const checksRecord = requireObject(root.checks, "checks");
|
|
25273
|
-
rejectUnknownKeys(checksRecord,
|
|
25377
|
+
rejectUnknownKeys(checksRecord, CHECKS_KEYS2, "checks");
|
|
25274
25378
|
const checks2 = {};
|
|
25275
25379
|
if (checksRecord.select !== void 0) {
|
|
25276
25380
|
checks2.select = requireStringArray(checksRecord.select, "checks.select");
|