- 品牌替换: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.2 KiB
TypeScript
57 lines
1.2 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { writeSessionOutput } from "@/cli/cmd/run/stream"
|
|
import type { FooterApi, FooterEvent, StreamCommit } from "@/cli/cmd/run/types"
|
|
|
|
function footer() {
|
|
const events: FooterEvent[] = []
|
|
const commits: StreamCommit[] = []
|
|
|
|
const api: FooterApi = {
|
|
isClosed: false,
|
|
onPrompt: () => () => {},
|
|
onQueuedRemove: () => () => {},
|
|
onClose: () => () => {},
|
|
event: (next) => {
|
|
events.push(next)
|
|
},
|
|
append: (next) => {
|
|
commits.push(next)
|
|
},
|
|
idle: () => Promise.resolve(),
|
|
close: () => {},
|
|
destroy: () => {},
|
|
}
|
|
|
|
return { api, events, commits }
|
|
}
|
|
|
|
describe("run stream bridge", () => {
|
|
test("defaults status patches to running phase", () => {
|
|
const out = footer()
|
|
|
|
writeSessionOutput(
|
|
{
|
|
footer: out.api,
|
|
},
|
|
{
|
|
commits: [],
|
|
footer: {
|
|
patch: {
|
|
status: "assistant responding",
|
|
},
|
|
},
|
|
},
|
|
)
|
|
|
|
expect(out.events).toEqual([
|
|
{
|
|
type: "stream.patch",
|
|
patch: {
|
|
phase: "running",
|
|
status: "assistant responding",
|
|
},
|
|
},
|
|
])
|
|
})
|
|
})
|