feat(gemini-core): 添加客户端元数据并支持默认项目ID

在调用API时添加完整的客户端元数据信息,包括IDE类型、平台和插件类型等,并使用默认项目ID进行初始化。这有助于服务端更好地识别客户端环境并提供更准确的响应。
This commit is contained in:
hex2077 2025-10-05 14:44:27 +08:00
parent bf573bb8f5
commit b9d77090c9

View file

@ -164,12 +164,21 @@ export class GeminiApiService {
this.availableModels = GEMINI_MODELS;
console.log(`[Gemini] Using fixed models: [${this.availableModels.join(', ')}]`);
try {
const loadResponse = await this.callApi('loadCodeAssist', { metadata: { pluginType: 'GEMINI' } });
const initialProjectId = "default"
// Prepare client metadata
const clientMetadata = {
ideType: "IDE_UNSPECIFIED",
platform: "PLATFORM_UNSPECIFIED",
pluginType: "GEMINI",
duetProject: initialProjectId,
}
const loadResponse = await this.callApi('loadCodeAssist', { metadata: clientMetadata });
if (loadResponse.cloudaicompanionProject) {
return loadResponse.cloudaicompanionProject;
}
const defaultTier = loadResponse.allowedTiers?.find(tier => tier.isDefault);
const onboardRequest = { tierId: defaultTier?.id || 'free-tier', metadata: { pluginType: 'GEMINI' } , cloudaicompanionProject: 'default',};
const onboardRequest = { tierId: defaultTier?.id || 'free-tier', metadata: clientMetadata , cloudaicompanionProject: initialProjectId,};
let lro = await this.callApi('onboardUser', onboardRequest);
while (!lro.done) {
await new Promise(resolve => setTimeout(resolve, 2000));