Skip to main content

heddle_object_model/object/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2//! Core object primitives extracted from the monolith.
3
4#[macro_use]
5mod versioned_blob;
6
7mod action_id;
8mod action_operation;
9mod action_struct;
10mod annotated_tag;
11mod audience_tier;
12mod blob;
13pub mod collaboration;
14mod diff;
15mod discussion;
16mod facet_kind;
17mod frontier_ref;
18mod git_note;
19mod hash;
20mod identifiers;
21mod key_binding;
22pub mod manifest;
23mod operation_id;
24mod redaction;
25mod risk_signal;
26mod semantic_change;
27mod semantic_edges;
28mod semantic_graph_query;
29mod semantic_index;
30mod semantic_reverse_deps;
31mod session;
32mod source;
33mod spool_id;
34mod staleness_core;
35mod state_attachment;
36mod state_attribution;
37mod state_context;
38mod state_core;
39mod state_provenance;
40mod state_review;
41mod state_visibility;
42mod structured_conflict;
43#[cfg(test)]
44mod structured_conflict_tests;
45mod suggestion_core;
46mod timeline;
47mod tree;
48mod tree_canonical;
49mod tree_diff;
50mod tree_path;
51mod tree_source;
52mod tree_stream;
53pub mod tree_walk;
54mod visibility_tier;
55
56pub use action_id::ActionId;
57pub use action_operation::Operation;
58pub use action_struct::Action;
59pub use annotated_tag::{AnnotatedTag, AnnotatedTagError, AnnotatedTagMarker};
60pub use audience_tier::{AudienceParseError, AudienceTier, visible};
61pub use blob::Blob;
62pub use collaboration::*;
63pub use diff::{DiffKind, FileChange, FileChangeSet};
64pub use discussion::{
65    Discussion, DiscussionError, DiscussionId, DiscussionReference, DiscussionReferenceKind,
66    DiscussionResolution, DiscussionTurn, DiscussionsBlob, generate_discussion_id,
67};
68pub use facet_kind::{FacetKind, SourceHistoryLaws};
69pub use frontier_ref::{
70    GIT_SYNTHETIC_FRONTIER_PREFIX, SYNTHETIC_FRONTIER_PREFIX, SyntheticFrontierName,
71    SyntheticFrontierNameError,
72};
73pub use git_note::{HeddleNote, NoteAgent, NoteAttribution, OmittedBreakdown, SignalCounts};
74pub use hash::{ChangeId, ChangeIdParseError, ContentHash, StateId, StateIdParseError};
75pub use identifiers::{
76    MarkerName, RESERVED_REF_SEGMENT, ReservedRefNameError, Scope, ThreadName,
77    is_reserved_heddle_namespace,
78};
79pub use key_binding::{
80    KEY_BINDING_REGISTRY_SIGNING_PAYLOAD_VERSION_TAG, KEY_BINDING_SIGNING_PAYLOAD_VERSION_TAG,
81    KeyBinding, KeyBindingError, KeyBindingRegistry, KeyRole,
82};
83pub use manifest::{
84    BuiltManifest, FsckFinding, FsckOptions, FsckReport, FsckRule, ManifestBinding,
85    ManifestBuildError, ManifestFacet, ManifestKey, ManifestNode, ManifestNodeSource,
86    ManifestObject, ManifestObjectKind, ManifestOwnerKind, PackRangeAudit, PackRangeClaim,
87    PackRecord, build_manifest, expand_manifest, fsck_manifest, fsck_manifest_with,
88    fsck_pack_range,
89};
90pub use operation_id::{OperationId, OperationIdParseError};
91pub use redaction::{
92    PURGE_SIGNING_PAYLOAD_VERSION_TAG, PurgeEvidence, REDACTION_SIGNING_PAYLOAD_VERSION_TAG,
93    Redaction, RedactionError, RedactionsBlob,
94};
95pub use risk_signal::{
96    MAX_REASON_LEN, ProducerId, RiskSignal, RiskSignalBlob, RiskSignalError, RiskSignalKind,
97    SignalAnchor,
98};
99pub use semantic_change::{ChangeImportance, ModificationKind, SemanticChange};
100pub use semantic_edges::{BindingDelta, FileBindingDelta, ResolvedSemanticEdge, SemanticEdgeKind};
101pub use semantic_graph_query::{
102    SemanticGraphQueryKind, SemanticGraphQueryRequest, SemanticGraphQueryResponse, SemanticGraphRef,
103};
104pub use semantic_index::{
105    ByteSpan, ImportBinding, ImportEntry, ImportKindTag, OccurrenceEntry, OccurrenceRole,
106    ScopeEntry, ScopeKind, SemanticEntryKind, SemanticFileFacts, SemanticFileNode,
107    SemanticIndexError, SemanticIndexRoot, SemanticTreeEntry, SemanticTreeNode, SymbolEntry,
108    SymbolKindTag, SymbolNamespace, compute_dir_semantic_digest, compute_file_scaffold_hash,
109    compute_file_semantic_digest, compute_symbol_semantic_hash,
110};
111pub use semantic_reverse_deps::ReverseDependencyIndex;
112pub use session::{Session, SessionSegment, generate_session_id};
113#[cfg(feature = "async-source")]
114pub use source::AsyncObjectSource;
115pub use source::ObjectSource;
116pub use spool_id::{SpoolId, SpoolIdParseError};
117pub use staleness_core::{
118    StalenessStatus, annotation_status_for_source,
119    annotation_status_for_source_with_symbol_resolver, extract_line_range, resolve_current_symbol,
120};
121pub use state_attachment::{
122    StateAttachment, StateAttachmentBody, StateAttachmentId, StateAttachmentKind,
123};
124pub use state_attribution::{Agent, Attribution, Principal};
125pub use state_context::{
126    Annotation, AnnotationAnchorStatus, AnnotationKind, AnnotationRevision, AnnotationScope,
127    AnnotationStatus, ContextBlob, ContextError, ContextTarget,
128};
129pub use state_core::{
130    ChangeLineage, ChangeLineageKind, SignatureStatus, State, StateSignature, Status, Verification,
131    parse_commit_extension_headers,
132};
133pub use state_provenance::{FileProvenance, LineSpan, Origin, OriginSet, ProvenanceError};
134pub use state_review::{
135    ReviewKind, ReviewScope, ReviewSignature, ReviewSignatureError, ReviewSignaturesBlob,
136    SymbolAnchor, signing_payload,
137};
138pub use state_visibility::{
139    STATE_VISIBILITY_SIGNING_PAYLOAD_VERSION_TAG, StateVisibility, StateVisibilityBlob,
140    StateVisibilityError,
141};
142pub use structured_conflict::{
143    ConflictError, ConflictRange, ConflictRegion, ConflictSide, StructuredConflict,
144};
145pub use suggestion_core::{
146    ContextSuggestion, ContextSuggestionTier, HIGH_SUGGESTION_THRESHOLD,
147    MAJOR_REWRITE_THRESHOLD_PCT, MEDIUM_SUGGESTION_THRESHOLD, SUGGESTION_WINDOW, SuggestionInputs,
148    SuggestionSignal, score_suggestions,
149};
150pub use timeline::{
151    BranchCreatedV1, CursorMovedV1, NativeToolCallRefV1, TIMELINE_OPERATION_SCHEMA_VERSION,
152    TimelineBranchId, TimelineBranchReason, TimelineCodecError, TimelineCursorMoveReason,
153    TimelineLabel, TimelineOperationBodyV1, TimelineOperationEnvelope, TimelineOperationId,
154    TimelineOperationIdParseError, TimelineOperationKind, TimelineStepId, TimelineToolCallStatus,
155    TimelineToolPayloadMetadata, ToolCallFinishedV1, ToolCallStartedV1,
156};
157pub use tree::{
158    EntryType, FileMode, Tree, TreeDecodeError, TreeEntry, TreeEntryTarget, TreeError,
159    validate_name as validate_tree_entry_name,
160};
161pub use tree_canonical::{
162    TREE_BLOCK_ENCODING_VERSION, TREE_BLOCK_MIN_ENTRIES, TREE_CANONICAL_MAGIC,
163    TREE_DELTA_ANCHOR_INTERVAL, TREE_DELTA_ENCODING_VERSION, TREE_DELTA_HEADER_LEN,
164    TREE_DELTA_MAGIC, TREE_DELTA_MAX_OPS, TREE_ENCODING_VERSION, TREE_HEADER_LEN,
165    TREE_LEAN_ENCODING_VERSION, TREE_LEAN_MAGIC, TreeDeltaHeader, TreeDeltaOp, TreeHeader,
166    apply_tree_delta, decode_header, decode_lean_prefix, decode_tree_delta,
167    decode_tree_delta_header, decode_tree_delta_header_prefix, decode_tree_delta_ops,
168    decode_tree_delta_ops_prefix, encode_lean_entry, encode_tree_delta, is_canonical_tree,
169    is_delta_tree, is_lean_tree, is_streamable_tree, tree_delta,
170};
171#[cfg(feature = "async-source")]
172pub use tree_diff::diff_trees_visit_async;
173pub use tree_diff::{diff_trees, diff_trees_visit};
174#[cfg(feature = "async-source")]
175pub use tree_path::resolve_tree_path_async;
176pub use tree_path::{
177    LeafPolicy, ResolvedTreeTarget, TreePathResolveError, resolve_tree_path, split_path,
178};
179pub use tree_source::{
180    BytesTreeSource, FileTreeSource, OpenedTreeBody, TreeBodyIntegrity, TreeByteSource,
181};
182pub use tree_stream::{
183    TreeEntryReader, TreePage, TreePageLimits, TreeResumeCursor, TreeStreamError,
184};
185pub use tree_walk::{TreeIntegrityEvent, walk_tree_integrity};
186pub use visibility_tier::VisibilityTier;