- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件) - Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃 - 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针 - dev 模式默认 --pure 跳过外部插件加载 - AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落 - architect prompt + plugin:强化 AGENTS.md 产出验证
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import { createOpencodeClient, createOpencodeServer } from "@opencode-ai/sdk"
|
|
import { pathToFileURL } from "bun"
|
|
|
|
const server = await createOpencodeServer()
|
|
const client = createOpencodeClient({ baseUrl: server.url })
|
|
|
|
const input = await Array.fromAsync(new Bun.Glob("packages/core/*.ts").scan())
|
|
|
|
const tasks: Promise<void>[] = []
|
|
for await (const file of input) {
|
|
console.log("processing", file)
|
|
const session = await client.session.create()
|
|
tasks.push(
|
|
client.session.prompt({
|
|
path: { id: session.data.id },
|
|
body: {
|
|
parts: [
|
|
{
|
|
type: "file",
|
|
mime: "text/plain",
|
|
url: pathToFileURL(file).href,
|
|
},
|
|
{
|
|
type: "text",
|
|
text: `Write tests for every public function in this file.`,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
)
|
|
console.log("done", file)
|
|
}
|
|
|
|
await Promise.all(
|
|
input.map(async (file) => {
|
|
const session = await client.session.create()
|
|
console.log("processing", file)
|
|
await client.session.prompt({
|
|
path: { id: session.data.id },
|
|
body: {
|
|
parts: [
|
|
{
|
|
type: "file",
|
|
mime: "text/plain",
|
|
url: pathToFileURL(file).href,
|
|
},
|
|
{
|
|
type: "text",
|
|
text: `Write tests for every public function in this file.`,
|
|
},
|
|
],
|
|
},
|
|
})
|
|
console.log("done", file)
|
|
}),
|
|
)
|