Skip to content

Commit 2846692

Browse files
committed
Working
1 parent ccd61f7 commit 2846692

13 files changed

Lines changed: 71 additions & 81 deletions

File tree

src/api/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { VsCodeLmHandler } from "./providers/vscode-lm"
1919
import { ApiStream } from "./transform/stream"
2020
import { UnboundHandler } from "./providers/unbound"
2121
import { RequestyHandler } from "./providers/requesty"
22-
import { PearAiHandler } from "./providers/pearai/pearai"
22+
import { PearAIHandler } from "./providers/pearai/pearai"
2323
import { HumanRelayHandler } from "./providers/human-relay"
2424
import { FakeAIHandler } from "./providers/fake-ai"
2525
import { XAIHandler } from "./providers/xai"
@@ -82,7 +82,7 @@ export function buildApiHandler(configuration: ApiConfiguration): ApiHandler {
8282
case "fake-ai":
8383
return new FakeAIHandler(options)
8484
case "pearai":
85-
return new PearAiHandler(options)
85+
return new PearAIHandler(options)
8686
case "xai":
8787
return new XAIHandler(options)
8888
default:

src/api/providers/pearai/pearai.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ export interface PearAIAgentModelsConfig {
1616
defaultModelId?: string
1717
}
1818

19-
export class PearAiHandler extends BaseProvider implements SingleCompletionHandler {
19+
export class PearAIHandler extends BaseProvider implements SingleCompletionHandler {
2020
private handler!: AnthropicHandler | PearAIGenericHandler
21-
private pearAIAgentModels: PearAIAgentModelsConfig | null = null
21+
private pearaiAgentModels: PearAIAgentModelsConfig | null = null
2222
private options: ApiHandlerOptions
2323

2424
constructor(options: ApiHandlerOptions) {

src/api/providers/pearai/pearaiGeneric.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { convertToSimpleMessages } from "../../transform/simple-format"
1919
import { ApiStream, ApiStreamUsageChunk } from "../../transform/stream"
2020
import { BaseProvider } from "../base-provider"
2121
import { XmlMatcher } from "../../../utils/xml-matcher"
22-
import { allModels, pearAiDefaultModelId, pearAiDefaultModelInfo } from "../../../shared/pearaiApi"
22+
import { allModels, pearaiDefaultModelId, pearaiDefaultModelInfo } from "../../../shared/pearaiApi"
2323
import { calculateApiCostOpenAI } from "../../../utils/cost"
2424

2525
const DEEP_SEEK_DEFAULT_TEMPERATURE = 0.6
@@ -240,8 +240,8 @@ export class PearAIGenericHandler extends BaseProvider implements SingleCompleti
240240
}
241241

242242
const result = {
243-
id: modelId ?? pearAiDefaultModelId,
244-
info: allModels[modelId ?? pearAiDefaultModelId],
243+
id: modelId ?? pearaiDefaultModelId,
244+
info: allModels[modelId ?? pearaiDefaultModelId],
245245
}
246246
return result
247247
}

src/extension.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export async function activate(context: vscode.ExtensionContext) {
115115

116116
// const mcpHub = provider.getMcpHub()
117117
// if (mcpHub) {
118-
// await mcpHub.updatePearAiApiKey(data.accessToken)
118+
// await mcpHub.updatePearAIApiKey(data.accessToken)
119119
// }
120120
}
121121
vscode.commands.executeCommand("roo-cline.plusButtonClicked")
@@ -138,7 +138,7 @@ export async function activate(context: vscode.ExtensionContext) {
138138
// Update MCP server with new token
139139
// const mcpHub = provider.getMcpHub()
140140
// if (mcpHub) {
141-
// await mcpHub.updatePearAiApiKey(data.accessToken)
141+
// await mcpHub.updatePearAIApiKey(data.accessToken)
142142
// }
143143
}
144144
}),
@@ -161,7 +161,7 @@ export async function activate(context: vscode.ExtensionContext) {
161161
// Clear MCP server token
162162
// const mcpHub = provider.getMcpHub()
163163
// if (mcpHub) {
164-
// await mcpHub.clearPearAiApiKey()
164+
// await mcpHub.clearPearAIApiKey()
165165
// }
166166
}
167167
}),

