Remove obsolete request-credential from the interface

Richard Feldman created

Change summary

crates/extension_api/src/extension_api.rs               | 26 +++++-----
crates/extension_api/wit/since_v0.8.0/extension.wit     |  2 
crates/extension_api/wit/since_v0.8.0/llm-provider.wit  | 17 -------
crates/extension_host/src/wasm_host/wit.rs              | 19 +++----
crates/extension_host/src/wasm_host/wit/since_v0_8_0.rs | 14 -----
5 files changed, 22 insertions(+), 56 deletions(-)

Detailed changes

crates/extension_api/src/extension_api.rs 🔗

@@ -31,23 +31,21 @@ pub use wit::{
     },
     zed::extension::llm_provider::{
         CacheConfiguration as LlmCacheConfiguration, CompletionEvent as LlmCompletionEvent,
-        CompletionRequest as LlmCompletionRequest, CredentialType as LlmCredentialType,
-        ImageData as LlmImageData, MessageContent as LlmMessageContent,
-        MessageRole as LlmMessageRole, ModelCapabilities as LlmModelCapabilities,
-        ModelInfo as LlmModelInfo, OauthHttpRequest as LlmOauthHttpRequest,
-        OauthHttpResponse as LlmOauthHttpResponse, OauthWebAuthConfig as LlmOauthWebAuthConfig,
-        OauthWebAuthResult as LlmOauthWebAuthResult, ProviderInfo as LlmProviderInfo,
-        RequestMessage as LlmRequestMessage, StopReason as LlmStopReason,
-        ThinkingContent as LlmThinkingContent, TokenUsage as LlmTokenUsage,
-        ToolChoice as LlmToolChoice, ToolDefinition as LlmToolDefinition,
-        ToolInputFormat as LlmToolInputFormat, ToolResult as LlmToolResult,
-        ToolResultContent as LlmToolResultContent, ToolUse as LlmToolUse,
-        ToolUseJsonParseError as LlmToolUseJsonParseError,
+        CompletionRequest as LlmCompletionRequest, ImageData as LlmImageData,
+        MessageContent as LlmMessageContent, MessageRole as LlmMessageRole,
+        ModelCapabilities as LlmModelCapabilities, ModelInfo as LlmModelInfo,
+        OauthHttpRequest as LlmOauthHttpRequest, OauthHttpResponse as LlmOauthHttpResponse,
+        OauthWebAuthConfig as LlmOauthWebAuthConfig, OauthWebAuthResult as LlmOauthWebAuthResult,
+        ProviderInfo as LlmProviderInfo, RequestMessage as LlmRequestMessage,
+        StopReason as LlmStopReason, ThinkingContent as LlmThinkingContent,
+        TokenUsage as LlmTokenUsage, ToolChoice as LlmToolChoice,
+        ToolDefinition as LlmToolDefinition, ToolInputFormat as LlmToolInputFormat,
+        ToolResult as LlmToolResult, ToolResultContent as LlmToolResultContent,
+        ToolUse as LlmToolUse, ToolUseJsonParseError as LlmToolUseJsonParseError,
         delete_credential as llm_delete_credential, get_credential as llm_get_credential,
         get_env_var as llm_get_env_var, oauth_open_browser as llm_oauth_open_browser,
         oauth_send_http_request as llm_oauth_send_http_request,
-        oauth_start_web_auth as llm_oauth_start_web_auth,
-        request_credential as llm_request_credential, store_credential as llm_store_credential,
+        oauth_start_web_auth as llm_oauth_start_web_auth, store_credential as llm_store_credential,
     },
     zed::extension::nodejs::{
         node_binary_path, npm_install_package, npm_package_installed_version,

crates/extension_api/wit/since_v0.8.0/extension.wit 🔗

@@ -18,7 +18,7 @@ world extension {
     use slash-command.{slash-command, slash-command-argument-completion, slash-command-output};
     use llm-provider.{
         provider-info, model-info, completion-request,
-        credential-type, cache-configuration, completion-event, token-usage
+        cache-configuration, completion-event, token-usage
     };
 
     /// Initializes the extension.

crates/extension_api/wit/since_v0.8.0/llm-provider.wit 🔗

@@ -235,14 +235,6 @@ interface llm-provider {
         cache-read-input-tokens: option<u64>,
     }
 
-    /// Credential types that can be requested.
-    enum credential-type {
-        /// An API key.
-        api-key,
-        /// An OAuth token.
-        oauth-token,
-    }
-
     /// Cache configuration for prompt caching.
     record cache-configuration {
         /// Maximum number of cache anchors.
@@ -299,15 +291,6 @@ interface llm-provider {
         body: string,
     }
 
-    /// Request a credential from the user.
-    /// Returns true if the credential was provided, false if the user cancelled.
-    request-credential: func(
-        provider-id: string,
-        credential-type: credential-type,
-        label: string,
-        placeholder: string
-    ) -> result<bool, string>;
-
     /// Get a stored credential for this provider.
     get-credential: func(provider-id: string) -> option<string>;
 

crates/extension_host/src/wasm_host/wit.rs 🔗

@@ -35,16 +35,15 @@ pub use latest::{
     zed::extension::context_server::ContextServerConfiguration,
     zed::extension::llm_provider::{
         CacheConfiguration as LlmCacheConfiguration, CompletionEvent as LlmCompletionEvent,
-        CompletionRequest as LlmCompletionRequest, CredentialType as LlmCredentialType,
-        ImageData as LlmImageData, MessageContent as LlmMessageContent,
-        MessageRole as LlmMessageRole, ModelCapabilities as LlmModelCapabilities,
-        ModelInfo as LlmModelInfo, ProviderInfo as LlmProviderInfo,
-        RequestMessage as LlmRequestMessage, StopReason as LlmStopReason,
-        ThinkingContent as LlmThinkingContent, TokenUsage as LlmTokenUsage,
-        ToolChoice as LlmToolChoice, ToolDefinition as LlmToolDefinition,
-        ToolInputFormat as LlmToolInputFormat, ToolResult as LlmToolResult,
-        ToolResultContent as LlmToolResultContent, ToolUse as LlmToolUse,
-        ToolUseJsonParseError as LlmToolUseJsonParseError,
+        CompletionRequest as LlmCompletionRequest, ImageData as LlmImageData,
+        MessageContent as LlmMessageContent, MessageRole as LlmMessageRole,
+        ModelCapabilities as LlmModelCapabilities, ModelInfo as LlmModelInfo,
+        ProviderInfo as LlmProviderInfo, RequestMessage as LlmRequestMessage,
+        StopReason as LlmStopReason, ThinkingContent as LlmThinkingContent,
+        TokenUsage as LlmTokenUsage, ToolChoice as LlmToolChoice,
+        ToolDefinition as LlmToolDefinition, ToolInputFormat as LlmToolInputFormat,
+        ToolResult as LlmToolResult, ToolResultContent as LlmToolResultContent,
+        ToolUse as LlmToolUse, ToolUseJsonParseError as LlmToolUseJsonParseError,
     },
     zed::extension::lsp::{
         Completion, CompletionKind, CompletionLabelDetails, InsertTextFormat, Symbol, SymbolKind,

crates/extension_host/src/wasm_host/wit/since_v0_8_0.rs 🔗

@@ -1112,20 +1112,6 @@ impl ExtensionImports for WasmState {
 }
 
 impl llm_provider::Host for WasmState {
-    async fn request_credential(
-        &mut self,
-        _provider_id: String,
-        _credential_type: llm_provider::CredentialType,
-        _label: String,
-        _placeholder: String,
-    ) -> wasmtime::Result<Result<bool, String>> {
-        // For now, credential requests return false (not provided)
-        // Extensions should use get_env_var to check for env vars first,
-        // then store_credential/get_credential for manual storage
-        // Full UI credential prompting will be added in a future phase
-        Ok(Ok(false))
-    }
-
     async fn get_credential(&mut self, provider_id: String) -> wasmtime::Result<Option<String>> {
         let extension_id = self.manifest.id.clone();