agent-inspect 6.31.8 → 6.31.10

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 (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/package.json +1 -1
  4. package/packages/cli/dist/{chunk-6FE47XSF.mjs → chunk-JCKC4ZRV.mjs} +212 -12
  5. package/packages/cli/dist/chunk-JCKC4ZRV.mjs.map +1 -0
  6. package/packages/cli/dist/index.cjs +215 -11
  7. package/packages/cli/dist/index.cjs.map +1 -1
  8. package/packages/cli/dist/index.mjs +4 -4
  9. package/packages/cli/dist/index.mjs.map +1 -1
  10. package/packages/cli/dist/{src-NXAYHG34.mjs → src-4UD7JNDR.mjs} +3 -3
  11. package/packages/cli/dist/{src-NXAYHG34.mjs.map → src-4UD7JNDR.mjs.map} +1 -1
  12. package/packages/core/dist/advanced.cjs +202 -15
  13. package/packages/core/dist/advanced.cjs.map +1 -1
  14. package/packages/core/dist/advanced.d.cts +1 -1
  15. package/packages/core/dist/advanced.d.ts +1 -1
  16. package/packages/core/dist/advanced.mjs +90 -15
  17. package/packages/core/dist/advanced.mjs.map +1 -1
  18. package/packages/core/dist/checks.cjs +79 -0
  19. package/packages/core/dist/checks.cjs.map +1 -1
  20. package/packages/core/dist/checks.d.cts +1 -1
  21. package/packages/core/dist/checks.d.ts +1 -1
  22. package/packages/core/dist/checks.mjs +3 -2
  23. package/packages/core/dist/{chunk-L5WLVBW4.mjs → chunk-AHUZNHFI.mjs} +4 -55
  24. package/packages/core/dist/chunk-AHUZNHFI.mjs.map +1 -0
  25. package/packages/core/dist/{chunk-2CCRUI42.mjs → chunk-CPQAOJW4.mjs} +72 -3
  26. package/packages/core/dist/chunk-CPQAOJW4.mjs.map +1 -0
  27. package/packages/core/dist/{chunk-2IRRUNIN.mjs → chunk-OAUNS5CS.mjs} +3 -3
  28. package/packages/core/dist/{chunk-2IRRUNIN.mjs.map → chunk-OAUNS5CS.mjs.map} +1 -1
  29. package/packages/core/dist/{chunk-IJJSPJXV.mjs → chunk-QOC3PJO3.mjs} +4 -4
  30. package/packages/core/dist/{chunk-IJJSPJXV.mjs.map → chunk-QOC3PJO3.mjs.map} +1 -1
  31. package/packages/core/dist/chunk-S6LQBLX5.mjs +67 -0
  32. package/packages/core/dist/chunk-S6LQBLX5.mjs.map +1 -0
  33. package/packages/core/dist/{chunk-VQUB3WRI.mjs → chunk-SSG3ICI4.mjs} +28 -3
  34. package/packages/core/dist/chunk-SSG3ICI4.mjs.map +1 -0
  35. package/packages/core/dist/index.cjs +89 -1
  36. package/packages/core/dist/index.cjs.map +1 -1
  37. package/packages/core/dist/index.mjs +3 -2
  38. package/packages/core/dist/index.mjs.map +1 -1
  39. package/packages/core/dist/persisted.cjs +11 -0
  40. package/packages/core/dist/persisted.cjs.map +1 -1
  41. package/packages/core/dist/persisted.mjs +4 -3
  42. package/packages/core/dist/persisted.mjs.map +1 -1
  43. package/packages/core/dist/{programmatic-gZTWLObB.d.cts → programmatic-BLlC7Ytq.d.cts} +1 -1
  44. package/packages/core/dist/{programmatic-gZTWLObB.d.ts → programmatic-BLlC7Ytq.d.ts} +1 -1
  45. package/packages/core/dist/readers.cjs +11 -0
  46. package/packages/core/dist/readers.cjs.map +1 -1
  47. package/packages/core/dist/readers.d.cts +1 -1
  48. package/packages/core/dist/readers.d.ts +1 -1
  49. package/packages/core/dist/readers.mjs +4 -3
  50. package/packages/cli/dist/chunk-6FE47XSF.mjs.map +0 -1
  51. package/packages/core/dist/chunk-2CCRUI42.mjs.map +0 -1
  52. package/packages/core/dist/chunk-L5WLVBW4.mjs.map +0 -1
  53. package/packages/core/dist/chunk-VQUB3WRI.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { L as LogicalTraceEvent, a as LogicalProjectionDiagnostic } from './index-EQihlEei.cjs';
2
2
  export { B as BaselineRegressionRuleOptions, C as ControlStage, D as DecisionRuleOptions, G as GuardrailRuleOptions, b as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RecoverySameArgumentsMode, c as RecoverySideEffectClass, d as RetrievalRuleOptions, e as RunDepthRuleOptions, f as RunDurationRuleOptions, g as RunEventCountRuleOptions, h as RunStatusRuleOptions, i as RunTraceChecksOptions, S as SafetyFindingCategory, j as SafetyFindingConfidence, k as SafetyOversizedAttributeRuleOptions, l as SafetyRawContentRuleOptions, m as SafetyRedactionRuleOptions, n as SafetySecretPattern, o as SafetySecretPatternRuleOptions, p as StallDetectionRuleOptions, q as StepOrderingEndpoint, r as StepOrderingKind, s as StepOrderingRuleOptions, t as StructureIncompleteRuleOptions, u as StructureOrphanRuleOptions, v as StructureParallelWidthRuleOptions, w as StructureRelationshipRuleOptions, T as ToolArgumentCheck, x as ToolArgumentOccurrence, y as ToolArgumentOperator, z as ToolFailureRuleOptions, A as ToolOrderingRuleOptions, E as ToolUsageRuleOptions, F as TraceCheckContext, H as TraceCheckDiagnostic, I as TraceCheckDiagnosticCode, J as TraceCheckEvidence, K as TraceCheckFacts, N as TraceCheckFinding, P as TraceCheckFindingStatus, Q as TraceCheckInput, U as TraceCheckResult, V as TraceCheckRule, W as TraceCheckRuleCategory, X as TraceCheckRuleExecution, Y as TraceCheckRuleExecutionStatus, Z as TraceCheckSeverity, _ as TraceCheckStatus, $ as TraceCheckSummary, a0 as TraceContract, a1 as TraceContractAlternativeBranch, a2 as TraceContractAlternatives, a3 as TraceContractBody, a4 as TraceContractControlRules, a5 as TraceContractInput, a6 as TraceContractLintDiagnostic, a7 as TraceContractLlmRules, a8 as TraceContractObservationProvenance, a9 as TraceContractObservationRules, aa as TraceContractRecoveryOperation, ab as TraceContractRecoveryRetryableErrors, ac as TraceContractRecoverySuccessfulResultDependency, ad as TraceContractRetryRules, ae as TraceContractRunRules, af as TraceContractScope, ag as TraceContractStepKind, ah as TraceContractStepOrderRelation, ai as TraceContractStepRef, aj as TraceContractStepRules, ak as TraceContractToolRules, al as TraceSignalRuleOptions, am as createBaselineRegressionRule, an as createDecisionRule, ao as createGuardrailRule, ap as createLlmUsageRule, aq as createMaxStepDurationRule, ar as createObservedOutcomeRule, as as createRequireCompletedRule, at as createRetrievalRule, au as createRunDepthRule, av as createRunDurationRule, aw as createRunEventCountRule, ax as createRunStatusRule, ay as createSafetyOversizedAttributeRule, az as createSafetyRawContentRule, aA as createSafetyRedactionRule, aB as createSafetySecretPatternRule, aC as createStallDetectionRule, aD as createStepOrderingRule, aE as createStructureCycleRule, aF as createStructureIncompleteRule, aG as createStructureOrphanRule, aH as createStructureParallelWidthRule, aI as createStructureRelationshipRule, aJ as createToolFailureRule, aK as createToolOrderingRule, aL as createToolUsageRule, aM as defineTraceContract, aN as evaluateToolArgumentValue, aO as evaluateTraceContract, aP as evaluateTraceContractRead, aQ as explainTraceContract, aR as extractToolArgumentPayload, aS as lintTraceContract, aT as projectLogicalEvents, aU as resolveCanonicalToolName, aV as resolveJsonPointer, aW as resolveTraceContractScope, aX as runTraceChecks, aY as workflowMetadataForRun } from './index-EQihlEei.cjs';
3
3
  export { b as ATTRIBUTION_CONFIDENCES, c as ATTRIBUTION_CONFIDENCE_RANK, A as AttributionConfidence, i as isAttributionConfidence } from './inspect-event-ClM5Z8om.cjs';
4
- export { P as PROGRAMMATIC_DIAGNOSTIC_SPECS, a as ProgrammaticDiagnosticCode, b as ProgrammaticDiagnosticSpec, f as formatProgrammaticDiagnostic } from './programmatic-gZTWLObB.cjs';
4
+ export { P as PROGRAMMATIC_DIAGNOSTIC_SPECS, a as ProgrammaticDiagnosticCode, b as ProgrammaticDiagnosticSpec, f as formatProgrammaticDiagnostic } from './programmatic-BLlC7Ytq.cjs';
5
5
  import { g as TraceReadResult } from './index-Cdww9h50.cjs';
6
6
  import { P as PersistedInspectEvent } from './persisted-inspect-event-q2ViiBW6.cjs';
7
7
  import './types-BA_IOdg4.cjs';
@@ -1,7 +1,7 @@
1
1
  import { L as LogicalTraceEvent, a as LogicalProjectionDiagnostic } from './index-CgOAGuM5.js';
2
2
  export { B as BaselineRegressionRuleOptions, C as ControlStage, D as DecisionRuleOptions, G as GuardrailRuleOptions, b as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RecoverySameArgumentsMode, c as RecoverySideEffectClass, d as RetrievalRuleOptions, e as RunDepthRuleOptions, f as RunDurationRuleOptions, g as RunEventCountRuleOptions, h as RunStatusRuleOptions, i as RunTraceChecksOptions, S as SafetyFindingCategory, j as SafetyFindingConfidence, k as SafetyOversizedAttributeRuleOptions, l as SafetyRawContentRuleOptions, m as SafetyRedactionRuleOptions, n as SafetySecretPattern, o as SafetySecretPatternRuleOptions, p as StallDetectionRuleOptions, q as StepOrderingEndpoint, r as StepOrderingKind, s as StepOrderingRuleOptions, t as StructureIncompleteRuleOptions, u as StructureOrphanRuleOptions, v as StructureParallelWidthRuleOptions, w as StructureRelationshipRuleOptions, T as ToolArgumentCheck, x as ToolArgumentOccurrence, y as ToolArgumentOperator, z as ToolFailureRuleOptions, A as ToolOrderingRuleOptions, E as ToolUsageRuleOptions, F as TraceCheckContext, H as TraceCheckDiagnostic, I as TraceCheckDiagnosticCode, J as TraceCheckEvidence, K as TraceCheckFacts, N as TraceCheckFinding, P as TraceCheckFindingStatus, Q as TraceCheckInput, U as TraceCheckResult, V as TraceCheckRule, W as TraceCheckRuleCategory, X as TraceCheckRuleExecution, Y as TraceCheckRuleExecutionStatus, Z as TraceCheckSeverity, _ as TraceCheckStatus, $ as TraceCheckSummary, a0 as TraceContract, a1 as TraceContractAlternativeBranch, a2 as TraceContractAlternatives, a3 as TraceContractBody, a4 as TraceContractControlRules, a5 as TraceContractInput, a6 as TraceContractLintDiagnostic, a7 as TraceContractLlmRules, a8 as TraceContractObservationProvenance, a9 as TraceContractObservationRules, aa as TraceContractRecoveryOperation, ab as TraceContractRecoveryRetryableErrors, ac as TraceContractRecoverySuccessfulResultDependency, ad as TraceContractRetryRules, ae as TraceContractRunRules, af as TraceContractScope, ag as TraceContractStepKind, ah as TraceContractStepOrderRelation, ai as TraceContractStepRef, aj as TraceContractStepRules, ak as TraceContractToolRules, al as TraceSignalRuleOptions, am as createBaselineRegressionRule, an as createDecisionRule, ao as createGuardrailRule, ap as createLlmUsageRule, aq as createMaxStepDurationRule, ar as createObservedOutcomeRule, as as createRequireCompletedRule, at as createRetrievalRule, au as createRunDepthRule, av as createRunDurationRule, aw as createRunEventCountRule, ax as createRunStatusRule, ay as createSafetyOversizedAttributeRule, az as createSafetyRawContentRule, aA as createSafetyRedactionRule, aB as createSafetySecretPatternRule, aC as createStallDetectionRule, aD as createStepOrderingRule, aE as createStructureCycleRule, aF as createStructureIncompleteRule, aG as createStructureOrphanRule, aH as createStructureParallelWidthRule, aI as createStructureRelationshipRule, aJ as createToolFailureRule, aK as createToolOrderingRule, aL as createToolUsageRule, aM as defineTraceContract, aN as evaluateToolArgumentValue, aO as evaluateTraceContract, aP as evaluateTraceContractRead, aQ as explainTraceContract, aR as extractToolArgumentPayload, aS as lintTraceContract, aT as projectLogicalEvents, aU as resolveCanonicalToolName, aV as resolveJsonPointer, aW as resolveTraceContractScope, aX as runTraceChecks, aY as workflowMetadataForRun } from './index-CgOAGuM5.js';
3
3
  export { b as ATTRIBUTION_CONFIDENCES, c as ATTRIBUTION_CONFIDENCE_RANK, A as AttributionConfidence, i as isAttributionConfidence } from './inspect-event-ClM5Z8om.js';
4
- export { P as PROGRAMMATIC_DIAGNOSTIC_SPECS, a as ProgrammaticDiagnosticCode, b as ProgrammaticDiagnosticSpec, f as formatProgrammaticDiagnostic } from './programmatic-gZTWLObB.js';
4
+ export { P as PROGRAMMATIC_DIAGNOSTIC_SPECS, a as ProgrammaticDiagnosticCode, b as ProgrammaticDiagnosticSpec, f as formatProgrammaticDiagnostic } from './programmatic-BLlC7Ytq.js';
5
5
  import { g as TraceReadResult } from './index-xUbdpcrP.js';
6
6
  import { P as PersistedInspectEvent } from './persisted-inspect-event-DG02LhEP.js';
7
7
  import './types-BA_IOdg4.js';
@@ -1,8 +1,9 @@
1
- export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStepOrderingRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, deriveFailureFacts, deriveRelationshipFacts, evaluateToolArgumentValue, evaluateTraceContract, evaluateTraceContractRead, explainTraceContract, extractToolArgumentPayload, lintTraceContract, resolveJsonPointer, resolveTraceContractScope, runTraceChecks, summarizeSemanticParity, workflowMetadataForRun } from './chunk-2CCRUI42.mjs';
1
+ export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStepOrderingRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, deriveFailureFacts, deriveRelationshipFacts, evaluateToolArgumentValue, evaluateTraceContract, evaluateTraceContractRead, explainTraceContract, extractToolArgumentPayload, lintTraceContract, resolveJsonPointer, resolveTraceContractScope, runTraceChecks, summarizeSemanticParity, workflowMetadataForRun } from './chunk-CPQAOJW4.mjs';
2
2
  import './chunk-N5PZAI6Q.mjs';
