diff --git a/.github/drivers/copilot_sdk_driver_sample_node.cjs b/.github/drivers/copilot_sdk_driver_sample_node.cjs index d3da3f581aa..0d9d6ca4b5d 100644 --- a/.github/drivers/copilot_sdk_driver_sample_node.cjs +++ b/.github/drivers/copilot_sdk_driver_sample_node.cjs @@ -2,7 +2,6 @@ "use strict"; const fs = require("node:fs"); -const { CopilotClient, RuntimeConnection, approveAll } = require("@github/copilot-sdk"); function readRequiredEnv(name) { const value = process.env[name]; @@ -26,7 +25,22 @@ function extractAssistantContent(message) { return ""; } +function buildSessionConfig(model, onPermissionRequest) { + const config = { + onPermissionRequest, + model, + }; + + const providerBaseUrl = process.env.GH_AW_COPILOT_SDK_PROVIDER_BASE_URL; + if (providerBaseUrl) { + config.provider = { type: "openai", baseUrl: providerBaseUrl }; + } + + return config; +} + async function main() { + const { CopilotClient, approveAll } = require("@github/copilot-sdk"); const promptPath = readRequiredEnv("GH_AW_PROMPT"); const sdkUri = readRequiredEnv("COPILOT_SDK_URI"); const connectionToken = readRequiredEnv("COPILOT_CONNECTION_TOKEN"); @@ -41,10 +55,7 @@ async function main() { let session; await client.start(); try { - session = await client.createSession({ - onPermissionRequest: approveAll, - model, - }); + session = await client.createSession(buildSessionConfig(model, approveAll)); const response = await session.sendAndWait({ prompt }); const content = extractAssistantContent(response); if (content) { @@ -58,7 +69,13 @@ async function main() { } } -main().catch(error => { - process.stderr.write(`[copilot-sdk-driver-sample-node] ${error instanceof Error ? error.message : String(error)}\n`); - process.exit(1); -}); +if (require.main === module) { + main().catch(error => { + process.stderr.write(`[copilot-sdk-driver-sample-node] ${error instanceof Error ? error.message : String(error)}\n`); + process.exit(1); + }); +} + +module.exports = { + buildSessionConfig, +};