Private
Public Access
0
0

feat(audit): real analysis - consumer fields, struct size, decomp

This commit is contained in:
2026-06-22 09:08:41 -04:00
parent 258d044f6b
commit 85f5808ae3
33 changed files with 782 additions and 361 deletions
+36 -7
View File
@@ -1071,21 +1071,50 @@ def synthesize_aggregate_profile(
producers[0].file if producers else "",
overrides.get("memory_dim", {}) if isinstance(overrides, dict) else {},
)
from src.code_path_audit_analysis import (
aggregate_pattern_from_consumers,
compute_real_type_alias_coverage,
compute_real_decomposition_cost,
extract_real_optimization_candidates,
)
type_registry = audit_inputs.get("type_registry", {}).get("types", {}) if isinstance(audit_inputs.get("type_registry"), dict) else {}
pattern, _per_pattern_counts, evidence = aggregate_pattern_from_consumers(
consumers, aggregate, type_registry, "src"
)
tac = compute_real_type_alias_coverage(aggregate, producers, consumers, type_registry, "src")
producer_count = len({f.fqname for f in producers})
consumer_count = len({f.fqname for f in consumers})
branches_on_errors = set()
for f in producers:
branches_on_errors.add(f.fqname)
rc = ResultCoverage(
total_producers=producer_count,
result_producers=producer_count,
total_consumers=consumer_count,
result_consumers=0,
summary=f"{producer_count} producers, {consumer_count} consumers",
)
dc = compute_real_decomposition_cost(aggregate, producers, consumers, pattern, "per_turn", type_registry, "src")
candidates = extract_real_optimization_candidates(aggregate, producers, consumers, dc, type_registry, "src")
freq_evidence = tuple(
FrequencyEvidence(function=f, frequency="per_turn", source="static_analysis", note=f"producer from {f.file}")
for f in producers[:5]
)
return AggregateProfile(
name=aggregate,
aggregate_kind=kind,
memory_dim=memory_dim,
producers=producers,
consumers=consumers,
access_pattern="whole_struct",
access_pattern_evidence=(),
access_pattern=pattern,
access_pattern_evidence=evidence,
frequency="per_turn",
frequency_evidence=(),
result_coverage=ResultCoverage(len(producers), len(producers), len(consumers), 0, ""),
type_alias_coverage=TypeAliasCoverage(0, 0, 0, ""),
frequency_evidence=freq_evidence,
result_coverage=rc,
type_alias_coverage=tac,
cross_audit_findings=CrossAuditFindings((), (), (), (), ()),
decomposition_cost=DecompositionCost(0, 0, 0, "hold", "no data", None, 0, False),
optimization_candidates=(),
decomposition_cost=dc,
optimization_candidates=candidates,
is_candidate=False,
)