mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-05-05 07:10:55 +00:00
feat(vscode-ide-companion): support context left
This commit is contained in:
parent
90bf101040
commit
5cc01e5e09
9 changed files with 333 additions and 68 deletions
|
|
@ -101,14 +101,6 @@ class GeminiAgent {
|
|||
}));
|
||||
|
||||
const version = process.env['CLI_VERSION'] || process.version;
|
||||
const modelName = this.config.getModel();
|
||||
const modelInfo =
|
||||
modelName && modelName.length > 0
|
||||
? {
|
||||
name: modelName,
|
||||
contextLimit: tokenLimit(modelName),
|
||||
}
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
protocolVersion: acp.PROTOCOL_VERSION,
|
||||
|
|
@ -122,7 +114,6 @@ class GeminiAgent {
|
|||
currentModeId: currentApprovalMode as ApprovalModeValue,
|
||||
availableModes,
|
||||
},
|
||||
modelInfo,
|
||||
agentCapabilities: {
|
||||
loadSession: true,
|
||||
promptCapabilities: {
|
||||
|
|
@ -175,9 +166,30 @@ class GeminiAgent {
|
|||
this.setupFileSystem(config);
|
||||
|
||||
const session = await this.createAndStoreSession(config);
|
||||
const configuredModel = (
|
||||
config.getModel() ||
|
||||
this.config.getModel() ||
|
||||
''
|
||||
).trim();
|
||||
const modelId = configuredModel || 'default';
|
||||
const modelName = configuredModel || modelId;
|
||||
|
||||
return {
|
||||
sessionId: session.getId(),
|
||||
models: {
|
||||
currentModelId: modelId,
|
||||
availableModels: [
|
||||
{
|
||||
modelId,
|
||||
name: modelName,
|
||||
description: null,
|
||||
_meta: {
|
||||
contextLimit: tokenLimit(modelId),
|
||||
},
|
||||
},
|
||||
],
|
||||
_meta: null,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -255,8 +255,27 @@ export const authenticateUpdateSchema = z.object({
|
|||
|
||||
export type AuthenticateUpdate = z.infer<typeof authenticateUpdateSchema>;
|
||||
|
||||
// ACP `_meta` extensibility field: implementations MUST NOT assume keys.
|
||||
export const acpMetaSchema = z.record(z.unknown()).nullable().optional();
|
||||
|
||||
export const modelIdSchema = z.string();
|
||||
|
||||
export const modelInfoSchema = z.object({
|
||||
_meta: acpMetaSchema,
|
||||
description: z.string().nullable().optional(),
|
||||
modelId: modelIdSchema,
|
||||
name: z.string(),
|
||||
});
|
||||
|
||||
export const sessionModelStateSchema = z.object({
|
||||
_meta: acpMetaSchema,
|
||||
availableModels: z.array(modelInfoSchema),
|
||||
currentModelId: modelIdSchema,
|
||||
});
|
||||
|
||||
export const newSessionResponseSchema = z.object({
|
||||
sessionId: z.string(),
|
||||
models: sessionModelStateSchema,
|
||||
});
|
||||
|
||||
export const loadSessionResponseSchema = z.null();
|
||||
|
|
@ -418,17 +437,11 @@ export const agentInfoSchema = z.object({
|
|||
version: z.string(),
|
||||
});
|
||||
|
||||
export const modelInfoSchema = z.object({
|
||||
name: z.string(),
|
||||
contextLimit: z.number().optional().nullable(),
|
||||
});
|
||||
|
||||
export const initializeResponseSchema = z.object({
|
||||
agentCapabilities: agentCapabilitiesSchema,
|
||||
agentInfo: agentInfoSchema,
|
||||
authMethods: z.array(authMethodSchema),
|
||||
modes: modesDataSchema,
|
||||
modelInfo: modelInfoSchema.optional(),
|
||||
protocolVersion: z.number(),
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue