server.ts 605 B

12345678910111213141516171819202122
  1. import { createOpencodeClient } from "@opencode-ai/sdk/v2/client"
  2. import type { ServerConnection } from "@/context/server"
  3. export function createSdkForServer({
  4. server,
  5. ...config
  6. }: Omit<NonNullable<Parameters<typeof createOpencodeClient>[0]>, "baseUrl"> & {
  7. server: ServerConnection.HttpBase
  8. }) {
  9. const auth = (() => {
  10. if (!server.password) return
  11. return {
  12. Authorization: `Basic ${btoa(`${server.username ?? "opencode"}:${server.password}`)}`,
  13. }
  14. })()
  15. return createOpencodeClient({
  16. ...config,
  17. headers: { ...config.headers, ...auth },
  18. baseUrl: server.url,
  19. })
  20. }