diff --git a/crates/agent/src/buffer_codegen.rs b/crates/agent/src/buffer_codegen.rs index 42a42ffa0f32993f196143d90573ad6da76bf7e0..3cd9306fa778f152aa2749ec8113fcb4bb69d231 100644 --- a/crates/agent/src/buffer_codegen.rs +++ b/crates/agent/src/buffer_codegen.rs @@ -28,7 +28,7 @@ use std::{ time::Instant, }; use streaming_diff::{CharOperation, LineDiff, LineOperation, StreamingDiff}; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; pub struct BufferCodegen { alternatives: Vec>, @@ -601,7 +601,7 @@ impl CodegenAlternative { let error_message = result.as_ref().err().map(|error| error.to_string()); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, message_id, kind: AssistantKind::Inline, diff --git a/crates/agent/src/inline_assistant.rs b/crates/agent/src/inline_assistant.rs index b0356f9048243e598008a43f9201460668d48dd2..b88a6e9c5d726b8383ec556490124fd8f35ab925 100644 --- a/crates/agent/src/inline_assistant.rs +++ b/crates/agent/src/inline_assistant.rs @@ -31,7 +31,7 @@ use project::LspAction; use project::{CodeAction, ProjectTransaction}; use prompt_store::PromptBuilder; use settings::{Settings, SettingsStore}; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use terminal_view::{TerminalView, terminal_panel::TerminalPanel}; use text::{OffsetRangeExt, ToPoint as _}; use ui::prelude::*; @@ -402,7 +402,7 @@ impl InlineAssistant { codegen_ranges.push(anchor_range); if let Some(model) = LanguageModelRegistry::read_global(cx).inline_assistant_model() { - self.telemetry.report_assistant_event(AssistantEvent { + self.telemetry.report_assistant_event(AssistantEventData { conversation_id: None, kind: AssistantKind::Inline, phase: AssistantPhase::Invoked, @@ -987,7 +987,7 @@ impl InlineAssistant { .map(|language| language.name()) }); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::Inline, message_id, diff --git a/crates/agent/src/terminal_codegen.rs b/crates/agent/src/terminal_codegen.rs index 29f432952325420df1dbd1fcf17423730a87a6fd..8c0e9e167585de8fee8493548f7fbdf70a53f51c 100644 --- a/crates/agent/src/terminal_codegen.rs +++ b/crates/agent/src/terminal_codegen.rs @@ -6,7 +6,7 @@ use language_model::{ ConfiguredModel, LanguageModelRegistry, LanguageModelRequest, report_assistant_event, }; use std::{sync::Arc, time::Instant}; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use terminal::Terminal; pub struct TerminalCodegen { @@ -79,7 +79,7 @@ impl TerminalCodegen { let error_message = result.as_ref().err().map(|error| error.to_string()); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::InlineTerminal, message_id, diff --git a/crates/agent/src/terminal_inline_assistant.rs b/crates/agent/src/terminal_inline_assistant.rs index b68ace831fabe9d420c822b018580ea70a4476e9..c05cbf7325c9af2ff189d588c76d847b4643a5c5 100644 --- a/crates/agent/src/terminal_inline_assistant.rs +++ b/crates/agent/src/terminal_inline_assistant.rs @@ -18,7 +18,7 @@ use language_model::{ }; use prompt_store::PromptBuilder; use std::sync::Arc; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use terminal_view::TerminalView; use ui::prelude::*; use util::ResultExt; @@ -292,7 +292,7 @@ impl TerminalInlineAssistant { let codegen = assist.codegen.read(cx); let executor = cx.background_executor().clone(); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::InlineTerminal, message_id: codegen.message_id.clone(), diff --git a/crates/assistant/src/inline_assistant.rs b/crates/assistant/src/inline_assistant.rs index 9a64528a70733a81d310f7caaf529a06fb63f9b5..97c6d5785be9f0b89d74eeb6ca392980206e910d 100644 --- a/crates/assistant/src/inline_assistant.rs +++ b/crates/assistant/src/inline_assistant.rs @@ -57,7 +57,7 @@ use std::{ time::{Duration, Instant}, }; use streaming_diff::{CharOperation, LineDiff, LineOperation, StreamingDiff}; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use terminal_view::terminal_panel::TerminalPanel; use text::{OffsetRangeExt, ToPoint as _}; use theme::ThemeSettings; @@ -315,7 +315,7 @@ impl InlineAssistant { if let Some(ConfiguredModel { model, .. }) = LanguageModelRegistry::read_global(cx).default_model() { - self.telemetry.report_assistant_event(AssistantEvent { + self.telemetry.report_assistant_event(AssistantEventData { conversation_id: None, kind: AssistantKind::Inline, phase: AssistantPhase::Invoked, @@ -892,7 +892,7 @@ impl InlineAssistant { .map(|language| language.name()) }); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::Inline, message_id, @@ -3148,7 +3148,7 @@ impl CodegenAlternative { let error_message = result.as_ref().err().map(|error| error.to_string()); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, message_id, kind: AssistantKind::Inline, diff --git a/crates/assistant/src/terminal_inline_assistant.rs b/crates/assistant/src/terminal_inline_assistant.rs index 8a0599cccbbeae673dbd173099b3aaecb61fcba9..90e59cf376821aa8dbfa0db07301cc04e2b30110 100644 --- a/crates/assistant/src/terminal_inline_assistant.rs +++ b/crates/assistant/src/terminal_inline_assistant.rs @@ -27,7 +27,7 @@ use std::{ sync::Arc, time::{Duration, Instant}, }; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use terminal::Terminal; use terminal_view::TerminalView; use theme::ThemeSettings; @@ -324,7 +324,7 @@ impl TerminalInlineAssistant { let codegen = assist.codegen.read(cx); let executor = cx.background_executor().clone(); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::InlineTerminal, message_id: codegen.message_id.clone(), @@ -1183,7 +1183,7 @@ impl Codegen { let error_message = result.as_ref().err().map(|error| error.to_string()); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: None, kind: AssistantKind::InlineTerminal, message_id, diff --git a/crates/assistant_context_editor/src/context.rs b/crates/assistant_context_editor/src/context.rs index 719686843572cbcc652f8ec2e4111ac5269e9d7b..b68b140d3088e0b5ae1ca20f0840ca7091df61a9 100644 --- a/crates/assistant_context_editor/src/context.rs +++ b/crates/assistant_context_editor/src/context.rs @@ -40,7 +40,7 @@ use std::{ sync::Arc, time::{Duration, Instant}, }; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use text::{BufferSnapshot, ToPoint}; use ui::IconName; use util::{ResultExt, TryFutureExt, post_inc}; @@ -2498,7 +2498,7 @@ impl AssistantContext { .language() .map(|language| language.name()); report_assistant_event( - AssistantEvent { + AssistantEventData { conversation_id: Some(this.id.0.clone()), kind: AssistantKind::Panel, phase: AssistantPhase::Response, diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 2e278637eb73cedd6f30dfa503ce44175f70edc4..47df2a0239ce5187c3f743b84ccae7aee7c3054b 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -17,7 +17,7 @@ use std::io::Write; use std::sync::LazyLock; use std::time::Instant; use std::{env, mem, path::PathBuf, sync::Arc, time::Duration}; -use telemetry_events::{AssistantEvent, AssistantPhase, Event, EventRequestBody, EventWrapper}; +use telemetry_events::{AssistantEventData, AssistantPhase, Event, EventRequestBody, EventWrapper}; use util::{ResultExt, TryFutureExt}; use worktree::{UpdatedEntriesSet, WorktreeId}; @@ -329,7 +329,7 @@ impl Telemetry { drop(state); } - pub fn report_assistant_event(self: &Arc, event: AssistantEvent) { + pub fn report_assistant_event(self: &Arc, event: AssistantEventData) { let event_type = match event.phase { AssistantPhase::Response => "Assistant Responded", AssistantPhase::Invoked => "Assistant Invoked", diff --git a/crates/language_model/src/telemetry.rs b/crates/language_model/src/telemetry.rs index c24ec9770035a1887b693df634826f05f64156e0..62b199bd456bf6f164b03e265fd6cec2f6e468a0 100644 --- a/crates/language_model/src/telemetry.rs +++ b/crates/language_model/src/telemetry.rs @@ -5,13 +5,13 @@ use gpui::BackgroundExecutor; use http_client::{AsyncBody, HttpClient, Method, Request as HttpRequest}; use std::env; use std::sync::Arc; -use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase}; +use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; use util::ResultExt; pub const ANTHROPIC_PROVIDER_ID: &str = "anthropic"; pub fn report_assistant_event( - event: AssistantEvent, + event: AssistantEventData, telemetry: Option>, client: Arc, model_api_key: Option, @@ -32,7 +32,7 @@ pub fn report_assistant_event( } async fn report_anthropic_event( - event: AssistantEvent, + event: AssistantEventData, client: Arc, model_api_key: Option, ) -> Result<(), AnthropicError> { diff --git a/crates/telemetry_events/src/telemetry_events.rs b/crates/telemetry_events/src/telemetry_events.rs index 81106b89da9ed06d664c715844562e01894582c3..6c1b133d50fbb9f73156a399c83d496863d92321 100644 --- a/crates/telemetry_events/src/telemetry_events.rs +++ b/crates/telemetry_events/src/telemetry_events.rs @@ -96,7 +96,7 @@ pub enum Event { InlineCompletion(InlineCompletionEvent), InlineCompletionRating(InlineCompletionRatingEvent), Call(CallEvent), - Assistant(AssistantEvent), + Assistant(AssistantEventData), Cpu(CpuEvent), Memory(MemoryEvent), App(AppEvent), @@ -162,7 +162,7 @@ pub struct CallEvent { } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] -pub struct AssistantEvent { +pub struct AssistantEventData { /// Unique random identifier for each assistant tab (None for inline assist) pub conversation_id: Option, /// Server-generated message ID (only supported for some providers)