|
@@ -1,5 +1,9 @@
|
|
|
|
|
+import { EmptyRequest } from "@shared/proto/cline/common"
|
|
|
import { Mode } from "@shared/storage/types"
|
|
import { Mode } from "@shared/storage/types"
|
|
|
|
|
+import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"
|
|
|
|
|
+import { useEffect } from "react"
|
|
|
import { useExtensionState } from "@/context/ExtensionStateContext"
|
|
import { useExtensionState } from "@/context/ExtensionStateContext"
|
|
|
|
|
+import { AccountServiceClient } from "@/services/grpc-client"
|
|
|
import { DebouncedTextField } from "../common/DebouncedTextField"
|
|
import { DebouncedTextField } from "../common/DebouncedTextField"
|
|
|
import HicapModelPicker from "../HicapModelPicker"
|
|
import HicapModelPicker from "../HicapModelPicker"
|
|
|
import { useApiConfigurationHandlers } from "../utils/useApiConfigurationHandlers"
|
|
import { useApiConfigurationHandlers } from "../utils/useApiConfigurationHandlers"
|
|
@@ -20,6 +24,12 @@ export const HicapProvider = ({ showModelOptions, isPopup, currentMode }: HicapP
|
|
|
const { apiConfiguration, refreshHicapModels } = useExtensionState()
|
|
const { apiConfiguration, refreshHicapModels } = useExtensionState()
|
|
|
const { handleFieldChange } = useApiConfigurationHandlers()
|
|
const { handleFieldChange } = useApiConfigurationHandlers()
|
|
|
|
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ if (apiConfiguration?.hicapApiKey && apiConfiguration?.hicapApiKey.length === 32) {
|
|
|
|
|
+ refreshHicapModels()
|
|
|
|
|
+ }
|
|
|
|
|
+ }, [apiConfiguration?.hicapApiKey])
|
|
|
|
|
+
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
|
<div>
|
|
<div>
|
|
@@ -45,6 +55,21 @@ export const HicapProvider = ({ showModelOptions, isPopup, currentMode }: HicapP
|
|
|
<span style={{ fontWeight: 500 }}>Hicap API Key</span>
|
|
<span style={{ fontWeight: 500 }}>Hicap API Key</span>
|
|
|
</div>
|
|
</div>
|
|
|
</DebouncedTextField>
|
|
</DebouncedTextField>
|
|
|
|
|
+
|
|
|
|
|
+ {!apiConfiguration?.hicapApiKey && (
|
|
|
|
|
+ <VSCodeButton
|
|
|
|
|
+ appearance="secondary"
|
|
|
|
|
+ onClick={async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ await AccountServiceClient.hicapAuthClicked(EmptyRequest.create())
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error("Failed to open Hicap auth:", error)
|
|
|
|
|
+ }
|
|
|
|
|
+ }}
|
|
|
|
|
+ style={{ margin: "5px 0 0 0" }}>
|
|
|
|
|
+ Generate API Key
|
|
|
|
|
+ </VSCodeButton>
|
|
|
|
|
+ )}
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
{showModelOptions && (
|
|
{showModelOptions && (
|