agent-inspect 6.12.2 → 6.13.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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/packages/cli/dist/{chunk-4WA7DQCM.mjs → chunk-QOKTMZAY.mjs} +12 -7
- package/packages/cli/dist/chunk-QOKTMZAY.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +19 -6
- 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-YAASTXGE.mjs → src-MU4PS6GO.mjs} +3 -3
- package/packages/cli/dist/{src-YAASTXGE.mjs.map → src-MU4PS6GO.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +10 -5
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +1 -1
- package/packages/core/dist/advanced.d.ts +1 -1
- package/packages/core/dist/advanced.mjs +1 -1
- package/packages/core/dist/checks.cjs +78 -7
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +58 -4
- package/packages/core/dist/checks.d.ts +58 -4
- package/packages/core/dist/checks.mjs +1 -1
- package/packages/core/dist/{chunk-KJICERSD.mjs → chunk-BS2QCAJX.mjs} +79 -10
- package/packages/core/dist/chunk-BS2QCAJX.mjs.map +1 -0
- package/packages/core/dist/{index-CgCH8NE9.d.ts → index-Bu_vOjql.d.ts} +1 -1
- package/packages/core/dist/{index-BOP33T4O.d.cts → index-CmXMS-MF.d.cts} +1 -1
- package/packages/cli/dist/chunk-4WA7DQCM.mjs.map +0 -1
- package/packages/core/dist/chunk-KJICERSD.mjs.map +0 -1
|
@@ -7,7 +7,7 @@ import { P as PersistedInspectEvent } from './persisted-inspect-event-d-mSP8kd.c
|
|
|
7
7
|
import { Stats } from 'node:fs';
|
|
8
8
|
import { b as ObservedOutcome } from './types-B562HgN_.cjs';
|
|
9
9
|
export { O as ObservedOutcomeStatus } from './types-B562HgN_.cjs';
|
|
10
|
-
import {
|
|
10
|
+
import { b as TraceCheckResult, J as TraceCheckStatus } from './index-CmXMS-MF.cjs';
|
|
11
11
|
import './writers.cjs';
|
|
12
12
|
import './log-config-BG1WmWf2.cjs';
|
|
13
13
|
import './readers.cjs';
|
|
@@ -7,7 +7,7 @@ import { P as PersistedInspectEvent } from './persisted-inspect-event-ChE7pGb7.j
|
|
|
7
7
|
import { Stats } from 'node:fs';
|
|
8
8
|
import { b as ObservedOutcome } from './types-B562HgN_.js';
|
|
9
9
|
export { O as ObservedOutcomeStatus } from './types-B562HgN_.js';
|
|
10
|
-
import {
|
|
10
|
+
import { b as TraceCheckResult, J as TraceCheckStatus } from './index-Bu_vOjql.js';
|
|
11
11
|
import './writers.js';
|
|
12
12
|
import './log-config-Ck0aT_Ou.js';
|
|
13
13
|
import './readers.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-
|
|
1
|
+
import { runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-BS2QCAJX.mjs';
|
|
2
2
|
export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, TraceDirectory, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, isAgentInspectEnabled, isSilentContext, maybeInspectRun, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveTraceDir, runWithContext, runWithStepContext } from './chunk-ZWA5RWMV.mjs';
|
|
3
3
|
import { buildRunTimeline, filterTraces, extractMetadata, buildRunSummary } from './chunk-LFWZEO2L.mjs';
|
|
4
4
|
export { buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildTraceStats, extractMetadata, filterTraces, renderRunWhat, renderTimeline, renderTraceStats } from './chunk-LFWZEO2L.mjs';
|
|
@@ -260,11 +260,16 @@ function projectLogicalEvents(events) {
|
|
|
260
260
|
}
|
|
261
261
|
if (!remapped) {
|
|
262
262
|
if (!logicalById.has(originalParentId) && !logicalByRawId.has(originalParentId)) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
263
|
+
const mapping = event.attributes?.parentMapping;
|
|
264
|
+
const unresolved = mapping === "unresolved" || event.attributes?.parentUnresolved === true || event.attributes?.unresolvedParent === true || // LangGraph/framework scaffolding sentinel labels are not event ids.
|
|
265
|
+
/^LangGraph$/i.test(originalParentId) || originalParentId.startsWith("unresolved:");
|
|
266
|
+
if (!unresolved) {
|
|
267
|
+
diagnostics.push({
|
|
268
|
+
code: "AI_LOGICAL_PARENT_UNRESOLVED",
|
|
269
|
+
message: `Parent ${originalParentId} unresolved for ${event.eventId}.`,
|
|
270
|
+
eventIds: [event.eventId]
|
|
271
|
+
});
|
|
272
|
+
}
|
|
268
273
|
}
|
|
269
274
|
normalized.push(event);
|
|
270
275
|
continue;
|
|
@@ -318,6 +323,62 @@ function pickString(record, keys) {
|
|
|
318
323
|
return void 0;
|
|
319
324
|
}
|
|
320
325
|
|
|
326
|
+
// packages/core/src/checks/trace-facts.ts
|
|
327
|
+
function summarizeSemanticParity(events) {
|
|
328
|
+
const projection = projectLogicalEvents(events);
|
|
329
|
+
const logical = projection.logicalEvents;
|
|
330
|
+
const finishedTools = logical.filter(
|
|
331
|
+
(event) => event.kind === "TOOL" && event.status !== "running"
|
|
332
|
+
);
|
|
333
|
+
const finishedToolNames = Object.freeze(
|
|
334
|
+
finishedTools.map((event) => resolveCanonicalToolName(event)).sort((a, b) => a.localeCompare(b))
|
|
335
|
+
);
|
|
336
|
+
return {
|
|
337
|
+
rawEventCount: events.length,
|
|
338
|
+
logicalEventCount: logical.length,
|
|
339
|
+
runningLogicalCount: logical.filter((event) => event.status === "running").length,
|
|
340
|
+
finishedToolNames,
|
|
341
|
+
finishedToolCount: finishedTools.length,
|
|
342
|
+
pairedCount: logical.filter((event) => event.projection.paired).length,
|
|
343
|
+
parentRemapCount: projection.diagnostics.filter(
|
|
344
|
+
(item) => item.code === "AI_LOGICAL_PARENT_REMAPPED"
|
|
345
|
+
).length,
|
|
346
|
+
diagnostics: projection.diagnostics
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
function buildTraceFacts(events) {
|
|
350
|
+
const projection = projectLogicalEvents(events);
|
|
351
|
+
const toolsByName = /* @__PURE__ */ new Map();
|
|
352
|
+
const llmEvents = [];
|
|
353
|
+
const outcomeEvents = [];
|
|
354
|
+
for (const event of projection.logicalEvents) {
|
|
355
|
+
if (event.kind === "TOOL" && event.status !== "running") {
|
|
356
|
+
const name = resolveCanonicalToolName(event);
|
|
357
|
+
const list = toolsByName.get(name) ?? [];
|
|
358
|
+
list.push(event);
|
|
359
|
+
toolsByName.set(name, list);
|
|
360
|
+
}
|
|
361
|
+
if (event.kind === "LLM" && event.status !== "running") {
|
|
362
|
+
llmEvents.push(event);
|
|
363
|
+
}
|
|
364
|
+
if (event.kind === "OUTCOME") {
|
|
365
|
+
outcomeEvents.push(event);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
for (const [name, list] of [...toolsByName.entries()]) {
|
|
369
|
+
toolsByName.set(name, Object.freeze([...list]));
|
|
370
|
+
}
|
|
371
|
+
return {
|
|
372
|
+
rawEvents: Object.freeze([...events]),
|
|
373
|
+
logicalEvents: projection.logicalEvents,
|
|
374
|
+
diagnostics: projection.diagnostics,
|
|
375
|
+
toolsByName,
|
|
376
|
+
llmEvents: Object.freeze(llmEvents),
|
|
377
|
+
outcomeEvents: Object.freeze(outcomeEvents),
|
|
378
|
+
summary: summarizeSemanticParity(events)
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
|
|
321
382
|
// packages/core/src/checks/contract.ts
|
|
322
383
|
function contractFailFinding(ruleId, message, evidence, expected, actual) {
|
|
323
384
|
return {
|
|
@@ -409,10 +470,18 @@ function contractToRules(contract) {
|
|
|
409
470
|
rules.push(createStructureIncompleteRule({ requireEndedAtForStarted: true }));
|
|
410
471
|
}
|
|
411
472
|
if (contract.tools) {
|
|
473
|
+
const required = [
|
|
474
|
+
...contract.tools.required ?? [],
|
|
475
|
+
...contract.tools.requiredTools ?? []
|
|
476
|
+
];
|
|
477
|
+
const forbidden = [
|
|
478
|
+
...contract.tools.forbidden ?? [],
|
|
479
|
+
...contract.tools.forbiddenTools ?? []
|
|
480
|
+
];
|
|
412
481
|
rules.push(
|
|
413
482
|
createToolUsageRule({
|
|
414
|
-
...
|
|
415
|
-
...
|
|
483
|
+
...required.length > 0 ? { required } : {},
|
|
484
|
+
...forbidden.length > 0 ? { forbidden } : {},
|
|
416
485
|
...contract.tools.allowed ? { allowed: contract.tools.allowed } : {},
|
|
417
486
|
...contract.tools.maxCalls !== void 0 ? { maxCount: contract.tools.maxCalls } : {}
|
|
418
487
|
})
|
|
@@ -2226,6 +2295,7 @@ function runTraceChecks(input, options = {}) {
|
|
|
2226
2295
|
};
|
|
2227
2296
|
}
|
|
2228
2297
|
|
|
2298
|
+
exports.buildTraceFacts = buildTraceFacts;
|
|
2229
2299
|
exports.createBaselineRegressionRule = createBaselineRegressionRule;
|
|
2230
2300
|
exports.createDecisionRule = createDecisionRule;
|
|
2231
2301
|
exports.createGuardrailRule = createGuardrailRule;
|
|
@@ -2256,5 +2326,6 @@ exports.evaluateTraceContract = evaluateTraceContract;
|
|
|
2256
2326
|
exports.projectLogicalEvents = projectLogicalEvents;
|
|
2257
2327
|
exports.resolveCanonicalToolName = resolveCanonicalToolName;
|
|
2258
2328
|
exports.runTraceChecks = runTraceChecks;
|
|
2329
|
+
exports.summarizeSemanticParity = summarizeSemanticParity;
|
|
2259
2330
|
//# sourceMappingURL=checks.cjs.map
|
|
2260
2331
|
//# sourceMappingURL=checks.cjs.map
|