relay_knowledge/domain/code/repository/
repository_status.rs1use serde::{Deserialize, Serialize};
2
3use super::super::CodeParseStatusCounts;
4use super::CodeQueryKind;
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct CodeRepositoryStatus {
9 pub repository_id: String,
10 pub alias: String,
11 pub root_path: String,
12 pub path_filters: Vec<String>,
13 pub language_filters: Vec<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub last_indexed_scope_id: Option<String>,
16 pub last_indexed_commit: Option<String>,
17 pub tree_hash: Option<String>,
18 pub state: String,
19 pub indexed_file_count: usize,
20 pub symbol_count: usize,
21 pub reference_count: usize,
22 pub chunk_count: usize,
23 pub stale: bool,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub degraded_reason: Option<String>,
26}
27
28#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
30pub struct CodeRepositoryRemovalSummary {
31 pub repository_id: String,
32 pub aliases_removed: Vec<String>,
33 pub removed_scope_count: usize,
34 pub removed_index_task_count: usize,
35 pub removed_repository_set_member_count: usize,
36 pub invalidated_repository_set_count: usize,
37}
38
39#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
41pub struct CodeRepositoryLanguagePreview {
42 pub language_id: String,
43 pub file_count: usize,
44 pub byte_count: usize,
45}
46
47#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
49pub struct CodeRepositoryLargestFile {
50 pub path: String,
51 pub byte_count: usize,
52}
53
54#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
56pub struct CodeRepositoryExcludedPath {
57 pub path: String,
58 pub reason: String,
59}
60
61#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
63pub struct CodeRepositoryScopePreview {
64 pub repository_id: String,
65 pub alias: String,
66 pub requested_ref: String,
67 pub resolved_commit_sha: String,
68 pub tree_hash: String,
69 pub selected_file_count: usize,
70 pub selected_byte_count: usize,
71 pub unsupported_file_count: usize,
72 pub generated_or_heavy_file_count: usize,
73 pub expected_degraded_file_count: usize,
74 pub language_distribution: Vec<CodeRepositoryLanguagePreview>,
75 pub largest_files: Vec<CodeRepositoryLargestFile>,
76 pub excluded_paths: Vec<CodeRepositoryExcludedPath>,
77}
78
79#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
81pub struct CodeRepositoryTotals {
82 pub repository_count: usize,
83 pub indexed_file_count: usize,
84 pub symbol_count: usize,
85 #[serde(default)]
86 pub handwritten_symbol_count: usize,
87 #[serde(default)]
88 pub generated_symbol_count: usize,
89 pub reference_count: usize,
90 pub chunk_count: usize,
91 pub degraded_file_count: usize,
92 pub parse_status_counts: CodeParseStatusCounts,
93}
94
95#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
97pub struct CodeSymbolGenerationCounts {
98 #[serde(default)]
99 pub handwritten_symbol_count: usize,
100 #[serde(default)]
101 pub generated_symbol_count: usize,
102}
103
104#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
106pub struct CodeRepositoryLatencySample {
107 pub query: String,
108 pub kind: CodeQueryKind,
109 pub result_count: usize,
110 pub duration_ms: u64,
111}
112
113#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
115pub struct CodeRepositoryReport {
116 pub repository_id: String,
117 pub alias: String,
118 pub root_path: String,
119 pub path_filters: Vec<String>,
120 pub language_filters: Vec<String>,
121 pub resolved_commit_sha: Option<String>,
122 pub tree_hash: Option<String>,
123 pub indexed_file_count: usize,
124 pub symbol_count: usize,
125 #[serde(default)]
126 pub handwritten_symbol_count: usize,
127 #[serde(default)]
128 pub generated_symbol_count: usize,
129 pub reference_count: usize,
130 pub chunk_count: usize,
131 pub degraded_file_count: usize,
132 pub resolved_edge_count: usize,
133 pub ambiguous_edge_count: usize,
134 pub unresolved_edge_count: usize,
135 pub degradation_summary: Vec<String>,
136 pub representative_queries: Vec<String>,
137 pub latency_samples: Vec<CodeRepositoryLatencySample>,
138 pub freshness_state: String,
139}
140
141#[cfg(test)]
142#[path = "repository_status_tests.rs"]
143mod tests;