1#![warn(missing_docs)]
10#![cfg_attr(
11 test,
12 allow(
13 clippy::expect_used,
14 reason = "tests use expect to keep serialization assertions concise"
15 )
16)]
17
18mod analysis_sarif;
19mod audit_branching;
20mod audit_brief;
21mod audit_decision_surface;
22mod audit_focus;
23mod audit_ownership;
24mod audit_render;
25mod audit_routing;
26mod audit_walkthrough;
27mod audit_weakening;
28mod baseline_staleness;
29mod check;
30mod ci_output;
31mod codeclimate;
32mod coverage_envelopes;
33mod dead_code_sarif;
34mod diff;
35mod doctor;
36mod dupes;
37mod entry_weight;
38mod error_envelope;
39mod feature_flags;
40mod finding_id_query;
41mod fix;
42mod gate_outcomes;
43mod health;
44mod health_actions;
45mod health_coverage;
46mod health_coverage_gaps;
47mod health_coverage_intelligence;
48mod health_css;
49mod health_diagnostics;
50mod health_findings;
51mod health_grouped;
52mod health_report;
53mod health_runtime_coverage;
54mod health_scores;
55mod health_targets;
56mod health_trends;
57mod health_vital_signs;
58mod impact;
59mod inspect_envelopes;
60mod issue_contract;
61mod json_paths;
62mod list_envelopes;
63mod next_steps;
64mod package_baselines;
65mod pr_comment_envelope;
66mod pr_comment_post_plan;
67mod pr_decision;
68mod pr_details;
69mod pr_status;
70mod pr_summary;
71mod report_contract;
72mod request_outcomes;
73mod review_envelopes;
74mod root_envelopes;
75mod sarif;
76mod saved_health;
77mod security;
78mod similar_code;
79mod static_str;
80mod suppressions;
81mod trace_envelopes;
82mod type_aware_envelopes;
83mod walkthrough_render;
84
85pub use analysis_sarif::{
86 annotate_sarif_results, build_duplication_sarif, build_grouped_duplication_sarif,
87 build_health_sarif,
88};
89pub use audit_branching::{
90 BranchingCognitive, BranchingFileDelta, BranchingMetric, BranchingReport, BranchingScope,
91 BranchingSnapshot, CognitiveAttribution, DEFAULT_BRANCHING_TOLERANCE, SplitInPlace,
92};
93pub use audit_brief::{
94 AFFECTED_DIR_CAP, AFFECTED_SAMPLE_CAP, AffectedDirectory, CoordinationGapFact, DiffTriage,
95 GraphFacts, ImpactClosureFacts, PartitionFacts, REVIEW_BRIEF_SCHEMA_VERSION, ReviewBriefHeader,
96 ReviewBriefOutput, ReviewBriefSchemaVersion, ReviewBriefSubtractSections,
97 ReviewBriefWireOutput, ReviewDeltas, ReviewEffort, ReviewUnitFact, RiskClass,
98 StandardReviewBriefOutput, build_review_brief_json_output,
99 serialize_decision_surface_json_output, serialize_review_brief_json_output,
100 serialize_walkthrough_guide_json_output, serialize_walkthrough_validation_json_output,
101};
102pub use audit_decision_surface::{
103 DECISION_SURFACE_SCHEMA_VERSION, Decision, DecisionAction, DecisionActionType,
104 DecisionCategory, DecisionSurface, DecisionSurfaceOutput, DecisionSurfaceSchemaVersion,
105 DecisionWithActions, TruncationNote, build_decision_surface_output, suppress_comment,
106};
107pub use audit_focus::{ConfidenceFlag, FocusLabel, FocusMap, FocusScore, FocusUnit};
108pub use audit_ownership::{OWNER_GROUP_CAP, OwnerGroupFact, OwnershipFacts, OwnershipSliceFact};
109pub use audit_render::{
110 AuditDisplayGate, AuditDisplaySeverity, AuditStylingContextLabelInput,
111 styling_audit_context_label, styling_candidate_count,
112};
113pub use audit_routing::{RoutingFacts, RoutingUnit};
114pub use audit_walkthrough::{
115 AcceptedJudgment, AgentJudgment, AgentSchema, AgentWalkthrough, ChangeAnchor, DirectionUnit,
116 INJECTION_NOTE, JUDGMENT_ACTIONS, JUDGMENT_CONCERNS, RejectedJudgment, ReviewDirection,
117 StandardWalkthroughGuide, TestAdjacency, WalkthroughGuide, WalkthroughValidation, agent_schema,
118 is_judgment_action,
119};
120pub use audit_weakening::{WeakeningKind, WeakeningSignal};
121pub use baseline_staleness::{
122 BaselineScopeReasons, BaselineStaleness, BaselineStalenessAdvisory, ScopeReason,
123};
124pub use check::{
125 CHECK_SCHEMA_VERSION, CheckGroupedEntry, CheckGroupedOutput, CheckOutput, CheckOutputInput,
126 GroupByMode, apply_config_fixable_to_duplicate_exports, build_check_output,
127 harmonize_dead_code_health_suppress_line_actions, harmonize_multi_kind_suppress_line_actions,
128 serialize_check_grouped_json_output, serialize_check_json_output,
129};
130pub use ci_output::{
131 CiIssue, CiLocation, CiProvider, GroupedReviewIssues, MARKER_PREFIX_V3, MARKER_SUFFIX_V3,
132 MAX_COMMENT_BODY_BYTES, PROJECT_LEVEL_RULE_IDS, PrCommentRenderInput, ReviewCommentRenderInput,
133 ReviewEnvelopeRenderInput, ReviewEnvelopeRenderResult, ReviewEnvelopeTruncation,
134 ReviewGitlabDiffRefs, apply_path_prefix, command_title, github_check_conclusion,
135 group_review_issues_by_path_line, is_project_level_rule, issues_from_codeclimate,
136 issues_from_codeclimate_issues, markdown_code_span, markdown_table_code_span,
137 markdown_table_text, render_pr_comment, render_pr_comment_with_verdict,
138 render_review_comment_for_group, render_review_envelope,
139 render_review_envelope_with_conclusion, render_scoped_review_envelope,
140 render_scoped_review_envelope_with_conclusion, summary_label,
141};
142pub use codeclimate::{
143 CodeClimateAnnotationField, CodeClimateIssue, CodeClimateIssueInput, CodeClimateIssueKind,
144 CodeClimateLines, CodeClimateLocation, CodeClimateOutput, CodeClimateSeverity,
145 annotate_codeclimate_issues, build_codeclimate_issue, codeclimate_fingerprint_hash,
146 codeclimate_issues_to_value,
147};
148pub use coverage_envelopes::{
149 CoverageAnalyzeOutput, CoverageAnalyzeSchemaVersion, CoverageSetupFileToEdit,
150 CoverageSetupFramework, CoverageSetupMember, CoverageSetupOutput, CoverageSetupPackageManager,
151 CoverageSetupRuntimeTarget, CoverageSetupSchemaVersion, CoverageSetupSnippet,
152 build_coverage_analyze_output, serialize_coverage_analyze_json_output,
153 serialize_coverage_setup_json_output,
154};
155pub use dead_code_sarif::build_dead_code_sarif;
156pub use diff::{
157 DiffIndex, MAX_ADDED_LINES, MAX_DIFF_BYTES, parse_new_hunk_start, relative_to_diff_path,
158};
159pub use doctor::{
160 DOCTOR_SCHEMA_VERSION, DoctorCheck, DoctorCheckCategory, DoctorCheckId, DoctorCheckStatus,
161 DoctorOutput, DoctorRemediation, DoctorStatus, DoctorSummary, serialize_doctor_json_output,
162};
163pub use dupes::{
164 CloneFamilyAction, CloneFamilyActionType, CloneGroupAction, CloneGroupActionType,
165 DUPES_PROGRAMMATIC_SCHEMA_VERSION, DUPES_SCHEMA_VERSION, DupesOutput, DupesOutputInput,
166 build_dupes_output, clone_family_actions, clone_group_actions, serialize_dupes_json_output,
167};
168pub use entry_weight::{
169 DominatingImportOutput, EagerPackageOutput, EntryWeightDelta, EntryWeightListing,
170 EntryWeightOutput, EntryWeightRegression, EntryWeightUnit,
171};
172pub use error_envelope::ErrorOutput;
173pub use fallow_types::envelope;
174pub use fallow_types::output;
175pub use fallow_types::output_dead_code;
176pub use fallow_types::output_format::OutputFormat;
177pub use fallow_types::output_health;
178pub use feature_flags::{
179 FEATURE_FLAGS_SCHEMA_VERSION, FeatureFlagAction, FeatureFlagActionType, FeatureFlagConfidence,
180 FeatureFlagDeadCodeOverlap, FeatureFlagFinding, FeatureFlagKind, FeatureFlagsConfidenceMeta,
181 FeatureFlagsKindMeta, FeatureFlagsMeta, FeatureFlagsMetaDetails, FeatureFlagsOutput,
182 FeatureFlagsOutputInput, build_feature_flags_output, feature_flags_meta,
183 serialize_feature_flags_json_output,
184};
185pub use finding_id_query::{FindingIdQuery, FindingIdQueryReason};
186pub use fix::{FixJsonOutput, FixJsonOutputInput, count_applied_fixes, serialize_fix_json_output};
187pub use gate_outcomes::{GateFile, GateName, GateOutcome, GateOutcomes, GateStatus};
188pub use health::{
189 HEALTH_SCHEMA_VERSION, HealthJsonOutputInput, HealthOutput, HealthOutputInput,
190 serialize_health_json_output,
191};
192pub use health_actions::HealthActionsMeta;
193pub use health_coverage::{CoverageInputFormat, CoverageModel};
194pub use health_coverage_gaps::{
195 CoverageGapSummary, CoverageGaps, UntestedExport, UntestedExportFinding, UntestedFile,
196 UntestedFileFinding,
197};
198pub use health_coverage_intelligence::{
199 CoverageIntelligenceAction, CoverageIntelligenceConfidence, CoverageIntelligenceEvidence,
200 CoverageIntelligenceFinding, CoverageIntelligenceMatchConfidence,
201 CoverageIntelligenceRecommendation, CoverageIntelligenceReport,
202 CoverageIntelligenceSchemaVersion, CoverageIntelligenceSignal, CoverageIntelligenceSummary,
203 CoverageIntelligenceVerdict,
204};
205pub use health_css::{
206 ConsumerKind, CssAnalyticsReport, CssAnalyticsSummary, CssBlockOccurrence, CssCandidateAction,
207 CssCandidateActionType, CssDuplicateBlock, CssFileAnalytics, CssNotationConsistency,
208 CssNotationCount, CvaDuplicateVariantBlock, CvaVariantTokenDrift, NearDuplicateThemeToken,
209 NearestStylingToken, RawStyleValue, ScopedUnusedClasses, StylingAgentDisposition,
210 StylingFinding, StylingFindingConfidence, StylingFindingSeverity, TOKEN_CONSUMER_SAMPLE_CAP,
211 TailwindArbitraryValue, TokenConsumerLocation, TokenConsumers, UndefinedKeyframes,
212 UnreferencedCssClass, UnreferencedKeyframes, UnresolvedClassReference, UnusedAtRule,
213 UnusedAtRuleKind, UnusedFontFace, UnusedThemeToken,
214};
215pub use health_diagnostics::{
216 FrameworkHealthDetector, FrameworkHealthDetectorStatus, FrameworkHealthDiagnostics,
217 HealthTimings,
218};
219pub use health_findings::{
220 HealthActionContext, HealthActionOptions, HealthFinding, HotspotFinding,
221 RefactoringTargetFinding, SFC_TEMPLATE_SUPPRESS_COMMENT, build_health_finding_actions,
222};
223pub use health_grouped::{
224 GroupTrendStatus, HealthGroup, HealthGrouping, group_score_delta_label,
225 health_groups_in_display_order,
226};
227pub use health_report::{HealthReport, HealthSection};
228pub use health_runtime_coverage::{
229 OPTIMIZATION_TARGET_UNMATCHED_WARNING, RUNTIME_STALE_AFTER_DAYS, RuntimeCoverageAction,
230 RuntimeCoverageBlastRadiusEntry, RuntimeCoverageCaptureQuality, RuntimeCoverageConfidence,
231 RuntimeCoverageCostBasis, RuntimeCoverageDataSource, RuntimeCoverageDiscriminators,
232 RuntimeCoverageEvidence, RuntimeCoverageFinding, RuntimeCoverageHotPath,
233 RuntimeCoverageImportanceEntry, RuntimeCoverageMessage, RuntimeCoverageOptimizationTarget,
234 RuntimeCoverageProvenance, RuntimeCoverageReport, RuntimeCoverageReportVerdict,
235 RuntimeCoverageRiskBand, RuntimeCoverageSchemaVersion, RuntimeCoverageSignal,
236 RuntimeCoverageSummary, RuntimeCoverageVerdict, RuntimeCoverageWatermark,
237};
238pub use health_scores::{
239 COGNITIVE_EXTRACTION_THRESHOLD, ClockProvenance, ClockSource, ComplexityViolation,
240 ComponentRollup, ContributorEntry, ContributorIdentifierFormat, CoverageSource,
241 CoverageSourceConsistency, CoverageTier, DEFAULT_COGNITIVE_CRITICAL, DEFAULT_COGNITIVE_HIGH,
242 DEFAULT_CYCLOMATIC_CRITICAL, DEFAULT_CYCLOMATIC_HIGH, ExceededThreshold, FileHealthScore,
243 FindingSeverity, HEALTH_SCORE_FORMULA_VERSION, HOTSPOT_SCORE_THRESHOLD,
244 HealthConfiguredThresholds, HealthEffectiveThresholds, HealthScore, HealthScorePenalties,
245 HealthSummary, HotspotEntry, HotspotSummary, LargeFunctionEntry, MI_DENSITY_MIN_LINES,
246 OwnershipMetrics, OwnershipState, ReactHookProfile, STYLING_HEALTH_FORMULA_VERSION,
247 StylingHealth, StylingHealthConfidence, StylingHealthPenalties, ThresholdOverrideDimension,
248 ThresholdOverrideMetrics, ThresholdOverrideState, ThresholdOverrideStatus, ThresholdSource,
249 compute_finding_severity, letter_grade, summarize_coverage_source_consistency,
250};
251pub use health_targets::{
252 CloneSiblingEvidence, Confidence, ContributingFactor, DirectCallerEvidence,
253 DirectCallerSymbolEvidence, EffortEstimate, EvidenceFunction, RecommendationCategory,
254 RefactoringTarget, TargetEvidence, TargetThresholds,
255};
256pub use health_trends::{
257 HealthTrend, TrendCount, TrendDirection, TrendMetric, TrendPoint, health_score_comparison_note,
258};
259pub use health_vital_signs::{
260 CyclomaticPopulation, CyclomaticUnitPopulation, GroupSnapshot, RenderFanInTopComponent,
261 RiskProfile, SNAPSHOT_SCHEMA_VERSION, SnapshotGrouping, VitalSigns, VitalSignsCounts,
262 VitalSignsSnapshot,
263};
264pub use impact::{
265 ContainmentEvent, CrossRepoImpactReport, CrossRepoImpactSchemaVersion, CrossRepoProjectEntry,
266 CrossRepoTotals, EnabledSource, GateRunCounts, ImpactCounts, ImpactReport,
267 ImpactReportSchemaVersion, ImpactTrendDirection, ResolutionEvent, TrendSummary,
268 serialize_cross_repo_impact_json_output, serialize_impact_json_output,
269};
270pub use inspect_envelopes::{
271 ExplainOutput, InspectEvidence, InspectEvidenceScope, InspectEvidenceSection,
272 InspectFileIdentity, InspectIdentity, InspectOutput, InspectSectionStatus,
273 InspectSymbolIdentity, InspectTargetDescriptor, serialize_explain_json_output,
274 serialize_inspect_json_output,
275};
276pub use issue_contract::{
277 ACTIONS_AUTO_FIXABLE_FIELD_DEFINITION, ACTIONS_FIELD_DEFINITION, CHECK_DOCS,
278 CODECLIMATE_RESULT_CODES, IssueOutputContract, TsAliasMeta, check_meta,
279 issue_output_contract_by_code, issue_output_contracts, rule_docs_url,
280};
281pub use json_paths::{normalize_uri, strip_root_prefix};
282pub use list_envelopes::{
283 BoundariesListLogicalGroup, BoundariesListRule, BoundariesListZone, BoundariesListing,
284 ListBoundariesOutput, ListEntryPointOutput, ListOutput, ListPluginOutput, WorkspaceInfo,
285 WorkspacesOutput, serialize_list_boundaries_json_output, serialize_list_workspaces_json_output,
286};
287pub use next_steps::{
288 AuditNextStepsInput, BaselineRecheckInput, CombinedNextStepsInput, DeadCodeNextStepsInput,
289 DupesNextStepsInput, HealthNextStepsInput, ImpactDigestCounts, TraceUnusedExportInput,
290 build_audit_next_steps, build_audit_next_steps_input, build_combined_next_steps,
291 build_dead_code_next_steps, build_dupes_next_steps, build_health_next_steps,
292 build_health_next_steps_input, impact_digest_summary, trace_unused_export_input,
293};
294pub use package_baselines::PackageBaselineStatus;
295pub use pr_comment_envelope::{PrCommentEnvelope, PrCommentTruncation};
296pub use pr_comment_post_plan::{
297 ExistingPrComment, PrCommentPostAction, PrCommentPostPlan, PrCommentPostPlanInput,
298 PrCommentPostSkipReason, plan_pr_comment_post,
299};
300pub use pr_decision::{
301 PR_DECISION_SCHEMA, PrDecisionAnnotation, PrDecisionAnnotationLevel, PrDecisionConclusion,
302 PrDecisionDetails, PrDecisionGate, PrDecisionSurface,
303};
304pub use pr_details::{PR_DETAILS_SCHEMA, PrDetailsArtifact, PrDetailsRow, PrDetailsSection};
305pub use pr_status::{PrStatusContext, PrStatusMode, pr_status_contexts_with_mode};
306pub use pr_summary::{
307 PrCommentLayout, PrSummaryArea, PrSummaryFinding, PrSummaryInput, PrSummaryScope,
308 PrSummaryStatus, render_pr_summary,
309};
310pub use report_contract::{
311 COVERAGE_ANALYZE_DOCS, COVERAGE_SETUP_DOCS, DUPES_DOCS, HEALTH_DOCS, SecurityRuleMeta,
312 coverage_analyze_meta, coverage_setup_meta, dupes_meta, health_meta, security_meta,
313};
314pub use request_outcomes::{RequestName, RequestOutcome, RequestOutcomes, RequestStatus};
315pub use review_envelopes::{
316 GitHubReviewComment, GitHubReviewSide, GitLabReviewComment, GitLabReviewPosition,
317 GitLabReviewPositionType, MARKER_REGEX_V3, ReviewCheckConclusion, ReviewComment,
318 ReviewEnvelopeEvent, ReviewEnvelopeMeta, ReviewEnvelopeOutput, ReviewEnvelopeSchema,
319 ReviewEnvelopeSummary, ReviewEnvelopeWireOutput, ReviewId, ReviewProvider,
320 ReviewReconcileOutput, ReviewReconcileSchema, body_matches_review_id, is_false,
321 parse_review_id_marker, review_id_marker, serialize_review_envelope_json_output,
322 serialize_review_reconcile_json_output, serialize_scoped_review_envelope_json_output,
323 validate_review_body_scope,
324};
325pub use root_envelopes::{
326 AUDIT_SCHEMA_VERSION, AuditCommand, AuditOutput, COMBINED_SCHEMA_VERSION, CombinedMeta,
327 CombinedOutput, FallowOutput, attach_telemetry_meta, serialize_audit_json_output,
328 serialize_combined_json_output, serialize_json_root_output, serialize_named_json_output,
329};
330pub use sarif::{
331 GHAS_SARIF_FINGERPRINT_KEY, SARIF_FINDING_ID_KEY, SARIF_FINGERPRINT_KEY, SarifDocumentInput,
332 SarifFindingFields, SarifFindingInput, SarifResultInput, SarifRuleInput,
333 SarifSourceSnippetCache, append_sarif_findings, build_sarif_document, build_sarif_result,
334 build_sarif_result_with_snippet, build_sarif_rule, ensure_unique_result_fingerprints,
335 sarif_finding_fingerprint,
336};
337pub use saved_health::health_report_from_saved_value;
338pub use security::{
339 SECURITY_SCHEMA_VERSION, SecurityBlindSpotFile, SecurityBlindSpotGroup,
340 SecurityBlindSpotsOutput, SecurityBlindSpotsSchemaVersion, SecurityBlindSpotsSummary,
341 SecurityGate, SecurityGateVerdict, SecurityOutput, SecurityOutputConfig,
342 SecurityOutputRulesConfig, SecurityReachabilityCounts, SecurityRuleSeverityConfig,
343 SecurityRuntimeStateCounts, SecuritySchemaVersion, SecuritySeverityCounts, SecuritySummary,
344 SecuritySummaryOutput, SecuritySurvivor, SecuritySurvivorsOutput,
345 SecuritySurvivorsSchemaVersion, SecuritySurvivorsSummary, SecurityUnresolvedCalleeDiagnostics,
346 SecurityUnresolvedCalleeReasonCount, SecurityUnresolvedCalleeSample,
347 SecurityUnresolvedCalleeTopFile, SecurityVerifierVerdict, SecurityVerifierVerdictStatus,
348 serialize_security_blind_spots_json_output, serialize_security_json_output,
349 serialize_security_summary_json_output, serialize_security_survivors_json_output,
350 validate_saved_security_envelope,
351};
352pub use similar_code::{
353 SIMILAR_CODE_CACHE_CLEAR_SCHEMA_VERSION, SIMILAR_CODE_INSPECT_SCHEMA_VERSION,
354 SIMILAR_CODE_REVIEW_SCHEMA_VERSION, SIMILAR_CODE_SCHEMA_VERSION,
355 SIMILAR_CODE_STATUS_SCHEMA_VERSION, SimilarCodeAction, SimilarCodeActionType,
356 SimilarCodeCacheClearOutput, SimilarCodeCacheClearSchemaVersion, SimilarCodeCacheStatus,
357 SimilarCodeCacheSummary, SimilarCodeCandidate, SimilarCodeCandidateSnapshot,
358 SimilarCodeCompletion, SimilarCodeCompletionStatus, SimilarCodeDiagnostic,
359 SimilarCodeDiagnosticDomain, SimilarCodeDomainOutcome, SimilarCodeEnrichmentAvailability,
360 SimilarCodeEnrichmentState, SimilarCodeGeneration, SimilarCodeGenerationParameters,
361 SimilarCodeInspectOutput, SimilarCodeInspectPacket, SimilarCodeInspectSchemaVersion,
362 SimilarCodeLimits, SimilarCodeLocation, SimilarCodeModelProvenance, SimilarCodeNamedReference,
363 SimilarCodeOutput, SimilarCodePhase, SimilarCodePhaseCompletion, SimilarCodePhaseStatus,
364 SimilarCodeProvider, SimilarCodeProviderProvenance, SimilarCodeReviewOutput,
365 SimilarCodeReviewProvenance, SimilarCodeReviewSchemaVersion, SimilarCodeReviewedCandidate,
366 SimilarCodeSchemaVersion, SimilarCodeScopeProvenance, SimilarCodeSideEffectHint,
367 SimilarCodeSideEvidence, SimilarCodeSimilarityBand, SimilarCodeSkip, SimilarCodeSkipReason,
368 SimilarCodeStatusOutput, SimilarCodeStatusSchemaVersion, SimilarCodeVerdict,
369 SimilarCodeVerdictInput, SimilarCodeVerdictMatch, SimilarCodeVerdictSchemaVersion,
370 SimilarCodeVerdictValidationError, SimilarCodeVerificationStatus,
371 serialize_similar_code_cache_clear_json_output, serialize_similar_code_inspect_json_output,
372 serialize_similar_code_json_output, serialize_similar_code_review_json_output,
373 serialize_similar_code_status_json_output,
374};
375pub use suppressions::{
376 SuppressionInventoryEntry, SuppressionInventoryFile, SuppressionInventoryLevel,
377 SuppressionInventoryOrigin, SuppressionInventoryOutput, SuppressionInventoryOutputInput,
378 SuppressionInventorySchemaVersion, SuppressionInventorySummary, SuppressionKindCount,
379 build_suppression_inventory_output, serialize_suppression_inventory_json_output,
380};
381pub use trace_envelopes::{serialize_trace_error_json_output, serialize_trace_json_output};
382pub use type_aware_envelopes::{
383 TYPE_AWARE_STATUS_SCHEMA_VERSION, TypeAwareStatusOutput,
384 serialize_type_aware_status_json_output,
385};
386pub use walkthrough_render::{
387 MAX_CONTRACT_MEMBERS, WalkthroughAccounting, cap_member_list, cap_names, clean_decision_fact,
388 decisions_outside_units, visible_stage_units,
389};