mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
- Added STT configuration to global and provider settings - Created SttService with singleton pattern for managing STT operations - Implemented browser-based audio capture page with WebSocket streaming - Added microphone button to ChatTextArea component - Created capture server for hosting browser capture page - Integrated with VS Code URI handler for transcript callbacks - Added STT settings UI components in settings panel - Created comprehensive test suite for STT functionality - Fixed ESLint warnings in SttSettings component Note: Implementation pending security review for API key handling. Waiting for guidance on secure token exchange mechanism. Related to #8852
72 lines
1.6 KiB
TypeScript
72 lines
1.6 KiB
TypeScript
import * as vscode from "vscode"
|
|
|
|
import { CloudService } from "@roo-code/cloud"
|
|
|
|
import { ClineProvider } from "../core/webview/ClineProvider"
|
|
|
|
export const handleUri = async (uri: vscode.Uri) => {
|
|
const path = uri.path
|
|
const query = new URLSearchParams(uri.query.replace(/\+/g, "%2B"))
|
|
const visibleProvider = ClineProvider.getVisibleInstance()
|
|
|
|
if (!visibleProvider) {
|
|
return
|
|
}
|
|
|
|
switch (path) {
|
|
case "/glama": {
|
|
const code = query.get("code")
|
|
if (code) {
|
|
await visibleProvider.handleGlamaCallback(code)
|
|
}
|
|
break
|
|
}
|
|
case "/openrouter": {
|
|
const code = query.get("code")
|
|
if (code) {
|
|
await visibleProvider.handleOpenRouterCallback(code)
|
|
}
|
|
break
|
|
}
|
|
case "/requesty": {
|
|
const code = query.get("code")
|
|
if (code) {
|
|
await visibleProvider.handleRequestyCallback(code)
|
|
}
|
|
break
|
|
}
|
|
case "/auth/clerk/callback": {
|
|
const code = query.get("code")
|
|
const state = query.get("state")
|
|
const organizationId = query.get("organizationId")
|
|
|
|
await CloudService.instance.handleAuthCallback(
|
|
code,
|
|
state,
|
|
organizationId === "null" ? null : organizationId,
|
|
)
|
|
break
|
|
}
|
|
case "/stt/transcript": {
|
|
const transcript = query.get("transcript")
|
|
const error = query.get("error")
|
|
|
|
if (error) {
|
|
// Send error to webview
|
|
await visibleProvider.postMessageToWebview({
|
|
type: "sttError",
|
|
error: decodeURIComponent(error),
|
|
})
|
|
} else if (transcript) {
|
|
// Send transcript to webview
|
|
await visibleProvider.postMessageToWebview({
|
|
type: "sttTranscript",
|
|
text: decodeURIComponent(transcript),
|
|
})
|
|
}
|
|
break
|
|
}
|
|
default:
|
|
break
|
|
}
|
|
}
|