agent-inspect 6.7.2 → 6.7.4
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 +21 -0
- package/README.md +1 -1
- package/docs/EXPORTS.md +9 -0
- package/docs/PERFORMANCE.md +18 -0
- package/docs/STANDARDS.md +4 -0
- package/package.json +2 -2
- package/packages/cli/dist/{chunk-M6PC5KUT.mjs → chunk-FVEQ7JFF.mjs} +251 -209
- package/packages/cli/dist/chunk-FVEQ7JFF.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +292 -229
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +35 -15
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-27LC2BB3.mjs → src-I5NA7BLK.mjs} +3 -3
- package/packages/cli/dist/{src-27LC2BB3.mjs.map → src-I5NA7BLK.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +249 -207
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.mjs +51 -250
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/core/dist/checks.cjs +56 -4
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.mjs +1 -1
- package/packages/core/dist/{chunk-X2FLDF7M.mjs → chunk-CTA6XNDP.mjs} +3 -3
- package/packages/core/dist/{chunk-X2FLDF7M.mjs.map → chunk-CTA6XNDP.mjs.map} +1 -1
- package/packages/core/dist/{chunk-EWHN6NA4.mjs → chunk-EQVXDGGU.mjs} +58 -6
- package/packages/core/dist/chunk-EQVXDGGU.mjs.map +1 -0
- package/packages/core/dist/{chunk-3USJVBLA.mjs → chunk-KDDU2R5P.mjs} +236 -5
- package/packages/core/dist/chunk-KDDU2R5P.mjs.map +1 -0
- package/packages/core/dist/{chunk-E5F2LQCX.mjs → chunk-T5MASTIW.mjs} +15 -4
- package/packages/core/dist/chunk-T5MASTIW.mjs.map +1 -0
- package/packages/core/dist/{chunk-KNYL56KZ.mjs → chunk-UOPVGCOB.mjs} +3 -3
- package/packages/core/dist/{chunk-KNYL56KZ.mjs.map → chunk-UOPVGCOB.mjs.map} +1 -1
- package/packages/core/dist/diff.cjs +4 -0
- package/packages/core/dist/diff.cjs.map +1 -1
- package/packages/core/dist/diff.mjs +4 -0
- package/packages/core/dist/diff.mjs.map +1 -1
- package/packages/core/dist/exporters.cjs +145 -133
- package/packages/core/dist/exporters.cjs.map +1 -1
- package/packages/core/dist/exporters.d.cts +3 -2
- package/packages/core/dist/exporters.d.ts +3 -2
- package/packages/core/dist/exporters.mjs +10 -5
- package/packages/core/dist/exporters.mjs.map +1 -1
- package/packages/core/dist/logs.cjs +16 -4
- package/packages/core/dist/logs.cjs.map +1 -1
- package/packages/core/dist/logs.mjs +5 -4
- package/packages/core/dist/logs.mjs.map +1 -1
- package/packages/core/dist/persisted.cjs +13 -2
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.mjs +3 -3
- package/packages/core/dist/readers.cjs +13 -2
- package/packages/core/dist/readers.cjs.map +1 -1
- package/packages/core/dist/readers.mjs +3 -3
- package/packages/cli/dist/chunk-M6PC5KUT.mjs.map +0 -1
- package/packages/core/dist/chunk-3USJVBLA.mjs.map +0 -1
- package/packages/core/dist/chunk-E5F2LQCX.mjs.map +0 -1
- package/packages/core/dist/chunk-EWHN6NA4.mjs.map +0 -1
|
@@ -77,20 +77,72 @@ function contractFailFinding(ruleId, message, evidence, expected, actual) {
|
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
function normalizeStatus(status) {
|
|
80
|
+
if (status === "ok" || status === "error" || status === "running") return status;
|
|
80
81
|
if (status === "success") return "ok";
|
|
81
82
|
if (status === "failed") return "error";
|
|
82
|
-
if (status === "running") return "running";
|
|
83
83
|
return "error";
|
|
84
84
|
}
|
|
85
85
|
function contractToRules(contract) {
|
|
86
86
|
const rules = [];
|
|
87
|
-
|
|
87
|
+
const allowedStatuses = contract.run?.allowedStatuses ?? [];
|
|
88
|
+
if (allowedStatuses.length === 1) {
|
|
88
89
|
rules.push(
|
|
89
90
|
createRunStatusRule({
|
|
90
|
-
expected: normalizeStatus(
|
|
91
|
-
allowIncomplete: contract.run
|
|
91
|
+
expected: normalizeStatus(allowedStatuses[0]),
|
|
92
|
+
allowIncomplete: contract.run?.requireCompleted === false
|
|
92
93
|
})
|
|
93
94
|
);
|
|
95
|
+
} else if (allowedStatuses.length > 1) {
|
|
96
|
+
const expected = [...new Set(allowedStatuses.map(normalizeStatus))];
|
|
97
|
+
const allowIncomplete = contract.run?.requireCompleted === false;
|
|
98
|
+
rules.push({
|
|
99
|
+
id: "contract.run.allowedStatuses",
|
|
100
|
+
category: "run",
|
|
101
|
+
defaultSeverity: "error",
|
|
102
|
+
evaluate(context) {
|
|
103
|
+
const findings = [];
|
|
104
|
+
const actual = context.selectedRun?.status ?? "unknown";
|
|
105
|
+
if (!expected.includes(actual)) {
|
|
106
|
+
findings.push(
|
|
107
|
+
contractFailFinding(
|
|
108
|
+
"contract.run.allowedStatuses",
|
|
109
|
+
`Run status ${actual} is not one of the allowed statuses: ${expected.join(", ")}.`,
|
|
110
|
+
context.selectedRun ? [
|
|
111
|
+
{
|
|
112
|
+
runId: context.selectedRun.runId,
|
|
113
|
+
kind: "RUN",
|
|
114
|
+
name: context.selectedRun.name,
|
|
115
|
+
status: context.selectedRun.status
|
|
116
|
+
}
|
|
117
|
+
] : [],
|
|
118
|
+
expected,
|
|
119
|
+
actual
|
|
120
|
+
)
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
if (!allowIncomplete) {
|
|
124
|
+
const running = context.events.filter((event) => event.status === "running");
|
|
125
|
+
if (running.length > 0) {
|
|
126
|
+
findings.push(
|
|
127
|
+
contractFailFinding(
|
|
128
|
+
"contract.run.allowedStatuses",
|
|
129
|
+
"Run contains incomplete running events.",
|
|
130
|
+
running.map((event) => ({
|
|
131
|
+
runId: event.runId,
|
|
132
|
+
eventId: event.eventId,
|
|
133
|
+
kind: event.kind,
|
|
134
|
+
name: event.name,
|
|
135
|
+
status: event.status
|
|
136
|
+
})),
|
|
137
|
+
"no running events",
|
|
138
|
+
running.length
|
|
139
|
+
)
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return findings;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
94
146
|
} else if (contract.run?.requireCompleted !== false) {
|
|
95
147
|
rules.push(createRunStatusRule({ allowIncomplete: false }));
|
|
96
148
|
}
|