diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index ba940aa7..ff7072e7 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -8,6 +8,8 @@ import { resolver, validator as zValidator } from "hono-openapi/zod" import { z } from "zod" import { Message } from "../session/message" import { Provider } from "../provider/provider" +import { App } from "../app/app" +import { Global } from "../global" export namespace Server { const log = Log.create({ service: "server" }) @@ -72,6 +74,38 @@ export namespace Server { }) }, ) + .post( + "/path_get", + describeRoute({ + description: "Get paths", + responses: { + 200: { + description: "200", + content: { + "application/json": { + schema: resolver( + z.object({ + root: z.string(), + data: z.string(), + cwd: z.string(), + config: z.string(), + }), + ), + }, + }, + }, + }, + }), + async (c) => { + const app = await App.use() + return c.json({ + root: app.path.root, + data: app.path.data, + cwd: app.path.cwd, + config: Global.config(), + }) + }, + ) .post( "/session_create", describeRoute({ diff --git a/packages/opencode/test/tool/tool.test.ts b/packages/opencode/test/tool/tool.test.ts index 77d0b470..da333d15 100644 --- a/packages/opencode/test/tool/tool.test.ts +++ b/packages/opencode/test/tool/tool.test.ts @@ -27,11 +27,14 @@ describe("tool.glob", () => { describe("tool.ls", () => { test("basic", async () => { - const result = await App.provide({ cwd: process.cwd(), version: "test" }, async () => { - return await ListTool.execute({ - path: "./example", - }) - }) + const result = await App.provide( + { cwd: process.cwd(), version: "test" }, + async () => { + return await ListTool.execute({ + path: "./example", + }) + }, + ) expect(result.output).toMatchSnapshot() }) })