3
3
  import './chunk-DK3OW6UI.mjs';
4
4
  import './chunk-VLVCLAPB.mjs';
5
- export { PROGRAMMATIC_DIAGNOSTIC_SPECS, formatProgrammaticDiagnostic, projectLogicalEvents, resolveCanonicalToolName } from './chunk-L5WLVBW4.mjs';
5
+ export { projectLogicalEvents, resolveCanonicalToolName } from './chunk-AHUZNHFI.mjs';
6
+ export { PROGRAMMATIC_DIAGNOSTIC_SPECS, formatProgrammaticDiagnostic } from './chunk-S6LQBLX5.mjs';
6
7
  import './chunk-7DHSWDKB.mjs';
7
8
  export { ATTRIBUTION_CONFIDENCES, ATTRIBUTION_CONFIDENCE_RANK, isAttributionConfidence } from './chunk-EE5Z2GQ3.mjs';
8
9
  import './chunk-7TGZLWEE.mjs';
@@ -1,55 +1,4 @@
1
- // packages/core/src/diagnostics/programmatic.ts
2
- var PROGRAMMATIC_DIAGNOSTIC_SPECS = Object.freeze({
3
- AI_TRACE_INPUT_INVALID: {
4
- code: "AI_TRACE_INPUT_INVALID",
5
- summary: 'Expected { type: "file", path }, { type: "directory", path }, { type: "string", content }, { type: "buffer", content }, or { type: "stdin" }.',
6
- remediation: "For a file path, use openTraceFile(path).",
7
- relatedCodes: ["invalid_input"]
8
- },
9
- AI_TRACE_FORMAT_UNSUPPORTED: {
10
- code: "AI_TRACE_FORMAT_UNSUPPORTED",
11
- summary: "No trace reader could detect the input format.",
12
- remediation: "Pass an AgentInspect JSONL file via openTraceFile, or set options.format to a registered reader.",
13
- relatedCodes: ["unsupported_format"]
14
- },
15
- AI_TRACE_FORMAT_AMBIGUOUS: {
16
- code: "AI_TRACE_FORMAT_AMBIGUOUS",
17
- summary: "Multiple trace readers matched the input with equal confidence.",
18
- remediation: "Set options.format explicitly to disambiguate the reader.",
19
- relatedCodes: ["ambiguous_format"]
20
- },
21
- AI_TRACE_FACTS_INPUT_NOT_NORMALIZED: {
22
- code: "AI_TRACE_FACTS_INPUT_NOT_NORMALIZED",
23
- summary: "TraceFacts requires TraceReadResult or PersistedInspectEvent[].",
24
- remediation: "Use openTraceFile() to normalize a JSONL trace first."
25
- },
26
- AI_TRACE_CONTRACT_RUN_SELECTION_REQUIRED: {
27
- code: "AI_TRACE_CONTRACT_RUN_SELECTION_REQUIRED",
28
- summary: "Multiple runs are available; select a run before executing checks.",
29
- remediation: "Pass options.runId or TraceCheckInput.selectedRun.",
30
- relatedCodes: ["AI_CHECK_RUN_SELECTION_REQUIRED"]
31
- },
32
- AI_TRACE_RELATIONSHIP_SELF_PARENT: {
33
- code: "AI_TRACE_RELATIONSHIP_SELF_PARENT",
34
- summary: "A parentId equals its own event/step id.",
35
- remediation: "Reject at capture (AI_LANGGRAPH_SELF_PARENT_REJECTED) or drop via logical projection; do not invent replacement parents.",
36
- relatedCodes: [
37
- "AI_LANGGRAPH_SELF_PARENT_REJECTED",
38
- "AI_LOGICAL_SELF_PARENT_REMOVED"
39
- ]
40
- },
41
- AI_TRACE_RELATIONSHIP_CYCLE: {
42
- code: "AI_TRACE_RELATIONSHIP_CYCLE",
43
- summary: "Trace contains a parentId cycle.",
44
- remediation: "Use visibility-first tree linking for legacy fixtures; prefer acyclic capture for new adapter output.",
45
- relatedCodes: ["structure.cycle"]
46
- }
47
- });
48
- function formatProgrammaticDiagnostic(code, detail) {
49
- const spec = PROGRAMMATIC_DIAGNOSTIC_SPECS[code];
50
- const summary = detail?.trim() ? detail.trim() : spec.summary;
51
- return `${code}: ${summary} Remediation: ${spec.remediation}`;
52
- }
1
+ import { formatProgrammaticDiagnostic } from './chunk-S6LQBLX5.mjs';
53
2
 
