refactor: kilo compat for v1.14.29

This commit is contained in:
Mark IJbema
2026-04-29 17:24:20 +02:00
parent 5e67efc2fd
commit 7d375b93ee
1673 changed files with 1498 additions and 399138 deletions
@@ -11,10 +11,10 @@ import { tmpdir } from "../fixture/fixture"
void Log.init({ print: false })
const original = Flag.OPENCODE_EXPERIMENTAL_HTTPAPI
const original = Flag.KILO_EXPERIMENTAL_HTTPAPI
function app() {
Flag.OPENCODE_EXPERIMENTAL_HTTPAPI = true
Flag.KILO_EXPERIMENTAL_HTTPAPI = true
return Server.Default().app
}
@@ -37,7 +37,7 @@ async function waitDisposed(directory: string) {
}
afterEach(async () => {
Flag.OPENCODE_EXPERIMENTAL_HTTPAPI = original
Flag.KILO_EXPERIMENTAL_HTTPAPI = original
await Instance.disposeAll()
await resetDatabase()
})
@@ -51,9 +51,9 @@ describe("instance HttpApi", () => {
vcsDiff.searchParams.set("mode", "git")
const [paths, vcs, diff] = await Promise.all([
app().request(InstancePaths.path, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.vcs, { headers: { "x-opencode-directory": tmp.path } }),
app().request(vcsDiff, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.path, { headers: { "x-kilo-directory": tmp.path } }),
app().request(InstancePaths.vcs, { headers: { "x-kilo-directory": tmp.path } }),
app().request(vcsDiff, { headers: { "x-kilo-directory": tmp.path } }),
])
expect(paths.status).toBe(200)
@@ -72,11 +72,11 @@ describe("instance HttpApi", () => {
await using tmp = await tmpdir({ config: { formatter: false, lsp: false } })
const [commands, agents, skills, lsp, formatter] = await Promise.all([
app().request(InstancePaths.command, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.agent, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.skill, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.lsp, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.formatter, { headers: { "x-opencode-directory": tmp.path } }),
app().request(InstancePaths.command, { headers: { "x-kilo-directory": tmp.path } }),
app().request(InstancePaths.agent, { headers: { "x-kilo-directory": tmp.path } }),
app().request(InstancePaths.skill, { headers: { "x-kilo-directory": tmp.path } }),
app().request(InstancePaths.lsp, { headers: { "x-kilo-directory": tmp.path } }),
app().request(InstancePaths.formatter, { headers: { "x-kilo-directory": tmp.path } }),
])
expect(commands.status).toBe(200)
@@ -101,14 +101,14 @@ describe("instance HttpApi", () => {
const response = await app().request("/project/git/init", {
method: "POST",
headers: { "x-opencode-directory": tmp.path },
headers: { "x-kilo-directory": tmp.path },
})
expect(response.status).toBe(200)
expect(await response.json()).toMatchObject({ vcs: "git", worktree: tmp.path })
await disposed
const current = await app().request("/project/current", { headers: { "x-opencode-directory": tmp.path } })
const current = await app().request("/project/current", { headers: { "x-kilo-directory": tmp.path } })
expect(current.status).toBe(200)
expect(await current.json()).toMatchObject({ vcs: "git", worktree: tmp.path })
})
@@ -116,13 +116,13 @@ describe("instance HttpApi", () => {
test("serves project update through Hono bridge", async () => {
await using tmp = await tmpdir({ config: { formatter: false, lsp: false } })
const current = await app().request("/project/current", { headers: { "x-opencode-directory": tmp.path } })
const current = await app().request("/project/current", { headers: { "x-kilo-directory": tmp.path } })
expect(current.status).toBe(200)
const project = (await current.json()) as { id: string }
const response = await app().request(`/project/${project.id}`, {
method: "PATCH",
headers: { "x-opencode-directory": tmp.path, "content-type": "application/json" },
headers: { "x-kilo-directory": tmp.path, "content-type": "application/json" },
body: JSON.stringify({ name: "patched-project", commands: { start: "bun dev" } }),
})
@@ -133,7 +133,7 @@ describe("instance HttpApi", () => {
commands: { start: "bun dev" },
})
const list = await app().request("/project", { headers: { "x-opencode-directory": tmp.path } })
const list = await app().request("/project", { headers: { "x-kilo-directory": tmp.path } })
expect(list.status).toBe(200)
expect(await list.json()).toContainEqual(
expect.objectContaining({ id: project.id, name: "patched-project", commands: { start: "bun dev" } }),
@@ -154,7 +154,7 @@ describe("instance HttpApi", () => {
const response = await app().request(InstancePaths.dispose, {
method: "POST",
headers: { "x-opencode-directory": tmp.path },
headers: { "x-kilo-directory": tmp.path },
})
expect(response.status).toBe(200)