Просмотр исходного кода

fix(opencode): pass missing auth headers in `run --attach` (#16097)

Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: Shoubhit Dash <[email protected]>
Eric Clemmons 1 месяц назад
Родитель
Сommit
18fb19da3b
1 измененных файлов с 13 добавлено и 1 удалено
  1. 13 1
      packages/opencode/src/cli/cmd/run.ts

+ 13 - 1
packages/opencode/src/cli/cmd/run.ts

@@ -280,6 +280,11 @@ export const RunCommand = cmd({
         type: "string",
         describe: "attach to a running opencode server (e.g., http://localhost:4096)",
       })
+      .option("password", {
+        alias: ["p"],
+        type: "string",
+        describe: "basic auth password (defaults to OPENCODE_SERVER_PASSWORD)",
+      })
       .option("dir", {
         type: "string",
         describe: "directory to run in, path on remote server if attaching",
@@ -648,7 +653,14 @@ export const RunCommand = cmd({
     }
 
     if (args.attach) {
-      const sdk = createOpencodeClient({ baseUrl: args.attach, directory })
+      const headers = (() => {
+        const password = args.password ?? process.env.OPENCODE_SERVER_PASSWORD
+        if (!password) return undefined
+        const username = process.env.OPENCODE_SERVER_USERNAME ?? "opencode"
+        const auth = `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`
+        return { Authorization: auth }
+      })()
+      const sdk = createOpencodeClient({ baseUrl: args.attach, directory, headers })
       return await execute(sdk)
     }