Skip to content

Commit 5f93e14

Browse files
committed
feat: update Copilot SDK to version 0.2.2 and implement approveAll for permission requests
1 parent 073ba57 commit 5f93e14

6 files changed

Lines changed: 44 additions & 41 deletions

File tree

0.basic.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// 📦 Importa el cliente del SDK de Copilot
2-
import { CopilotClient } from "@github/copilot-sdk";
2+
import { approveAll, CopilotClient } from "@github/copilot-sdk";
33
// ⏱️ Spinner visual para esperas
44
import ora from "ora";
55

@@ -18,7 +18,7 @@ const copilotClient = new CopilotClient({ logLevel: "all" });
1818
// - claude-opus-4.5 (3x)
1919
// - claude-sonnet-4 (1x)
2020
// - etc
21-
const copilotSession = await copilotClient.createSession({ model: "gpt-5.2" });
21+
const copilotSession = await copilotClient.createSession({ model: "gpt-5.2", onPermissionRequest: approveAll });
2222

2323
// Con el Id de la sesión podemos continuar la conversación más adelante o en otro proceso.
2424
const copilotSessionId = copilotSession.sessionId; // 🧾 Guarda el ID para retomar luego
@@ -41,7 +41,7 @@ await copilotClient.stop();
4141

4242
// 🔄 Para confirmar que podemos retomar la conversación más adelante
4343
const resumedCopilotClient = new CopilotClient({ logLevel: "all" });
44-
const resumedCopilotSession = await resumedCopilotClient.resumeSession(copilotSessionId);
44+
const resumedCopilotSession = await resumedCopilotClient.resumeSession(copilotSessionId, { onPermissionRequest: approveAll });
4545

4646
const recapPrompt = `¿De qué habíamos hablado?`;
4747
const recapPromptSpinner = ora({ text: `⏳ Retomando conversación: "${formatPromptInline(recapPrompt)}"`, spinner: "dots" }).start();

1.agents.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// 📦 Modulos y dependencias
22
import { marked } from "marked";
33
import { markedTerminal } from "marked-terminal"
4-
import { CopilotClient, defineTool, SessionConfig } from "@github/copilot-sdk";
4+
import { approveAll, CopilotClient, defineTool, SessionConfig } from "@github/copilot-sdk";
55
import chalk from "chalk";
66
import ora from "ora";
77
import readline from "node:readline/promises";
@@ -104,6 +104,7 @@ copilotClient.start().then(() => {
104104

105105
// ⚙️ Opciones de sesión (educativo: aquí puedes jugar con todo)
106106
const sessionOptions: SessionConfig = {
107+
onPermissionRequest: approveAll,
107108
systemMessage: {
108109
content: `Eres un asistente que me ayuda a buscar vídeos en el canal de YouTube de returngis. Como parte de la respuesta debes incluir la fecha actual si te preguntan sobre videos.
109110
Para preguntas relacionadas con GitHub usa el MCP Server. Indica si has usado alguna tool para conseguir la respuesta y cuál ha sido.

2.streaming.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if (!process.env.GH_TOKEN && !process.env.GITHUB_TOKEN) {
3838
// 📦 IMPORTACIONES
3939
// ═══════════════════════════════════════════════════════════════════════════
4040

41-
import { CopilotClient } from "@github/copilot-sdk";
41+
import { approveAll, CopilotClient } from "@github/copilot-sdk";
4242
import chalk from "chalk";
4343
import ora from "ora";
4444

@@ -84,6 +84,7 @@ async function main() {
8484

8585
const session = await client.createSession({
8686
model: MODEL_NAME,
87+
onPermissionRequest: approveAll,
8788
streaming: true, // ⚡ CLAVE: Habilita el modo streaming
8889
});
8990

3.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
// 📝 NOTA: Este script usa modo servidor, así que el token está en el servidor,
1919
// pero aún así validamos que el servidor esté configurado correctamente.
2020

21-
import { CopilotClient } from "@github/copilot-sdk"; // 🤖 Cliente del SDK de Copilot
21+
import { approveAll, CopilotClient } from "@github/copilot-sdk"; // 🤖 Cliente del SDK de Copilot
2222
import * as readline from "readline"; // ⌨️ Para leer entrada del usuario en la terminal
2323
import chalk from "chalk"; // 🎨 Colores bonitos para la terminal
2424
import { marked } from "marked"; // 📄 Parser de Markdown
@@ -56,6 +56,7 @@ marked.use(markedTerminal() as any);
5656
// 💡 streaming: true permite recibir la respuesta token por token
5757
const session = await client.createSession({
5858
model: "gpt-5-mini", // 🧠 Modelo a usar
59+
onPermissionRequest: approveAll, // ✅ Acepta todos los permisos solicitados por el modelo
5960
streaming: true, // ⚡ Habilita respuestas en tiempo real (token a token)
6061
systemMessage: {
6162
// 🧠 Mensaje del sistema que define el comportamiento del asistente

package-lock.json

Lines changed: 34 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"license": "ISC",
1515
"type": "module",
1616
"dependencies": {
17-
"@github/copilot-sdk": "^0.1.19",
17+
"@github/copilot-sdk": "^0.2.2",
1818
"chalk": "^5.6.2",
1919
"marked": "^15.0.0",
2020
"marked-terminal": "^7.3.0",

0 commit comments

Comments
 (0)