Add the intent seed domain for the agent-intent module.
ci / vet-and-test (push) Successful in 2s
ci / docker-checkout-hostgateway (push) Successful in 3s

This commit is contained in:
weichen
2026-09-29 15:18:32 +00:00
parent 95a03b7578
commit 28fa06eaa5
9 changed files with 68 additions and 6 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func TestEmbeddedCatalogMatchesRegistry(t *testing.T) {
r := errcode.NewRegistry()
RegisterAll(r)
for _, domain := range []string{"sys", "agent", "squad"} {
for _, domain := range []string{"sys", "agent", "squad", "intent"} {
got, err := ExportDomain(r, domain)
if err != nil {
t.Fatal(err)
+2 -2
View File
@@ -9,11 +9,11 @@ import (
func TestWriteCatalog(t *testing.T) {
if os.Getenv("WRITE_CATALOG") != "1" {
t.Skip("set WRITE_CATALOG=1 to regenerate sys.json agent.json squad.json")
t.Skip("set WRITE_CATALOG=1 to regenerate sys.json agent.json squad.json intent.json")
}
r := errcode.NewRegistry()
RegisterAll(r)
for _, domain := range []string{"sys", "agent", "squad"} {
for _, domain := range []string{"sys", "agent", "squad", "intent"} {
data, err := ExportDomain(r, domain)
if err != nil {
t.Fatal(err)
+1 -1
View File
@@ -4,7 +4,7 @@ import "embed"
// 导出的目录快照。改 Go 定义后用 WRITE_CATALOG=1 重写这些文件。
//
//go:embed sys.json agent.json squad.json
//go:embed sys.json agent.json squad.json intent.json
var catalogFS embed.FS
// CatalogJSON 返回已嵌入的域目录原文。
+12
View File
@@ -0,0 +1,12 @@
package domains
import "error-code-system/errcode"
func registerIntent(r *errcode.Registry) {
must(r, def(errcode.IntentInvalidSpec, 400, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"意图定义校验失败", "检查 spec 的 id/domain/matcher/slots 与来源文件;整批配置已原子拒绝"))
must(r, def(errcode.IntentSpecProtected, 400, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"试图覆盖或禁用保护域意图", "保护域由宿主构建时声明;修改须走宿主内置定义,不接受 overlay"))
must(r, def(errcode.IntentLoadFailed, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"意图配置加载失败", "查看来源路径与解析原因;失败时保留上一生效快照"))
}
+29
View File
@@ -0,0 +1,29 @@
[
{
"code": "intent.invalid_spec",
"http": 400,
"severity": "error",
"retry": "never",
"side_effects": "none",
"summary": "意图定义校验失败",
"hint": "检查 spec 的 id/domain/matcher/slots 与来源文件;整批配置已原子拒绝"
},
{
"code": "intent.load_failed",
"http": 500,
"severity": "error",
"retry": "never",
"side_effects": "none",
"summary": "意图配置加载失败",
"hint": "查看来源路径与解析原因;失败时保留上一生效快照"
},
{
"code": "intent.spec_protected",
"http": 400,
"severity": "error",
"retry": "never",
"side_effects": "none",
"summary": "试图覆盖或禁用保护域意图",
"hint": "保护域由宿主构建时声明;修改须走宿主内置定义,不接受 overlay"
}
]
+2 -1
View File
@@ -8,11 +8,12 @@ import "error-code-system/errcode"
func init() { RegisterAll(errcode.Default) }
// RegisterAll 向 r 登记 sys / agent / squad 三域。重复调用会因码冲突失败。
// RegisterAll 向 r 登记 sys / agent / squad / intent 四域。重复调用会因码冲突失败。
func RegisterAll(r *errcode.Registry) {
registerSys(r)
registerAgent(r)
registerSquad(r)
registerIntent(r)
}
func must(r *errcode.Registry, def errcode.Definition) {