feat(errs): add 8 MCP error codes + HTTPStatus mapping

This commit is contained in:
2026-05-08 07:09:26 +08:00
parent 39f57df882
commit b1db7841c7
+20
View File
@@ -86,6 +86,16 @@ const (
CodeAcpSpawnFailed Code = "acp.spawn_failed" CodeAcpSpawnFailed Code = "acp.spawn_failed"
CodeAcpHandshakeTimeout Code = "acp.handshake_timeout" CodeAcpHandshakeTimeout Code = "acp.handshake_timeout"
CodeAcpFsPathOutsideWorktree Code = "acp.fs_path_outside_worktree" CodeAcpFsPathOutsideWorktree Code = "acp.fs_path_outside_worktree"
// MCP 域
CodeMcpTokenInvalid Code = "mcp.token_invalid"
CodeMcpTokenRevoked Code = "mcp.token_revoked"
CodeMcpTokenExpired Code = "mcp.token_expired"
CodeMcpTokenNotFound Code = "mcp.token_not_found"
CodeMcpTokenScopeViolation Code = "mcp.token_scope_violation"
CodeMcpTokenNameRequired Code = "mcp.token_name_required"
CodeMcpTokenExpiresRequired Code = "mcp.token_expires_required"
CodeMcpRateLimited Code = "mcp.rate_limited"
) )
// AppError is the application's structured error type. It carries a stable // AppError is the application's structured error type. It carries a stable
@@ -210,6 +220,16 @@ func HTTPStatus(code Code) int {
return http.StatusInternalServerError return http.StatusInternalServerError
case CodeWebhookNotConfigured: case CodeWebhookNotConfigured:
return http.StatusServiceUnavailable return http.StatusServiceUnavailable
case CodeMcpTokenInvalid, CodeMcpTokenRevoked, CodeMcpTokenExpired:
return http.StatusUnauthorized
case CodeMcpTokenNotFound:
return http.StatusNotFound
case CodeMcpTokenScopeViolation:
return http.StatusForbidden
case CodeMcpTokenNameRequired, CodeMcpTokenExpiresRequired:
return http.StatusBadRequest
case CodeMcpRateLimited:
return http.StatusTooManyRequests
default: default:
return http.StatusInternalServerError return http.StatusInternalServerError
} }