54
3
  // packages/core/src/checks/logical-events.ts
55
4
  function isRecord(value) {
@@ -350,6 +299,6 @@ function pickString(record, keys) {
350
299
  return void 0;
351
300
  }
352
301
 
353
- export { PROGRAMMATIC_DIAGNOSTIC_SPECS, formatProgrammaticDiagnostic, projectLogicalEvents, resolveCanonicalToolName };
354
- //# sourceMappingURL=chunk-L5WLVBW4.mjs.map
355
- //# sourceMappingURL=chunk-L5WLVBW4.mjs.map
302
+ export { projectLogicalEvents, resolveCanonicalToolName };
303
+ //# sourceMappingURL=chunk-AHUZNHFI.mjs.map
304
+ //# sourceMappingURL=chunk-AHUZNHFI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/checks/logical-events.ts"],"names":[],"mappings":"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","file":"chunk-AHUZNHFI.mjs","sourcesContent":["/**\n * Logical lifecycle projection for trace checks.\n *\n * Projects raw persisted rows (including v0.1 start/complete bridges) into\n * completed lifecycle events for semantic/structure rules. Does not mutate\n * input; does not replace public experimental `events` (raw rows).\n *\n * @experimental Available through `agent-inspect/checks`; may evolve.\n */\n\nimport type { PersistedInspectEvent } from \"../types/persisted-inspect-event.js\";\nimport { formatProgrammaticDiagnostic } from \"../diagnostics/programmatic.js\";\n\n/**\n * Diagnostic emitted while projecting logical lifecycle events.\n *\n * @experimental\n */\nexport interface LogicalProjectionDiagnostic {\n code:\n | \"AI_LOGICAL_PAIR_AMBIGUOUS\"\n | \"AI_LOGICAL_PAIR_UNMATCHED_START\"\n | \"AI_LOGICAL_PAIR_UNMATCHED_COMPLETE\"\n | \"AI_LOGICAL_PARENT_REMAPPED\"\n | \"AI_LOGICAL_PARENT_UNRESOLVED\"\n | \"AI_LOGICAL_SELF_PARENT_REMOVED\";\n message: string;\n eventIds?: readonly string[];\n}\n\n/**\n * A persisted event after lifecycle pairing and parent normalization.\n * Compatible with rule helpers that read PersistedInspectEvent fields.\n *\n * @experimental\n */\nexport type LogicalTraceEvent = PersistedInspectEvent & {\n /** Raw event ids merged into this logical row (start first when paired). */\n readonly sourceEventIds: readonly string[];\n readonly projection: {\n readonly paired: boolean;\n readonly absorbedEventIds: readonly string[];\n readonly parentNormalized: boolean;\n readonly originalParentId?: string;\n };\n};\n\nexport interface ProjectLogicalEventsResult {\n readonly logicalEvents: readonly LogicalTraceEvent[];\n readonly diagnostics: readonly LogicalProjectionDiagnostic[];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction legacyEvent(event: PersistedInspectEvent): string | undefined {\n const value = event.attributes?.legacyEvent;\n return typeof value === \"string\" ? value : undefined;\n}\n\nfunction stepIdOf(event: PersistedInspectEvent): string | undefined {\n const value = event.attributes?.stepId;\n if (typeof value === \"string\" && value.trim() !== \"\") return value;\n return undefined;\n}\n\nfunction cloneEvent(event: PersistedInspectEvent): PersistedInspectEvent {\n return {\n ...event,\n ...(event.attributes !== undefined\n ? { attributes: { ...event.attributes } }\n : {}),\n ...(event.error !== undefined ? { error: { ...event.error } } : {}),\n ...(event.tokenUsage !== undefined\n ? { tokenUsage: { ...event.tokenUsage } }\n : {}),\n ...(event.source !== undefined ? { source: { ...event.source } } : {}),\n };\n}\n\nfunction mergeAttributes(\n start: PersistedInspectEvent,\n complete: PersistedInspectEvent,\n): Record<string, unknown> | undefined {\n const merged: Record<string, unknown> = {\n ...(isRecord(complete.attributes) ? complete.attributes : {}),\n ...(isRecord(start.attributes) ? start.attributes : {}),\n };\n // Prefer start kind/name identity; keep completion markers for debugging.\n merged.legacyEvent = start.attributes?.legacyEvent ?? complete.attributes?.legacyEvent;\n merged.legacyCompleteEvent = complete.attributes?.legacyEvent;\n if (complete.attributes?.errorStack !== undefined) {\n merged.errorStack = complete.attributes.errorStack;\n }\n return Object.keys(merged).length > 0 ? merged : undefined;\n}\n\nfunction pairStartComplete(\n start: PersistedInspectEvent,\n complete: PersistedInspectEvent,\n): LogicalTraceEvent {\n const attributes = mergeAttributes(start, complete);\n const paired: PersistedInspectEvent = {\n ...cloneEvent(start),\n status: complete.status,\n timestamp: complete.timestamp ?? start.timestamp,\n ...(complete.endedAt !== undefined ? { endedAt: complete.endedAt } : {}),\n ...(complete.durationMs !== undefined\n ? { durationMs: complete.durationMs }\n : {}),\n ...(complete.error !== undefined ? { error: { ...complete.error } } : {}),\n ...(complete.tokenUsage !== undefined && start.tokenUsage === undefined\n ? { tokenUsage: { ...complete.tokenUsage } }\n : {}),\n ...(attributes !== undefined ? { attributes } : {}),\n };\n\n return {\n ...paired,\n sourceEventIds: Object.freeze([start.eventId, complete.eventId]),\n projection: {\n paired: true,\n absorbedEventIds: Object.freeze([complete.eventId]),\n parentNormalized: false,\n ...(start.parentId !== undefined\n ? { originalParentId: start.parentId }\n : {}),\n },\n };\n}\n\nfunction asLogical(\n event: PersistedInspectEvent,\n extras?: { parentNormalized?: boolean; originalParentId?: string },\n): LogicalTraceEvent {\n return {\n ...cloneEvent(event),\n sourceEventIds: Object.freeze([event.eventId]),\n projection: {\n paired: false,\n absorbedEventIds: Object.freeze([]),\n parentNormalized: extras?.parentNormalized === true,\n ...(extras?.originalParentId !== undefined\n ? { originalParentId: extras.originalParentId }\n : {}),\n },\n };\n}\n\n/**\n * Pair v0.1 run/step start+complete rows and normalize parent references.\n *\n * - Keeps start kind/name; applies terminal status/timing/error from complete.\n * - Absorbs matching complete rows (not emitted as separate logical events).\n * - Remaps parentId from stepId or absorbed complete eventId → logical eventId.\n */\nexport function projectLogicalEvents(\n events: readonly PersistedInspectEvent[],\n): ProjectLogicalEventsResult {\n const diagnostics: LogicalProjectionDiagnostic[] = [];\n const byRun = new Map<string, PersistedInspectEvent[]>();\n for (const event of events) {\n const list = byRun.get(event.runId) ?? [];\n list.push(event);\n byRun.set(event.runId, list);\n }\n\n const absorbedIds = new Set<string>();\n const logicalByRawId = new Map<string, LogicalTraceEvent>();\n const stepIdToLogicalId = new Map<string, string>();\n const logical: LogicalTraceEvent[] = [];\n\n const orderedRuns = [...byRun.keys()].sort((a, b) => a.localeCompare(b));\n for (const runId of orderedRuns) {\n const runEvents = byRun.get(runId) ?? [];\n const starts: PersistedInspectEvent[] = [];\n const completes: PersistedInspectEvent[] = [];\n const others: PersistedInspectEvent[] = [];\n\n for (const event of runEvents) {\n const legacy = legacyEvent(event);\n if (\n legacy === \"step_started\" ||\n (legacy === \"run_started\" && event.status === \"running\")\n ) {\n starts.push(event);\n } else if (legacy === \"step_completed\" || legacy === \"run_completed\") {\n completes.push(event);\n } else {\n others.push(event);\n }\n }\n\n const usedCompletes = new Set<string>();\n\n for (const start of starts) {\n const stepId = stepIdOf(start);\n let match: PersistedInspectEvent | undefined;\n\n if (legacyEvent(start) === \"run_started\") {\n const candidates = completes.filter(\n (c) =>\n !usedCompletes.has(c.eventId) && legacyEvent(c) === \"run_completed\",\n );\n if (candidates.length > 1) {\n diagnostics.push({\n code: \"AI_LOGICAL_PAIR_AMBIGUOUS\",\n message: `Multiple run_completed rows for run ${runId}; using first by eventId.`,\n eventIds: candidates.map((c) => c.eventId),\n });\n candidates.sort((a, b) => a.eventId.localeCompare(b.eventId));\n }\n match = candidates[0];\n } else if (stepId) {\n const candidates = completes.filter(\n (c) =>\n !usedCompletes.has(c.eventId) &&\n legacyEvent(c) === \"step_completed\" &&\n stepIdOf(c) === stepId,\n );\n if (candidates.length > 1) {\n diagnostics.push({\n code: \"AI_LOGICAL_PAIR_AMBIGUOUS\",\n message: `Multiple step_completed rows for stepId ${stepId}; using first by eventId.`,\n eventIds: candidates.map((c) => c.eventId),\n });\n candidates.sort((a, b) => a.eventId.localeCompare(b.eventId));\n }\n match = candidates[0];\n }\n\n if (match) {\n usedCompletes.add(match.eventId);\n absorbedIds.add(match.eventId);\n const paired = pairStartComplete(start, match);\n logical.push(paired);\n logicalByRawId.set(start.eventId, paired);\n logicalByRawId.set(match.eventId, paired);\n if (stepId) stepIdToLogicalId.set(`${runId}:${stepId}`, paired.eventId);\n } else {\n diagnostics.push({\n code: \"AI_LOGICAL_PAIR_UNMATCHED_START\",\n message: `No matching complete for start ${start.eventId}.`,\n eventIds: [start.eventId],\n });\n const alone = asLogical(start);\n logical.push(alone);\n logicalByRawId.set(start.eventId, alone);\n if (stepId) stepIdToLogicalId.set(`${runId}:${stepId}`, alone.eventId);\n }\n }\n\n for (const complete of completes) {\n if (usedCompletes.has(complete.eventId)) continue;\n diagnostics.push({\n code: \"AI_LOGICAL_PAIR_UNMATCHED_COMPLETE\",\n message: `No matching start for complete ${complete.eventId}.`,\n eventIds: [complete.eventId],\n });\n const alone = asLogical(complete);\n logical.push(alone);\n logicalByRawId.set(complete.eventId, alone);\n const stepId = stepIdOf(complete);\n if (stepId && !stepIdToLogicalId.has(`${runId}:${stepId}`)) {\n stepIdToLogicalId.set(`${runId}:${stepId}`, alone.eventId);\n }\n }\n\n for (const event of others) {\n const alone = asLogical(event);\n logical.push(alone);\n logicalByRawId.set(event.eventId, alone);\n const stepId = stepIdOf(event);\n if (stepId && !stepIdToLogicalId.has(`${runId}:${stepId}`)) {\n stepIdToLogicalId.set(`${runId}:${stepId}`, alone.eventId);\n }\n }\n }\n\n // Parent / forest normalization over the logical set.\n const logicalById = new Map(logical.map((e) => [e.eventId, e]));\n const normalized: LogicalTraceEvent[] = [];\n\n for (const event of logical) {\n const originalParentId = event.parentId;\n if (!originalParentId) {\n normalized.push(event);\n continue;\n }\n\n let nextParent = originalParentId;\n let remapped = false;\n\n // Absorbed complete eventId → paired start eventId\n const viaAbsorbed = logicalByRawId.get(originalParentId);\n if (viaAbsorbed && viaAbsorbed.eventId !== originalParentId) {\n nextParent = viaAbsorbed.eventId;\n remapped = true;\n } else if (!logicalById.has(originalParentId)) {\n // Treat parentId as stepId within the same run\n const viaStep = stepIdToLogicalId.get(`${event.runId}:${originalParentId}`);\n if (viaStep) {\n nextParent = viaStep;\n remapped = true;\n }\n }\n\n if (!remapped) {\n if (originalParentId === event.eventId) {\n diagnostics.push({\n code: \"AI_LOGICAL_SELF_PARENT_REMOVED\",\n message: formatProgrammaticDiagnostic(\n \"AI_TRACE_RELATIONSHIP_SELF_PARENT\",\n `Removed self-parent edge on ${event.eventId}.`,\n ),\n eventIds: [event.eventId],\n });\n const { parentId: _drop, ...rest } = event;\n normalized.push({\n ...rest,\n projection: {\n ...event.projection,\n parentNormalized: true,\n originalParentId,\n },\n });\n continue;\n }\n if (!logicalById.has(originalParentId) && !logicalByRawId.has(originalParentId)) {\n const mapping = event.attributes?.parentMapping;\n const unresolved =\n mapping === \"unresolved\" ||\n event.attributes?.parentUnresolved === true ||\n event.attributes?.unresolvedParent === true ||\n // LangGraph/framework scaffolding sentinel labels are not event ids.\n /^LangGraph$/i.test(originalParentId) ||\n originalParentId.startsWith(\"unresolved:\");\n if (!unresolved) {\n diagnostics.push({\n code: \"AI_LOGICAL_PARENT_UNRESOLVED\",\n message: `Parent ${originalParentId} unresolved for ${event.eventId}.`,\n eventIds: [event.eventId],\n });\n }\n }\n normalized.push(event);\n continue;\n }\n\n if (nextParent === event.eventId) {\n diagnostics.push({\n code: \"AI_LOGICAL_SELF_PARENT_REMOVED\",\n message: formatProgrammaticDiagnostic(\n \"AI_TRACE_RELATIONSHIP_SELF_PARENT\",\n `Removed self-parent edge on ${event.eventId} (was ${originalParentId}).`,\n ),\n eventIds: [event.eventId],\n });\n const { parentId: _drop, ...rest } = event;\n normalized.push({\n ...rest,\n projection: {\n ...event.projection,\n parentNormalized: true,\n originalParentId,\n },\n });\n continue;\n }\n\n diagnostics.push({\n code: \"AI_LOGICAL_PARENT_REMAPPED\",\n message: `Remapped parent ${originalParentId} → ${nextParent} for ${event.eventId}.`,\n eventIds: [event.eventId],\n });\n\n normalized.push({\n ...event,\n parentId: nextParent,\n projection: {\n ...event.projection,\n parentNormalized: true,\n originalParentId,\n },\n });\n }\n\n // Stable order: original raw encounter order by first source event index.\n const rawIndex = new Map(events.map((e, i) => [e.eventId, i]));\n normalized.sort((a, b) => {\n const ai = rawIndex.get(a.sourceEventIds[0]!) ?? 0;\n const bi = rawIndex.get(b.sourceEventIds[0]!) ?? 0;\n return ai - bi || a.eventId.localeCompare(b.eventId);\n });\n\n return {\n logicalEvents: Object.freeze(normalized),\n diagnostics: Object.freeze(diagnostics),\n };\n}\n\n/**\n * Resolve a human-meaningful tool name from a (logical or raw) event.\n * Precedence: toolName → tool → metadata.toolName → metadata.tool → name prefixes.\n *\n * @experimental\n */\nexport function resolveCanonicalToolName(event: PersistedInspectEvent): string {\n const attrs = event.attributes;\n const direct = pickString(attrs, [\"toolName\", \"tool\"]);\n if (direct) return direct;\n\n const metadata = attrs?.metadata;\n if (isRecord(metadata)) {\n const nested = pickString(metadata, [\"toolName\", \"tool\"]);\n if (nested) return nested;\n }\n\n for (const prefix of [\"tool:\", \"function:\", \"mcp-tools:\"] as const) {\n if (event.name.startsWith(prefix)) return event.name.slice(prefix.length);\n }\n return event.name;\n}\n\nfunction pickString(\n record: Record<string, unknown> | undefined,\n keys: readonly string[],\n): string | undefined {\n if (!record) return undefined;\n for (const key of keys) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim() !== \"\") return value.trim();\n }\n return undefined;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { OBSERVED_OUTCOME_METHODS, extractOutcomesFromPersistedEvents, outcomesMatchingStatus } from './chunk-N5PZAI6Q.mjs';
2
2
  import { DEFAULT_CREDENTIAL_SENSITIVE_KEYS, isCredentialSensitiveKey } from './chunk-VLVCLAPB.mjs';
3
- import { formatProgrammaticDiagnostic, projectLogicalEvents, resolveCanonicalToolName } from './chunk-L5WLVBW4.mjs';
3
+ import { projectLogicalEvents, resolveCanonicalToolName } from './chunk-AHUZNHFI.mjs';
4
+ import { formatProgrammaticDiagnostic } from './chunk-S6LQBLX5.mjs';
4
5
  import { isAttributionConfidence, ATTRIBUTION_CONFIDENCES, ATTRIBUTION_CONFIDENCE_RANK } from './chunk-EE5Z2GQ3.mjs';
5
6
 
6
7
  // packages/core/src/sessions/metadata.ts
@@ -2713,7 +2714,72 @@ function defineTraceContract(input) {
2713
2714
  ...alternatives ? { alternatives } : {}
2714
2715
  };
2715
2716
  }
