refactor(evidence): unify retained inputs across domains (#8299)

Declare logical Evidence sources once and resolve exact retained inputs through
shared application workflows across 20 composition tools. Preserve domain-owned
authentication, source closure, caller choices, coverage and resource admission.

Validation includes public CLI/MCP regressions, local Codex terra/high trials
and fresh-import real-artifact workflows. Measurements, failed attempts and
coverage limits are recorded in docs/verification/evidence-input-composition-2026-10-31.md.

Fixes #8293.
Fixes #8281.

Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
This commit is contained in:
gensokyo-dev authored and GitHub committed 2026-10-31 14:45:21 +00:00
1 parent 23de10bb28
commit a989c0e458
114 files changed
+8532 -1383

No files matched your search

@@ -3,19 +3,17 @@ import {
localPathStringSchema,
} from "../../domain/localPath.js";
import { sourceToBundleViewRequestSchema } from "../../domain/analysisView/sourceToBundleView.js";
import { evidenceSchema } from "../../domain/evidence.js";
import { z } from "zod";
import { evidenceInputSchema } from "../../domain/evidenceReference.js";
import { compareApplicationVersionsInputSchema } from "../../domain/javascript/javascriptApplicationVersionComparisonSchemas.js";
import { compareJavaScriptExportShapesInputSchema } from "../../domain/javascript/javascriptExportShapeComparisonSchemas.js";
import { traceApplicationFeatureInputSchema } from "../../domain/javascript/javascriptFeatureTraceSchemas.js";
import { javaScriptSemanticQueryInputSchema } from "../../domain/javascript/javascriptSemanticQuerySchemas.js";
import { traceJavaScriptSemanticsInputSchema } from "../../domain/javascript/javascriptSemanticTraceSchemas.js";
import { compareSourceToBundleInputSchema } from "../../domain/javascript/sourceToBundleComparisonSchemas.js";
import { reconcileJavaScriptRuntimeInputSchema } from "../../domain/javascript/javascriptRuntimeReconciliationSchemas.js";
const traceApplicationFeatureFacts = {
native_observations:
traceApplicationFeatureInputSchema.shape.native_observations,
native_observations: z.array(evidenceInputSchema).default([]),
seed: traceApplicationFeatureInputSchema.shape.seed,
semantic_page: traceApplicationFeatureInputSchema.shape.semantic_page,
direction: traceApplicationFeatureInputSchema.shape.direction,
@@ -28,16 +26,14 @@ export const traceApplicationFeatureRequestSchema = z.strictObject({
});
/** Semantic trace request accepting inline or same-session application Evidence. */
export const traceJavaScriptSemanticsRequestSchema = z.strictObject({
application: evidenceInputSchema,
query: javaScriptSemanticQueryInputSchema,
});
export const traceJavaScriptSemanticsRequestSchema =
traceJavaScriptSemanticsInputSchema.extend({
application: evidenceInputSchema,
});
const compareApplicationVersionsFacts = {
left_native_observations:
compareApplicationVersionsInputSchema.shape.left_native_observations,
right_native_observations:
compareApplicationVersionsInputSchema.shape.right_native_observations,
left_native_observations: z.array(evidenceInputSchema).default([]),
right_native_observations: z.array(evidenceInputSchema).default([]),
} as const;
/** Application comparison request accepting inline or same-session application Evidence. */
@@ -65,7 +61,7 @@ export const compareSourceToBundleCliInputSchema = z.strictObject({
compareSourceToBundleInputSchema.shape.reference,
referenceFile,
]),
application: evidenceSchema,
application: evidenceInputSchema,
});
/** The MCP host accepts absolute local paths; omitted view preserves the full report. */
export const compareSourceToBundleRequestSchema = z.strictObject({
@@ -94,3 +90,15 @@ export const compareJavaScriptExportShapesRequestSchema = z.strictObject({
left: evidenceInputSchema,
right: evidenceInputSchema,
});
/** Static layers and passive observations share the same logical Evidence inputs. */
export const reconcileJavaScriptRuntimeRequestSchema = z.strictObject({
static_layers: z
.array(
reconcileJavaScriptRuntimeInputSchema.shape.static_layers.element.extend({
analysis: evidenceInputSchema,
}),
)
.min(1),
runtime_observations: z.array(evidenceInputSchema).min(1),
});
@@ -28,10 +28,8 @@ import {
analyzeJavaScriptApplicationInputSchema,
javascriptApplicationAnalysisResultSchema,
} from "../../domain/javascript/javascriptApplicationAnalysis.js";
import {
javascriptRuntimeReconciliationResultSchema,
reconcileJavaScriptRuntimeInputSchema,
} from "../../domain/javascript/javascriptRuntimeReconciliationSchemas.js";
import { javascriptRuntimeReconciliationResultSchema } from "../../domain/javascript/javascriptRuntimeReconciliationSchemas.js";
import { reconcileJavaScriptRuntimeRequestSchema } from "./applicationWorkflowInputContracts.js";
import { JAVASCRIPT_RUNTIME_RECONCILIATION_EXAMPLE } from "./javascriptRuntimeReconciliationExample.js";
const listOutputSchema = evidenceResultOf(electronTargetListSchema);
@@ -149,7 +147,7 @@ export const ELECTRON_TOOL_CONTRACTS = [
description:
"Reconcile verified static JavaScript application graphs with existing passive web/Electron CDP, passive V8 Inspector, or provider-owned active Electron Evidence. Active Electron captures contribute an explicitly partial target-only runtime record; they never invent renderer scripts, frames, workers, or execution claims. Exact captured-source digests take priority over caller-declared file/URL mappings; target, frame, script, and worker ambiguity remains explicit, and source-map authority stays separate.",
kind: "electron-provider",
inputSchema: reconcileJavaScriptRuntimeInputSchema,
inputSchema: reconcileJavaScriptRuntimeRequestSchema,
outputSchema: reconciliationOutputSchema,
examples: [
{