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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.31.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 1327356: Return actionable diagnostics for reversed evaluateTraceContract arguments and warn (without throwing) when inspectRun is passed an unsupported writer option, pointing callers at createInspector({ writer }).
8
+
9
+ ## 6.31.9
10
+
11
+ ### Patch Changes
12
+
13
+ - f71ec7e: Fail closed when suite cases declare no effective assertions or unknown selectors, wire eval.requireSuccess and related eval controls into real check rules, and share AsyncLocalStorage across packed CJS root and /advanced entrypoints so guarded wrappers see the active run context.
14
+
3
15
  ## 6.31.8
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -213,7 +213,7 @@ The root package is enough for custom capture, the CLI, checks, and Evidence wor
213
213
 
214
214
  ## Status and documentation
215
215
 
216
- **Current published baseline:** **6.31.8** · persisted schema `1.0` · Node.js `>=20` · MIT.
216
+ **Current published baseline:** **6.31.10** · persisted schema `1.0` · Node.js `>=20` · MIT.
217
217
 
218
218
  Legacy v0.1 and v0.2 traces remain readable. Check the npm badge and [changelog](CHANGELOG.md) for the current published version.
219
219
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inspect",
3
- "version": "6.31.8",
3
+ "version": "6.31.10",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Local evidence debugger and trajectory-test toolkit for TypeScript AI agents — execution trees, TraceContract checks, Evidence v2, and read-only MCP",
@@ -1627,7 +1627,18 @@ function extractCorrelationMetadata(record) {
1627
1627
  }
1628
1628
 
1629
1629
  // packages/core/src/context.ts
1630
- new AsyncLocalStorage();
1630
+ var GLOBAL_CONTEXT_ALS_KEY = "agent-inspect:execution-context-als:v1";
1631
+ function getSharedContextStorage() {
1632
+ const host = globalThis;
1633
+ const existing = host[GLOBAL_CONTEXT_ALS_KEY];
1634
+ if (existing instanceof AsyncLocalStorage) {
1635
+ return existing;
1636
+ }
1637
+ const created = new AsyncLocalStorage();
1638
+ host[GLOBAL_CONTEXT_ALS_KEY] = created;
1639
+ return created;
1640
+ }
1641
+ getSharedContextStorage();
1631
1642
 
1632
1643
  // packages/core/src/terminal.ts
1633
1644
  var TERMINAL_INDENT = " ";
@@ -4392,6 +4403,17 @@ var PROGRAMMATIC_DIAGNOSTIC_SPECS = Object.freeze({
4392
4403
  summary: "Trace contains a parentId cycle.",
4393
4404
  remediation: "Use visibility-first tree linking for legacy fixtures; prefer acyclic capture for new adapter output.",
4394
4405
  relatedCodes: ["structure.cycle"]
4406
+ },
4407
+ AI_TRACE_CONTRACT_INPUT_INVALID: {
4408
+ code: "AI_TRACE_CONTRACT_INPUT_INVALID",
4409
+ summary: "evaluateTraceContract expects ({ read }, contract) or use evaluateTraceContractRead(read, contract).",
4410
+ remediation: "Pass TraceCheckInput as the first argument: evaluateTraceContract({ read }, contract).",
4411
+ relatedCodes: ["AI_CHECK_INVALID_ARGUMENTS"]
4412
+ },
4413
+ AI_INSPECT_RUN_UNSUPPORTED_OPTION: {
4414
+ code: "AI_INSPECT_RUN_UNSUPPORTED_OPTION",
4415
+ summary: 'inspectRun does not accept a "writer" option.',
4416
+ remediation: "Use createInspector({ writer }) then inspector.run(...). inspectRun persists via the global JSONL path (schema 0.1)."
4395
4417
  }
4396
4418
  });
4397
4419
  function formatProgrammaticDiagnostic(code, detail) {
@@ -7123,7 +7145,72 @@ function defineTraceContract(input) {
7123
7145
  ...alternatives ? { alternatives } : {}
7124
7146
  };
7125
7147
  }
