agent-inspect 6.14.1 → 6.15.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 +14 -2
- package/README.md +1 -1
- package/docs/API.md +19 -3
- package/docs/KNOWN-ISSUES.md +2 -1
- package/package.json +2 -2
- package/packages/cli/dist/{chunk-MEO2Z3KE.mjs → chunk-LFSBMUCD.mjs} +316 -41
- package/packages/cli/dist/chunk-LFSBMUCD.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +388 -42
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +59 -6
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-6VZNGIF6.mjs → src-5J2HPOJ3.mjs} +3 -3
- package/packages/cli/dist/{src-6VZNGIF6.mjs.map → src-5J2HPOJ3.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +268 -24
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +18 -10
- package/packages/core/dist/advanced.d.ts +18 -10
- package/packages/core/dist/advanced.mjs +7 -6
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/core/dist/checks.cjs +221 -22
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +18 -8
- package/packages/core/dist/checks.d.ts +18 -8
- package/packages/core/dist/checks.mjs +2 -1
- package/packages/core/dist/chunk-AK5EN4U2.mjs +174 -0
- package/packages/core/dist/chunk-AK5EN4U2.mjs.map +1 -0
- package/packages/core/dist/chunk-FWK3Q3OJ.mjs +56 -0
- package/packages/core/dist/chunk-FWK3Q3OJ.mjs.map +1 -0
- package/packages/core/dist/{chunk-CTA6XNDP.mjs → chunk-HT54OLPE.mjs} +54 -7
- package/packages/core/dist/chunk-HT54OLPE.mjs.map +1 -0
- package/packages/core/dist/{chunk-BS2QCAJX.mjs → chunk-NF4ZHNTC.mjs} +169 -25
- package/packages/core/dist/chunk-NF4ZHNTC.mjs.map +1 -0
- package/packages/core/dist/{chunk-UOPVGCOB.mjs → chunk-NXQF73EC.mjs} +3 -3
- package/packages/core/dist/{chunk-UOPVGCOB.mjs.map → chunk-NXQF73EC.mjs.map} +1 -1
- package/packages/core/dist/{chunk-LFWZEO2L.mjs → chunk-SGL4JGCD.mjs} +3 -3
- package/packages/core/dist/{chunk-LFWZEO2L.mjs.map → chunk-SGL4JGCD.mjs.map} +1 -1
- package/packages/core/dist/{context-BHAgRjOe.d.cts → context-Ca5yK8Cs.d.cts} +3 -3
- package/packages/core/dist/{context-Blyjb5my.d.ts → context-D6cS4XIL.d.ts} +3 -3
- package/packages/core/dist/diff.d.cts +3 -3
- package/packages/core/dist/diff.d.ts +3 -3
- package/packages/core/dist/exporters.d.cts +3 -3
- package/packages/core/dist/exporters.d.ts +3 -3
- package/packages/core/dist/exporters.mjs +1 -1
- package/packages/core/dist/index-B259NKkH.d.cts +102 -0
- package/packages/core/dist/index-B9ZGvUVL.d.ts +102 -0
- package/packages/core/dist/{index-Bu_vOjql.d.ts → index-BsCcOKxy.d.ts} +4 -4
- package/packages/core/dist/{index-CmXMS-MF.d.cts → index-Xk9X-yjY.d.cts} +4 -4
- package/packages/core/dist/index.d.cts +6 -6
- package/packages/core/dist/index.d.ts +6 -6
- package/packages/core/dist/{inspect-event-DVg84S4v.d.cts → inspect-event-DRthdZlf.d.cts} +9 -0
- package/packages/core/dist/{inspect-event-DVg84S4v.d.ts → inspect-event-DRthdZlf.d.ts} +9 -0
- package/packages/core/dist/{log-config-BG1WmWf2.d.cts → log-config-CFlIJHTf.d.cts} +1 -1
- package/packages/core/dist/{log-config-Ck0aT_Ou.d.ts → log-config-OZRfpHED.d.ts} +1 -1
- package/packages/core/dist/logs.cjs +95 -15
- package/packages/core/dist/logs.cjs.map +1 -1
- package/packages/core/dist/logs.d.cts +3 -3
- package/packages/core/dist/logs.d.ts +3 -3
- package/packages/core/dist/logs.mjs +2 -2
- package/packages/core/dist/{persisted-inspect-event-ChE7pGb7.d.ts → persisted-inspect-event-BVucFVrP.d.ts} +1 -1
- package/packages/core/dist/{persisted-inspect-event-d-mSP8kd.d.cts → persisted-inspect-event-CVZWZldL.d.cts} +1 -1
- package/packages/core/dist/persisted.cjs +95 -15
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.d.cts +5 -5
- package/packages/core/dist/persisted.d.ts +5 -5
- package/packages/core/dist/persisted.mjs +3 -3
- package/packages/core/dist/readers.cjs +203 -18
- package/packages/core/dist/readers.cjs.map +1 -1
- package/packages/core/dist/readers.d.cts +27 -78
- package/packages/core/dist/readers.d.ts +27 -78
- package/packages/core/dist/readers.mjs +4 -3
- package/packages/core/dist/{types-MuwXSJ4b.d.ts → types--ainI31J.d.ts} +1 -1
- package/packages/core/dist/{types-BLX3tiOW.d.cts → types-UnrNaTo2.d.cts} +1 -1
- package/packages/core/dist/writers.d.cts +2 -2
- package/packages/core/dist/writers.d.ts +2 -2
- package/packages/cli/dist/chunk-MEO2Z3KE.mjs.map +0 -1
- package/packages/core/dist/chunk-BS2QCAJX.mjs.map +0 -1
- package/packages/core/dist/chunk-CTA6XNDP.mjs.map +0 -1
- package/packages/core/dist/chunk-T5MASTIW.mjs +0 -94
- package/packages/core/dist/chunk-T5MASTIW.mjs.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { L as LogicalProjectionDiagnostic, a as LogicalTraceEvent, T as TraceCheckInput, b as TraceCheckResult } from './index-
|
|
2
|
-
export { B as BaselineRegressionRuleOptions, D as DecisionRuleOptions, G as GuardrailRuleOptions, c as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RetrievalRuleOptions, d as RunDepthRuleOptions, e as RunDurationRuleOptions, f as RunEventCountRuleOptions, g as RunStatusRuleOptions, h as RunTraceChecksOptions, S as SafetyFindingCategory, i as SafetyFindingConfidence, j as SafetyOversizedAttributeRuleOptions, k as SafetyRawContentRuleOptions, l as SafetyRedactionRuleOptions, m as SafetySecretPattern, n as SafetySecretPatternRuleOptions, o as StallDetectionRuleOptions, p as StructureIncompleteRuleOptions, q as StructureOrphanRuleOptions, r as StructureParallelWidthRuleOptions, s as StructureRelationshipRuleOptions, t as ToolFailureRuleOptions, u as ToolOrderingRuleOptions, v as ToolUsageRuleOptions, w as TraceCheckContext, x as TraceCheckDiagnostic, y as TraceCheckDiagnosticCode, z as TraceCheckEvidence, A as TraceCheckFacts, C as TraceCheckFinding, E as TraceCheckFindingStatus, F as TraceCheckRule, H as TraceCheckRuleCategory, I as TraceCheckSeverity, J as TraceCheckStatus, K as TraceCheckSummary, N as TraceSignalRuleOptions, P as createBaselineRegressionRule, Q as createDecisionRule, U as createGuardrailRule, V as createLlmUsageRule, W as createMaxStepDurationRule, X as createObservedOutcomeRule, Y as createRequireCompletedRule, Z as createRetrievalRule, _ as createRunDepthRule, $ as createRunDurationRule, a0 as createRunEventCountRule, a1 as createRunStatusRule, a2 as createSafetyOversizedAttributeRule, a3 as createSafetyRawContentRule, a4 as createSafetyRedactionRule, a5 as createSafetySecretPatternRule, a6 as createStallDetectionRule, a7 as createStructureCycleRule, a8 as createStructureIncompleteRule, a9 as createStructureOrphanRule, aa as createStructureParallelWidthRule, ab as createStructureRelationshipRule, ac as createToolFailureRule, ad as createToolOrderingRule, ae as createToolUsageRule, af as projectLogicalEvents, ag as resolveCanonicalToolName, ah as runTraceChecks } from './index-
|
|
3
|
-
|
|
4
|
-
import './
|
|
5
|
-
import './inspect-event-
|
|
1
|
+
import { L as LogicalProjectionDiagnostic, a as LogicalTraceEvent, T as TraceCheckInput, b as TraceCheckResult } from './index-Xk9X-yjY.cjs';
|
|
2
|
+
export { B as BaselineRegressionRuleOptions, D as DecisionRuleOptions, G as GuardrailRuleOptions, c as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RetrievalRuleOptions, d as RunDepthRuleOptions, e as RunDurationRuleOptions, f as RunEventCountRuleOptions, g as RunStatusRuleOptions, h as RunTraceChecksOptions, S as SafetyFindingCategory, i as SafetyFindingConfidence, j as SafetyOversizedAttributeRuleOptions, k as SafetyRawContentRuleOptions, l as SafetyRedactionRuleOptions, m as SafetySecretPattern, n as SafetySecretPatternRuleOptions, o as StallDetectionRuleOptions, p as StructureIncompleteRuleOptions, q as StructureOrphanRuleOptions, r as StructureParallelWidthRuleOptions, s as StructureRelationshipRuleOptions, t as ToolFailureRuleOptions, u as ToolOrderingRuleOptions, v as ToolUsageRuleOptions, w as TraceCheckContext, x as TraceCheckDiagnostic, y as TraceCheckDiagnosticCode, z as TraceCheckEvidence, A as TraceCheckFacts, C as TraceCheckFinding, E as TraceCheckFindingStatus, F as TraceCheckRule, H as TraceCheckRuleCategory, I as TraceCheckSeverity, J as TraceCheckStatus, K as TraceCheckSummary, N as TraceSignalRuleOptions, P as createBaselineRegressionRule, Q as createDecisionRule, U as createGuardrailRule, V as createLlmUsageRule, W as createMaxStepDurationRule, X as createObservedOutcomeRule, Y as createRequireCompletedRule, Z as createRetrievalRule, _ as createRunDepthRule, $ as createRunDurationRule, a0 as createRunEventCountRule, a1 as createRunStatusRule, a2 as createSafetyOversizedAttributeRule, a3 as createSafetyRawContentRule, a4 as createSafetyRedactionRule, a5 as createSafetySecretPatternRule, a6 as createStallDetectionRule, a7 as createStructureCycleRule, a8 as createStructureIncompleteRule, a9 as createStructureOrphanRule, aa as createStructureParallelWidthRule, ab as createStructureRelationshipRule, ac as createToolFailureRule, ad as createToolOrderingRule, ae as createToolUsageRule, af as projectLogicalEvents, ag as resolveCanonicalToolName, ah as runTraceChecks } from './index-Xk9X-yjY.cjs';
|
|
3
|
+
export { PROGRAMMATIC_DIAGNOSTIC_SPECS, ProgrammaticDiagnosticCode, ProgrammaticDiagnosticSpec, formatProgrammaticDiagnostic } from './readers.cjs';
|
|
4
|
+
import { T as TraceReadResult } from './index-B259NKkH.cjs';
|
|
5
|
+
import { P as PersistedInspectEvent } from './persisted-inspect-event-CVZWZldL.cjs';
|
|
6
|
+
import './inspect-event-DRthdZlf.cjs';
|
|
6
7
|
import './types-B562HgN_.cjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -49,11 +50,12 @@ interface TraceFacts {
|
|
|
49
50
|
readonly summary: SemanticParitySummary;
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
|
-
* Build TraceFacts from
|
|
53
|
+
* Build TraceFacts from a TraceReadResult or normalized persisted events.
|
|
53
54
|
*
|
|
54
55
|
* @experimental
|
|
55
56
|
*/
|
|
56
|
-
declare function buildTraceFacts(
|
|
57
|
+
declare function buildTraceFacts(input: TraceReadResult): TraceFacts;
|
|
58
|
+
declare function buildTraceFacts(input: readonly PersistedInspectEvent[]): TraceFacts;
|
|
57
59
|
|
|
58
60
|
/**
|
|
59
61
|
* @experimental Typed trace contract input. Evolves during v6.5.x.
|
|
@@ -109,5 +111,13 @@ declare function defineTraceContract(input: TraceContractInput): TraceContract;
|
|
|
109
111
|
declare function evaluateTraceContract(input: TraceCheckInput, contract: TraceContract, options?: {
|
|
110
112
|
runId?: string;
|
|
111
113
|
}): TraceCheckResult;
|
|
114
|
+
/**
|
|
115
|
+
* Convenience: evaluate a contract against a TraceReadResult directly.
|
|
116
|
+
*
|
|
117
|
+
* @experimental Additive wrapper over `evaluateTraceContract({ read }, …)`.
|
|
118
|
+
*/
|
|
119
|
+
declare function evaluateTraceContractRead(read: TraceReadResult, contract: TraceContract, options?: {
|
|
120
|
+
runId?: string;
|
|
121
|
+
}): TraceCheckResult;
|
|
112
122
|
|
|
113
|
-
export { LogicalProjectionDiagnostic, LogicalTraceEvent, type SemanticParitySummary, TraceCheckInput, TraceCheckResult, type TraceContract, type TraceContractInput, type TraceContractLlmRules, type TraceContractObservationRules, type TraceContractRunRules, type TraceContractToolRules, type TraceFacts, buildTraceFacts, defineTraceContract, evaluateTraceContract, summarizeSemanticParity };
|
|
123
|
+
export { LogicalProjectionDiagnostic, LogicalTraceEvent, type SemanticParitySummary, TraceCheckInput, TraceCheckResult, type TraceContract, type TraceContractInput, type TraceContractLlmRules, type TraceContractObservationRules, type TraceContractRunRules, type TraceContractToolRules, type TraceFacts, buildTraceFacts, defineTraceContract, evaluateTraceContract, evaluateTraceContractRead, summarizeSemanticParity };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { L as LogicalProjectionDiagnostic, a as LogicalTraceEvent, T as TraceCheckInput, b as TraceCheckResult } from './index-
|
|
2
|
-
export { B as BaselineRegressionRuleOptions, D as DecisionRuleOptions, G as GuardrailRuleOptions, c as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RetrievalRuleOptions, d as RunDepthRuleOptions, e as RunDurationRuleOptions, f as RunEventCountRuleOptions, g as RunStatusRuleOptions, h as RunTraceChecksOptions, S as SafetyFindingCategory, i as SafetyFindingConfidence, j as SafetyOversizedAttributeRuleOptions, k as SafetyRawContentRuleOptions, l as SafetyRedactionRuleOptions, m as SafetySecretPattern, n as SafetySecretPatternRuleOptions, o as StallDetectionRuleOptions, p as StructureIncompleteRuleOptions, q as StructureOrphanRuleOptions, r as StructureParallelWidthRuleOptions, s as StructureRelationshipRuleOptions, t as ToolFailureRuleOptions, u as ToolOrderingRuleOptions, v as ToolUsageRuleOptions, w as TraceCheckContext, x as TraceCheckDiagnostic, y as TraceCheckDiagnosticCode, z as TraceCheckEvidence, A as TraceCheckFacts, C as TraceCheckFinding, E as TraceCheckFindingStatus, F as TraceCheckRule, H as TraceCheckRuleCategory, I as TraceCheckSeverity, J as TraceCheckStatus, K as TraceCheckSummary, N as TraceSignalRuleOptions, P as createBaselineRegressionRule, Q as createDecisionRule, U as createGuardrailRule, V as createLlmUsageRule, W as createMaxStepDurationRule, X as createObservedOutcomeRule, Y as createRequireCompletedRule, Z as createRetrievalRule, _ as createRunDepthRule, $ as createRunDurationRule, a0 as createRunEventCountRule, a1 as createRunStatusRule, a2 as createSafetyOversizedAttributeRule, a3 as createSafetyRawContentRule, a4 as createSafetyRedactionRule, a5 as createSafetySecretPatternRule, a6 as createStallDetectionRule, a7 as createStructureCycleRule, a8 as createStructureIncompleteRule, a9 as createStructureOrphanRule, aa as createStructureParallelWidthRule, ab as createStructureRelationshipRule, ac as createToolFailureRule, ad as createToolOrderingRule, ae as createToolUsageRule, af as projectLogicalEvents, ag as resolveCanonicalToolName, ah as runTraceChecks } from './index-
|
|
3
|
-
|
|
4
|
-
import './
|
|
5
|
-
import './inspect-event-
|
|
1
|
+
import { L as LogicalProjectionDiagnostic, a as LogicalTraceEvent, T as TraceCheckInput, b as TraceCheckResult } from './index-BsCcOKxy.js';
|
|
2
|
+
export { B as BaselineRegressionRuleOptions, D as DecisionRuleOptions, G as GuardrailRuleOptions, c as LlmUsageRuleOptions, M as MaxStepDurationRuleOptions, O as ObservedOutcomeRuleOptions, R as RetrievalRuleOptions, d as RunDepthRuleOptions, e as RunDurationRuleOptions, f as RunEventCountRuleOptions, g as RunStatusRuleOptions, h as RunTraceChecksOptions, S as SafetyFindingCategory, i as SafetyFindingConfidence, j as SafetyOversizedAttributeRuleOptions, k as SafetyRawContentRuleOptions, l as SafetyRedactionRuleOptions, m as SafetySecretPattern, n as SafetySecretPatternRuleOptions, o as StallDetectionRuleOptions, p as StructureIncompleteRuleOptions, q as StructureOrphanRuleOptions, r as StructureParallelWidthRuleOptions, s as StructureRelationshipRuleOptions, t as ToolFailureRuleOptions, u as ToolOrderingRuleOptions, v as ToolUsageRuleOptions, w as TraceCheckContext, x as TraceCheckDiagnostic, y as TraceCheckDiagnosticCode, z as TraceCheckEvidence, A as TraceCheckFacts, C as TraceCheckFinding, E as TraceCheckFindingStatus, F as TraceCheckRule, H as TraceCheckRuleCategory, I as TraceCheckSeverity, J as TraceCheckStatus, K as TraceCheckSummary, N as TraceSignalRuleOptions, P as createBaselineRegressionRule, Q as createDecisionRule, U as createGuardrailRule, V as createLlmUsageRule, W as createMaxStepDurationRule, X as createObservedOutcomeRule, Y as createRequireCompletedRule, Z as createRetrievalRule, _ as createRunDepthRule, $ as createRunDurationRule, a0 as createRunEventCountRule, a1 as createRunStatusRule, a2 as createSafetyOversizedAttributeRule, a3 as createSafetyRawContentRule, a4 as createSafetyRedactionRule, a5 as createSafetySecretPatternRule, a6 as createStallDetectionRule, a7 as createStructureCycleRule, a8 as createStructureIncompleteRule, a9 as createStructureOrphanRule, aa as createStructureParallelWidthRule, ab as createStructureRelationshipRule, ac as createToolFailureRule, ad as createToolOrderingRule, ae as createToolUsageRule, af as projectLogicalEvents, ag as resolveCanonicalToolName, ah as runTraceChecks } from './index-BsCcOKxy.js';
|
|
3
|
+
export { PROGRAMMATIC_DIAGNOSTIC_SPECS, ProgrammaticDiagnosticCode, ProgrammaticDiagnosticSpec, formatProgrammaticDiagnostic } from './readers.js';
|
|
4
|
+
import { T as TraceReadResult } from './index-B9ZGvUVL.js';
|
|
5
|
+
import { P as PersistedInspectEvent } from './persisted-inspect-event-BVucFVrP.js';
|
|
6
|
+
import './inspect-event-DRthdZlf.js';
|
|
6
7
|
import './types-B562HgN_.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -49,11 +50,12 @@ interface TraceFacts {
|
|
|
49
50
|
readonly summary: SemanticParitySummary;
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
|
-
* Build TraceFacts from
|
|
53
|
+
* Build TraceFacts from a TraceReadResult or normalized persisted events.
|
|
53
54
|
*
|
|
54
55
|
* @experimental
|
|
55
56
|
*/
|
|
56
|
-
declare function buildTraceFacts(
|
|
57
|
+
declare function buildTraceFacts(input: TraceReadResult): TraceFacts;
|
|
58
|
+
declare function buildTraceFacts(input: readonly PersistedInspectEvent[]): TraceFacts;
|
|
57
59
|
|
|
58
60
|
/**
|
|
59
61
|
* @experimental Typed trace contract input. Evolves during v6.5.x.
|
|
@@ -109,5 +111,13 @@ declare function defineTraceContract(input: TraceContractInput): TraceContract;
|
|
|
109
111
|
declare function evaluateTraceContract(input: TraceCheckInput, contract: TraceContract, options?: {
|
|
110
112
|
runId?: string;
|
|
111
113
|
}): TraceCheckResult;
|
|
114
|
+
/**
|
|
115
|
+
* Convenience: evaluate a contract against a TraceReadResult directly.
|
|
116
|
+
*
|
|
117
|
+
* @experimental Additive wrapper over `evaluateTraceContract({ read }, …)`.
|
|
118
|
+
*/
|
|
119
|
+
declare function evaluateTraceContractRead(read: TraceReadResult, contract: TraceContract, options?: {
|
|
120
|
+
runId?: string;
|
|
121
|
+
}): TraceCheckResult;
|
|
112
122
|
|
|
113
|
-
export { LogicalProjectionDiagnostic, LogicalTraceEvent, type SemanticParitySummary, TraceCheckInput, TraceCheckResult, type TraceContract, type TraceContractInput, type TraceContractLlmRules, type TraceContractObservationRules, type TraceContractRunRules, type TraceContractToolRules, type TraceFacts, buildTraceFacts, defineTraceContract, evaluateTraceContract, summarizeSemanticParity };
|
|
123
|
+
export { LogicalProjectionDiagnostic, LogicalTraceEvent, type SemanticParitySummary, TraceCheckInput, TraceCheckResult, type TraceContract, type TraceContractInput, type TraceContractLlmRules, type TraceContractObservationRules, type TraceContractRunRules, type TraceContractToolRules, type TraceFacts, buildTraceFacts, defineTraceContract, evaluateTraceContract, evaluateTraceContractRead, summarizeSemanticParity };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, evaluateTraceContract, projectLogicalEvents, resolveCanonicalToolName, runTraceChecks, summarizeSemanticParity } from './chunk-
|
|
1
|
+
export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, evaluateTraceContract, evaluateTraceContractRead, projectLogicalEvents, resolveCanonicalToolName, runTraceChecks, summarizeSemanticParity } from './chunk-NF4ZHNTC.mjs';
|
|
2
2
|
import './chunk-VFO76UH3.mjs';
|
|
3
3
|
import './chunk-ULCGIRTC.mjs';
|
|
4
4
|
import './chunk-VU6O5QAH.mjs';
|
|
5
|
+
export { PROGRAMMATIC_DIAGNOSTIC_SPECS, formatProgrammaticDiagnostic } from './chunk-FWK3Q3OJ.mjs';
|
|
5
6
|
import './chunk-WRE4CNPF.mjs';
|
|
6
7
|
import './chunk-P366CCL2.mjs';
|
|
7
8
|
import './chunk-7TGZLWEE.mjs';
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// packages/core/src/logs/tree-builder.ts
|
|
2
|
+
function inc(map, key) {
|
|
3
|
+
map[key] = (map[key] ?? 0) + 1;
|
|
4
|
+
}
|
|
5
|
+
function confidenceRank(confidence) {
|
|
6
|
+
switch (confidence) {
|
|
7
|
+
case "unknown":
|
|
8
|
+
return 0;
|
|
9
|
+
case "heuristic":
|
|
10
|
+
return 1;
|
|
11
|
+
case "correlated":
|
|
12
|
+
return 2;
|
|
13
|
+
case "explicit":
|
|
14
|
+
return 3;
|
|
15
|
+
default:
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function computeRunStatus(events) {
|
|
20
|
+
let runTerminal;
|
|
21
|
+
let sawRunEvent = false;
|
|
22
|
+
for (const e of events) {
|
|
23
|
+
if (e.kind !== "RUN") continue;
|
|
24
|
+
sawRunEvent = true;
|
|
25
|
+
if (e.status === "ok" || e.status === "error") {
|
|
26
|
+
runTerminal = e.status;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (sawRunEvent) {
|
|
30
|
+
return runTerminal ?? "running";
|
|
31
|
+
}
|
|
32
|
+
let hasRunning = false;
|
|
33
|
+
for (const e of events) {
|
|
34
|
+
if (e.status === "error") return "error";
|
|
35
|
+
if (e.status === "running") hasRunning = true;
|
|
36
|
+
}
|
|
37
|
+
return hasRunning ? "running" : "ok";
|
|
38
|
+
}
|
|
39
|
+
function linkNodesVisibilityFirst(nodes) {
|
|
40
|
+
let selfParentCount = 0;
|
|
41
|
+
let unresolvedParentCount = 0;
|
|
42
|
+
let normalizedEdgeCount = 0;
|
|
43
|
+
let cycleCount = 0;
|
|
44
|
+
const pending = [];
|
|
45
|
+
for (const node of nodes.values()) {
|
|
46
|
+
const parentId = node.event.parentId;
|
|
47
|
+
if (!parentId) continue;
|
|
48
|
+
if (parentId === node.event.eventId) {
|
|
49
|
+
selfParentCount += 1;
|
|
50
|
+
normalizedEdgeCount += 1;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!nodes.has(parentId)) {
|
|
54
|
+
unresolvedParentCount += 1;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
pending.push({
|
|
58
|
+
childId: node.event.eventId,
|
|
59
|
+
parentId,
|
|
60
|
+
childTimestamp: node.event.timestamp,
|
|
61
|
+
childConfidence: node.event.confidence
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
pending.sort((a, b) => {
|
|
65
|
+
const conf = confidenceRank(b.childConfidence) - confidenceRank(a.childConfidence);
|
|
66
|
+
if (conf !== 0) return conf;
|
|
67
|
+
return a.childTimestamp - b.childTimestamp;
|
|
68
|
+
});
|
|
69
|
+
const parentOf = /* @__PURE__ */ new Map();
|
|
70
|
+
for (const edge of pending) {
|
|
71
|
+
parentOf.set(edge.childId, edge.parentId);
|
|
72
|
+
let cursor = edge.parentId;
|
|
73
|
+
const seen = /* @__PURE__ */ new Set([edge.childId]);
|
|
74
|
+
let cyclic = false;
|
|
75
|
+
while (cursor) {
|
|
76
|
+
if (seen.has(cursor)) {
|
|
77
|
+
cyclic = true;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
seen.add(cursor);
|
|
81
|
+
cursor = parentOf.get(cursor);
|
|
82
|
+
}
|
|
83
|
+
if (cyclic) {
|
|
84
|
+
parentOf.delete(edge.childId);
|
|
85
|
+
cycleCount += 1;
|
|
86
|
+
normalizedEdgeCount += 1;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
for (const [childId, parentId] of parentOf) {
|
|
90
|
+
nodes.get(parentId).children.push(nodes.get(childId));
|
|
91
|
+
}
|
|
92
|
+
const roots = [];
|
|
93
|
+
for (const node of nodes.values()) {
|
|
94
|
+
if (!parentOf.has(node.event.eventId)) {
|
|
95
|
+
roots.push(node);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const assignDepth = (n, depth, stack) => {
|
|
99
|
+
if (stack.has(n.event.eventId)) return;
|
|
100
|
+
n.depth = depth;
|
|
101
|
+
stack.add(n.event.eventId);
|
|
102
|
+
for (const c of n.children) assignDepth(c, depth + 1, stack);
|
|
103
|
+
stack.delete(n.event.eventId);
|
|
104
|
+
};
|
|
105
|
+
for (const r of roots) assignDepth(r, 0, /* @__PURE__ */ new Set());
|
|
106
|
+
return {
|
|
107
|
+
roots,
|
|
108
|
+
summary: {
|
|
109
|
+
rootCount: roots.length,
|
|
110
|
+
selfParentCount,
|
|
111
|
+
cycleCount,
|
|
112
|
+
unresolvedParentCount,
|
|
113
|
+
normalizedEdgeCount
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
var TreeBuilder = class {
|
|
118
|
+
constructor(options) {
|
|
119
|
+
void options?.config;
|
|
120
|
+
}
|
|
121
|
+
build(events) {
|
|
122
|
+
const byRun = /* @__PURE__ */ new Map();
|
|
123
|
+
for (const e of events) {
|
|
124
|
+
if (!byRun.has(e.runId)) byRun.set(e.runId, []);
|
|
125
|
+
byRun.get(e.runId).push(e);
|
|
126
|
+
}
|
|
127
|
+
const out = [];
|
|
128
|
+
for (const [runId, runEvents] of byRun.entries()) {
|
|
129
|
+
const sorted = [...runEvents].sort((a, b) => a.timestamp - b.timestamp);
|
|
130
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
131
|
+
for (const e of sorted) {
|
|
132
|
+
nodes.set(e.eventId, { event: e, children: [], depth: 0 });
|
|
133
|
+
}
|
|
134
|
+
const { roots, summary } = linkNodesVisibilityFirst(nodes);
|
|
135
|
+
const confidenceBreakdown = {
|
|
136
|
+
explicit: 0,
|
|
137
|
+
correlated: 0,
|
|
138
|
+
heuristic: 0,
|
|
139
|
+
unknown: 0
|
|
140
|
+
};
|
|
141
|
+
const kinds = {};
|
|
142
|
+
for (const e of sorted) {
|
|
143
|
+
inc(confidenceBreakdown, e.confidence);
|
|
144
|
+
kinds[e.kind] = (kinds[e.kind] ?? 0) + 1;
|
|
145
|
+
}
|
|
146
|
+
const startedAt = sorted.length > 0 ? sorted[0].timestamp : void 0;
|
|
147
|
+
const endedAt = sorted.length > 0 ? sorted[sorted.length - 1].timestamp : void 0;
|
|
148
|
+
const status = computeRunStatus(sorted);
|
|
149
|
+
const durationMs = startedAt !== void 0 && endedAt !== void 0 && Number.isFinite(startedAt) && Number.isFinite(endedAt) && endedAt >= startedAt && status !== "running" ? endedAt - startedAt : void 0;
|
|
150
|
+
const name = sorted.find((e) => e.kind === "RUN")?.name;
|
|
151
|
+
out.push({
|
|
152
|
+
runId,
|
|
153
|
+
name,
|
|
154
|
+
status,
|
|
155
|
+
startedAt,
|
|
156
|
+
endedAt: status === "running" ? void 0 : endedAt,
|
|
157
|
+
durationMs,
|
|
158
|
+
children: roots,
|
|
159
|
+
metadata: {
|
|
160
|
+
totalEvents: sorted.length,
|
|
161
|
+
confidenceBreakdown,
|
|
162
|
+
kinds,
|
|
163
|
+
relationshipSummary: summary
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
out.sort((a, b) => (b.startedAt ?? 0) - (a.startedAt ?? 0));
|
|
168
|
+
return out;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export { TreeBuilder };
|
|
173
|
+
//# sourceMappingURL=chunk-AK5EN4U2.mjs.map
|
|
174
|
+
//# sourceMappingURL=chunk-AK5EN4U2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/logs/tree-builder.ts"],"names":[],"mappings":"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","file":"chunk-AK5EN4U2.mjs","sourcesContent":["import type {\n InspectEvent,\n InspectNode,\n InspectRunTree,\n RelationshipSummary,\n} from \"../types/inspect-event.js\";\nimport type { LogIngestConfig } from \"../types/log-config.js\";\n\nexport interface TreeBuilderOptions {\n config?: LogIngestConfig;\n}\n\nfunction inc<T extends string>(map: Record<T, number>, key: T): void {\n map[key] = (map[key] ?? 0) + 1;\n}\n\nfunction confidenceRank(confidence: InspectEvent[\"confidence\"]): number {\n switch (confidence) {\n case \"unknown\":\n return 0;\n case \"heuristic\":\n return 1;\n case \"correlated\":\n return 2;\n case \"explicit\":\n return 3;\n default:\n return 0;\n }\n}\n\nfunction computeRunStatus(events: InspectEvent[]): InspectRunTree[\"status\"] {\n // Derive the run status from the RUN node lifecycle, matching\n // manualTraceEventsToRunTree and extractMetadata: a run is \"running\" only\n // until its RUN completion is recorded. The v0.1 bridge writes each node as a\n // \"started\" event (status \"running\") followed by a \"completed\" event, so a\n // finished run still carries \"running\" started rows; those must not force the\n // whole run back to \"running\". Events arrive timestamp-sorted, so the last\n // terminal RUN status wins.\n let runTerminal: \"ok\" | \"error\" | undefined;\n let sawRunEvent = false;\n for (const e of events) {\n if (e.kind !== \"RUN\") continue;\n sawRunEvent = true;\n if (e.status === \"ok\" || e.status === \"error\") {\n runTerminal = e.status;\n }\n }\n if (sawRunEvent) {\n return runTerminal ?? \"running\";\n }\n\n // Fallback for traces with no RUN node (e.g. log-only ingestion).\n let hasRunning = false;\n for (const e of events) {\n if (e.status === \"error\") return \"error\";\n if (e.status === \"running\") hasRunning = true;\n }\n return hasRunning ? \"running\" : \"ok\";\n}\n\ninterface PendingEdge {\n childId: string;\n parentId: string;\n childTimestamp: number;\n childConfidence: InspectEvent[\"confidence\"];\n}\n\n/**\n * Link children to parents without self-edges or cycles. Broken edges become roots.\n */\nexport function linkNodesVisibilityFirst(\n nodes: Map<string, InspectNode>,\n): { roots: InspectNode[]; summary: RelationshipSummary } {\n let selfParentCount = 0;\n let unresolvedParentCount = 0;\n let normalizedEdgeCount = 0;\n let cycleCount = 0;\n\n const pending: PendingEdge[] = [];\n for (const node of nodes.values()) {\n const parentId = node.event.parentId;\n if (!parentId) continue;\n if (parentId === node.event.eventId) {\n selfParentCount += 1;\n normalizedEdgeCount += 1;\n continue;\n }\n if (!nodes.has(parentId)) {\n unresolvedParentCount += 1;\n continue;\n }\n pending.push({\n childId: node.event.eventId,\n parentId,\n childTimestamp: node.event.timestamp,\n childConfidence: node.event.confidence,\n });\n }\n\n // Prefer keeping higher-confidence / earlier edges; break the weakest last edge in a cycle.\n pending.sort((a, b) => {\n const conf = confidenceRank(b.childConfidence) - confidenceRank(a.childConfidence);\n if (conf !== 0) return conf;\n return a.childTimestamp - b.childTimestamp;\n });\n\n const parentOf = new Map<string, string>();\n for (const edge of pending) {\n parentOf.set(edge.childId, edge.parentId);\n // Detect if accepting this edge creates a cycle (walk from parent toward roots).\n let cursor: string | undefined = edge.parentId;\n const seen = new Set<string>([edge.childId]);\n let cyclic = false;\n while (cursor) {\n if (seen.has(cursor)) {\n cyclic = true;\n break;\n }\n seen.add(cursor);\n cursor = parentOf.get(cursor);\n }\n if (cyclic) {\n parentOf.delete(edge.childId);\n cycleCount += 1;\n normalizedEdgeCount += 1;\n }\n }\n\n for (const [childId, parentId] of parentOf) {\n nodes.get(parentId)!.children.push(nodes.get(childId)!);\n }\n\n const roots: InspectNode[] = [];\n for (const node of nodes.values()) {\n if (!parentOf.has(node.event.eventId)) {\n roots.push(node);\n }\n }\n\n const assignDepth = (n: InspectNode, depth: number, stack: Set<string>) => {\n if (stack.has(n.event.eventId)) return;\n n.depth = depth;\n stack.add(n.event.eventId);\n for (const c of n.children) assignDepth(c, depth + 1, stack);\n stack.delete(n.event.eventId);\n };\n for (const r of roots) assignDepth(r, 0, new Set());\n\n return {\n roots,\n summary: {\n rootCount: roots.length,\n selfParentCount,\n cycleCount,\n unresolvedParentCount,\n normalizedEdgeCount,\n },\n };\n}\n\nexport class TreeBuilder {\n constructor(options?: TreeBuilderOptions) {\n void options?.config;\n }\n\n build(events: InspectEvent[]): InspectRunTree[] {\n const byRun = new Map<string, InspectEvent[]>();\n for (const e of events) {\n if (!byRun.has(e.runId)) byRun.set(e.runId, []);\n byRun.get(e.runId)!.push(e);\n }\n\n const out: InspectRunTree[] = [];\n for (const [runId, runEvents] of byRun.entries()) {\n const sorted = [...runEvents].sort((a, b) => a.timestamp - b.timestamp);\n\n const nodes = new Map<string, InspectNode>();\n for (const e of sorted) {\n nodes.set(e.eventId, { event: e, children: [], depth: 0 });\n }\n\n const { roots, summary } = linkNodesVisibilityFirst(nodes);\n\n // metadata\n const confidenceBreakdown = {\n explicit: 0,\n correlated: 0,\n heuristic: 0,\n unknown: 0,\n } as Record<InspectEvent[\"confidence\"], number>;\n const kinds = {} as Record<InspectEvent[\"kind\"], number>;\n for (const e of sorted) {\n inc(confidenceBreakdown, e.confidence);\n (kinds as any)[e.kind] = ((kinds as any)[e.kind] ?? 0) + 1;\n }\n\n const startedAt = sorted.length > 0 ? sorted[0]!.timestamp : undefined;\n const endedAt = sorted.length > 0 ? sorted[sorted.length - 1]!.timestamp : undefined;\n const status = computeRunStatus(sorted);\n const durationMs =\n startedAt !== undefined &&\n endedAt !== undefined &&\n Number.isFinite(startedAt) &&\n Number.isFinite(endedAt) &&\n endedAt >= startedAt &&\n status !== \"running\"\n ? endedAt - startedAt\n : undefined;\n\n const name = sorted.find((e) => e.kind === \"RUN\")?.name;\n\n out.push({\n runId,\n name,\n status,\n startedAt,\n endedAt: status === \"running\" ? undefined : endedAt,\n durationMs,\n children: roots,\n metadata: {\n totalEvents: sorted.length,\n confidenceBreakdown,\n kinds,\n relationshipSummary: summary,\n },\n });\n }\n\n // newest first for stable display\n out.sort((a, b) => (b.startedAt ?? 0) - (a.startedAt ?? 0));\n return out;\n }\n}\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
}
|
|
53
|
+
|
|
54
|
+
export { PROGRAMMATIC_DIAGNOSTIC_SPECS, formatProgrammaticDiagnostic };
|
|
55
|
+
//# sourceMappingURL=chunk-FWK3Q3OJ.mjs.map
|
|
56
|
+
//# sourceMappingURL=chunk-FWK3Q3OJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/diagnostics/programmatic.ts"],"names":[],"mappings":";AA4BO,IAAM,6BAAA,GAET,OAAO,MAAA,CAAO;AAAA,EAChB,sBAAA,EAAwB;AAAA,IACtB,IAAA,EAAM,wBAAA;AAAA,IACN,OAAA,EACE,+IAAA;AAAA,IACF,WAAA,EAAa,2CAAA;AAAA,IACb,YAAA,EAAc,CAAC,eAAe;AAAA,GAChC;AAAA,EACA,2BAAA,EAA6B;AAAA,IAC3B,IAAA,EAAM,6BAAA;AAAA,IACN,OAAA,EAAS,gDAAA;AAAA,IACT,WAAA,EACE,kGAAA;AAAA,IACF,YAAA,EAAc,CAAC,oBAAoB;AAAA,GACrC;AAAA,EACA,yBAAA,EAA2B;AAAA,IACzB,IAAA,EAAM,2BAAA;AAAA,IACN,OAAA,EAAS,iEAAA;AAAA,IACT,WAAA,EAAa,2DAAA;AAAA,IACb,YAAA,EAAc,CAAC,kBAAkB;AAAA,GACnC;AAAA,EACA,mCAAA,EAAqC;AAAA,IACnC,IAAA,EAAM,qCAAA;AAAA,IACN,OAAA,EAAS,iEAAA;AAAA,IACT,WAAA,EAAa;AAAA,GACf;AAAA,EACA,wCAAA,EAA0C;AAAA,IACxC,IAAA,EAAM,0CAAA;AAAA,IACN,OAAA,EAAS,oEAAA;AAAA,IACT,WAAA,EAAa,oDAAA;AAAA,IACb,YAAA,EAAc,CAAC,iCAAiC;AAAA,GAClD;AAAA,EACA,iCAAA,EAAmC;AAAA,IACjC,IAAA,EAAM,mCAAA;AAAA,IACN,OAAA,EAAS,0CAAA;AAAA,IACT,WAAA,EACE,0HAAA;AAAA,IACF,YAAA,EAAc;AAAA,MACZ,mCAAA;AAAA,MACA;AAAA;AACF,GACF;AAAA,EACA,2BAAA,EAA6B;AAAA,IAC3B,IAAA,EAAM,6BAAA;AAAA,IACN,OAAA,EAAS,kCAAA;AAAA,IACT,WAAA,EACE,uGAAA;AAAA,IACF,YAAA,EAAc,CAAC,iBAAiB;AAAA;AAEpC,CAAC;AAKM,SAAS,4BAAA,CACd,MACA,MAAA,EACQ;AACR,EAAA,MAAM,IAAA,GAAO,8BAA8B,IAAI,CAAA;AAC/C,EAAA,MAAM,UAAU,MAAA,EAAQ,IAAA,KAAS,MAAA,CAAO,IAAA,KAAS,IAAA,CAAK,OAAA;AACtD,EAAA,OAAO,GAAG,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,cAAA,EAAiB,KAAK,WAAW,CAAA,CAAA;AAC7D","file":"chunk-FWK3Q3OJ.mjs","sourcesContent":["/**\n * Stable programmatic diagnostic codes for readers / TraceFacts / TraceContract.\n *\n * Lowercase `TraceReadError.code` values remain the published reader error codes.\n * These `AI_*` identifiers appear in messages and catalogs for actionable remediation.\n *\n * @experimental Additive in 6.15.0; do not replace published lowercase reader codes.\n */\n\nexport type ProgrammaticDiagnosticCode =\n | \"AI_TRACE_INPUT_INVALID\"\n | \"AI_TRACE_FORMAT_UNSUPPORTED\"\n | \"AI_TRACE_FORMAT_AMBIGUOUS\"\n | \"AI_TRACE_FACTS_INPUT_NOT_NORMALIZED\"\n | \"AI_TRACE_CONTRACT_RUN_SELECTION_REQUIRED\"\n | \"AI_TRACE_RELATIONSHIP_SELF_PARENT\"\n | \"AI_TRACE_RELATIONSHIP_CYCLE\";\n\nexport interface ProgrammaticDiagnosticSpec {\n readonly code: ProgrammaticDiagnosticCode;\n /** Short problem statement (without the code prefix). */\n readonly summary: string;\n /** Actionable remediation hint (always included in formatted messages). */\n readonly remediation: string;\n /** Related published / capture codes that must remain valid. */\n readonly relatedCodes?: readonly string[];\n}\n\nexport const PROGRAMMATIC_DIAGNOSTIC_SPECS: Readonly<\n Record<ProgrammaticDiagnosticCode, ProgrammaticDiagnosticSpec>\n> = Object.freeze({\n AI_TRACE_INPUT_INVALID: {\n code: \"AI_TRACE_INPUT_INVALID\",\n summary:\n 'Expected { type: \"file\", path }, { type: \"directory\", path }, { type: \"string\", content }, { type: \"buffer\", content }, or { type: \"stdin\" }.',\n remediation: \"For a file path, use openTraceFile(path).\",\n relatedCodes: [\"invalid_input\"],\n },\n AI_TRACE_FORMAT_UNSUPPORTED: {\n code: \"AI_TRACE_FORMAT_UNSUPPORTED\",\n summary: \"No trace reader could detect the input format.\",\n remediation:\n \"Pass an AgentInspect JSONL file via openTraceFile, or set options.format to a registered reader.\",\n relatedCodes: [\"unsupported_format\"],\n },\n AI_TRACE_FORMAT_AMBIGUOUS: {\n code: \"AI_TRACE_FORMAT_AMBIGUOUS\",\n summary: \"Multiple trace readers matched the input with equal confidence.\",\n remediation: \"Set options.format explicitly to disambiguate the reader.\",\n relatedCodes: [\"ambiguous_format\"],\n },\n AI_TRACE_FACTS_INPUT_NOT_NORMALIZED: {\n code: \"AI_TRACE_FACTS_INPUT_NOT_NORMALIZED\",\n summary: \"TraceFacts requires TraceReadResult or PersistedInspectEvent[].\",\n remediation: \"Use openTraceFile() to normalize a JSONL trace first.\",\n },\n AI_TRACE_CONTRACT_RUN_SELECTION_REQUIRED: {\n code: \"AI_TRACE_CONTRACT_RUN_SELECTION_REQUIRED\",\n summary: \"Multiple runs are available; select a run before executing checks.\",\n remediation: \"Pass options.runId or TraceCheckInput.selectedRun.\",\n relatedCodes: [\"AI_CHECK_RUN_SELECTION_REQUIRED\"],\n },\n AI_TRACE_RELATIONSHIP_SELF_PARENT: {\n code: \"AI_TRACE_RELATIONSHIP_SELF_PARENT\",\n summary: \"A parentId equals its own event/step id.\",\n remediation:\n \"Reject at capture (AI_LANGGRAPH_SELF_PARENT_REJECTED) or drop via logical projection; do not invent replacement parents.\",\n relatedCodes: [\n \"AI_LANGGRAPH_SELF_PARENT_REJECTED\",\n \"AI_LOGICAL_SELF_PARENT_REMOVED\",\n ],\n },\n AI_TRACE_RELATIONSHIP_CYCLE: {\n code: \"AI_TRACE_RELATIONSHIP_CYCLE\",\n summary: \"Trace contains a parentId cycle.\",\n remediation:\n \"Use visibility-first tree linking for legacy fixtures; prefer acyclic capture for new adapter output.\",\n relatedCodes: [\"structure.cycle\"],\n },\n});\n\n/**\n * Format `CODE: summary Remediation: …` for thrown errors and diagnostics.\n */\nexport function formatProgrammaticDiagnostic(\n code: ProgrammaticDiagnosticCode,\n detail?: string,\n): string {\n const spec = PROGRAMMATIC_DIAGNOSTIC_SPECS[code];\n const summary = detail?.trim() ? detail.trim() : spec.summary;\n return `${code}: ${summary} Remediation: ${spec.remediation}`;\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { formatProgrammaticDiagnostic } from './chunk-FWK3Q3OJ.mjs';
|
|
2
|
+
import { persistedInspectEventsToRunTrees, traceEventToPersistedInspectEvent, traceEventsToPersistedInspectEvents } from './chunk-NXQF73EC.mjs';
|
|
2
3
|
import { parseTraceJsonl } from './chunk-WRE4CNPF.mjs';
|
|
3
4
|
import { readFile, readdir } from 'fs/promises';
|
|
4
5
|
import path from 'path';
|
|
@@ -76,6 +77,38 @@ var TraceReadError = class extends Error {
|
|
|
76
77
|
this.warnings = warnings;
|
|
77
78
|
}
|
|
78
79
|
};
|
|
80
|
+
var TRACE_INPUT_INVALID_MESSAGE = formatProgrammaticDiagnostic(
|
|
81
|
+
"AI_TRACE_INPUT_INVALID"
|
|
82
|
+
);
|
|
83
|
+
function isTraceInput(input) {
|
|
84
|
+
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const record = input;
|
|
88
|
+
switch (record.type) {
|
|
89
|
+
case "file":
|
|
90
|
+
case "directory":
|
|
91
|
+
return typeof record.path === "string";
|
|
92
|
+
case "string":
|
|
93
|
+
return typeof record.content === "string";
|
|
94
|
+
case "buffer":
|
|
95
|
+
return Buffer.isBuffer(record.content);
|
|
96
|
+
case "stdin":
|
|
97
|
+
return true;
|
|
98
|
+
default:
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function assertTraceInput(input) {
|
|
103
|
+
if (isTraceInput(input)) return;
|
|
104
|
+
throw new TraceReadError("invalid_input", TRACE_INPUT_INVALID_MESSAGE, [
|
|
105
|
+
{
|
|
106
|
+
code: "AI_TRACE_INPUT_INVALID",
|
|
107
|
+
message: TRACE_INPUT_INVALID_MESSAGE,
|
|
108
|
+
severity: "error"
|
|
109
|
+
}
|
|
110
|
+
]);
|
|
111
|
+
}
|
|
79
112
|
function normalizeCandidate(reader, candidate) {
|
|
80
113
|
const confidence = Number.isFinite(candidate.confidence) ? Math.max(0, Math.min(1, candidate.confidence)) : 0;
|
|
81
114
|
return {
|
|
@@ -1430,6 +1463,7 @@ var DEFAULT_TRACE_READERS = [
|
|
|
1430
1463
|
otlpJsonReader
|
|
1431
1464
|
];
|
|
1432
1465
|
async function detectTraceFormat(input, options = {}) {
|
|
1466
|
+
assertTraceInput(input);
|
|
1433
1467
|
const readers = options.readers ?? DEFAULT_TRACE_READERS;
|
|
1434
1468
|
if (options.format !== void 0) {
|
|
1435
1469
|
const reader = findReaderByFormat(options.format, readers);
|
|
@@ -1526,19 +1560,20 @@ async function detectTraceFormat(input, options = {}) {
|
|
|
1526
1560
|
};
|
|
1527
1561
|
}
|
|
1528
1562
|
async function readTrace(input, options = {}) {
|
|
1563
|
+
assertTraceInput(input);
|
|
1529
1564
|
const readers = options.readers ?? DEFAULT_TRACE_READERS;
|
|
1530
1565
|
const detection = await detectTraceFormat(input, options);
|
|
1531
1566
|
if (detection.status === "unsupported" || detection.format === void 0) {
|
|
1532
1567
|
throw new TraceReadError(
|
|
1533
1568
|
"unsupported_format",
|
|
1534
|
-
"
|
|
1569
|
+
formatProgrammaticDiagnostic("AI_TRACE_FORMAT_UNSUPPORTED"),
|
|
1535
1570
|
detection.warnings
|
|
1536
1571
|
);
|
|
1537
1572
|
}
|
|
1538
1573
|
if (detection.status === "ambiguous") {
|
|
1539
1574
|
throw new TraceReadError(
|
|
1540
1575
|
"ambiguous_format",
|
|
1541
|
-
"
|
|
1576
|
+
formatProgrammaticDiagnostic("AI_TRACE_FORMAT_AMBIGUOUS"),
|
|
1542
1577
|
detection.warnings
|
|
1543
1578
|
);
|
|
1544
1579
|
}
|
|
@@ -1546,7 +1581,10 @@ async function readTrace(input, options = {}) {
|
|
|
1546
1581
|
if (!reader) {
|
|
1547
1582
|
throw new TraceReadError(
|
|
1548
1583
|
"unsupported_format",
|
|
1549
|
-
|
|
1584
|
+
formatProgrammaticDiagnostic(
|
|
1585
|
+
"AI_TRACE_FORMAT_UNSUPPORTED",
|
|
1586
|
+
`No trace reader is registered for format "${detection.format}".`
|
|
1587
|
+
),
|
|
1550
1588
|
detection.warnings
|
|
1551
1589
|
);
|
|
1552
1590
|
}
|
|
@@ -1575,7 +1613,16 @@ async function readTrace(input, options = {}) {
|
|
|
1575
1613
|
function openTrace(input, options = {}) {
|
|
1576
1614
|
return readTrace(input, options);
|
|
1577
1615
|
}
|
|
1616
|
+
function openTraceFile(filePath, options = {}) {
|
|
1617
|
+
return openTrace({ type: "file", path: filePath }, options);
|
|
1618
|
+
}
|
|
1619
|
+
function openTraceDirectory(dirPath, options = {}) {
|
|
1620
|
+
return openTrace({ type: "directory", path: dirPath }, options);
|
|
1621
|
+
}
|
|
1622
|
+
function openTraceText(content, options = {}) {
|
|
1623
|
+
return openTrace({ type: "string", content }, options);
|
|
1624
|
+
}
|
|
1578
1625
|
|
|
1579
|
-
export { DEFAULT_TRACE_READERS, TraceReadError, agentInspectJsonlReader, detectTraceFormat, openInferenceJsonReader, openTrace, otlpJsonReader, readTrace };
|
|
1580
|
-
//# sourceMappingURL=chunk-
|
|
1581
|
-
//# sourceMappingURL=chunk-
|
|
1626
|
+
export { DEFAULT_TRACE_READERS, TraceReadError, agentInspectJsonlReader, assertTraceInput, detectTraceFormat, openInferenceJsonReader, openTrace, openTraceDirectory, openTraceFile, openTraceText, otlpJsonReader, readTrace };
|
|
1627
|
+
//# sourceMappingURL=chunk-HT54OLPE.mjs.map
|
|
1628
|
+
//# sourceMappingURL=chunk-HT54OLPE.mjs.map
|