Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T01:51:18.319Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

request.rs

300 lines · 7.7 KB · rust
1use lsp::{Uri, VersionedTextDocumentIdentifier};
2use serde::{Deserialize, Serialize};
3
4pub enum CheckStatus {}
5
6#[derive(Debug, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct CheckStatusParams {
9    pub local_checks_only: bool,
10}
11
12impl lsp::request::Request for CheckStatus {
13    type Params = CheckStatusParams;
14    type Result = SignInStatus;
15    const METHOD: &'static str = "checkStatus";
16}
17
18pub enum SignIn {}
19
20#[derive(Debug, Serialize, Deserialize)]
21pub struct SignInParams {}
22
23#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct PromptUserDeviceFlow {
26    pub user_code: String,
27    pub command: lsp::Command,
28}
29
30impl lsp::request::Request for SignIn {
31    type Params = SignInParams;
32    type Result = PromptUserDeviceFlow;
33    const METHOD: &'static str = "signIn";
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37#[serde(tag = "status")]
38pub enum SignInStatus {
39    #[serde(rename = "OK")]
40    Ok {
41        user: Option<String>,
42    },
43    MaybeOk {
44        user: String,
45    },
46    AlreadySignedIn {
47        user: String,
48    },
49    NotAuthorized {
50        user: String,
51    },
52    NotSignedIn,
53}
54
55pub enum SignOut {}
56
57#[derive(Debug, Serialize, Deserialize)]
58#[serde(rename_all = "camelCase")]
59pub struct SignOutParams {}
60
61#[derive(Debug, Serialize, Deserialize)]
62#[serde(rename_all = "camelCase")]
63pub struct SignOutResult {}
64
65impl lsp::request::Request for SignOut {
66    type Params = SignOutParams;
67    type Result = SignOutResult;
68    const METHOD: &'static str = "signOut";
69}
70
71pub enum DidChangeStatus {}
72
73#[derive(Debug, Serialize, Deserialize)]
74pub struct DidChangeStatusParams {
75    #[serde(default)]
76    pub message: Option<String>,
77    pub kind: StatusKind,
78}
79
80#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
81pub enum StatusKind {
82    Normal,
83    Error,
84    Warning,
85    Inactive,
86}
87
88impl lsp::notification::Notification for DidChangeStatus {
89    type Params = DidChangeStatusParams;
90    const METHOD: &'static str = "didChangeStatus";
91}
92
93pub enum SetEditorInfo {}
94
95#[derive(Debug, Serialize, Deserialize)]
96#[serde(rename_all = "camelCase")]
97pub struct SetEditorInfoParams {
98    pub editor_info: EditorInfo,
99    pub editor_plugin_info: EditorPluginInfo,
100}
101
102impl lsp::request::Request for SetEditorInfo {
103    type Params = SetEditorInfoParams;
104    type Result = String;
105    const METHOD: &'static str = "setEditorInfo";
106}
107
108#[derive(Debug, Serialize, Deserialize)]
109#[serde(rename_all = "camelCase")]
110pub struct EditorInfo {
111    pub name: String,
112    pub version: String,
113}
114
115#[derive(Debug, Serialize, Deserialize)]
116#[serde(rename_all = "camelCase")]
117pub struct EditorPluginInfo {
118    pub name: String,
119    pub version: String,
120}
121
122pub enum NotifyAccepted {}
123
124#[derive(Debug, Serialize, Deserialize)]
125#[serde(rename_all = "camelCase")]
126pub struct NotifyAcceptedParams {
127    pub uuid: String,
128}
129
130impl lsp::request::Request for NotifyAccepted {
131    type Params = NotifyAcceptedParams;
132    type Result = String;
133    const METHOD: &'static str = "notifyAccepted";
134}
135
136pub enum NotifyRejected {}
137
138#[derive(Debug, Serialize, Deserialize)]
139#[serde(rename_all = "camelCase")]
140pub struct NotifyRejectedParams {
141    pub uuids: Vec<String>,
142}
143
144impl lsp::request::Request for NotifyRejected {
145    type Params = NotifyRejectedParams;
146    type Result = String;
147    const METHOD: &'static str = "notifyRejected";
148}
149
150#[derive(Debug, Serialize, Deserialize)]
151#[serde(rename_all = "camelCase")]
152pub struct NextEditSuggestions;
153
154#[derive(Debug, Serialize, Deserialize)]
155#[serde(rename_all = "camelCase")]
156pub struct NextEditSuggestionsParams {
157    pub(crate) text_document: VersionedTextDocumentIdentifier,
158    pub(crate) position: lsp::Position,
159}
160
161#[derive(Clone, Debug, Serialize, Deserialize)]
162#[serde(rename_all = "camelCase")]
163pub struct NextEditSuggestion {
164    pub text: String,
165    pub text_document: VersionedTextDocumentIdentifier,
166    pub range: lsp::Range,
167    pub command: Option<lsp::Command>,
168}
169
170#[derive(Debug, Serialize, Deserialize)]
171#[serde(rename_all = "camelCase")]
172pub struct NextEditSuggestionsResult {
173    pub edits: Vec<NextEditSuggestion>,
174}
175
176impl lsp::request::Request for NextEditSuggestions {
177    type Params = NextEditSuggestionsParams;
178    type Result = NextEditSuggestionsResult;
179
180    const METHOD: &'static str = "textDocument/copilotInlineEdit";
181}
182
183pub(crate) struct DidFocus;
184
185#[derive(Serialize, Deserialize)]
186pub(crate) struct DidFocusParams {
187    #[serde(skip_serializing_if = "Option::is_none")]
188    pub(crate) uri: Option<Uri>,
189}
190
191impl lsp::notification::Notification for DidFocus {
192    type Params = DidFocusParams;
193    const METHOD: &'static str = "textDocument/didFocus";
194}
195
196pub(crate) struct DidShowInlineEdit;
197
198#[derive(Serialize, Deserialize)]
199pub(crate) struct DidShowInlineEditParams {
200    pub(crate) item: serde_json::Value,
201}
202
203impl lsp::notification::Notification for DidShowInlineEdit {
204    type Params = DidShowInlineEditParams;
205    const METHOD: &'static str = "textDocument/didShowInlineEdit";
206}
207
208// Inline Completions (non-NES) - textDocument/inlineCompletion
209
210pub enum InlineCompletions {}
211
212#[derive(Debug, Serialize, Deserialize)]
213#[serde(rename_all = "camelCase")]
214pub struct InlineCompletionsParams {
215    pub text_document: VersionedTextDocumentIdentifier,
216    pub position: lsp::Position,
217    pub context: InlineCompletionContext,
218    #[serde(skip_serializing_if = "Option::is_none")]
219    pub formatting_options: Option<FormattingOptions>,
220}
221
222#[derive(Debug, Serialize, Deserialize)]
223#[serde(rename_all = "camelCase")]
224pub struct InlineCompletionContext {
225    pub trigger_kind: InlineCompletionTriggerKind,
226}
227
228#[derive(Debug, Clone, Copy)]
229pub enum InlineCompletionTriggerKind {
230    Invoked = 1,
231    Automatic = 2,
232}
233
234impl Serialize for InlineCompletionTriggerKind {
235    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
236    where
237        S: serde::Serializer,
238    {
239        serializer.serialize_u8(*self as u8)
240    }
241}
242
243impl<'de> Deserialize<'de> for InlineCompletionTriggerKind {
244    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
245    where
246        D: serde::Deserializer<'de>,
247    {
248        let value = u8::deserialize(deserializer)?;
249        match value {
250            1 => Ok(InlineCompletionTriggerKind::Invoked),
251            2 => Ok(InlineCompletionTriggerKind::Automatic),
252            _ => Err(serde::de::Error::custom("invalid trigger kind")),
253        }
254    }
255}
256
257#[derive(Debug, Serialize, Deserialize)]
258#[serde(rename_all = "camelCase")]
259pub struct FormattingOptions {
260    pub tab_size: u32,
261    pub insert_spaces: bool,
262}
263
264#[derive(Debug, Serialize, Deserialize)]
265#[serde(rename_all = "camelCase")]
266pub struct InlineCompletionsResult {
267    pub items: Vec<InlineCompletionItem>,
268}
269
270#[derive(Clone, Debug, Serialize, Deserialize)]
271#[serde(rename_all = "camelCase")]
272pub struct InlineCompletionItem {
273    pub insert_text: String,
274    pub range: lsp::Range,
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub command: Option<lsp::Command>,
277}
278
279impl lsp::request::Request for InlineCompletions {
280    type Params = InlineCompletionsParams;
281    type Result = InlineCompletionsResult;
282
283    const METHOD: &'static str = "textDocument/inlineCompletion";
284}
285
286// Telemetry notifications for inline completions
287
288pub(crate) struct DidShowCompletion;
289
290#[derive(Debug, Serialize, Deserialize)]
291#[serde(rename_all = "camelCase")]
292pub(crate) struct DidShowCompletionParams {
293    pub(crate) item: InlineCompletionItem,
294}
295
296impl lsp::notification::Notification for DidShowCompletion {
297    type Params = DidShowCompletionParams;
298    const METHOD: &'static str = "textDocument/didShowCompletion";
299}
300
Served at tenant.openagents/omega Member data and write actions are omitted.