2717
+ function isTraceReadLike(value) {
2718
+ if (typeof value !== "object" || value === null) return false;
2719
+ const candidate = value;
2720
+ return typeof candidate.format === "string" && Array.isArray(candidate.runs) && Array.isArray(candidate.events);
2721
+ }
2722
+ function isTraceCheckInputLike(value) {
2723
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
2724
+ return false;
2725
+ }
2726
+ return isTraceReadLike(value.read);
2727
+ }
2728
+ function looksLikeTraceContract(value) {
2729
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
2730
+ return false;
2731
+ }
2732
+ if (isTraceReadLike(value) || isTraceCheckInputLike(value)) {
2733
+ return false;
2734
+ }
2735
+ return true;
2736
+ }
2737
+ function invalidContractInputResult() {
2738
+ return {
2739
+ ok: false,
2740
+ status: "error",
2741
+ format: "unknown",
2742
+ summary: {
2743
+ passed: 0,
2744
+ failed: 0,
2745
+ warnings: 0,
2746
+ errors: 1,
2747
+ rulesEvaluated: 0
2748
+ },
2749
+ findings: [],
2750
+ diagnostics: [
2751
+ {
2752
+ code: "AI_CHECK_INVALID_ARGUMENTS",
2753
+ message: formatProgrammaticDiagnostic("AI_TRACE_CONTRACT_INPUT_INVALID"),
2754
+ severity: "error"
2755
+ }
2756
+ ],
2757
+ ruleExecutions: []
2758
+ };
2759
+ }
2760
+ function validateEvaluateTraceContractArgs(input, contract) {
2761
+ if (isTraceCheckInputLike(input) && looksLikeTraceContract(contract)) {
2762
+ return void 0;
2763
+ }
2764
+ if (looksLikeTraceContract(input) && (isTraceCheckInputLike(contract) || isTraceReadLike(contract))) {
2765
+ return invalidContractInputResult();
2766
+ }
2767
+ if (isTraceReadLike(input)) {
2768
+ return invalidContractInputResult();
2769
+ }
2770
+ if (!isTraceCheckInputLike(input)) {
2771
+ return invalidContractInputResult();
2772
+ }
2773
+ if (!looksLikeTraceContract(contract)) {
2774
+ return invalidContractInputResult();
2775
+ }
2776
+ return void 0;
2777
+ }
2716
2778
  function evaluateTraceContract(input, contract, options = {}) {
2779
+ const inputGuard = validateEvaluateTraceContractArgs(input, contract);
2780
+ if (inputGuard !== void 0) {
2781
+ return inputGuard;
2782
+ }
2717
2783
  const shapeErrors = [
2718
2784
  ...validateAllowedStatusesShape(contract.run?.allowedStatuses),
2719
2785
  ...validateAlternativesShape(contract.alternatives),
@@ -2852,6 +2918,9 @@ function evaluateTraceContract(input, contract, options = {}) {
2852
2918
  );
2853
2919
  }
2854
2920
  function evaluateTraceContractRead(read, contract, options = {}) {
2921
+ if (!isTraceReadLike(read) || !looksLikeTraceContract(contract)) {
2922
+ return invalidContractInputResult();
2923
+ }
2855
2924
  return evaluateTraceContract({ read }, contract, options);
2856
2925
  }
2857
2926
  function lintTraceContract(contract) {
@@ -5147,5 +5216,5 @@ function runTraceChecks(input, options = {}) {
5147
5216
  }
5148
5217
 
5149
5218
  export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStepOrderingRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, deriveFailureFacts, deriveRelationshipFacts, evaluateToolArgumentValue, evaluateTraceContract, evaluateTraceContractRead, explainTraceContract, extractSessionWorkflowMetadata, extractToolArgumentPayload, lintTraceContract, resolveJsonPointer, resolveTraceContractScope, runTraceChecks, sessionKeyForRun, summarizeSemanticParity, workflowMetadataForRun };
5150
- //# sourceMappingURL=chunk-2CCRUI42.mjs.map
5151
- //# sourceMappingURL=chunk-2CCRUI42.mjs.map
5219
+ //# sourceMappingURL=chunk-CPQAOJW4.mjs.map
5220
+ //# sourceMappingURL=chunk-CPQAOJW4.mjs.map