feat: add tab pane

This commit is contained in:
voocel
2026-03-11 19:03:33 +08:00
parent 74a8c8eaef
commit e9c8220bc3
10 changed files with 250 additions and 34 deletions

View File

@@ -25,6 +25,7 @@ type UIEvent struct {
// UISnapshot 是 TUI 渲染所需的聚合状态快照。
type UISnapshot struct {
Provider string
NovelName string
ModelName string
Style string
@@ -94,6 +95,7 @@ func NewRuntime(cfg Config, refs tools.References, prompts Prompts, styles map[s
if err := cfg.ValidateBase(); err != nil {
return nil, err
}
log.Printf("[boot] provider=%s model=%s base_url=%s output=%s", cfg.Provider, cfg.ModelName, cfg.BaseURL, cfg.OutputDir)
store := state.NewStore(cfg.OutputDir)
if err := store.Init(); err != nil {
@@ -119,10 +121,10 @@ func NewRuntime(cfg Config, refs tools.References, prompts Prompts, styles map[s
}
// 注册事件订阅:确定性控制 + UIEvent 转发 + 流式 delta 转发
registerSubscription(coordinator, store, rt.emit, rt.emitDelta, rt.emitClear)
registerSubscription(coordinator, store, cfg.Provider, rt.emit, rt.emitDelta, rt.emitClear)
// 初始化运行元信息
if err := store.InitRunMeta(cfg.Style, cfg.ModelName); err != nil {
if err := store.InitRunMeta(cfg.Style, cfg.Provider, cfg.ModelName); err != nil {
log.Printf("[warn] 初始化运行元信息失败: %v", err)
}
@@ -249,6 +251,7 @@ func (rt *Runtime) Steer(text string) {
func (rt *Runtime) Snapshot() UISnapshot {
snap := UISnapshot{
NovelName: rt.cfg.NovelName,
Provider: rt.cfg.Provider,
ModelName: rt.cfg.ModelName,
Style: rt.cfg.Style,
}