7148
+ function isTraceReadLike(value) {
7149
+ if (typeof value !== "object" || value === null) return false;
7150
+ const candidate = value;
7151
+ return typeof candidate.format === "string" && Array.isArray(candidate.runs) && Array.isArray(candidate.events);
7152
+ }
7153
+ function isTraceCheckInputLike(value) {
7154
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
7155
+ return false;
7156
+ }
7157
+ return isTraceReadLike(value.read);
7158
+ }
7159
+ function looksLikeTraceContract(value) {
7160
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
7161
+ return false;
7162
+ }
7163
+ if (isTraceReadLike(value) || isTraceCheckInputLike(value)) {
7164
+ return false;
7165
+ }
7166
+ return true;
7167
+ }
7168
+ function invalidContractInputResult() {
7169
+ return {
7170
+ ok: false,
7171
+ status: "error",
7172
+ format: "unknown",
7173
+ summary: {
7174
+ passed: 0,
7175
+ failed: 0,
7176
+ warnings: 0,
7177
+ errors: 1,
7178
+ rulesEvaluated: 0
7179
+ },
7180
+ findings: [],
7181
+ diagnostics: [
7182
+ {
7183
+ code: "AI_CHECK_INVALID_ARGUMENTS",
7184
+ message: formatProgrammaticDiagnostic("AI_TRACE_CONTRACT_INPUT_INVALID"),
7185
+ severity: "error"
7186
+ }
7187
+ ],
7188
+ ruleExecutions: []
7189
+ };
7190
+ }
7191
+ function validateEvaluateTraceContractArgs(input, contract) {
7192
+ if (isTraceCheckInputLike(input) && looksLikeTraceContract(contract)) {
7193
+ return void 0;
7194
+ }
7195
+ if (looksLikeTraceContract(input) && (isTraceCheckInputLike(contract) || isTraceReadLike(contract))) {
7196
+ return invalidContractInputResult();
7197
+ }
7198
+ if (isTraceReadLike(input)) {
7199
+ return invalidContractInputResult();
7200
+ }
7201
+ if (!isTraceCheckInputLike(input)) {
7202
+ return invalidContractInputResult();
7203
+ }
7204
+ if (!looksLikeTraceContract(contract)) {
7205
+ return invalidContractInputResult();
7206
+ }
7207
+ return void 0;
7208
+ }
7126
7209
  function evaluateTraceContract(input, contract, options = {}) {
7210
+ const inputGuard = validateEvaluateTraceContractArgs(input, contract);
7211
+ if (inputGuard !== void 0) {
7212
+ return inputGuard;
7213
+ }
7127
7214
  const shapeErrors = [
7128
7215
  ...validateAllowedStatusesShape(contract.run?.allowedStatuses),
7129
7216
  ...validateAlternativesShape(contract.alternatives),
@@ -8407,6 +8494,45 @@ function createToolOrderingRule(options) {
8407
8494
  requireEndpoints: false
8408
8495
  });
8409
8496
  }