src/shared/pearaiApi.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ import {
2424
} from "./api"
2525

2626
// PearAI
27-
export type PearAiModelId = keyof typeof pearAiModels
28-
export const pearAiDefaultModelId: PearAiModelId = "pearai-model"
29-
export const pearAiDefaultModelInfo: ModelInfo = {
27+
export type PearAIModelId = keyof typeof pearaiModels
28+
export const pearaiDefaultModelId: PearAIModelId = "pearai-model"
29+
export const pearaiDefaultModelInfo: ModelInfo = {
3030
maxTokens: 8192,
3131
contextWindow: 200_000,
3232
supportsImages: true,
@@ -39,7 +39,7 @@ export const pearAiDefaultModelInfo: ModelInfo = {
3939
"PearAI Model automatically routes you to the most best / most suitable model on the market. Recommended for most users.",
4040
}
4141

42-
export const pearAiModels = {
42+
export const pearaiModels = {
4343
"pearai-model": {
4444
maxTokens: 8192,
4545
contextWindow: 200_000,

webview-ui/src/components/chat/ChatView.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import TelemetryBanner from "../common/TelemetryBanner"
3131
import HistoryPreview from "../history/HistoryPreview"
3232
import RooHero from "@src/components/welcome/RooHero"
3333
import RooTips from "@src/components/welcome/RooTips"
34-
import { usePearAiModels } from "../../hooks/usePearAiModels"
3534
import Announcement from "./Announcement"
3635
import BrowserSessionRow from "./BrowserSessionRow"
3736
import ChatRow from "./ChatRow"
@@ -52,6 +51,7 @@ import {
5251

5352
import SystemPromptWarning from "./SystemPromptWarning"
5453
import { useTaskSearch } from "../history/useTaskSearch"
54+
import { usePearAIModels } from "@/hooks/usePearAIModels"
5555

5656
export interface ChatViewProps {
5757
isHidden: boolean
@@ -516,13 +516,14 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
516516
startNewTask()
517517
}, [startNewTask])
518518

519-
// TODO: FIGURE THIS OUT
520-
// const pearAiModels = usePearAiModels(apiConfiguration)
519+
const pearaiModels = usePearAIModels(apiConfiguration)
521520

522-
// const { selectedModelInfo } = useMemo(() => {
523-
// return normalizeApiConfiguration(apiConfiguration, pearAiModels)
524-
// }, [apiConfiguration, pearAiModels])
525-
const { info: model } = useSelectedModel(apiConfiguration)
521+
let apiConfigurationNew = {
522+
...apiConfiguration,
523+
pearaiAgentModels: pearaiModels,
524+
}
525+
526+
const { info: model } = useSelectedModel(apiConfigurationNew)
526527

527528
const selectImages = useCallback(() => {
528529
vscode.postMessage({ type: "selectImages" })

webview-ui/src/components/chat/TaskHeader.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,10 @@ import { useExtensionState } from "@src/context/ExtensionStateContext"
1414
import { useSelectedModel } from "@/components/ui/hooks/useSelectedModel"
1515

1616
import Thumbnails from "../common/Thumbnails"
17-
import { DeleteTaskDialog } from "../history/DeleteTaskDialog"
18-
import { vscBadgeBackground, vscEditorBackground, vscInputBackground } from "../ui"
19-
import { usePearAiModels } from "@/hooks/usePearAiModels"
20-
2117
import { TaskActions } from "./TaskActions"
2218
import { ContextWindowProgress } from "./ContextWindowProgress"
2319
import { Mention } from "./Mention"
20+
import { usePearAIModels } from "@/hooks/usePearAIModels"
2421

2522
export interface TaskHeaderProps {
2623
task: ClineMessage
@@ -46,16 +43,19 @@ const TaskHeader = ({
4643
onClose,
4744
}: TaskHeaderProps) => {
4845
const { t } = useTranslation()
49-
const { apiConfiguration, currentTaskItem } = useExtensionState()
46+
let { apiConfiguration, currentTaskItem } = useExtensionState()
47+
const pearaiModels = usePearAIModels(apiConfiguration)
48+
apiConfiguration = {
49+
...apiConfiguration,
50+
pearaiAgentModels: pearaiModels,
51+
}
5052
const { info: model } = useSelectedModel(apiConfiguration)
5153
const [isTaskExpanded, setIsTaskExpanded] = useState(false)
5254

5355
const textContainerRef = useRef<HTMLDivElement>(null)
5456
const textRef = useRef<HTMLDivElement>(null)
5557
const contextWindow = model?.contextWindow || 1
5658

57-
const pearAiModels = usePearAiModels(apiConfiguration)
58-
5959
const { width: windowWidth } = useWindowSize()
6060

6161
return (

webview-ui/src/components/settings/ApiOptions.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ import { ModelPicker } from "./ModelPicker"
4242
import { ApiErrorMessage } from "./ApiErrorMessage"
4343
import { ThinkingBudget } from "./ThinkingBudget"
4444
import { R1FormatSetting } from "./R1FormatSetting"
45-
import { usePearAiModels } from "../../hooks/usePearAiModels"
46-
import { allModels, pearAiDefaultModelId, pearAiDefaultModelInfo } from "../../../../src/shared/pearaiApi"
45+
import { usePearAIModels } from "../../hooks/usePearAIModels"
46+
import { allModels, pearaiDefaultModelId, pearaiDefaultModelInfo } from "../../../../src/shared/pearaiApi"
4747
import { OpenRouterBalanceDisplay } from "./OpenRouterBalanceDisplay"
4848
import { RequestyBalanceDisplay } from "./RequestyBalanceDisplay"
4949
import { ReasoningEffort } from "./ReasoningEffort"
@@ -76,7 +76,7 @@ const ApiOptions = ({
7676
const [vsCodeLmModels, setVsCodeLmModels] = useState<LanguageModelChatSelector[]>([])
7777

7878
const [openAiModels, setOpenAiModels] = useState<Record<string, ModelInfo> | null>(null)
79-
const pearAiModels = usePearAiModels(apiConfiguration)
79+
const pearaiModels = usePearAIModels(apiConfiguration).models
8080

8181
const [anthropicBaseUrlSelected, setAnthropicBaseUrlSelected] = useState(!!apiConfiguration?.anthropicBaseUrl)
8282
const [azureApiVersionSelected, setAzureApiVersionSelected] = useState(!!apiConfiguration?.azureApiVersion)
@@ -108,9 +108,6 @@ const ApiOptions = ({
108108
info: selectedModelInfo,
109109
} = useSelectedModel(apiConfiguration)
110110

111-
console.dir("IM HERE IN THIS BIHHHH")
112-
console.dir(selectedModelId)
113-
114111
const { data: routerModels } = useRouterModels()
115112

116113
// Update apiConfiguration.aiModelId whenever selectedModelId changes.
@@ -201,7 +198,7 @@ const ApiOptions = ({
201198

202199
const selectedProviderModelOptions = useMemo(() => {
203200
if (selectedProvider === "pearai") {
204-
return Object.keys(pearAiModels).map((modelId) => ({
201+
return Object.keys(pearaiModels).map((modelId) => ({
205202
value: modelId,
206203
label: modelId,
207204
}))
@@ -212,7 +209,7 @@ const ApiOptions = ({
212209
label: modelId,
213210
}))
214211
: []
215-
}, [selectedProvider, pearAiModels])
212+
}, [selectedProvider, pearaiModels])
216213

217214
// Base URL for provider documentation
218215
const DOC_BASE_URL = "https://docs.roocode.com/providers"
@@ -312,7 +309,6 @@ const ApiOptions = ({
312309
<SelectValue placeholder={t("settings:common.select")} />
313310
</SelectTrigger>
314311
<SelectContent>
315-
<SelectItem value="pearai">PearAI</SelectItem>
316312
{PROVIDERS.map(({ value, label }) => (
317313
<SelectItem key={value} value={value}>
318314
{label}

webview-ui/src/components/settings/ModelPicker.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import {
2323

2424
import { ThinkingBudget } from "./ThinkingBudget"
2525
import { ModelInfoView } from "./ModelInfoView"
26-
import { usePearAiModels } from "../../hooks/usePearAiModels"
2726

2827
type ModelIdKey = keyof Pick<
2928
ProviderSettings,
@@ -57,12 +56,6 @@ export const ModelPicker = ({
5756
const searchInputRef = useRef<HTMLInputElement>(null)
5857
const modelIds = useMemo(() => Object.keys(models ?? {}).sort((a, b) => a.localeCompare(b)), [models])
5958

60-
const pearAiModels = usePearAiModels(apiConfiguration)
61-
62-
// const { selectedModelId, selectedModelInfo } = useMemo(
63-
// () => normalizeApiConfiguration(apiConfiguration, pearAiModels),
64-
// [apiConfiguration, pearAiModels],
65-
// )
6659
const { id: selectedModelId, info: selectedModelInfo } = useSelectedModel(apiConfiguration)
6760

6861
const [searchValue, setSearchValue] = useState(selectedModelId || "")

webview-ui/src/components/ui/hooks/useSelectedModel.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
} from "@roo/shared/api"
2929

3030
import { useRouterModels } from "./useRouterModels"
31-
import { pearAiDefaultModelId, pearAiDefaultModelInfo } from "@roo/shared/pearaiApi"
31+
import { pearaiDefaultModelId, pearaiDefaultModelInfo } from "@roo/shared/pearaiApi"
3232

3333
export const useSelectedModel = (apiConfiguration?: ApiConfiguration) => {
3434
const { data: routerModels, isLoading, isError } = useRouterModels()
@@ -55,7 +55,7 @@ function getSelectedModelId({ provider, apiConfiguration }: { provider: string;
5555
case "lmstudio":
5656
return apiConfiguration.lmStudioModelId || ""
5757
case "pearai":
58-
return apiConfiguration.pearaiModelId || pearAiDefaultModelId
58+
return apiConfiguration.apiModelId || pearaiDefaultModelId
5959
case "vscode-lm":
6060
return apiConfiguration?.vsCodeLmModelSelector
6161
? `${apiConfiguration.vsCodeLmModelSelector.vendor}/${apiConfiguration.vsCodeLmModelSelector.family}`
@@ -76,9 +76,6 @@ function getSelectedModelInfo({
7676
apiConfiguration?: ApiConfiguration
7777
routerModels: RouterModels
7878
}): ModelInfo {
79-
console.dir("IM HERE AAAA")
80-
console.dir(provider)
81-
console.dir(id)
8279
switch (provider) {
8380
case "openrouter":
8481
return routerModels.openrouter[id] ?? routerModels.openrouter[openRouterDefaultModelId]
@@ -125,7 +122,7 @@ function getSelectedModelInfo({
125122
supportsImages: false, // VSCode LM API currently doesn't support images.
126123
}
127124
case "pearai":
128-
return apiConfiguration?.pearaiAgentModels?.models[id] ?? pearAiDefaultModelInfo
125+
return apiConfiguration?.pearaiAgentModels?.models[id] ?? pearaiDefaultModelInfo
129126
default:
130127
return anthropicModels[id as keyof typeof anthropicModels] ?? anthropicModels[anthropicDefaultModelId]
131128
}

0 commit comments

Comments
 (0)