summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/server/server.ts7
-rw-r--r--packages/sdk/js/src/v2/client.ts4
2 files changed, 9 insertions, 2 deletions
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index 04ec4673e..615d92728 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -246,7 +246,12 @@ export namespace Server {
},
)
.use(async (c, next) => {
- const directory = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd()
+ let directory = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd()
+ try {
+ directory = decodeURIComponent(directory)
+ } catch {
+ // fallback to original value
+ }
return Instance.provide({
directory,
init: InstanceBootstrap,
diff --git a/packages/sdk/js/src/v2/client.ts b/packages/sdk/js/src/v2/client.ts
index 806ad26e5..8685be52d 100644
--- a/packages/sdk/js/src/v2/client.ts
+++ b/packages/sdk/js/src/v2/client.ts
@@ -19,9 +19,11 @@ export function createOpencodeClient(config?: Config & { directory?: string }) {
}
if (config?.directory) {
+ const isNonASCII = /[^\x00-\x7F]/.test(config.directory)
+ const encodedDirectory = isNonASCII ? encodeURIComponent(config.directory) : config.directory
config.headers = {
...config.headers,
- "x-opencode-directory": config.directory,
+ "x-opencode-directory": encodedDirectory,
}
}