Extension commands: let `CommandDefinition` declare an input hint and choices

Abierto
#2,911 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
70/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Start by reading the TypeScript definition of CommandDefinition and the SlashCommandInput type, then trace where CopilotClient sends commands during session.create and session.resume. Add the input shape to the definition and forward it with each command; done when client commands can provide the hint and choices described in the issue.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Context

Built-in commands show users what they accept as they type. /computer draws [on|off|show] after its name and lists each choice with its description, so a user can find and pick a subcommand without leaving the prompt. Extension commands cannot do this: the slash menu shows an extension command's description and nothing about what it accepts. Users of an extension command with subcommands (in our case a voice extension's on, off, status, listen, stop, and five more) must remember them or run a help subcommand to find them. The alternative, one command per action, crowds the slash menu.

The runtime already models this. SlashCommandInfo, which session.commands.list returns, has an experimental input?: SlashCommandInput: a hint, literal choices that each have a description, plus required and completion. The SlashCommandInputChoice docs use /computer's values as their example. But CommandDefinition takes only name, description and handler, and CopilotClient sends just { name, description } to the runtime on session.create and session.resume. This is the same in 1.0.29 and 1.0.30-preview.1, with CLI 1.0.107.

Request

Let CommandDefinition carry the existing input shape, and forward it with the command:

export interface CommandDefinition {
    name: string;
    description?: string;
    /** Shown as for built-in commands: the hint after the name, the choices as completions. */
    input?: SlashCommandInput;
    handler: CommandHandler;
}

A kind: "client" command would then render its hint and choices the same way a built-in command does.

Lenguaje dominante
Java
Estrellas
10.7k
Forks
1.5k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de github/copilot-sdk

Todos los issues de github/copilot-sdk

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.