Files
HomeAgent/internal/kernelmod/config/mod.go
JianFeeeee 4e70b8d5d8 refactor(module): 核心仓 Go module 路径改为 github.com/JianFeeeee/HologramAgent
批 1,不含 SDK 仓与目录改名。

- go.mod 第 1 行 module 路径
- 366 个 .go 文件的完整前缀 github.com/JianFeeeee/HomeAgent 机械替换
  (857 处,仅完整前缀;展示名/注释里的 HomeAgent 字样留给批 5)
- 未改:third_party 目录名、SDK 自身 go.mod module、go.mod replace 目标、
  homed/waiter 可执行名、.hmap 后缀
2026-10-21 12:17:19 +08:00

44 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package config 是 config 模块:提供配置快照(ks.Cfg)。
//
// ## ★ 它解决了"cfg 是无主模块"的问题
//
// 原先 `cfg := cfgReg.ToConfig()` 之后,cfg 是**游离的局部变量**,
// 被手工传给 11 个 init* —— 谁需要它就靠人肉排在那一行之后。
// 现在它住在 `ks.Cfg`,任何模块直接读即可。
//
// ## 依赖:图上为空,但隐含"必须在 Group 0 之后"
//
// 它读 core.llm.* 里的**密文** ⇒ 必须在安全块(装好密钥)之后。
// 但这不是**图内依赖**(安全块不由任何调度模块提供;声明 crypto 会让
// Build 报"依赖了不存在的设施")。更本质:那是**时序**要求,不是**数据**依赖。
//
// ⇒ 由 Group 0 阶段保证:Group 0 串行跑完 ⇒ 才启动本调度器。
package config
import (
"fmt"
"github.com/JianFeeeee/HologramAgent/internal/kernelboot"
"github.com/JianFeeeee/HologramAgent/internal/kernelmod"
)
// Module 提供配置快照。
type Module struct{}
func (Module) Name() string { return "config" }
func (Module) Requires() []string { return nil } // 前提由 Group 0 保证
func (Module) Provides() []string { return []string{kernelmod.FacConfig} }
func (Module) Init(ks *kernelboot.KernelState) error {
// ★ 检查而不是假设(用户说的"nil 加读取前检查"):
// ks.Cfg 为 nil 说明 Group 0 段没跑或顺序错了。响亮报错远好于让后续
// 模块拿到 nil —— 那会在很远的地方变成"模型没有配置"之类的模糊症状。
if ks.Cfg == nil {
return fmt.Errorf("config 模块:ks.Cfg 为 nil —— Group 0 必须先完成 " +
"`cfg := cfgReg.ToConfig()`(且必须在安全块之后,否则密文解不开 ⇒ 全 provider 401)")
}
return nil
}
func init() { kernelmod.Register(Module{}) }