Files
Error-Code-System/domains/agent.go
T
weichen 28d2d50743 Enable canonical versioned Go module consumption
Why: Allow consumers to download an immutable module revision without nested source checkouts or local path replacements.

Evidence: SELF package tests and the prior canonical-path rejection are recorded in the Dev dependency-workspace task card; remote consumption is replayed against the committed candidate.

Impact: Change the module identity and its Go imports while preserving API behavior. Existing historical submodule revisions remain buildable.

Refs: Versioned dependencies U1/U3; feature/dependency-workspace
2026-10-13 15:06:48 +00:00

60 lines
4.1 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 domains
import "git-ssh.u1680832.nyat.app/weichen/Error-Code-System.git/errcode"
// registerAgent 对齐 agent-native contract.ErrorCode(12)与 pitransport 历史码(7)。
// 副作用与重试语义见 docs/agent-native-mapping.md。
func registerAgent(r *errcode.Registry) {
must(r, def(errcode.AgentCanceled, 499, errcode.SeverityInfo, errcode.RetryNever, errcode.SideEffectPossible,
"执行已取消", "确认取消已传播到模型、工具与子进程;不要伪报成功",
"canceled", "CANCELLED"))
must(r, def(errcode.AgentDeadlineExceeded, 408, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectPossible,
"超过执行截止时间", "预算与截止时间在同一 ExecutionID 内共享,不要换 ID 无条件重放",
"deadline_exceeded"))
must(r, def(errcode.AgentBudgetExceeded, 429, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectPossible,
"执行预算耗尽", "提高预算或缩小任务后再发起新的执行",
"budget_exceeded"))
must(r, def(errcode.AgentProviderUnavailable, 503, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectNone,
"模型提供方不可用", "视为传输级瞬时故障,只做有界重试",
"provider_unavailable"))
must(r, def(errcode.AgentProviderRejected, 502, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"模型提供方拒绝请求", "检查模型名、请求体与账号权限,不要当瞬时故障重试",
"provider_rejected"))
must(r, def(errcode.AgentToolRejected, 403, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"工具调用被拒绝", "工具不在允许范围内;不要自行扩大工具策略",
"tool_rejected"))
must(r, def(errcode.AgentPathOutsideWorkspace, 403, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"路径越出授权工作区", "只访问 Workspace.Root 之内的路径",
"path_outside_workspace"))
must(r, def(errcode.AgentMissingCapability, 400, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"后端缺少必需能力", "拒绝执行,不要静默降级到 Stub",
"missing_capability"))
must(r, def(errcode.AgentMissingDeliverable, 422, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectPossible,
"交付物缺失", "确认目标文件未部分写入后再做一次有界重试",
"missing_deliverable", "MISSING_TARGET"))
must(r, def(errcode.AgentEmptyOutput, 422, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectNone,
"输出为空", "检查提示词与停止原因,不要把空输出当成成功",
"empty_output"))
must(r, def(errcode.AgentUnknownOutcome, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectPossible,
"执行结果不确定", "Unknown 不得降级为成功或失败;由调用方依据副作用决定能否重放",
"unknown_outcome"))
must(r, def(errcode.AgentInternal, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectUnknown,
"执行器内部错误", "保留执行日志与 trace_id,不要对未知副作用无条件重放",
"internal"))
must(r, def(errcode.AgentPromptEmpty, 400, errcode.SeverityWarn, errcode.RetryNever, errcode.SideEffectNone,
"提示词为空", "补齐 prompt 后重新发起;对应 pitransport PROMPT_EMPTY",
"PROMPT_EMPTY", "prompt_empty"))
must(r, def(errcode.AgentUnauthorized, 401, errcode.SeverityWarn, errcode.RetryNever, errcode.SideEffectNone,
"执行器鉴权失败", "检查 runner 凭证;对应 pitransport UNAUTHORIZED",
"UNAUTHORIZED"))
must(r, def(errcode.AgentTimeout, 504, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectPossible,
"执行超时", "传输级超时可有界重试;对应 pitransport TIMEOUT",
"TIMEOUT"))
must(r, def(errcode.AgentTransient, 503, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectPossible,
"执行瞬时故障", "仅作有界重试;对应 pitransport TRANSIENT",
"TRANSIENT"))
must(r, def(errcode.AgentRunFailed, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectPossible,
"执行运行失败", "查看 error_code 以外的运行日志;对应 pitransport RUN_FAILED",
"RUN_FAILED"))
}