Skip to main content

heddle_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2//! Embeddable Heddle facade scaffolding.
3
4pub mod actor;
5pub mod agent_fanout;
6pub mod agent_ops;
7pub mod approval_plan;
8pub mod clone_plan;
9pub mod collapse_plan;
10pub mod completion_plan;
11pub mod context;
12pub mod context_plan;
13pub mod contract;
14pub mod daemon_plan;
15pub mod diff;
16pub mod doctor_docs_plan;
17pub mod doctor_plan;
18pub mod doctor_schemas_plan;
19pub mod fsck;
20pub mod gc_plan;
21pub mod git_projection_io_plan;
22pub mod harness_json;
23pub mod harness_policy;
24pub mod hook_plan;
25pub mod index_plan;
26pub mod init_plan;
27pub mod integration_plan;
28pub mod log_plan;
29pub mod maintenance_plan;
30pub mod marker_plan;
31pub mod merge;
32pub mod onboarding;
33pub mod oplog_plan;
34pub mod oss_plan;
35pub mod prove_plan;
36pub mod provenance_verify;
37pub mod purge_plan;
38pub mod query;
39pub mod rebase_plan;
40pub mod redact_plan;
41pub mod remote;
42pub mod resolve;
43pub mod resolve_plan;
44pub mod retro_plan;
45pub mod revert_plan;
46pub mod run_plan;
47pub mod save;
48pub mod semantic_plan;
49pub mod shell_plan;
50pub mod source_authority;
51pub mod spool_plan;
52pub mod status;
53pub mod thread;
54pub mod thread_lifecycle;
55pub mod thread_materialize;
56pub mod thread_plan;
57pub mod thread_shaping;
58pub mod timeline_plan;
59pub mod try_plan;
60pub mod undo;
61pub mod verify;
62pub mod visibility_plan;
63pub mod watch_plan;
64pub mod workflow;
65
66pub use actor::{
67    ActorChainEntry, ActorDoneOptions, ActorDonePlan, ActorEntryReport, ActorListReport,
68    ActorShowReport, assemble_actor_entry, complete_actor_entry, filter_actors, filter_actors_ref,
69    list_actors, list_actors_from_registry, mark_actor_done, plan_actor_done,
70    show_actor_by_session, show_actor_from_entry,
71};
72pub use agent_fanout::{
73    FanoutBaseFacts, FanoutBaseSelection, FanoutCommandSpec, FanoutLaneAvailability,
74    FanoutLanePreflightBlock, FanoutLaneReport, FanoutNodeSpec, FanoutPlan, FanoutPlanError,
75    FanoutPlanReport, FanoutPlanRequest, FanoutTaskPlaceholder, assemble_fanout_plan_report,
76    assemble_fanout_start_commands, check_fanout_start_preflight, ensure_unique_thread_names,
77    fanout_child_body, fanout_parent_body, fanout_parent_delegated_by, fanout_start_attach_rule,
78    parse_fanout_lane, parse_fanout_lanes, plan_fanout, select_fanout_base,
79    select_fanout_parent_thread,
80};
81pub use agent_ops::{
82    AgentCaptureOptions, AgentCapturePlan, AgentCapturePlanError, AgentCaptureThreadCheck,
83    AgentExplainReport, AgentReadyOptions, AgentReadyPlan, AgentReadyPlanError,
84    AgentReservationListReport, AgentReservationReport, assemble_agent_explain,
85    assemble_agent_reservation, assemble_agent_reservation_list, check_agent_capture_thread,
86    default_attach_reason_message, filter_agent_reservations, filter_agent_reservations_ref,
87    plan_agent_capture, plan_agent_ready,
88};
89pub use approval_plan::{
90    EligibilitySummary, approval_recorded_message, approval_revoked_message,
91    approvals_empty_message, approvals_header, eligibility_allowed_message,
92    eligibility_approvals_counted_message, eligibility_blocked_message, format_unix_secs_display,
93    format_unix_secs_label, plan_eligibility_summary, short_state_id, state_id_bytes_to_string,
94    timestamp_secs_u64, unmet_requirement_line,
95};
96pub use clone_plan::{
97    AdoptPlan, AdoptPlanError, AdoptPlanOptions, CloneMode, ClonePlan, ClonePlanError,
98    ClonePlanFacts, ClonePlanOptions, CloneRemoteSource, CloneSecurityPreflight,
99    CloneThreadSelectError, MonorepoCloneJsonReport, MonorepoClonePlan, MonorepoClonePlanError,
100    MonorepoCloneResultSummary, MonorepoEdgeFacts, MonorepoEdgeSkipReason, MonorepoExecutionPlan,
101    MonorepoExecutionProgress, MonorepoNodeExecution, MonorepoNodeExecutionError,
102    MonorepoNodeExecutionStep, MonorepoNodeFacts, MonorepoNodePlan, MonorepoNodeStepOptions,
103    MonorepoPlacedJsonRow, MonorepoPlacedNodeSummary, MonorepoSkippedChild, MonorepoSkippedJsonRow,
104    UnsupportedCloneFlag, absolute_path, assemble_clone_security_preflight,
105    assemble_monorepo_clone_json_report, assemble_monorepo_clone_result_summary,
106    looks_like_git_overlay_url, looks_like_local_path, monorepo_execution_progress,
107    monorepo_rel_display, normalize_clone_depth, plan_adopt, plan_clone, plan_monorepo_clone,
108    plan_monorepo_execution, plan_monorepo_node_steps, resolve_adopt_start_path,
109    resolve_clone_destination, select_clone_checkout_thread, select_clone_mode,
110    validate_clone_destination, validate_clone_mode_options, validate_monorepo_clone_options,
111    validate_monorepo_execution, validate_monorepo_node_execution,
112};
113pub use collapse_plan::{
114    CollapsePlan, collapse_has_source_states, collapse_states_required_kind, plan_collapse,
115};
116pub use context::{ExecutionContext, ExecutionContextBuilder, Verbosity};
117pub use context_plan::{
118    ContextContentPlanError, ContextRmPlanError, annotation_passes_filters,
119    annotation_status_label, audit_duplicate_count, audit_staleness_key, audit_target_key,
120    context_target_kind_and_label, count_active_annotations, filter_annotations,
121    next_annotation_tags, plan_annotation_content_source, plan_context_rm,
122    suggestion_tier_human_label, suggestion_tier_token, supersede_reuses_original_scope,
123    supersede_reuses_original_target,
124};
125pub use contract::{
126    HeddleReport, MachineOutputKind, OutputDiscriminator, ReportContract, schema_for_report,
127};
128pub use diff::{
129    ContextSnippet, DiffOptions, DiffReport, DiffStats, FileChange, FileContextEntry, FileEolState,
130    LineCounts, LineDiff, PlainGitDiffProbe, SemanticChangeEntry, SymlinkChange,
131    change_line_counts, compute_state_diff, compute_tree_diff, diff, diff_worktree_status,
132    plain_git_head_diff, render_diff_patch, render_diff_patch_bytes, should_render_modified_pair,
133    trim_added_decorations_for_display, write_diff_patch,
134};
135pub use fsck::{FsckError, FsckOptions, FsckRepair, FsckReport, fsck};
136pub use gc_plan::{
137    GcDryRunPlan, gc_consolidated_mirror_message, gc_dry_run_messages, gc_dry_run_pack_message,
138    gc_dry_run_prune_message, gc_pack_message, gc_pinned_redactions_message,
139    gc_preserved_redactions_message, gc_prune_loose_message, gc_pruned_git_mapping_message,
140    gc_status_token, plan_gc_dry_run,
141};
142pub use harness_json::{
143    VerificationClaimPolicyFacts, VerificationClaimTrustFacts, first_value_string, map_from_pairs,
144    merge_string_vec, opencode_tool_name, opencode_tool_status, parse_relay_payload,
145    raw_git_preservation_command, repository_verification_allows_success_claim, value_array_join,
146    value_cost_micros, value_cost_micros_u64, value_string, value_string_array, value_u64,
147    value_u64_string,
148};
149pub use harness_policy::{
150    ExplicitAgentBind, HarnessFingerprint, HarnessKind, HarnessProbeDecision, SegmentRotation,
151    SessionAttachDecision, SessionAttachFacts, SessionAttachRule, SessionLookupFact, SessionPolicy,
152    TokenSidFact, WorktreeSessionFact, decide_harness_probe, decide_session_attach,
153    detect_harness_kind, fingerprint_harness_from_hints, segment_rotation_policy,
154    should_rotate_segment,
155};
156pub use hook_plan::{
157    HookInstallSourceKind, HookInstallSourcePlan, hook_install_empty_stdin_kind,
158    hook_install_source_required_kind, hook_unknown_kind, plan_hook_install_source,
159};
160pub use init_plan::{
161    InitPrincipalPlan, SET_PRINCIPAL_COMMAND, init_recommended_action, init_side_effects,
162    principal_is_unconfigured, resolve_absolute_path, select_init_principal,
163};
164pub use log_plan::{
165    ReflogLine, extract_scope_bytes, fit_author, format_missing_blobs_suffix, parse_reflog_line,
166    session_list_status, short_oid, summarize_context_line, summarize_paths,
167    timeline_branch_reason, timeline_cursor_reason, timeline_label, timeline_recovery_status,
168    timeline_tool_status, truncate_with_ellipsis, yes_no,
169};
170pub use marker_plan::{
171    MarkerDeleteSelector, MarkerDeleteSelectorError, marker_bulk_delete_message,
172    marker_create_message, marker_delete_message, marker_list_filter_matches,
173    marker_prefix_is_valid, plan_marker_delete_selector,
174};
175pub use merge::{
176    GitCommitInfo, GitCommitPreview, MergeAttemptPlan, MergeOptions, MergePlan, MergeRelation,
177    MergeRelationKind, MergeReport, OperatorAction as MergeOperatorAction,
178    OperatorCommandOutput as MergeOperatorCommandOutput, PreviewTarget, ThreadPreviewReport,
179    ThreeWayMergeOutcome, apply_merged_tree, apply_merged_tree_external, bench_detect_renames,
180    bench_find_merge_base, bench_three_way_merge, build_thread_preview_report,
181    ensure_worktree_clean, merge_thread, merge_thread_into_current,
182    merge_thread_into_current_transactional, merge_thread_into_current_with_machine_contract,
183    prepare_dir_for_file_replacement, try_three_way_merge_between_tips,
184};
185pub use objects::{
186    CollectingWarnings, HeddleError, NoopProgress, NoopWarnings, ProgressEvent, ProgressSink,
187    TaskId, Warning, WarningSink,
188};
189pub use onboarding::{
190    OnboardingAction, OnboardingFacts, OnboardingMode, OnboardingPlan, OnboardingRepositoryState,
191    plan_repository_onboarding,
192};
193pub use oplog_plan::{
194    OPLOG_RECOVER_DEFAULT_STRATEGY, OplogRecoverFacts, OplogRecoverStatus,
195    oplog_recover_damaged_bytes, oplog_recover_damaged_range_display, oplog_recover_detail_fields,
196    oplog_recover_entries_lost_display, oplog_recover_headline, oplog_recover_headline_from_facts,
197    oplog_recover_shows_detail, oplog_recover_shows_strategy_field, plan_oplog_recover,
198    plan_oplog_recover_status,
199};
200// prove_plan timestamp helpers intentionally not re-exported at crate root (collide with
201// approval_plan::timestamp_secs_u64 / format_unix_secs_label). Use heddle_core::prove_plan::*.
202pub use prove_plan::{
203    HostRepoPlanError, ProofStatusKind, proof_status_label, proof_submit_followup,
204    require_host_repo,
205};
206pub use provenance_verify::{
207    ProvenanceReport, StateProvenanceVerification, verify_repository_provenance,
208};
209pub use purge_plan::{PurgeApplyPlan, plan_purge_apply, purge_apply_message, purge_force_command};
210pub use query::{QueryHit, QueryReport, QueryRequest, query};
211pub use rebase_plan::{
212    RebaseContinuePlan, RebaseStartFacts, RebaseStartPlan, no_rebase_in_progress_kind,
213    plan_rebase_abort, plan_rebase_continue, plan_rebase_start, rebase_target_not_found_kind,
214    rebase_target_required_kind,
215};
216pub use redact_plan::{RedactionSignatureStatus, redaction_signature_status, short_public_key};
217pub use remote::{
218    ALL_THREADS_MIRROR_COVERS_NOTE, COMMITS_SEEN_SCOPE, FORCE_DISCARD_WARNING, GIT_NOTES_REF,
219    GIT_NOTES_VISIBILITY_WARNING, GitConfigContext, GitOverlayPushTracking, GitRemoteConfigured,
220    GitUpstreamConfigured, HostedPullResult, HostedPullResultFields, HostedPushPlan,
221    HostedPushResult, HostedPushResultFields, IncludedGitRemoteConfigError, LocalTransferSummary,
222    MultiRefPushProgress, PullExecutionFacts, PullFailure, PullOutcome, PullOutcomeText, PullPlan,
223    PullPlanRequest, PushExecutionFacts, PushFailure, PushOutcome, PushOutcomeText, PushPath,
224    PushPlan, PushPlanRequest, RemoteInfo, RemoteListReport, RemotePreflightBlocker,
225    UNKNOWN_TRANSPORT_ERROR, all_threads_mirror_coverage_note, all_threads_uses_single_mirror_push,
226    build_pull_outcome, build_push_outcome, default_pull_thread_name, default_push_thread_name,
227    first_multi_thread_push_failure, format_connected_to, format_mirror_failure_text,
228    format_mirror_success_text, format_multi_ref_push_progress, format_multi_thread_refs_detail,
229    format_pull_outcome_text, format_pulling_from, format_push_outcome_text, format_pushing_to,
230    format_ref_list, format_remote_state_detail, git_overlay_current_thread_push_ok,
231    git_overlay_pull_execution_facts, git_overlay_push_execution_facts,
232    git_overlay_push_scope_description, git_overlay_ref_scope, git_overlay_thread_mismatch_blocker,
233    heddle_pull_execution_facts, heddle_pull_execution_facts_from_hosted,
234    heddle_pull_execution_facts_from_local, heddle_single_push_execution_facts,
235    heddle_single_push_execution_facts_from_hosted, heddle_single_push_execution_facts_from_local,
236    hosted_path_contains_internal_user_namespace, hosted_spool_display_path,
237    is_native_transport_mismatch, list_plain_git_remotes, list_remotes, local_pull_changed,
238    looks_like_git_forge_remote, looks_like_git_remote_url, looks_like_known_git_host,
239    looks_like_remote_location, merged_remote_items, message_indicates_already_exists,
240    multi_ref_progress_from_hosted_thread, multi_ref_push_begin, multi_ref_thread_failed,
241    multi_ref_thread_succeeded_hosted, multi_ref_thread_succeeded_local, multi_thread_failed_names,
242    multi_thread_push_execution_facts, multi_thread_reported_refs,
243    named_thread_tip_mismatch_failure, parse_hosted_pull_result, parse_hosted_push_result,
244    plain_git_remote_items, plan_hosted_push, plan_pull, plan_push, pull_requires_clean_worktree,
245    pull_should_materialize, pull_status, pull_tip_changed, pull_will_materialize,
246    push_scope_label, push_status, redact_internal_hosted_paths, refuse_named_thread_tip_overwrite,
247    remote_advice_kind, remote_missing_blocker, remote_pull_failure, remote_push_failure,
248    remote_urls_match, resolve_default_push_remote_name, resolve_default_remote_name,
249    resolved_default_remote_name, show_plain_git_remote, show_remote, summarize_pull_outcome,
250    summarize_push_outcome, transport_error_message, transport_mismatch_blocker,
251    uses_git_overlay_mirror_rpc, uses_local_git_overlay_transport,
252};
253pub use resolve::{
254    AgentReport, ConflictRangeReport, ConflictRegionReport, ConflictResolutionModeReport,
255    ConflictResolutionReport, ConflictSideReport, PrincipalReport, ResolveReport,
256    ResolverAttributionReport, ResolverKindReport,
257};
258pub use resolve_plan::{
259    ResolveSideSelection, contains_line_start_conflict_markers, path_is_active_conflict,
260    plan_resolve_side, resolve_requires_marker_check, unresolved_conflict_paths,
261};
262pub use revert_plan::{
263    RevertMessageMode, RevertOutcome, RevertPlan, RevertSuccessFacts,
264    default_revert_commit_message, no_changes_to_revert_kind, no_changes_to_revert_summary,
265    plan_revert, revert_has_no_changes, revert_inspect_command, revert_success_message,
266};
267pub use save::{
268    CommitGitIndexPlan, GitScope, SavePlan, SaveReport, SaveVerb, commit_next_action_from_trust,
269    commit_scope_text, execute_save, plan_commit_git_index, plan_commit_git_index_only,
270    plan_creates_new_state, plan_git_scope, plan_writes_git_checkpoint,
271    recover_published_git_checkpoint, split_git_extra_paths, staged_commit_summary, tree_leaf_name,
272};
273pub use semantic_plan::{
274    HOT_EVENT_KIND_TOKENS, HotEventKindToken, hot_event_kind_label, human_event_kind,
275    parse_hot_event_kind_token,
276};
277#[cfg(feature = "semantic")]
278pub use semantic_plan::{hot_event_kind_token, human_hot_event_kind, map_hot_event_kind};
279pub use status::{
280    ActorInfo, ChangesInfo, CoordinationStatus, FastShortStatusProfile, FastShortStatusReport,
281    GitImportGuidanceReport, GitIndexPlan, MaterializedThreadInfo, ParallelThreadInfo,
282    PlainGitStatusReport, RepositoryVerificationCheck, RepositoryVerificationHealth, StateInfo,
283    StatusCombinedVerdict, StatusDetail, StatusOptions, StatusProfile, StatusReport,
284    StatusThreadSummary, assess_materialized_threads,
285    build_repository_verification_health_with_worktree_status, changes_from_worktree_status,
286    changes_path_count, changes_paths, combined_verdict_axes, coordination_axis_clean,
287    coordination_label, coordination_severity, fast_short_status_report, git_index_plan_for_root,
288    health_severity, human_thread_health, large_capture_requires_force, plain_git_status_report,
289    principal_is_default_unknown, principal_lacks_accountable_identity,
290    resolve_coordination_with_trust, status, status_combined_verdict,
291};
292pub use thread::{
293    AvailableGitRef, ThreadActorInfo, ThreadListEntry, ThreadListOptions, ThreadListReport,
294    ThreadSummary, ThreadTaskSummary, collect_thread_summaries, find_thread_summary, list_threads,
295    list_threads_with_worktree_status, split_available_git_refs, thread_is_available_git_ref,
296    thread_is_imported_git_ref, visibility_label,
297};
298pub use thread_lifecycle::{
299    CleanWorktreeGuard, ThreadDropDisposition, ThreadDropOptions, ThreadDropPlan,
300    ThreadPromoteOptions, ThreadPromotePlan, ThreadRefreshOptions, ThreadRefreshPlan,
301    contains_conflict_marker_bytes, format_refresh_conflict_markers, plan_clean_worktree_guard,
302    plan_cleanup_thread_drop, plan_thread_drop, plan_thread_promote, plan_thread_refresh,
303    promote_confirm_in_place_removal, promote_existing_checkout_path,
304    promote_in_place_conversion_candidate, resolve_promote_target_path,
305    should_materialize_refresh_conflict_markers, thread_mode_requires_unmount,
306};
307pub use thread_materialize::{
308    ADVISORY_ACTIVE_HEAVY_THREAD_THRESHOLD, CheckoutCopyPolicy, CheckoutPathPlan,
309    CheckoutRewindPlan, CreateDirAttempt, MaterializeStep, RelativePathNormalizeError,
310    SelfCreatedDirRewindPlan, SharedTargetRedirectDecision, StartCleanupStep, StartEffectKind,
311    StartEffectPreconditionError, StartEffectStagingFacts, StartTransactionPlan,
312    TargetDirClaimKind, TargetDirCreateIntent, TargetLeafRefusal, TargetLeafShape,
313    ThreadMaterializePlan, ThreadsRootPathClass, ThreadsRootPathSafetyError,
314    append_safe_relative_components, claim_kind_after_empty_dir_adoption,
315    claim_kind_for_create_attempt, classify_materialize_error, classify_path_vs_threads_root,
316    classify_target_leaf_shape, effect_requires_established_claim, mode_is_bytes_on_disk,
317    path_components_are_safe, path_is_nested_in_reserved_region, path_is_strict_descendant,
318    path_is_under_or_equal, plan_checkout_copy_policy, plan_checkout_path, plan_checkout_rewind,
319    plan_hydrate, plan_materialize_steps, plan_self_created_dir_rewind,
320    plan_shared_target_redirect, plan_start_cleanup, plan_start_transaction,
321    plan_target_dir_create_intent, plan_thread_materialize, plan_write_manifest,
322    require_established_claim, shared_target_redirect_applies, shared_target_workspace_is_busy,
323    should_advise_shared_target, should_warn_materialized_without_reflink,
324    threads_root_path_layout_allowed, validate_empty_dir_adoption,
325    validate_start_effect_preconditions, validate_threads_root_path_safety,
326};
327pub use thread_plan::{
328    AutoWorkspaceDefault, ExplicitPathPlacement, ThreadBaseError, ThreadBaseSelection,
329    ThreadCreateOptions, ThreadCreatePlan, ThreadPathIsolationError, ThreadPlanError,
330    ThreadStartOptions, ThreadStartPlan, WorkspaceModeRequest, active_reservation_blocks_start,
331    active_reservation_path_matches, check_explicit_path_isolation,
332    classify_explicit_path_placement, explicit_path_allowed_for_git_overlay,
333    mode_honors_explicit_path, path_isolation_enforced, plan_thread_create, plan_thread_mode,
334    plan_thread_start, select_thread_base, start_requires_clean_worktree, validate_thread_name,
335};
336pub use thread_shaping::{
337    CaptureSplitOptions, NoPathsMatchedDetails, ThreadMoveOptions, ThreadMoveOutput,
338    ThreadShapingError, capture_split, thread_move,
339};
340pub use timeline_plan::{
341    TimelinePlanError, TimelineSelection, TimelineTargetOptions, parse_branch_reason,
342    parse_materialize_mode, parse_tool_status, plan_timeline_target,
343    timeline_materialization_recovery_status, timeline_materialize_status,
344};
345pub use undo::{
346    LiveThreadWorktree, PurgeOpRef, RedactOpRef, RedactionUndoBatchFacts, RequiredStateRef,
347    ThreadWorktreeHazard, UndoApplyPlan, UndoApplyPreflightError, UndoApplyStep, UndoBatchSummary,
348    UndoHistoryAction, UndoListReport, UndoOperationSummary, UndoPlan, UnsupportedRedoOp,
349    batch_status, check_redaction_redo_supported, check_redaction_undo_safe,
350    check_states_reachable, check_thread_worktree_undo_safe, collect_redaction_undo_facts,
351    collect_redo_required_states, collect_thread_worktree_hazards, collect_undo_required_states,
352    collect_unsupported_redo_ops, empty_history_refusal, human_operation_description,
353    human_post_undo_trust_status, human_undo_redo_message, list_undo_history,
354    list_undo_history_ctx, live_materialized_path_blocks_undo, machine_undo_redo_message,
355    plan_redo_apply_steps, plan_redo_batches, plan_undo_apply, plan_undo_apply_steps,
356    plan_undo_batches, require_nonempty_history, summarize_batch, undo_mode_conflict,
357    validate_undo_list_preview_modes,
358};
359pub use verify::{
360    ActionAudience, ActionTemplate, MachineContractCoverage, MachineContractInput,
361    PlainGitVerifyProbe, RepositoryContextInfo, RepositoryPresentation, RepositorySetupActionKind,
362    RepositorySetupGuidance, RepositoryVerificationState, VerificationCheck, VerifyOptions,
363    VerifyProfile, VerifyReport, build_plain_git_verification_probe,
364    build_plain_git_verification_probe_with_machine_contract, build_repository_verification_state,
365    build_repository_verification_state_with_machine_contract,
366    build_repository_verification_state_with_worktree_status,
367    build_repository_verification_state_with_worktree_status_and_machine_contract,
368    dirty_path_count, repository_mode_label, repository_presentation, repository_setup_action_kind,
369    repository_setup_guidance, verify,
370};
371pub use visibility_plan::{visibility_tier_kind, visibility_tier_label};
372pub use workflow::{
373    AUTO_LAND_CONFIDENCE_RECOVERY_ACTION, AUTO_LAND_CONFIDENCE_THRESHOLD, AutoLandPolicyInput,
374    ReadyDecision, ReadyDecisionInput, auto_land_confidence_recovery_action,
375    auto_land_policy_blockers, classify_ready_decision, has_integration_target,
376    integrated_land_next_action, integration_blocker_recommended_action, integration_blockers,
377    is_heavy_impact_advisory, is_integration_clear, is_manual_review_blocker,
378    land_blockers_for_preview, land_checkpoint_message, land_performed_steps, land_skipped_steps,
379    land_text_step, land_warnings_for_preview, non_staleness_blockers, op_targets_merge_state,
380    quote_recommended_action_arg, ready_freshness_summary, ready_integration_summary,
381    ready_merge_type_label, ready_merge_type_summary, ready_report_recommended_action,
382    ready_scoped_next_action, ready_status_summary, ready_verification_preflight_blocks,
383    ready_verification_status_blocks, recovery_scope_checkout, scope_action_to_repo,
384    should_squash_land, state_id_matches_display, state_id_matches_op_display,
385    sync_completed_next_action, sync_is_already_current,
386};