refactor(websearch): unify CLI status types with ComponentStatus

- replace GeminiCliStatus, GrokCliStatus, OpenCodeCliStatus with type aliases

- use ComponentStatus from types/utils as single source of truth

- fix null vs undefined for optional fields
This commit is contained in:
kaitranntt
2025-12-19 15:38:57 -05:00
parent 6c78b63908
commit a8f7dad4e3
5 changed files with 17 additions and 24 deletions
+2 -2
View File
@@ -31,8 +31,8 @@ export function getGeminiCliStatus(): GeminiCliStatus {
const result: GeminiCliStatus = {
installed: false,
path: null,
version: null,
path: undefined,
version: undefined,
};
try {
+2 -2
View File
@@ -28,8 +28,8 @@ export function getGrokCliStatus(): GrokCliStatus {
const result: GrokCliStatus = {
installed: false,
path: null,
version: null,
path: undefined,
version: undefined,
};
try {
+2 -2
View File
@@ -28,8 +28,8 @@ export function getOpenCodeCliStatus(): OpenCodeCliStatus {
const result: OpenCodeCliStatus = {
installed: false,
path: null,
version: null,
path: undefined,
version: undefined,
};
try {
+3 -3
View File
@@ -27,7 +27,7 @@ export function getWebSearchCliProviders(): WebSearchCliInfo[] {
name: 'Gemini CLI',
command: 'gemini',
installed: geminiStatus.installed,
version: geminiStatus.version,
version: geminiStatus.version ?? null,
installCommand: 'npm install -g @google/gemini-cli',
docsUrl: 'https://github.com/google-gemini/gemini-cli',
requiresApiKey: false,
@@ -39,7 +39,7 @@ export function getWebSearchCliProviders(): WebSearchCliInfo[] {
name: 'OpenCode',
command: 'opencode',
installed: opencodeStatus.installed,
version: opencodeStatus.version,
version: opencodeStatus.version ?? null,
installCommand: 'curl -fsSL https://opencode.ai/install | bash',
docsUrl: 'https://github.com/sst/opencode',
requiresApiKey: false,
@@ -51,7 +51,7 @@ export function getWebSearchCliProviders(): WebSearchCliInfo[] {
name: 'Grok CLI',
command: 'grok',
installed: grokStatus.installed,
version: grokStatus.version,
version: grokStatus.version ?? null,
installCommand: 'npm install -g @vibe-kit/grok-cli',
docsUrl: 'https://github.com/superagent-ai/grok-cli',
requiresApiKey: true,
+8 -15
View File
@@ -6,32 +6,25 @@
* @module utils/websearch/types
*/
import type { ComponentStatus } from '../../types/utils';
/**
* Gemini CLI installation status
* @deprecated Use ComponentStatus directly
*/
export interface GeminiCliStatus {
installed: boolean;
path: string | null;
version: string | null;
}
export type GeminiCliStatus = ComponentStatus;
/**
* Grok CLI installation status
* @deprecated Use ComponentStatus directly
*/
export interface GrokCliStatus {
installed: boolean;
path: string | null;
version: string | null;
}
export type GrokCliStatus = ComponentStatus;
/**
* OpenCode CLI installation status
* @deprecated Use ComponentStatus directly
*/
export interface OpenCodeCliStatus {
installed: boolean;
path: string | null;
version: string | null;
}
export type OpenCodeCliStatus = ComponentStatus;
/**
* WebSearch availability status for third-party profiles