Skip to repository content232 lines · 4.8 KB · text
tenant.openagents/omega
No repository description is available.
OpenAgents Git authority 2026-07-28T05:20:42.169Z Public web read
NIP-34 coordinate
30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omegaMaintainersHidden in public view
References2 branches · 1 tag
Read-only clone
git clone https://openagents.com/git/tenant.openagents/omega.gitBrowse files
worktree.proto
1syntax = "proto3";
2package zed.messages;
3
4message Timestamp {
5 uint64 seconds = 1;
6 uint32 nanos = 2;
7}
8
9message File {
10 uint64 worktree_id = 1;
11 optional uint64 entry_id = 2;
12 string path = 3;
13 Timestamp mtime = 4;
14 bool is_deleted = 5;
15 bool is_historic = 6;
16}
17
18message Entry {
19 uint64 id = 1;
20 bool is_dir = 2;
21 string path = 3;
22 uint64 inode = 4;
23 Timestamp mtime = 5;
24 bool is_ignored = 7;
25 bool is_external = 8;
26 reserved 6;
27 reserved 9;
28 bool is_fifo = 10;
29 optional uint64 size = 11;
30 optional string canonical_path = 12;
31 bool is_hidden = 13;
32}
33
34message AddWorktree {
35 string path = 1;
36 uint64 project_id = 2;
37 bool visible = 3;
38}
39
40message AddWorktreeResponse {
41 uint64 worktree_id = 1;
42 string canonicalized_path = 2;
43 optional string root_repo_common_dir = 3;
44 bool root_repo_is_linked_worktree = 4;
45}
46
47message RemoveWorktree {
48 uint64 worktree_id = 1;
49}
50
51message GetPathMetadata {
52 uint64 project_id = 1;
53 string path = 2;
54}
55
56message GetPathMetadataResponse {
57 bool exists = 1;
58 string path = 2;
59 bool is_dir = 3;
60}
61
62message WorktreeMetadata {
63 uint64 id = 1;
64 string root_name = 2;
65 bool visible = 3;
66 string abs_path = 4;
67 optional string root_repo_common_dir = 5;
68 bool root_repo_is_linked_worktree = 6;
69}
70
71message ProjectPath {
72 uint64 worktree_id = 1;
73 string path = 2;
74}
75
76message ListRemoteDirectoryConfig {
77 bool is_dir = 1;
78}
79
80message ListRemoteDirectory {
81 uint64 dev_server_id = 1;
82 string path = 2;
83 ListRemoteDirectoryConfig config = 3;
84}
85
86message EntryInfo {
87 bool is_dir = 1;
88}
89
90message ListRemoteDirectoryResponse {
91 repeated string entries = 1;
92 repeated EntryInfo entry_info = 2;
93}
94
95message CreateProjectEntry {
96 uint64 project_id = 1;
97 uint64 worktree_id = 2;
98 string path = 3;
99 bool is_directory = 4;
100 optional bytes content = 5;
101}
102
103message RenameProjectEntry {
104 uint64 project_id = 1;
105 uint64 entry_id = 2;
106 string new_path = 3;
107 uint64 new_worktree_id = 4;
108}
109
110message CopyProjectEntry {
111 uint64 project_id = 1;
112 uint64 entry_id = 2;
113 string new_path = 3;
114 uint64 new_worktree_id = 5;
115 reserved 4;
116}
117
118message DeleteProjectEntry {
119 uint64 project_id = 1;
120 uint64 entry_id = 2;
121 // Deprecated in favor of `TrashProjectEntry`.
122 //
123 // TODO(yara|dino): once all supported peers use `TrashProjectEntry`, remove
124 // this field and replace it with `reserved 3;` so the tag is never reused.
125 bool use_trash = 3 [deprecated = true];
126}
127
128message TrashProjectEntry {
129 uint64 project_id = 1;
130 uint64 entry_id = 2;
131}
132
133message RestoreProjectEntry {
134 uint64 project_id = 1;
135 uint64 worktree_id = 2;
136 uint64 trash_id = 3;
137}
138
139message ExpandProjectEntry {
140 uint64 project_id = 1;
141 uint64 entry_id = 2;
142}
143
144message ExpandProjectEntryResponse {
145 uint64 worktree_scan_id = 1;
146}
147
148message ExpandAllForProjectEntry {
149 uint64 project_id = 1;
150 uint64 entry_id = 2;
151}
152
153message ExpandAllForProjectEntryResponse {
154 uint64 worktree_scan_id = 1;
155}
156
157// TODO(yara|dino): split into per-operation response messages (e.g.
158// `CreateProjectEntryResponse`, `CopyProjectEntryResponse`,
159// `DeleteProjectEntryResponse`, `RenameProjectEntryResponse`) for consistency
160// with the dedicated `TrashProjectEntryResponse` and
161// `RestoreProjectEntryResponse` responses below.
162// This generic message is shared by `CreateProjectEntry`, `CopyProjectEntry`,
163// `DeleteProjectEntry`, and `RenameProjectEntry`, so `entry` doesn't fit all of
164// them. For example, `DeleteProjectEntry` notably never populates it.
165message ProjectEntryResponse {
166 optional Entry entry = 1;
167 uint64 worktree_scan_id = 2;
168}
169
170message TrashProjectEntryResponse {
171 uint64 trash_id = 1;
172 uint64 worktree_scan_id = 2;
173}
174
175message RestoreProjectEntryResponse {
176 Entry entry = 1;
177 uint64 worktree_scan_id = 2;
178}
179
180message UpdateWorktreeSettings {
181 uint64 project_id = 1;
182 uint64 worktree_id = 2;
183 string path = 3;
184 optional string content = 4;
185 optional LocalSettingsKind kind = 5;
186 optional bool outside_worktree = 6;
187}
188
189enum LocalSettingsKind {
190 Settings = 0;
191 Tasks = 1;
192 Editorconfig = 2;
193 Debug = 3;
194}
195
196message UpdateUserSettings {
197 uint64 project_id = 1;
198 string contents = 2;
199}
200
201message TrustWorktrees {
202 uint64 project_id = 1;
203 repeated PathTrust trusted_paths = 2;
204}
205
206message PathTrust {
207 oneof content {
208 uint64 worktree_id = 2;
209 string abs_path = 3;
210 }
211
212 reserved 1;
213}
214
215message RestrictWorktrees {
216 uint64 project_id = 1;
217 repeated uint64 worktree_ids = 3;
218
219 reserved 2;
220}
221
222// Request from the remote server to the client to allocate a new worktree ID.
223// This allows the client to maintain a single WorktreeIdCounter that prevents
224// ID collisions when connected to multiple remote servers.
225message AllocateWorktreeId {
226 uint64 project_id = 1;
227}
228
229message AllocateWorktreeIdResponse {
230 uint64 worktree_id = 1;
231}
232