8497
+ function createToolFailureRule(options) {
8498
+ return {
8499
+ id: "tool.failures",
8500
+ category: "tool",
8501
+ defaultSeverity: "error",
8502
+ evaluate(context) {
8503
+ const tools = finishedEvents(context, "TOOL");
8504
+ const failures = tools.filter((event) => event.status === "error");
8505
+ const retries = tools.map((event) => ({ event, count: retryCount(event) })).filter((item) => item.count !== void 0);
8506
+ const findings = [];
8507
+ if (options.maxFailures !== void 0 && failures.length > options.maxFailures) {
8508
+ findings.push(
8509
+ failFinding(
8510
+ "tool.failures",
8511
+ `Tool failure count ${failures.length} exceeded ${options.maxFailures}.`,
8512
+ failures.map((event) => eventEvidence3(event)),
8513
+ { maxFailures: options.maxFailures },
8514
+ failures.length
8515
+ )
8516
+ );
8517
+ }
8518
+ if (options.maxRetries !== void 0) {
8519
+ const excessiveRetries = retries.filter((item) => item.count > options.maxRetries);
8520
+ if (excessiveRetries.length > 0) {
8521
+ findings.push(
8522
+ failFinding(
8523
+ "tool.failures",
8524
+ `Tool retry count exceeded ${options.maxRetries}.`,
8525
+ excessiveRetries.map((item) => eventEvidence3(item.event, "attributes.retryCount")),
8526
+ { maxRetries: options.maxRetries },
8527
+ excessiveRetries.map((item) => ({ tool: toolName(item.event), retries: item.count }))
8528
+ )
8529
+ );
8530
+ }
8531
+ }
8532
+ return findings;
8533
+ }
8534
+ };
8535
+ }
8410
8536
  function createLlmUsageRule(options) {
8411
8537
  return {
8412
8538
  id: "llm.usage",
@@ -13649,21 +13775,48 @@ async function resolveSuiteCaseTrace(suiteCase, options) {
13649
13775
  }
13650
13776
 
13651
13777
  // packages/core/src/suite/run.ts
13778
+ var KNOWN_SUITE_SELECT_IDS = /* @__PURE__ */ new Set([
13779
+ "run.status",
13780
+ "run.duration",
13781
+ "run.depth",
13782
+ "outcome.status",
13783
+ "tool.usage",
13784
+ "tool.failures",
13785
+ "llm.usage"
13786
+ ]);
13652
13787
  function diagnostic5(code, message, severity = "error", caseId) {
13653
13788
  return { code, message, severity, ...caseId !== void 0 ? { caseId } : {} };
13654
13789
  }
13655
- function buildCaseRules(suiteCase, config) {
13790
+ function buildCaseAssertions(suiteCase, config) {
13656
13791
  const rules = [];
13657
13792
  const select = new Set(config.checks?.select ?? []);
13658
- if (select.has("run.status")) {
13793
+ const configDiagnostics = [];
13794
+ const evalConfig = config.eval;
13795
+ const declaredSelect = [...select];
13796
+ for (const id of declaredSelect) {
13797
+ if (!KNOWN_SUITE_SELECT_IDS.has(id)) {
13798
+ configDiagnostics.push(
13799
+ diagnostic5(
13800
+ "AI_SUITE_UNKNOWN_SELECTOR",
13801
+ `Unknown or unsupported suite check selector "${id}".`,
13802
+ "error",
13803
+ suiteCase.id
13804
+ )
13805
+ );
13806
+ }
13807
+ }
13808
+ if (select.has("run.status") || evalConfig?.requireSuccess === true) {
13659
13809
  rules.push(createRunStatusRule());
13810
+ select.add("run.status");
13660
13811
  }
13661
13812
  const requiredTools = [
13662
13813
  ...config.checks?.tool?.required ?? [],
13814
+ ...evalConfig?.requiredTools ?? [],
13663
13815
  ...suiteCase.requireTools ?? []
13664
13816
  ];
13665
13817
  const forbiddenTools = [
13666
13818
  ...config.checks?.tool?.forbidden ?? [],
13819
+ ...evalConfig?.forbiddenTools ?? [],
13667
13820
  ...suiteCase.forbidTools ?? []
13668
13821
  ];
13669
13822
  if (requiredTools.length > 0 || forbiddenTools.length > 0) {
@@ -13675,20 +13828,51 @@ function buildCaseRules(suiteCase, config) {
13675
13828
  );
13676
13829
  select.add("tool.usage");
13677
13830
  }
13678
- const maxDurationMs = suiteCase.maxDurationMs ?? config.checks?.run?.maxDurationMs ?? config.eval?.maxDurationMs;
13831
+ const maxDurationMs = suiteCase.maxDurationMs ?? config.checks?.run?.maxDurationMs ?? evalConfig?.maxDurationMs;
13679
13832
  if (maxDurationMs !== void 0) {
13680
13833
  rules.push(createRunDurationRule({ maxDurationMs }));
13681
13834
  select.add("run.duration");
13682
13835
  }
13683
- const llm = config.checks?.llm;
13684
- if (llm?.allowedModels !== void 0 || llm?.maxTotalTokens !== void 0) {
13685
- rules.push(createLlmUsageRule(llm));
13836
+ const maxDepth = config.checks?.run?.maxDepth ?? evalConfig?.maxDepth;
13837
+ if (maxDepth !== void 0) {
13838
+ rules.push(createRunDepthRule({ maxDepth }));
13839
+ select.add("run.depth");
13840
+ }
13841
+ if (evalConfig?.maxRetries !== void 0) {
13842
+ rules.push(createToolFailureRule({ maxRetries: evalConfig.maxRetries }));
13843
+ select.add("tool.failures");
13844
+ }
13845
+ const allowedModels = config.checks?.llm?.allowedModels;
13846
+ const maxTotalTokens = config.checks?.llm?.maxTotalTokens ?? evalConfig?.maxTotalTokens;
13847
+ if (allowedModels !== void 0 || maxTotalTokens !== void 0) {
13848
+ rules.push(
13849
+ createLlmUsageRule({
13850
+ ...allowedModels !== void 0 ? { allowedModels } : {},
13851
+ ...maxTotalTokens !== void 0 ? { maxTotalTokens } : {}
13852
+ })
13853
+ );
13686
13854
  select.add("llm.usage");
13687
13855
  }
13688
13856
  if (select.has("outcome.status")) {
13689
13857
  rules.push(createObservedOutcomeRule({ failOn: ["failed"] }));
13690
13858
  }
13691
- return { rules, select: [...select] };
13859
+ const observationCount = suiteCase.expectedObservations?.length ?? 0;
13860
+ if (rules.length === 0 && observationCount === 0 && configDiagnostics.length === 0) {
13861
+ configDiagnostics.push(
13862
+ diagnostic5(
13863
+ "AI_SUITE_NO_ASSERTIONS",
13864
+ `Suite case "${suiteCase.id}" declares no effective checks, eval controls, or expected observations.`,
13865
+ "error",
13866
+ suiteCase.id
13867
+ )
13868
+ );
13869
+ }
13870
+ return {
13871
+ rules,
13872
+ select: [...select],
13873
+ observationCount,
13874
+ configDiagnostics
13875
+ };
13692
13876
  }
13693
13877
  function outcomesFromRead(read) {
13694
13878
  const persistedOutcomes = extractOutcomesFromPersistedEvents(
@@ -13769,8 +13953,20 @@ async function runSuiteCase(suiteCase, config, options) {
13769
13953
  ]
13770
13954
  };
13771
13955
  }
13772
- const { rules, select } = buildCaseRules(suiteCase, config);
13773
- const checkResult = rules.length > 0 ? runTraceChecks({ read }, { rules, select }) : {
13956
+ const compiled = buildCaseAssertions(suiteCase, config);
13957
+ if (compiled.configDiagnostics.length > 0) {
13958
+ return {
13959
+ id: suiteCase.id,
13960
+ status: "error",
13961
+ tracePath: resolved.tracePath,
13962
+ ...resolved.runId !== void 0 ? { runId: resolved.runId } : {},
13963
+ checkOk: false,
13964
+ ...config.eval?.requireSuccess === true ? { evalOk: false } : {},
13965
+ message: compiled.configDiagnostics.map((item) => item.message).join("; "),
13966
+ diagnostics: compiled.configDiagnostics
13967
+ };
13968
+ }
13969
+ const checkResult = compiled.rules.length > 0 ? runTraceChecks({ read }, { rules: compiled.rules, select: compiled.select }) : {
13774
13970
  ok: true,
13775
13971
  status: "pass",
13776
13972
  format: read.format,
@@ -13798,6 +13994,9 @@ async function runSuiteCase(suiteCase, config, options) {
13798
13994
  ];
13799
13995
  const checkOk = checkResult.ok;
13800
13996
  const observationsOk = observationResult.ok;
13997
+ const evalOk = config.eval?.requireSuccess === true ? checkResult.findings.every(
13998
+ (finding) => finding.ruleId !== "run.status" || finding.status !== "fail"
13999
+ ) && checkResult.diagnostics.every((item) => item.severity !== "error") : void 0;
13801
14000
  const ok = checkOk && observationsOk;
13802
14001
  const status = ok ? "pass" : checkResult.status === "error" ? "error" : "fail";
13803
14002
  return {
@@ -13806,6 +14005,7 @@ async function runSuiteCase(suiteCase, config, options) {
13806
14005
  tracePath: resolved.tracePath,
13807
14006
  ...resolved.runId !== void 0 ? { runId: resolved.runId } : {},
13808
14007
  checkOk,
14008
+ ...evalOk !== void 0 ? { evalOk } : {},
13809
14009
  observationsOk,
13810
14010
  diagnostics,
13811
14011
  ...ok ? {} : {
@@ -14973,5 +15173,5 @@ function renderGateReport(result, options = {}) {
14973
15173
  }
14974
15174
 
14975
15175
  export { ATTRIBUTION_CONFIDENCES, COHORT_METRIC_IDS, DEFAULT_REDACT_KEYS, DEFAULT_SUITE_ARTIFACTS_DIR, EVIDENCE_FORMAT_VERSION, EVIDENCE_HTML_FILENAME, EVIDENCE_MANIFEST_FILENAME, Redactor, TraceDirectory, TraceReadError, TreeBuilder, aggregateBundleSafeStatus, aggregateSessionCheckResults, analyzeCohort, applyProfileMetadataCaps, assertBundlePathContained, assertEvidenceRelativePath, buildActivitySummary, buildBundleMetadata, buildBundleSummaryMarkdown, buildEvidenceCausalFailureViewHtml, buildEvidenceCiPackage, buildEvidenceCircuitViewHtml, buildEvidenceContractsViewHtml, buildEvidenceDiffViewHtml, buildEvidenceHtmlShell, buildEvidenceManifest, buildEvidenceOutcomesViewHtml, buildEvidenceProvenanceViewHtml, buildEvidenceSafetyViewHtml, buildEvidenceTimelineViewHtml, buildEvidenceToolsLlmViewHtml, buildEvidenceTreeViewHtml, buildLocalExplanation, buildPlaceholderArtifact, buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildSessionIndex, buildTraceStats, buildZipArchive, bundleFailsOnSafety, bundleRunAssetRelativePath, collectTraceSchemaVersions, compactAttributes, createBaselineRegressionRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRunDepthRule, createRunDurationRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStructureCycleRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolUsageRule, defaultBundleOutputPath, defaultSuiteConfigTemplate, defineTraceContract, diffRuns, diffTraceEvents, enrichSessionRunRecord, escapeHtml, escapeMarkdown, evaluateTraceContract, extractMetadata, extractOutcomesFromTraceEvents, filterMetasBySessionScope, filterTraces, flattenTree, formatDuration2 as formatDuration, formatStepLabel, formatTimestamp, gateHasThresholds, getIndent, getTraceFilePath, inferEvidenceFileRole, isAgentInspectTrace, isAttributionConfidence, isCredentialSensitiveKey, isPersistedInspectEvent, loadSessionRunRecords, loadSuiteConfig, loadTraceMetadataList, manualTraceEventsToComparableRun, nanoid, normalizeBundleOutputPath, openTrace, parseCohortMetricList, parseDuration, parseDurationFilter, parseGateList, parseTraceJsonl, persistedInspectEventsToRunTrees, persistedInspectEventsToTraceEvents, projectLogicalEvents, renderActivitySummaryHuman, renderCohortReport, renderErrorLine, renderGateReport, renderObservedOutcomesHtml, renderObservedOutcomesMarkdown, renderRunDiff, renderRunWhat, renderStepLine, renderSuiteReport, renderTimeline, renderTraceStats, resolveBundleRunIds, resolveRedactionProfile, resolveSuiteTemplate, resolveTraceDir, runGate, runSuite, runTraceChecks, safeString, sanitizeBundleRunId, searchTraces, serializeEvidenceManifest, sha256Hex, stableJson, stringContainsHighConfidenceCredential, summarizeObservedOutcomes, summarizeSemanticParity, traceEventToPersistedInspectEvent, truncateName, truncateStringForProfile, validateEvent, validateSuiteConfig, verifyEvidenceDirectory, zeroKinds };
14976
- //# sourceMappingURL=chunk-6FE47XSF.mjs.map
14977
- //# sourceMappingURL=chunk-6FE47XSF.mjs.map
15176
+ //# sourceMappingURL=chunk-JCKC4ZRV.mjs.map
15177
+ //# sourceMappingURL=chunk-JCKC4ZRV.mjs.map